मैंने इसी समस्या में भाग लिया है। आपको लगता है कि एक स्पष्ट समाधान होगा। फ़ायरफ़ॉक्स के लिए मैं क्या कर रहा हूं (क्रोम के साथ काम नहीं किया है):
मेरे पास एक फ़ाइल lib/dbg.js है जिसमें मेरा मूल डीबग फ़ंक्शन शामिल है जिसे मैं हर जगह उपयोग करना चाहता हूं।
मेरी main.js में
प्रत्येक सामग्री स्क्रिप्ट मॉड्यूल में, मैं इस है:
contextMenu.Item({
...
contentScript: export_internals(require('dbg')),
contentScriptFile: my-actual-scripts.js
...
और फिर मुख्य में मैं एक समारोह है
function export_internals(module) {
var code = '';
for (name in module) {
var val = module[name];
if (val.constructor === String)
code += name + ' = "' + val + '";';
else
code += val;
}
return code;
}
जो
मूल रूप से सिर्फ निर्यात गुण के माध्यम से चक्र (चर, फ़ंक्शंस इत्यादि) और मूल रूप से dbg मॉड्यूल के एक स्ट्रिंग संस्करण बनाने के लिए Function.toString() जैसी चीजों का उपयोग करता है और इसे एक इनलाइन सामग्री स्क्रिप्ट के रूप में पास करता है। यह समारोह शायद बेहद सामान्य नहीं है के रूप में मैं सिर्फ सरल कार्य करता है और तार (केवल दो डेटा प्रकार मैं आवश्यक) को संभालने के लिए लिखा था लेकिन सिद्धांत आसानी से भले ही आप अभी
contentScript: require('dbg').my_function.toString()
की तरह कुछ करने के लिए थे लागू किया जाना चाहिए
यह स्पष्ट रूप से एक हैक का थोड़ा सा है लेकिन अब तक एक बहुत विश्वसनीय है। क्या आप इसी की तलाश में हैं?
स्रोत
2011-07-25 18:04:38
लगता है यह है। https://builder.addons.mozilla.org/addon/1047822/latest/ – Lori
कि लिंक अब टूट गया लगता है ... – bgmCoder
शायद https://addons.mozilla.org/en-US/developers/docs/sdk/latest /dev-guide/tutorials/reusable-modules.html एक समकक्ष दस्तावेज़ है। शायद यह नहीं है। – Lori