关闭弹出窗口后的警报,Chrome和Firefox都很好,但IE存在问题

时间:2014-08-15 11:07:30

标签: javascript internet-explorer

<script>
var openDialog = function(uri, name, options, closeCallback) {
    var win = window.open(uri, name, options);
    var interval = window.setInterval(function() {
        try {
            if (win == null || win.closed) {
                window.clearInterval(interval);
                closeCallback(win);
            }
        }
        catch (e) {
        }
    }, 1000);

    return win;
};

var test = function() {
    alert(bye);
};

openDialog("//google.com", "popup", "scrollbars=no", test);
</script>

这是在关闭弹出窗口后显示警告的代码。它在Chrome和Firefox中运行良好,但在IE中有问题。在IE中,弹出窗口打开,在关闭之前,警报会出现。我该如何解决?我想在关闭弹出窗口后显示警告。谢谢。

1 个答案:

答案 0 :(得分:0)

您不应该探测对象以查看它们是否每隔x秒存在一次。使用回调函数附加事件,然后您只需实例一次,当您实际需要时,而不是之前的一百万次。

尝试:

var openDialog = function(uri, name, options, closeCallback) {
    var win = window.open(uri, name, options);
    win.addEventListener("onunload", test);

};

var test = function() {
    alert(bye);
};

这应该在窗口关闭时触发警报,享受