2012-07-26 27 views
6

मैंने हाल ही में Greasemonkey में एक स्क्रिप्ट पर काम किया है और इसे फ़ायरफ़ॉक्स के लिए ऐड-ऑन के रूप में प्रकाशित करना चाहता हूं। ऐसा करने का सबसे आसान तरीका क्या है?मैं एक Greasemonkey स्क्रिप्ट को फ़ायरफ़ॉक्स ऐड-ऑन के रूप में कैसे प्रकाशित करूं?

उत्तर

4

बस userscripts.org OpenUserJS.org (या अन्य userscripts.org प्रतिस्थापन में से एक) पर अपनी स्क्रिप्ट पोस्ट।
इसे ऐड-ऑन के रूप में पुन: पैकेज करने का प्रयास करना आमतौर पर इसके लायक होने की तुलना में अधिक परेशानी होती है।


तुम सच में, तुम में अपनी स्क्रिप्ट चालू करने के लिए the Greasemonkey script compiler उपयोग कर सकते हैं चाहिए, तो एक "ऐड-ऑन", और फिर submit that add-on to Mozilla, via the normal add-on process

ध्यान दें कि Wladimir का उत्तर Greasemonkey स्क्रिप्ट कंपाइलर से बेहतर है।



Userscripts.org is now long dead

10

जबकि आप ग्रीसमोन्की स्क्रिप्ट को "संकलित" कर सकते हैं (ब्रॉक का जवाब देखें), यह समाधान बिल्कुल अच्छी तरह से समर्थित नहीं है। अधिक विश्वसनीय विकल्प Add-on SDK और JPM का उपयोग करेगा। आपका lib/main.js फ़ाइल वास्तव में आसान हो सकता है (page-mod module documentation):

var data = require("sdk/self").data; 
var pageMod = require("sdk/page-mod"); 
pageMod.PageMod({ 
    include: "*.example.com", 
    contentScriptWhen: 'end', 
    contentScriptFile: data.url("contentScript.js") 
}); 

यह निम्न GreaseMonkey स्क्रिप्ट हेडर के बराबर है:

// @include http://example.com/* 
// @include http://*.example.com/* 

और फिर आप data/contentScript.js (के रूप में अपने GreaseMonkey स्क्रिप्ट जोड़ने एड-ऑन एसडीके होगा GreaseMonkey शीर्षलेख को अनदेखा करें, जानकारी कहीं और निर्दिष्ट है) और एक्सटेंशन का निर्माण करें। ज्यादातर मामलों में यह केवल काम करेगा - जब तक कि आपकी GreaseMonkey स्क्रिप्ट किसी भी विशेष GreaseMonkey API का उपयोग नहीं करती है, इस स्थिति में आपको एक प्रतिस्थापन खोजने की आवश्यकता होगी। unsafeWindow is supported रास्ते से (सामान्य चेतावनियां लागू होती हैं)।

+0

"सही ढंग से समर्थित नहीं" से आपका क्या मतलब है? "नहीं/शायद ही इंस्टॉल करें" या "ब्लोटेड कोड" के अर्थ में? –

+1

@RobW: मेरा मतलब है: "प्राचीन समाधान जिसे किसी ने साल पहले एक साथ हैक किया था और वास्तव में अपडेट नहीं किया था"। यह कई तरीकों से उपोष्णकटिबंधीय है, जैसे कि एक्सटेंशन स्थापना के लिए ब्राउज़र पुनरारंभ करना आवश्यक है, लेकिन कोई भी इसे ठीक करने वाला नहीं है। –

+1

मैंने इसे संपादित करने का प्रयास किया, लेकिन उन्होंने इसे स्वीकार नहीं किया। लेकिन यह सटीक लिपि अब और काम नहीं करती है। मुझे मोज़िला दस्तावेज के आधार पर इसे संशोधित करना पड़ा। 'var pageMod = आवश्यकता है (" sdk/page-mod "); var self = आवश्यकता ("sdk/self"); pageMod.PageMod ({ में शामिल हैं: "*", contentScriptWhen: 'तैयार', contentScriptFile: [self.data.url ("contentScript.js")] }); ' – trlkly