Dynamics CRM - Как использовать JQuery в веб-ресурсах Javascript

У меня есть скрипт, который запускается в ленточной команде для выполнения действия, но он написан на простом javascript. Поскольку я хотел бы улучшить это, я хотел бы использовать вместо этого JQuery. Сценарий находится в решении, которое загружается в решениях. Должен ли я добавить файл jquery в решение? Как я могу использовать это?

4 ответа

Решение

Вы должны быть в состоянии получить доступ к jQuery, как это (вы не упомянули свою версию, это работает в 2016 году)

$ = ($ || parent.$);

Пока все ответы верны, но я хотел добавить свой вклад.

Для начала, мы можем затронуть некоторые неподдерживаемые настройки, но это не был вопрос.

Если вы запускаете скрипт в контексте представления, вы не можете добавить jquery напрямую. Единственный способ сделать это - загрузить файл как объект из URL ресурса через ваш оригинальный скрипт и добавить его в начало страницы. Затем загрузите его, ожидая выполнения оставшегося скрипта. Это явно за пределами того, что должно быть, и я советую против этого. В этом сценарии лучше отказаться от jquery.

Наконец, если вы запускаете его в контексте формы (в форме), вы можете добавить jquery к форме сущности как обычный скрипт. В зависимости от того, какой движок рендеринга форм вы используете, вам может понадобиться сделать то, что предложил Алекс и установить $ = $ || parent.$;, Если вы используете новые турбо-формы, представленные в более новых версиях, вам придется это сделать. Кроме того, у вас не должно возникнуть проблем с использованием ленты.

Добавление JQuery к вашему решению добавит его в качестве ресурса. Это само по себе не позволит вам выполнить его где угодно.

Если вы хотите использовать jQuery в своей ленточной команде, чтобы на 100% убедиться, что jQuery доступен, вы должны добавить дополнительное настраиваемое действие в вашу RibbonCommand, которое происходит до фактического настраиваемого действия, в котором определен ваш javascript.

В этом пользовательском действии вы вызываете функцию isNaN на веб-ресурсе jQuery (который также необходимо включить).

Предполагая, что вы используете Ribbon Workbench (что вам, вероятно, следует делать, если вы этого не сделаете:-)), это будет выглядеть так:

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

Используя этот метод, вы уверены, что jQuery будет доступен, независимо от того, какой контекст вы используете (формы, сетки, подсетки).

Если вы на самом деле не добавляете это так, вам нужно положиться на $ || parent.$, который работает в 99% случаев, но не гарантированно работает. Решение, упомянутое @Domenico, будет работать, но только когда кнопка отображается в Forms и библиотека jQuery загружается перед вашим пользовательским кодом.

Добавьте библиотеку JQuery в CRM

  1. Вы можете скачать последнюю версию JQuery с http://jquery.com/.

    1. После загрузки JQuery вы захотите добавить его в CRM в качестве веб-ресурса JScript.
    2. Откройте свое решение или откройте решение по умолчанию, выбрав "Настройки"> "Настройки"> "Настройка системы".
    3. Введите имя и выберите "Тип: сценарий (JScript)". Я рекомендую также ввести имя файла JQuery в дескриптор, чтобы вы знали, какая версия установлена.

    4. Нажмите Обзор и выберите только что загруженный файл JQuery.

    5. Сохраните и опубликуйте новый веб-ресурс.

    6. Теперь вы можете добавить библиотеку JQuery в свои формы, чтобы использовать ее из других веб-ресурсов.
Другие вопросы по тегам