जावास्क्रिप्ट में क्रोम एक्सटेंशन इंस्टॉलेशन का पता लगाना
क्रोम एक्सटेंशन बनाने में, यह निर्धारित करना आवश्यक हो सकता है कि एक्सटेंशन किसी के भीतर से इंस्टॉल किया गया है या नहीं बाहरी जावास्क्रिप्ट स्क्रिप्ट। यह एक्सटेंशन की उपस्थिति के आधार पर वेब सामग्री को अनुकूलित करने में सहायता करता है।
क्रोम दस्तावेज़ के अनुसार, वेबसाइट से एक्सटेंशन तक संदेश भेजने के माध्यम से इसे प्राप्त करना संभव है।
कोड कार्यान्वयन
एक्सटेंशन की पृष्ठभूमि.जेएस (या कोई अन्य गैर-सामग्री स्क्रिप्ट) फ़ाइल में, एक संदेश जोड़ें श्रोता:
chrome.runtime.onMessageExternal.addListener( function(request, sender, sendResponse) { if (request) { if (request.message) { if (request.message == "version") { sendResponse({version: 1.0}); } } } return true; } );
इस श्रोता को वेबसाइट से संदेश प्राप्त होंगे।
वेबसाइट की स्क्रिप्ट से, एक्सटेंशन की आईडी पर एक संदेश भेजें:
var hasExtension = false; chrome.runtime.sendMessage(extensionId, { message: "version" }, function (reply) { if (reply) { if (reply.version) { if (reply.version >= requiredVersion) { hasExtension = true; } } } else { hasExtension = false; } } );
एक्सटेंशन स्थापित है या नहीं यह निर्धारित करने के लिए hasExtension वैरिएबल की जांच करें।
मैनिफ़ेस्ट कॉन्फ़िगरेशन
मेनिफ़ेस्ट.json में एक प्रविष्टि जोड़ना याद रखें फ़ाइल, उन डोमेन को निर्दिष्ट करती है जिन्हें एक्सटेंशन पर संदेश भेजने की अनुमति है:
"externally_connectable": { "matches": ["http://mylocalhostextensiontest/*", "http://*:*/*"] },
अतुल्यकालिक प्रकृति और त्रुटि प्रबंधन
ध्यान दें कि संदेश-पासिंग तंत्र अतुल्यकालिक है, इसलिए आपको इसे अपने कोड में संभालने की आवश्यकता हो सकती है।
इसके अलावा, यदि एक्सटेंशन स्थापित या अक्षम नहीं है, तो chrome.runtime.sendMessage एक अपवाद फेंक देगा। ऐसे मामलों में, संदेश भेजने के बाद chrome.runtime.lastError की जांच करें:
if (chrome.runtime.lastError) { // Handle the error here... }
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3