在iframe中加载网站在IE中有错误

时间:2013-02-19 09:09:23

标签: javascript internet-explorer iframe popup

我有一个我想加载在弹出窗口内的iframe的网址。父窗口有一个脚本,可以将脚本插入弹出窗口,以便弹出窗口在弹出窗口关闭时刷新父窗口。

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()加载网址,页面加载。我希望我可以使用showModalDialog(),但是当弹出页面上的保存按钮被点击时,另一个弹出窗口会打开,所以我猜这是不可能的。

非常感谢帮助。

谢谢:)

1 个答案:

答案 0 :(得分:0)

好吧,如果您只想在弹出窗口关闭时检查,那么您可以启动外部计时器来检查:

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

这样你就不会依赖弹出窗口内的花哨脚本了。