2011-07-07 86 views
5

我需要檢查瀏覽器是否正在導航到另一個頁面或關閉。 我的想法是;檢測瀏覽器是否導航到另一頁

  1. 創建全局變量var isNavigating = false;
  2. 綁定click事件讓每一個錨,將導航到另一個頁面
  3. 檢查isNavigating真正對人體的unload事件isNavigating = true

還有其他想法嗎?建議?

+1

我想你可能要改寫你的問題說清楚,你想知道他們是否在導航離開或他們是否關閉(即知道哪些正在發生,而不是隻知道無論是正在發生的事情)。正如它剛纔所寫,關於你是否想要分辨它們之間的差異還是不明確的。 – ADW

+0

是的你說得對。 –

+0

如果用戶在地址欄中鍵入新網站並按回車鍵是導航,則無法區分該用戶和關閉該選項卡的用戶。 –

回答

0

只需綁定到窗口的onunload事件。

+0

我已經做了。我需要知道頁面導航或關閉。 –

7

您可以通過以下腳本完成此操作。

<script type="text/javascript"> 
    window.onbeforeunload = function(){ return;} 
</script> 

但是,如果您打算取消導航,請不要打擾。據我所知,這是不可能的。


下面的代碼檢查用戶是否點擊了鏈接。

var checkAnchorClick = false; 

$(document).ready(function() { 
    $("a").live("click", function() { 
     checkAnchorClick = true; 
    }); 
}); 

$(window).unload(function() { 
    if (checkAnchorClick) 
     alert("User clicked a link..."); 
    else 
     alert("Something else..."); 
}); 
+1

實際上,你可以「種」取消它,但用戶必須確認:http://jsfiddle.net/thomas4g/AA3qY/3/ –

+0

@ÜmitAkkaya http://jsfiddle.net/thomas4g/AA3qY/3 /顯示onbeforeunload在單擊鏈接,關閉選項卡,關閉瀏覽器或其他方式時工作。 –