![](/img/trans.png)
[英]window.onbeforeunload function is working only on page refresh but not click on anchors after IE9 to IE11 migration
[英]Why does IE11 throw an error when using window.onbeforeunload?
我把我的問題解決了以下簡單的代碼:
<!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中,當您選擇“留在此頁面上”時會拋出以下錯誤:
File: 10.0.1.126:8080, Line: 10, Column: 11
知道為什么嗎?
實際上錯誤來自:
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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.