我已将问题分解为以下简单代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>IE test</title>
<script src="https://code.jquery.com/jquery-1.11.3.js"></script>
<script type="text/javascript" charset="utf-8">
$( document ).ready(function() {
$('.js-click').click(function(e){
window.location.href = 'http://www.google.com/';
});
window.onbeforeunload = function(e){
return 'moving on';
};
});
</script>
</head>
<body>
<a href="#" class="js-click">Google</a>
</body>
</html>
这在Chrome中的预期效果没有警告或错误,但在IE11中,当您选择&#34;留在此页面时会引发以下错误&#34;:
File: 10.0.1.126:8080, Line: 10, Column: 11
知道为什么吗?
答案 0 :(得分:6)
实际上错误来自:
window.location.href = 'http://www.google.com/';
这只是猜测,但我相信IE的开发者希望能够在用户决定不关注链接时捕获。因此,您实际上可以尝试捕获此块,并且您将知道用户何时未被重定向(作为onbeforeupload的结果)。
try {
window.location.href = 'http://www.google.com';
} catch (error) {
alert("Y U NO REDIRECT");
}
如果您console.log(error)
,您会看到没有错误消息,错误编号为-2147467259。