Потребовалось мне использовать один jQuery плагин в расширении JediPlus
Прямое включение скрипта в секцию "content_scripts": [ ] эффекта не дало, кроме того обнаружилось. что и jquery нельзя указывать в этой секции, ибо тогда возникает конфликт в Опера с jquery используемом на сайте, причем даже в том случае, если расширение не активируется для этого сайта (т.е. фактически на всех сайтах).
Фреймворк предлагает еще вариант подключения - через @require
Т.е. в моём случае это выглядело вот так:
// @require jquery-1.8.3.min.js
// @require jquery.wysibb.js
Однако и это решение не давало результата, а генерило кучу ошибок с упоминанием $, jQuery и объектов.
Недолгие размышления привели к решению. Необходимо внести конструкцию
var $ = jQuery = window.$.noConflict(true); после вызова jquery или перед вызовом плагина. Если плагины не используются, то эту код надо внести прямо в начало контент скрипта, что отражено в доке по Канго.
Я правил прямо текст jquery.wysibb.js, но если не трогать исходники плагинов, то можно вставить дополнительный @require, например @require jquery-fix.js, содержащий одну эту строчку var $ = jQuery = window.$.noConflict(true);
И всё! Плагин заработал, правда не так как хочется, ибо плагин еще "хочет" разные другие ресурсы (css, картинки, шрифты).
Прямое включение скрипта в секцию "content_scripts": [ ] эффекта не дало, кроме того обнаружилось. что и jquery нельзя указывать в этой секции, ибо тогда возникает конфликт в Опера с jquery используемом на сайте, причем даже в том случае, если расширение не активируется для этого сайта (т.е. фактически на всех сайтах).
Фреймворк предлагает еще вариант подключения - через @require
Т.е. в моём случае это выглядело вот так:
// @require jquery-1.8.3.min.js
// @require jquery.wysibb.js
Однако и это решение не давало результата, а генерило кучу ошибок с упоминанием $, jQuery и объектов.
Недолгие размышления привели к решению. Необходимо внести конструкцию
var $ = jQuery = window.$.noConflict(true); после вызова jquery или перед вызовом плагина. Если плагины не используются, то эту код надо внести прямо в начало контент скрипта, что отражено в доке по Канго.
Я правил прямо текст jquery.wysibb.js, но если не трогать исходники плагинов, то можно вставить дополнительный @require, например @require jquery-fix.js, содержащий одну эту строчку var $ = jQuery = window.$.noConflict(true);
И всё! Плагин заработал, правда не так как хочется, ибо плагин еще "хочет" разные другие ресурсы (css, картинки, шрифты).
No comments:
Post a Comment