Внедрение JQuery междоменного - PullRequest
1 голос
/ 08 января 2010

Безопасно ли вводить скрипт JQuery с помощью JsonP?

Установка моего веб-приложения заключается в добавлении сценария на веб-сайт клиента (например, в Google Analytics). Я думал об использовании JQuery на веб-сайте клиента, как части моего собственного внедренного сценария.

Мне было интересно, есть ли какой-то риск? Приложение должно поддерживать любой веб-сайт.

Спасибо Ярон

Ответы [ 3 ]

4 голосов
/ 08 января 2010

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

Отсюда было обновлено после того, как поучительный комментарий от @K Prime заставил меня исследовать, как можно включить две копии jQuery при необходимости:

Как правило, плохо использовать jQuery, если вы создаете виджет, который будет жить на сайте вне вашего элемента управления и будет добавлен на сайт с помощью "скопировать это Вставить код и вставить на свой сайт "тип функциональности. (Конечно, виджетов и плагинов jQuery предостаточно, но они, как правило, выбираются и устанавливаются / реализуются разработчиками, а не универсальной реализацией типа виджетов "copy-n-paste")

Вероятно, главная причина (после того, как вы поймете, что может запустить две копии jQuery на одной странице) - это увеличение размера файла. Будет ли это оправдано, будет зависеть от ваших конкретных потребностей и функций. Простой маленький виджет = прямой JS. Сложное расширение интерфейса сайта, тогда оно, вероятно, стоит увеличения размера файла.

Чтобы включить его правильно (чтобы вы не столкнулись с конфликтами на их сайте), следуйте рабочему процессу, который выглядит примерно так:

  1. Динамически добавлять jQuery на их страницу с помощью API Google, как указано в других ответах здесь.
  2. Запустите var mywidget_jQuery = $.noConflict( true );, который восстановит первоначальное значение $ и восстановит первоначальное значение window.jQuery.
  3. Динамически добавьте ваш файл скрипта, но обязательно оберните все это в самозапускающуюся анонимную функцию, подобную этой:

JS

(function($){
    ... Your code here ...
})(mywidget_jQuery);

Теперь вы можете безопасно использовать $ внутри своей специальной функции и все функции jQuery, которые вы хотите без проблем.

Дополнительный кредит Вы можете заключить шаги 1 и 2 в оператор if, который проверяет, определено ли window.jQuery, и, если оно, проверьте, достаточно ли jQuery.fn.version для выполнения вашего кода. Если один из тестов не пройден, выполните шаги 1 и 2. Однако, если он пройдет успешно, просто запустите var mywidget_jQuery = window.jQuery, чтобы скрипт, включенный в шаг 3, продолжал работать.

2 голосов
/ 08 января 2010

Вы можете добавить jQuery на сайт, просто добавив элемент <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.js" />.

Однако, не забудьте позвонить jQuery.noConflict(), если они используют другое ключевое слово $.

0 голосов
/ 08 января 2010

Если вы просто ищете ссылку на библиотеку, почему бы вам просто не ссылаться на API, размещенный на Google Code ?

...