मैं फ़ायरफ़ॉक्स एक्सटेंशन के अंदर jQuery का उपयोग करने की कोशिश कर रहा हूं, और वास्तव में एक्सयूएल फ़ाइल के संदर्भ के विपरीत वर्तमान पृष्ठ के डीओएम में हेरफेर करने के लिए jQuery का उपयोग करना चाहता हूं। इस प्रकार, मैं अपनी एक्सयूएल फ़ाइल में jQuery लोड करता हूं, और इसे अपनी कुछ स्क्रिप्ट्स को एक सैंडबॉक्स में पास करता हूं (Greasemonkey एक्सटेंशन कंपाइलर http://arantius.com/misc/greasemonkey/script-compiler का उपयोग करके)। चूंकि jQuery को डीओएम पृष्ठ से लोड नहीं किया गया था, इसलिए मैं इसे अपने चयनकर्ता संदर्भ को पृष्ठ डीओएम पर हमेशा 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 प्रोटोटाइप सभी गुणों की वारिस दूँगी से इस लाइन में सोचा है, लेकिन यह जाहिरा तौर पर नहीं करता है।
एक वेनिला jQuery ऑब्जेक्ट दें, मैं सभी jQuery कार्यों को संरक्षित करते समय चयनकर्ता संदर्भ के रूप में किसी निश्चित तत्व का उपयोग करने के लिए इसे फिर से परिभाषित कैसे करूं?
मुझे आशा है कि यह आप के लिए काम करता है। जब मैंने एक एक्सटेंशन में jQuery का उपयोग करने की कोशिश की और इसे एक्सयूएल ओवरले में लोड किया, तो उसने किसी भी तरह से वेब डिवाइडर टूलबार जैसे अन्य प्लगइन के ओवरले तोड़ दिए। शायद यह अब बेहतर काम करता है। बस इसके लिए बाहर देखो! –