ब्राउज़िंग कॉन्टेक्स्ट के बीच दो-तरफ़ा संचार को चैनल मैसेजिंग कहा जाता है। यह कई ओरिजिन्स के बीच संचार के लिए उपयोगी है।
messageChannel बनाते समय, यह आंतरिक रूप से डेटा भेजने के लिए दो पोर्ट बनाता है और दूसरे ब्राउज़िंग कॉन्टेक्स्ट को फ़ॉरवर्ड करता है।
- postMessage() – चैनल के माध्यम से संदेश पोस्ट करता है
- start() – डेटा भेजता है
- close() – पोर्ट्स को बंद करता है
इस परिदृश्य में, हम एक iframe से दूसरे iframe में डेटा भेज रहे हैं। यहां हम फ़ंक्शन में डेटा आमंत्रित कर रहे हैं और DOM को डेटा पास कर रहे हैं।
var loadHandler = function(){
var mc, portMessageHandler;
mc = new MessageChannel();
window.parent.postMessage('documentAHasLoaded','https://foo.example',[mc.port2]);
portMessageHandler = function(portMsgEvent){
alert( portMsgEvent.data );
}
mc.port1.addEventListener('message', portMessageHandler, false);
mc.port1.start();
}
window.addEventListener('DOMContentLoaded', loadHandler, false);