簡體   English   中英

為什么IE11在使用window.onbeforeunload時會拋出錯誤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM