JS, встроенный в другие сайты - как я могу использовать jQuery, не портя другие установки jQuery? - PullRequest
1 голос
/ 25 октября 2010

Я работаю над некоторым JavaScript, который будет встроен в другие веб-сайты (например, Google Analytics или AdSense).Выполняется какой-то хардкорный JS - запросы AJAX, анимация, JSON (P).

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

Есть ли хороший способ обойти это?Лучшее решение, которое у меня есть, - просто заменить все вхождения jQuery на kQuery, а $ на $kQuery, чтобы не возникало конфликта имен.Какие-либо предложения?Как я могу быть максимально совместим с их существующим JavaScript?

Ответы [ 2 ]

3 голосов
/ 25 октября 2010

Для jQuery существует режим noConflict;это то, что вам нужноjQuery сохраняет исходные значения window.jQuery и window.$ как локальную копию перед тем, как перезаписать их.

Итак, решение:

var kQuery = $kQuery = $.noConflict( true );

, которое заменяет window.jQuery и window.$ с исходными значениями и возвращает ссылку на сам jQuery


А если вы вообще не хотите изменять свой код, просто оберните его в:

(function( $ ){
   // Your code with $
})( $.noConflict( true ) );
0 голосов
/ 25 октября 2010
 this might cause a problem when embedded on the other sites if they also have jQuery installed -- probably even a different version

Я не думаю, что это правда. У меня не было проблем с переключением между как минимум 3 разными версиями jQuery, он обратно совместим

...