这个需求不是要用 AJAX 或 Notification 来完成,是想两个页面之间,进行消息的传递,类似浏览器的消息监听功能。
window.addEventListener('message',function(e){
console.log(e);
},false);
$('A').on('click',function(){
console.log('点击测算');
var otherWindow=window.open(this);
otherWindow.postMessage('hello',location.href);
return false;
})
例子:
我在当前页面(A)打开了一个链接(B),在该链接(B)被打开并执行完毕某个脚本操作后,通知(A),我已完成了操作。
我尝试使用 postMessage 来完成该操作,但是并没有接收到任何内容。
问题1:有无比 postMessage 更好的解决方法能达到需求?
问题2:下面的例子中,有什么错误而导致无效?(已确定浏览器是支持该 API)
补充:该问题是前端页面之间的消息通知,非客户端与服务器之间的消息通知。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
很久以前发现的一个方案,这里有测试代码:
localsync
用socket.io,A页面需要和服务器保持联系,B页面完成操作,通知服务器,服务器推送给A页面
理论上
postMessage已经是最优选择了。如果是同源页面,可以考虑用
window.open()打开 B 页面,这个时候 B 页面可以通过window.opener来访问 A 页面。