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

标签 javascript load window opera

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/

相关文章:

c# - 窗口最大化时获取非最大化窗口位置/大小

python - 使用 GTK 窗口并等待响应

php - 最佳实践 : Legitimate Cross-Site Scripting

javascript - AngularJS SVG 路径指令

jQuery 加载不更新 Internet Explorer 中的文档

php - 你能加载一个带有 JS 超时的 PHP 包含文件吗?

winapi - 在 C++ Windows API 运行时调整窗口大小?

javascript - 刷新后保持下拉选择

javascript - 如何画 donut ?

image - 纹理管理器发生了什么?