Переопределить контекст селектора jQuery по умолчанию

Я пытаюсь использовать 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, но, очевидно, это не так. t.

Дайте ванильный объект jQuery, как мне переопределить его, чтобы использовать определенный элемент в качестве контекста селектора, с сохранением всех функций jQuery?

17
задан Community 23 May 2017 в 11:53
поделиться