Sto provando a utilizzare jQuery in un'estensione di Firefox e in realtà voglio utilizzare jQuery per manipolare il DOM della pagina corrente, in contrapposizione al contesto del file XUL. Così, carico jQuery nel mio file XUL e lo passo ad alcuni dei miei script in una sandbox (usando il compilatore di estensione Greasemonkey http://arantius.com/misc/greasemonkey/script-compiler). Poiché jQuery non è stato caricato con il DOM della pagina, voglio impostare il suo contesto di selezione sul DOM della pagina invece di passarlo sempre nelle chiamate jQuery.Ignora il contesto di selettore jQuery predefinito
Ho seguito la soluzione a How to use jQuery in Firefox Extension e quasi raggiunge quello che voglio.
jQuery.noConflict();
$ = function(selector,context){ return new jQuery.fn.init(selector,context||example.doc); };
$.fn = $.prototype = jQuery.fn;
Sono in grado di effettuare chiamate alla funzione jQuery() e il DOM della pagina verrà utilizzato come contesto. Tuttavia, non posso usare funzioni come jQuery.trim come quelle non definite.
ho pensato questa linea dalla soluzione
$.fn = $.prototype = jQuery.fn;
lascerà il mio oggetto jQuery eredita tutte le proprietà prototipo di jQuery, ma a quanto pare non è così.
Fornire un oggetto jQuery vanilla, come ridefinirlo per utilizzare un determinato elemento come contesto di selezione, mantenendo tutte le funzioni jQuery?
Spero che funziona per voi. Quando ho provato a usare jQuery in un'estensione e l'ho caricato in una sovrapposizione XUL, in qualche modo ha rotto gli overlay di altri plugin come la barra degli strumenti di Webdeveloper. Forse funziona meglio ora. Stai attento a questo! –