chrome.tabs.executeScript() के साथ इंजेक्ट की गई सामग्री स्क्रिप्ट में पैरामीटर पास करना
chrome.tabs.executeScript का उपयोग करके सामग्री स्क्रिप्ट फ़ाइल इंजेक्ट करते समय ({फ़ाइल: "content.js"}), एक सामान्य प्रश्न उठता है: सामग्री स्क्रिप्ट फ़ाइल के भीतर जावास्क्रिप्ट में पैरामीटर कैसे पास करें?
पैरामीटर पासिंग फ़ॉलेसी
यह स्पष्ट करना महत्वपूर्ण है कि आप सीधे किसी फ़ाइल में पैरामीटर पास नहीं कर सकते। इसके बजाय, इस कार्यक्षमता को प्राप्त करने के लिए आपके पास दो विकल्प हैं:
1. फ़ाइल निष्पादन से पहले पैरामीटर सेट करना
नेस्ट chrome.tabs.executeScript फ़ाइल को इंजेक्ट करने से पहले वेरिएबल्स को परिभाषित करने के लिए कॉल करता है:
chrome.tabs.executeScript(tab.id, {
code: 'var config = 1;'
}, function() {
chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});
जटिल चरों के लिए, किसी ऑब्जेक्ट को स्ट्रिंग में बदलने के लिए JSON.stringify का उपयोग करने पर विचार करें:
var config = {somebigobject: 'complicated value'};
chrome.tabs.executeScript(tab.id, {
code: 'var config = ' JSON.stringify(config)
}, function() {
chrome.tabs.executeScript(tab.id, {file: 'content.js'});
});
content.js में, आप इन वेरिएबल्स तक पहुंच सकते हैं:
// content.js
alert('Example:' config);
2. फ़ाइल निष्पादन के बाद पैरामीटर सेट करना
पहले फ़ाइल निष्पादित करें, फिर पैरामीटर भेजने के लिए संदेश पासिंग एपीआई का उपयोग करें:
chrome.tabs.executeScript(tab.id, {file: 'content.js'}, function() {
chrome.tabs.sendMessage(tab.id, 'whatever value; String, object, whatever');
});
content.js में, chrome.runtime.onMessage का उपयोग करके इन संदेशों को सुनें और संदेश को संभालें:
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
// Handle message.
// In this example, message === 'whatever value; String, object, whatever'
});
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3