Я пытаюсь использовать jQuery внутри расширения Firefox и на самом деле хочу использовать jQuery для управления DOM текущей страницы, в отличие от контекста XUL-файла. Таким образом, я загружаю jQuery в свой XUL-файл и передаю его некоторым моим скриптам в песочнице (используя компилятор расширения Greasemonkey http://arantius.com/misc/greasemonkey/script-compiler). Поскольку jQuery не был загружен страницей DOM, я хочу установить свой контекст селектора на страницу DOM вместо того, чтобы всегда передавать ее в вызовы jQuery.Переопределить контекст контекста jQuery по умолчанию
Я следовал за решением по адресу How to use jQuery in Firefox Extension, и он почти достигает того, чего я хочу.
jQuery.noConflict();
$ = function(selector,context){ return new jQuery.fn.init(selector,context||example.doc); };
$.fn = $.prototype = jQuery.fn;
Я могу делать вызовы функции JQuery(), и страница DOM будет использоваться в качестве контекста. Однако я не могу использовать такие функции, как jQuery.trim, поскольку они не определены.
Я думал, что эту линию из раствора
$.fn = $.prototype = jQuery.fn;
позволит мой собственный объект JQuery наследует все свойства прототипа JQuery, но он, видимо, нет.
Дайте объект vanilla jQuery, как его переопределить, чтобы использовать определенный элемент в качестве контекста селектора, сохраняя при этом все функции jQuery?
Я надеюсь, что это работает для вас. Когда я попытался использовать jQuery в расширении и загрузил его в наложение XUL, он каким-то образом сломал наложения других плагинов, таких как панель инструментов Webdeveloper. Возможно, теперь он работает лучше. Просто следите за этим! –