Jquery:如何检查新打开的窗口是否已满载? / window加载外部页面(如www.yahoo.com)

以下不起作用,为什么?

var myWindow=null; myWindow = window.open(targetUrlVar,"_blank","resizable=yes"); $(myWindow).load(function(){ alert('hello'); }); 

虽然MyWindow是一个Window引用,但不会检查它是否已完全加载。 我认为$(window).load(...)可以在这里用“窗口”替换为“MyWindow”。

以下作品:

 $(myWindow).load(function(){ alert('hello'); }); 

对于targetUrlVar是一个内部资源(就像属于我的域的页面)它可以工作..但是一旦我想使用.load()myWindow.onload()targetUrlVar是一个外部页面(如www。 yahoo.com或www.google.com),它不再起作用……没有显示警报..

我需要你的帮助……谢谢大家

如果要在子窗口打开时触发警报,而不管子窗口的DOM的状态如何,那么这应该有效。 我还提供了一种测试这种假设的方法。

使用以下内容创建测试PHP脚本(或类似的脚本语言):

  test   Done sleeping...   

然后使用以下javascript将此测试页面调用为您的子窗口:

 win = window.open('test.php', 'test', 'width=300, height=400, x=800'); win.focus(); $(win.document).ready(function() { alert('Window is open'); }); 

您会注意到,在您看到子窗口中出现“Done sleeping …”之前,父窗口中的alert()会触发。

 $(document).ready(function() { //perform tasks, DOM is loaded }); 

希望这可以帮助。

我看到这个问题有些陈旧。

然而,亚瑟说,

对于targetUrlVar是一个内部资源(就像属于我的域的页面)它可以工作..但是一旦我想使用.load()或myWindow.onload(),targetUrlVar是一个外部页面(如www。 yahoo.com或www.google.com),它不再起作用……没有显示警报..

我认为问题可能是由于targetUrlVar是外部的; 可能会阻止警报以防止跨站点脚本(也称为XSS)。