使用window.location.href IE8 bug修复onbeforeunload对话框

时间:2011-11-25 03:27:07

标签: javascript jquery internet-explorer cross-browser

对于这个不起眼的标题感到抱歉,希望我能解释一下:

我有一个标准,“你确定要离开”对话框会在用户试图离开页面时弹出:

window.onbeforeunload = function() {
    return 'You have unsaved changes';
}

如果与window.location.href 结合并且用户点击取消,则会在Internet Explorer 8或更早版本中引发“未指定的错误”。其他现代浏览器似乎也没有这样做。

<script type="text/javascript">
    $('input').click(function() {
        window.location.href = 'http://www.google.com'; // error is thrown here
    });
</script>

<input type="button" value="Go to google" />

有什么方法可以继续使用window.location.href并在IE8中解决这个错误?

1 个答案:

答案 0 :(得分:5)

这是一个已知的IE漏洞。我想你可以使用try block捕获该错误。