Opera:无法从 window.open() 获取加载事件

2023-12-15

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()。然而,这也可能提供性能优势 - 当弹出窗口的脚本环境准备就绪并且您要与之对话的脚本正在运行时,您可以开始与弹出窗口交互,而不是等待加载事件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Opera:无法从 window.open() 获取加载事件 的相关文章

随机推荐