2013-02-19 77 views
1

我有一个url,我想加载在弹出窗口内的iframe中。父窗口有一个脚本,用于将脚本插入到弹出窗口中,以便弹出窗口在弹出窗口关闭时刷新父窗口。在iframe中的加载网站在IE中有错误

function popUp(url) { 
    newwindow = window.open('', 'mypopup', ''); 
    var tmp = newwindow.document; 
    tmp.write('<!DOCTYPE html><html><head><title>My Pop-Up</title></head>'); 
    tmp.write('<body><iframe src="' + url + '" scrolling="no" frameborder="0"></iframe>'); 
    tmp.write('<script type="text/javascript">window.onunload = function(){ window.opener.location.reload(); }</script></body></html>'); 
    tmp.close(); 
} 

我选择了通过JavaScript编写HTML,因为我不能编辑正在加载的页面(我需要真正重载父时弹出被关闭)。这适用于Chrome和Firefox,但IE浏览器有错误'SCRIPT5:访问被拒绝。'我不想访问正在加载到iframe中的页面的任何部分,我只是想加载它。

当我在新的IE选项卡中打开页面时,它加载正常。另外,如果我通过showModalDialog()加载url,则会加载页面。我希望我可以使用showModalDialog(),但当弹出页面上单击保存按钮时,另一个弹出窗口打开,所以我想这是不可能的。

帮助将不胜感激。

谢谢:)

回答

0

好吧,如果你想查询只有当弹出是关闭,那么你可以启动外部定时进行检查:

var checkPopup = window.setInterval(function() { 
    if (newwindow.closed) { 
     window.clearInterval(checkPopup); 
     document.location.reload(); 
    } 
}, 100); 

这样,你不”不要依赖弹出窗口内的花哨脚本。

+0

嘿,嘿!之前我可以再次检查这个线程。谢谢! :) – dork 2013-02-20 06:58:41

+0

猜测伟大的思想认为一致:) – 2013-02-20 07:46:11