не могу найти jquery

Как видно из изображения, я добавил в форму пакет jQuery.

введите здесь описание изображения

Это последнее обновление с новейшим интерфейсом.

Как бы то ни было, я получаю следующее сообщение об ошибке.

ReferenceError: '$' не определен во временной точке (https://xxxx.crm4.dynamics.com/%7B635678213980001086%7D/WebResources/xxxx_Temp.js?ver=1543403284:4:5)

«Код» не работает.

function temp() { $.ajax({...}); }

Обратите внимание, что код для фактического представления HTML не выполнен как исходный код, который можно редактировать в CRM.

Я пытался получить к нему доступ через консоль, и, похоже, это работает, кроме того, что я новичок и я потерялся. Не уверен, какие ключевые слова для Google на.


person Marcus Berglund    schedule 21.05.2015    source источник
comment
Нам нужно увидеть ваш код здесь. Как вы включаете jQuery? Ваш код работает с событием DOMReady? Какие-то ошибки в консоли?   -  person Rory McCrossan    schedule 21.05.2015
comment
@RoryMcCrossan Он новый пользователь и не может публиковать изображения. Пожалуйста, перестаньте минусовать, чтобы он мог показать контроль. Ему нужно как минимум 10 повторений, чтобы показать проблему.   -  person Konrad Viltersten    schedule 21.05.2015
comment
@KonradViltersten извините? 1. Я не минусовал его 2. Изображение упоминается, но URL-адрес никуда не ведет, и 3. Я пытаюсь помочь ему, сообщая ему, какая информация нам нужна.   -  person Rory McCrossan    schedule 21.05.2015
comment
Вам не нужно публиковать изображения, чтобы показать код или ошибки. Пожалуйста, не обвиняйте людей в отрицательном голосовании, если вы не видите, кто это сделал.   -  person Sterling Archer    schedule 21.05.2015
comment
@SterlingArcher В CRM, как показывают теги, вам ДЕЙСТВИТЕЛЬНО нужно опубликовать изображение. Вот как это работает. Пожалуйста, перестаньте его унижать. Он не подделка. Пожалуйста, дайте ему секунду, и вы увидите. Это не только jquery. В CRM все иначе.   -  person Konrad Viltersten    schedule 21.05.2015
comment
@RoryMcCrossan Извините, я так и предполагал. В любом случае ему необходимо опубликовать изображение, чтобы показать ошибку. Кода при добавлении jQuery на сайт в CRM нет.   -  person Konrad Viltersten    schedule 21.05.2015
comment
Хорошо, если он загрузит его на сайт типа imgur.com и отредактирует вопрос со ссылкой, я смогу добавить изображение в для него.   -  person Rory McCrossan    schedule 21.05.2015
comment
@RoryMcCrossan Мы сделаем это прямо сейчас. Но я сильно чувствую, что это немного странно (хотя я понимаю, откуда это). Конечно, я устал от людей, которые жалуются на исходный код. В CRM этого нет, и я думаю, что люди должны более внимательно следить за тегами. :)   -  person Konrad Viltersten    schedule 21.05.2015
comment
@SterlingArcher Мы внесли изменение (по-прежнему показывает изображение, как это должно быть сделано в CRM). Не могли бы вы убрать отрицательный голос, чтобы парень рядом со мной мог присоединиться к SO по-настоящему?   -  person Konrad Viltersten    schedule 21.05.2015
comment
Информация, представленная в изображенной таблице, может быть точно так же представлена, скажем, таблицей.   -  person ssube    schedule 21.05.2015
comment
@ssube Отчасти, да. Тем не менее, мой опыт работы с CRM показывает, что иногда (не очень часто, но достаточно часто) опытный пользователь может заметить что-то, чего просто таблица или цитата не охватывают. Крайним примером был случай, когда кто-то мог заставить свои библиотеки DLL работать, и, как они описали, это должно было работать. Затем я увидел изображение — фон был оранжевый, а не темно-синий, что заставило меня понять, что бедняга находился в изолированной среде (что тогда было в новинку). . Итак, я узнал, что иногда размещение изображения может быть преимуществом. Но у тебя тоже есть хорошая мысль.   -  person Konrad Viltersten    schedule 21.05.2015


Ответы (3)


Вы полагаетесь на сторонний файл JQuery, это может быть вашей проблемой. Я не уверен, но Microsoft может сделать .noConflict() в этой библиотеке таким образом, что $ не будет ссылкой на JQuery.

документация Microsoft особо не рекомендует использовать JQuery в событиях формы.

Мы не рекомендуем использовать jQuery в сценариях форм и командах ленты. Большая часть преимуществ, предоставляемых jQuery, заключается в том, что он позволяет легко манипулировать DOM в разных браузерах. Это явно не поддерживается в сценариях форм и командах ленты. Ограничьте свои сценарии, чтобы использовать библиотеки Xrm.Page и Xrm.Utility, доступные в сценариях форм и командах ленты.

Вам не нужно использовать $.ajax():

Использование $.ajax для выполнения запросов к конечной точке SOAP OData и Modern Apps поддерживается, но есть альтернативы. Альтернативой использованию $.ajax является прямое использование объекта браузера XMLHttpRequest. Метод jQuery $.ajax — это всего лишь оболочка для этого объекта. Если вы используете собственный объект XMLHttpRequest напрямую, вам не нужно загружать jQuery.

Если вы хотите избежать устранения всех неполадок, выберите надежное решение, которое уже устранило эти проблемы и, возможно, больше. Я рекомендую ознакомиться с XrmServiceToolkit, который включает собственную копию JQuery и полностью протестирован с Dynamics CRM 2015.

В любом случае, вам определенно не следует полагаться на библиотеку JQuery, которая входит в решение для ленты действий.

person Nicknow    schedule 21.05.2015
comment
Это может быть моя вина. Я рекомендовал jQuery, так как это то, что я всегда использовал. Я тоже предпочитаю его синтаксис. В любом случае +1 за четкий и развернутый ответ. - person Konrad Viltersten; 22.05.2015
comment
Определенно рекомендую его для веб-ресурсов, где у вас есть манипуляции с DOM ... для вызовов данных. Я поклонник XrmServiceToolkit - это здорово! - person Nicknow; 22.05.2015

Поскольку сама MSDN дает примеры для получения данные через службу организации с помощью JavaScript как с jQuery, так и без, легко ввести в заблуждение, полагая, что они одинаково подходят.

Это еще больше вводит в заблуждение при чтении ...Поддерживается использование $.ajax для выполнения запросов к конечной точке SOAP OData и Modern Apps..., если читатель остановится на этом и не вложится в тщательное изучение весь абзац.

Однако похоже, что Microsoft стремится препятствовать использованию jQuery (который, на мой взгляд, является своего рода отраслевым стандартом) и подталкивает нас к XmlHttp (который IM-not-so-HO уродлив синтаксически и имеет очень запутанное имя).

Это, вероятно, объясняет, почему версия jQuery, предустановленная в новейших организациях, — 1.5, а в более старых — 1.7 с 2011 года.

Таким образом, есть два варианта обработки.

  1. Установите последнюю версию jQuery вручную.
  2. Адаптируйте развернутый подход XmlHttp.

(1) имеет то преимущество, что является более широким решением, чем просто небольшой пруд CRM. Это также дает больше компетенции при работе со старыми версиями и, безусловно, неподдерживаемыми. Если вам нужно применить Iframe или настроить портал, интегрированный с CRM, необходимо знать jQuery.

(2) имеет то преимущество, что его рекомендует Microsoft. Пуф.

person Konrad Viltersten    schedule 21.05.2015
comment
Чтобы уточнить, JQuery не поставляется предварительно установленным. Он используется CRM для собственных внутренних целей. SDK не ссылается на его доступность, поэтому не следует предполагать, что он доступен. - person Nicknow; 22.05.2015

Это происходит только в онлайн-среде Crm 2015.

Я добавил версию 1.7.2 из Xrm Service Toolkit в качестве первой библиотеки в форме и до сих пор не могу распознать «$» для чего-то простого (загрузка второй библиотеки добавляет css, который используется во время отображения всплывающее диалоговое окно JQuery в событии изменения):

$(document).ready(function () {
    $("<link/>", { rel: "stylesheet", type: "text/css", href: Xrm.Page.context.getClientUrl() + "/WebResources/tss_duplicatepopupcss" }).appendTo("head");
}
person Naveed Anwar    schedule 27.05.2015