@sunsean does not work as expected when it comes to handling multiple loads द्वारा वर्तमान शीर्ष-उत्तर को चालू करता है। फ़ंक्शन को दस्तावेज़ पर ठीक से बंद करना चाहिए और वैश्विक स्थिति से बचना चाहिए।
इसके अलावा, आपको अन्य एड-ऑन के साथ संघर्ष से बचने के लिए jQuery.noConflict(true)
पर कॉल करना होगा!
यह वह है जिसे मैं इसे लिखूंगा (फिर से, मैं प्लेग की तरह jquery (ऐड-ऑन में) से बचूंगा ...)। पहले ओवरले XUL
<?xml version="1.0"?>
<overlay id="test-addon-overlay" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<script type="text/javascript" src="jquery.js"/>
<script type="text/javascript" src="overlay.js"/>
</overlay>
और फिर ओवरले स्क्रिप्ट:
// Use strict mode in particular to avoid implicitly var declarations
(function() {
"use strict";
// Main runner function for each content window.
// Similar to SDK page-mod, but without the security boundaries.
function run(window, document) {
// jquery setup. per https://stackoverflow.com/a/496970/484441
$ = function(selector,context) {
return new jq.fn.init(selector,context || document);
};
$.fn = $.prototype = jq.fn;
if (document.getElementById("my-example-addon-container")) {
return;
}
let main = $('<div id="my-example-addon-container">');
main.appendTo(document.body).text('Example Loaded!');
main.click(function() { //<--- added this function
main.text(document.location.href);
});
main.css({
background:'#FFF',color:'#000',position:'absolute',top:0,left:0,padding:8
});
};
const log = Components.utils.reportError.bind(Components.utils);
// Do not conflict with other add-ons using jquery.
const jq = jQuery.noConflict(true);
gBrowser.addEventListener("DOMContentLoaded", function load(evt) {
try {
// Call run with this == window ;)
let doc = evt.target.ownerDocument || evt.target;
if (!doc.location.href.startsWith("http")) {
// Do not even attempt to interact with non-http(s)? sites.
return;
}
run.call(doc.defaultView, doc.defaultView, doc);
}
catch (ex) {
log(ex);
}
}, true);
})();
यहाँ a complete add-on as a gist है। बस jquery की एक प्रति में ड्रॉप करें और यह जाने के लिए अच्छा होना चाहिए। http://meherranjan.com/blog:
क्रमांक इस पर एक इनाम की पेशकश, दिलचस्प – DFectuoso
विस्तार से अन्य विस्तार और टूलबार बटन आदि, यहाँ की तरह अन्य XUL घटकों के साथ कोई संघर्षों के साथ सुरक्षित रूप से Firefox विस्तार के अंदर jQuery का उपयोग कर के बारे में पढ़ें/ए-गाइड-टू-यूज-जेक्वायरी-इन-फ़ायरफ़ॉक्स-एक्सटेंशन/ –