2
var openedWindow = window.open("test.html", "title");

openedWindow.addEventListener("load", function() {
    console.log("received load event");
}, false);

我想从打开的窗口中获取加载事件。上面的代码有效,但在 Opera 11.62 中没有调用回调函数(适用于其他浏览器)。

编辑:当我在 0ms 超时后注册事件时它可以工作:

var openedWindow = window.open("test.html", "title");

window.setTimeout(function() {
    openedWindow.addEventListener("load", function() {
        console.log("received load event");
    }, false);
}, 0);
4

1 回答 1

0

这似乎是 Opera 中的一个已知错误 - 我将内部错误报告 (CORE-46278) 向前推进了一点。

我能想到的唯一解决方法是从弹出内容中添加回调 - 类型 opener.popupLoaded()。然而,这也可能提供性能优势 - 当它的脚本环境准备好并且您要与之交谈的脚本正在运行时,您可以开始与弹出窗口交互,而不是等待加载事件。

于 2012-05-11T10:03:58.157 回答