Javascript/Jquery如何检测其他窗口中的单击

Javascript/Jquery如何检测其他窗口中的单击,javascript,jquery,window,Javascript,Jquery,Window,我有一个父窗口,必须使用open()方法打开另一个。子窗口只包含简单的html文档,表单存储在同一个域空间中。现在的问题是,如何从父窗口检测是否单击了提交按钮?我想用最简单最优雅的方法来解决它 谢谢。最优雅的方式是利用window.parent.postMessage功能 在子窗口中 document.onclick = function() { window.parent.postMessage({message: 'clicked'}) } 在父窗口中 function messageRe

我有一个父窗口,必须使用open()方法打开另一个。子窗口只包含简单的html文档,表单存储在同一个域空间中。现在的问题是,如何从父窗口检测是否单击了提交按钮?我想用最简单最优雅的方法来解决它


谢谢。

最优雅的方式是利用
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
?每个窗口都有一个句柄,您可以直接设置一些属性或调用函数