我正试图弄清楚如何在本地网络中实现2个HTML/JS应用程序的通信。整个目的是,app1可以在不使用Internet的情况下向app2发送JS事件,反之亦然。
两个应用程序都在同一个本地网络上,但不是在同一台主机上运行(例如:app1托管在192.168.0.12上,app2托管在192.68.0.13上)
我听说PostMessage可以做这样的事情,但我看到的所有例子都是在一个主机上处理2个HTML页面。
PostMessage可以做我想做的事吗?请注意,我使用的是AngularJS。
谢谢!!
是的,应该没有问题。通常,您使用iframe并将app2放置在app1中,或者将其作为同级iframe放置在另一个页面上。然后,您可以通过从iframe窗口(app2)向顶部窗口(app1)发送消息
window.top.postMessage('message in a bottle', '*');
然后你可以从app1窗口收听:
window.addEventListener('message',function(event) {
console.log('received response: ',event.data);
});
点击此处阅读更多信息:Mozilla关于postMessage 的页面