在IE 11中关闭javascript中的弹出窗口后无法刷新父页面

时间:2015-08-24 13:20:16

标签: javascript c# jquery internet-explorer internet-explorer-11

在aspx页面上,有一个链接作为弹出窗口打开,授权用户登录twitter或facebook。我正在使用tweetsharp和facebook sdk api。

授权用户后,我试图关闭弹出窗口并使用javascript刷新父页面。这是代码:

<script type="text/javascript">
    window.onunload = refreshParent;
    function refreshParent() {
        window.parent.opener.location.reload(true);
    }        
</script>

这在IE 11中无效。您能为此建议一个解决方案吗?提前谢谢。

编辑:

仍无法解决此问题。

我尝试将上述代码用于非IE浏览器,而对于IE浏览器,我尝试使用window.showModalDialog()来打开modaldialog而不是弹出窗口,这样,它会冻结父窗口,直到模态窗口关闭了。然后我试着刷新窗口。这是代码:

function myfunction() {
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

    if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer, return version number
        OpenModalPopUP();
    }
    else                 // If another browser, return 0
    {
        newwindow = window.open('/Login.aspx', window, 'height=500,width=450');
        if (window.focus) { newwindow.focus() }
    }


    return false;
}

function OpenModalPopUP() {
    window.showModalDialog('/Login.aspx');
    window.location.reload(); //this will only reload the page after modal dialog is closed.
}

但是即使这不起作用,当我提交登录表单时,它会在新窗口中打开结果。

1 个答案:

答案 0 :(得分:0)

找出问题所在。它只在IE中发生。

window.opener is null after redirect