उपयोग chrome.extension API।
आप अनुरोध आगे पीछे या और भी बेहतर भेज निरंतर संचार के लिए एक बंदरगाह का उपयोग कर सकते हैं।
उदाहरण मैं पॉपअप और पृष्ठभूमि पेज कि कनेक्ट जब पॉपअप को खोल दिया जाता है जो दो तरह से संचार पैदा करेगा दे।
बस है कि दोनों पृष्ठभूमि पृष्ठ और पॉपअप पेज में शामिल है एक socket.js फ़ाइल बनाएँ। फिर प्रत्येक पर तुम सिर्फ घोषणा कर सकते हैं:
new Socket();
यहाँ socket.js के कार्यान्वयन है:
var Socket = function() {
window.socket = this;
this.port = chrome.extension.connect({name:"popupToBackground"});
chrome.extension.onConnect.addListener(function(port) {
if(port.name == "backgroundToPopup") {}
else if(port.name == "popupToBackground") {
window.socket.port = chrome.extension.connect({name:"backgroundToPopup"});
}
else {
return;
}
port.onMessage.addListener(function(msg) {
try {
window[msg.namespace][msg.literal][msg.method].apply(this, msg.args);
}
catch(error) {
// your failed action goes here.
}
});
});
};
सुनिश्चित करें कि आप सामान्य विधि आपके लिए संदेश श्रोता काम में कॉल करने के बनाओ। मुझे ऊपर दिए गए प्रारूप को पसंद है - यह बहुत मजबूत है। संदेशों को आगे और पीछे भेजने के लिए बस सॉकेट से उन्हें पोस्ट:
socket.post({ namespace: "myNamespace",
literal: "myLiteral",
method: "myMethod",
args: ["argOne", "argTwo"]
});
});
तो अगर इस पॉपअप पेज से मार डाला गया तो पृष्ठभूमि पृष्ठ कहेंगे:
window.myNamespace.myLiteral.myMethod(argOne, argTwo);
मुझे इस के लिए एक बहुत अच्छा है पुन: प्रयोज्य जावास्क्रिप्ट ऑब्जेक्ट। तुम भी विशिष्ट प्रोटोटाइप कार्यों में जोड़ सकते हैं यदि आप चाहते हैं - इस तरह से अपनी भी भेजने के लिए आसान संदेश:
Socket.prototype = {
sendOneTwo: function() {
socket.post({ namespace: "myNamespace",
literal: "myLiteral",
method: "myMethod",
args: ["argOne", "argTwo"]
});
};
अब बस आपको कहना है:
socket.sendOneTwo();
संबंधित: [पृष्ठभूमि संदर्भ में स्क्रिप्ट (पृष्ठभूमि स्क्रिप्ट, ब्राउज़र कार्य, पेज कार्रवाई, विकल्प पृष्ठ, आदि) के बीच संवाद] (//stackoverflow.com/q/41420528) की – Makyen
संभावित डुप्लिकेट [कैसे popup.js और क्रोम एक्सटेंशन में background.js के बीच संवाद के लिए?] (https://stackoverflow.com/questions/13546778/how-to-communicate -between-पॉपअप-js और पृष्ठभूमि js-इन-क्रोम एक्सटेंशन) – JerryGoyal