我让父母打开一个新窗口,并尝试检测子窗口何时加载。在Chrome中,我尝试过
open('http://www.google.com').onload = function() { alert(location.href); };
但这似乎不起作用。
为什么上述方法不起作用?还有其他选择吗?
答案 0 :(得分:0)
该方法应该可以工作(并且适用于我),但不能在打开包含来自不同域的文档的窗口时使用。
出于安全原因,新窗口不会将load-event分派给来自其他域的文档。
答案 1 :(得分:0)
如果您想确定页面已加载,可以使用消息传递。
如果您能够使用HTML5,则会有一项名为web-messaging的新功能。 这在跨域源上非常有效。
如果HTML5不是一个选项,请改用JS。我使用了一个名为windowmsg的简单jQuery插件。它对我来说非常有效。我真的不确定这是在跨站点环境中工作,但我认为应该。
请注意这些解决方案提供的安全问题。
答案 2 :(得分:-1)
从技术上讲,子窗口和父窗口是浏览器的两个不同实例。我们将它们称为子窗口和父窗口。他们无法相互访问。因此,在第二个窗口中单击HTML元素时,无法在一个窗口中执行任何操作。
因此,如果您需要访问权限,我建议您不要打开新窗口。您可以使用实际上属于同一窗口的fancybox或lightbox,并且您可以控制它。