Javascript/Jquery如何检测其他窗口中的单击
我有一个父窗口,必须使用open()方法打开另一个。子窗口只包含简单的html文档,表单存储在同一个域空间中。现在的问题是,如何从父窗口检测是否单击了提交按钮?我想用最简单最优雅的方法来解决它Javascript/Jquery如何检测其他窗口中的单击,javascript,jquery,window,Javascript,Jquery,Window,我有一个父窗口,必须使用open()方法打开另一个。子窗口只包含简单的html文档,表单存储在同一个域空间中。现在的问题是,如何从父窗口检测是否单击了提交按钮?我想用最简单最优雅的方法来解决它 谢谢。最优雅的方式是利用window.parent.postMessage功能 在子窗口中 document.onclick = function() { window.parent.postMessage({message: 'clicked'}) } 在父窗口中 function messageRe
谢谢。最优雅的方式是利用
window.parent.postMessage
功能
在子窗口中
document.onclick = function() { window.parent.postMessage({message: 'clicked'}) }
在父窗口中
function messageReceived(e) {
var data = e.data;
// do something here
}
if(window.addEventListener)
window.addEventListener('message', messageReceived);
else
window.attachEvent('onmessage', messageReceived);
子窗口应该有一个引用父窗口的
打开器属性。在子窗口中,您只需执行window.opener.whatever()
。父窗口也可以访问子窗口,只需将调用open
的结果分配给一个变量即可获得该窗口的句柄。当然,所有这些都假设它们在同一个域上。parent
应该是opener
。。。但是为什么要使用postMessage
?每个窗口都有一个句柄,您可以直接设置一些属性或调用函数