【发布时间】:2014-11-26 14:25:22
【问题描述】:
由于我们某些页面的工作方式,JS 可以随时注入页面,有时这个 JS 会关闭当前窗口。问题是我需要在窗口的 onunload 上附加一个事件侦听器,以便可以将一个值从窗口返回到父页面。但是因为窗口关闭脚本可能在任何时候被注入,由于它的工作方式,我无法将此事件绑定到 onload,所以我希望使用 DOMContentLoaded,因为该事件将在注入脚本之前触发。
但是在我的测试中,我无法在正在创建新窗口的父页面上绑定任何东西来绑定到 DOMContentLoaded。
这是我目前正在使用的:Plunker
我们现在只需要它在 Chrome 中工作。
我们目前的做法是这样的(伪代码):
onButtonClick = function(){
win = window.open(...);
win.onload = function(){
win.onunload = function(){
//Bind some function that will get the window's "return value" and pass it to the parent page
//This will never happen if the window closes itself before the page is done loading
};
};
};
我可以使用 DOMContentLoaded 来完成我想要的吗?如果是这样,我如何正确地将其附加到窗口?
注意:“onunload”事件一旦创建就不能直接绑定到窗口。它似乎触发了两次“onunload”事件(一次在窗口打开时,一次在关闭时)。如果您在我的示例中使用“bindOnCreate”函数,您会看到这种情况。
【问题讨论】:
标签: javascript html javascript-events