【发布时间】:2016-12-04 02:26:58
【问题描述】:
我打开一个新的空白标签。现在从这个选项卡我需要在新选项卡中打开一个网站。我这样做如下。我在其控制台中写道:
var wild = window.open("https://css-tricks.com/", "mywin", '');
效果很好。现在我可以使用wild.document 访问这个新窗口。现在我希望在加载其 dom 后在该页面上执行一些代码。我将onload 事件用作:
function foo(){
var mytext = wild.document.body.textContent;
alert( mytext );
}
wild.addEventListener("load", foo);
但不幸的是,警报没有发生。我还尝试将事件侦听器作为explained in this answer 放在匿名自调用函数中,但这也不起作用。我也尝试过 ondomload 事件,但不幸的是那也没有用。所以,
为什么 onload 事件在使用 window.open 打开的选项卡上不起作用?以及如何让它正常工作?
【问题讨论】:
-
很可能是由于same origin policy。如果您正在加载外部网站,则无法在其上运行事件。
-
@Utkanos 如果我使用延迟 5 秒的
setTimeout函数而不是onload函数,那么它可以完美运行。所以我猜这不是因为同源政策。 -
你试过了吗 wild.onload = foo;或 wild.addEventListener("load", foo, true); ?
-
@oliv37 都试过了。但没有一个奏效。
-
我将新窗口 url 从 google.com 更改为其他内容以简化操作。
标签: javascript jquery dom browser dom-events