var openedWindow = window.open("test.html", "title");
openedWindow.addEventListener("load", function() {
console.log("received load event");
}, false);
我想从打开的窗口中获取加载事件。上面的代码有效,但回调函数在 Opera 11.62 中没有被调用(在其他浏览器上有效)。
编辑:当我在 0 毫秒超时后注册事件时有效:
var openedWindow = window.open("test.html", "title");
window.setTimeout(function() {
openedWindow.addEventListener("load", function() {
console.log("received load event");
}, false);
}, 0);
最佳答案
这似乎是 Opera 中的一个已知错误 - 我已经将内部错误报告 (CORE-46278) 向前推了一点。
我能想到的唯一解决方法是从弹出内容中添加回调 - 输入 opener.popupLoaded()。然而,这也可能提供性能优势 - 当脚本环境准备就绪并且您要与之交谈的脚本正在运行时,您可以开始与弹出窗口交互,而不是等待加载事件。
关于javascript - Opera:无法从 window.open() 获取加载事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10499709/