Я пытаюсь использовать jQuery внутри расширения Firefox и на самом деле хочу использовать jQuery для управления DOM текущей страницы, в отличие от контекста XUL файла. Таким образом, я загружаю jQuery в свой XUL файл и передаю его некоторым моим скриптам в песочнице (используя компилятор расширения Greasemonkey http://arantius.com/misc/greasemonkey/script-compiler). Поскольку jQuery не был загружен страницей DOM, я хочу установить его контекст селектора на страницу DOM вместо того, чтобы всегда передавать ее в вызовы jQuery.
Я выполнил решение как использовать jQuery в расширении Firefox, и он почти достигает того, что я хочу.
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?