2012-09-01 57 views
1

我有一个父窗口打开一个新窗口,并试图检测子窗口何时加载。在Chrome中,我试过设置子窗口的onload属性

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

但这似乎不起作用。

为什么上述方法不起作用?有替代品吗?

回答

0

如果你想绝对确定一个页面已经加载,你可以使用消息传递。

如果您可以使用HTML5,则会有一个名为web-messaging的新功能。 这对于跨域来源非常有效。

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

请小心这些解决方案提供的安全问题。

-1

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

所以,我建议你不应该打开一个新窗口,如果你需要访问。你可以使用fancybox或lightbox,这是有效的窗口的一部分,你可以控制。

0

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

出于安全原因,新窗口不会将加载事件分派给其他域中的文档。