设置子窗口的onload属性

时间:2012-09-01 18:15:58

标签: javascript google-chrome

我让父母打开一个新窗口,并尝试检测子窗口何时加载。在Chrome中,我尝试过

open('http://www.google.com').onload = function() { alert(location.href); };

但这似乎不起作用。

为什么上述方法不起作用?还有其他选择吗?

3 个答案:

答案 0 :(得分:0)

该方法应该可以工作(并且适用于我),但不能在打开包含来自不同域的文档的窗口时使用。

出于安全原因,新窗口不会将load-event分派给来自其他域的文档。

答案 1 :(得分:0)

如果您想确定页面已加载,可以使用消息传递。

如果您能够使用HTML5,则会有一项名为web-messaging的新功能。 这在跨域源上非常有效。

如果HTML5不是一个选项,请改用JS。我使用了一个名为windowmsg的简单jQuery插件。它对我来说非常有效。我真的不确定这是在跨站点环境中工作,但我认为应该。

请注意这些解决方案提供的安全问题。

答案 2 :(得分:-1)

从技术上讲,子窗口和父窗口是浏览器的两个不同实例。我们将它们称为子窗口和父窗口。他们无法相互访问。因此,在第二个窗口中单击HTML元素时,无法在一个窗口中执行任何操作。

因此,如果您需要访问权限,我建议您不要打开新窗口。您可以使用实际上属于同一窗口的fancybox或lightbox,并且您可以控制它。