20

क्या कोड को पूरी तरह से लिखने के बिना, अन्य ब्राउज़रों के लिए क्रोम एक्सटेंशन पोर्ट करने का कोई तरीका है? मेरे क्रोम एक्सटेंशन "popup.html" खोलने के लिए एक्सटेंशन विंडो में browser_action आदेश का उपयोग करता है ...क्या अन्य ब्राउज़र में क्रोम एक्सटेंशन पोर्ट करने का कोई तरीका है?

अद्यतन: मैं adblockforchrome port.js पाया और यह केवल कुछ हद तक सफारी के लिए पोर्टिंग के लिए उपयोगी पाया ...

उत्तर

4

यह एक्सटेंशन के प्रकार पर निर्भर करता है, लेकिन वास्तव में नहीं। अपने प्रश्न का अधिक स्पष्ट रूप से उत्तर देने के लिए, आपको यह निर्दिष्ट करना होगा कि आपका एक्सटेंशन किस बारे में है: कुछ पृष्ठों को संशोधित करें (जैसे उपयोगकर्ता स्क्रिप्ट/उपयोगकर्ता शैली), ब्राउज़र की सुविधाओं का विस्तार करें, या कुछ और।

कुछ पोर्टेबिलिटी नोट कर रहे हैं, हालांकि, मदद कर सकता है आप इस प्रक्रिया को सरल करने के लिए:

  1. ब्राउज़र विशिष्ट कोड लिखने है। कुछ आधुनिक ब्राउज़रों में आप एचटीएमएल 5 फीचर्स का उपयोग करने में सक्षम हैं, जैसे वेब एसक्यूएल डाटाबेस एपीआई। उदाहरण के लिए, आईई पर ऐसे व्यवहार का अनुकरण करना मुश्किल है।
  2. अपनी जावास्क्रिप्ट मॉड्यूलर रखें; विक्रेता विशिष्ट जावास्क्रिप्ट विधियों का उपयोग न करें, और आपका कोड पोर्टेबल होगा और TraceMonkey या V8 पर भरोसा नहीं करेगा;
  3. सीएसएस और जावास्क्रिप्ट से अलग HTML, अपने कोड को गंदा और जटिल न बनाएं। कैसे बंदरगाह सफारी के लिए एक Chrome एक्सटेंशन परिवर्तित करने के लिए, लेकिन समस्या यह आप में चलाने के लिए जा रहे प्रत्येक ब्राउज़र एक्सटेंशन के लिए अनुमति कार्यक्षमता का एक अलग सेट किया है पर
+2

आप आईई संगतता की परवाह क्यों करेंगे? यह एक्सटेंशन का समर्थन नहीं करता है। – serg

+6

यह करता है, लेकिन बहुत ही बहुत ही असामान्य 'तरीके से। –

4

एप्पल provides some guidance। क्रोम से सफारी के साथ भी, ऐसी चीजें हैं जो आप क्रोम में कर सकते हैं जो आप सफारी में नहीं कर सकते हैं, और वीज़ा बनाम।

4

थोड़ी देर में कूदते हुए।

हमारी कंपनी - स्लाइस फैक्ट्री (यहां पूर्ण प्रकटीकरण!) ब्राउज़र एक्सटेंशन रूपांतरण सेवा प्रदान करता है: http://gallery.extensionfactory.com/labs/conversion/ ज्यादातर मामलों में आपका क्रोम एक्सटेंशन एफएफ और सफारी में निर्बाध रूप से काम करेगा।

सेवा अभी भी बीटा परीक्षण में है, और फ़ायरफ़ॉक्स रूपांतरण सफारी से बेहतर काम कर रहा है। मैं पूरी तरह से खुलासा नहीं कर सकता कि हमारा तकनीकी समाधान क्या है, लेकिन यह एक SO उत्तर है, मैं कुछ विवरण जोड़ सकता हूं: हमने एक पूर्ण जावास्क्रिप्ट एपीआई स्टैक को फिर से विकसित किया है जो सफारी और फ़ायरफ़ॉक्स के लिए क्रोम एक्सटेंशन एपीआई की अधिकांश नकल करता है; फ़ायरफ़ॉक्स में हम JetChrome पर हमारे काम का आधार बनाते हैं। इसके अलावा हमारे पास रैपर हैं जो क्रोम एक्सटेंशन को फिर से पैकेज करते हैं और हमारी लाइब्रेरी को जोड़ते हैं और फिर से लिखते हैं।

इसके अलावा, यह ज्यादातर में कुछ अच्छे विचार, परीक्षण और त्रुटि, और विकास समय की एक बहुत कुछ है।

एक उदाहरण के रूप: सफारी 5.1 सिर्फ एक पॉपअप Chrome की browser_action करने के लिए इसी की शुरुआत की है, लेकिन हम पहले से ही एक वैकल्पिक समाधान है कि पिछले संस्करणों के लिए काम करता है। फ़ायरफ़ॉक्स एचटीएमएल 5 वेबएसक्यूएल का समर्थन नहीं करता है, लेकिन हमारे पास इसके लिए एक एपीआई है। हम वेबएप को एफएफ में लाने और जल्द ही सफारी लाने का एक तरीका भी प्रदान करते हैं। उद्देश्य क्रोम एपीआई को संदर्भ के रूप में रखना है, और इसे अन्य सभी ब्राउज़रों पर नकल करना है।

हमारे समाधान की दिशा में आप को आगे बढ़ाने के बिना, मैं जोड़ सकते हैं उस समय पूरी तरह से दोनों सफारी पर क्रोम एपीआई कवर करने के लिए और Firefox शायद इसके लायक नहीं है - जब तक आप कई एक्सटेंशन में परिवर्तित करने की योजना है। तो केवल एक या दो एक्सटेंशन के लिए मैं आपके कोड को जितना संभव हो मॉड्यूलर बनाने की सलाह दूंगा, और केवल तीन एक्सटेंशन बना रहा हूं - या हमारी सेवा का प्रयास कर रहा हूं!

+0

ओह, और आईई के लिए webslices हैं। हम उन्हें 'सरोगेट' के रूप में हमारे उत्पादों में से किसी एक के लिए उपयोग करते हैं :) – Stefano

+0

बस अपनी सेवा की कोशिश की, लेकिन दुख की बात यह काम नहीं कर सका। (आईडी: hcieonlgpadegedlcpdhndifhaeahajp, bkeiokdfjgnaglohebonlmpimnpinahd) –

+0

@StefanSchmidt unluckily वहाँ हमेशा कुछ सीमाएं हैं! पहला काम नहीं करता है क्योंकि वे पेज बनने से पहले पृष्ठ में किसी तत्व की खोज करते हैं। यह भाग्यशाली है कि यह वास्तव में क्रोम में काम करता है। दूसरा एक फ़ायरफ़ॉक्स में परिवर्तित और अच्छी तरह से काम करता है; यह असमर्थित छवि प्रारूप की वजह से सफारी में परिवर्तित नहीं होता है, मैंने इसे ठीक किया है, लेकिन संभवतः यह सफारी में पॉपअप और पृष्ठों के बीच कुकीज़ को अलग करने के कारण काम नहीं करेगा। यदि आपको और रुचि है, तो कृपया वेबसाइट पेज के नीचे ईमेल के माध्यम से मुझसे संपर्क करें! – Stefano