2012-02-26 47 views
0

有沒有辦法檢測/捕獲正在按下的瀏覽器後退按鈕,並詢問他們是否確定要返回?當按下返回按鈕時檢測/警告

構建應用程序,它會很快轉化爲一個基於Ajax的應用程序,每它應該,如果用戶進入「返回」重置應用需求...

我主要是想這個趕偶然回按下按鈕,因爲我個人覺得如果有人無法按照應用程序開始時給予他們的指示......我並不擔心他們的額外工作。

如果沒有辦法做到這一點,最好的解決方案是在新的窗口/標籤中啓動應用程序,以便它沒有歷史記錄可以返回?

回答

3

可以使用onbeforeunload檢測後退按鈕或意外的頁面導航:

window.addEventListener("beforeunload", function() { 
    var ans = confirm("Are you sure?"); 
    if (ans) { 
      //TODO: add your code here 
    } 
}, false); 

,以取代在瀏覽器歷史記錄當前頁面,您可以使用window.location.replace()

window.location.replace("yourNewURL"); 
0

您還可以設置onbeforeunload功能如下:

window.onbeforeunload = function() { 
     return "Are you sure you wish to leave?"; 
    }; 
+1

嘗試使用事件委派,而不是「on」事件......就好像你想刪除那個事件監聽器,你將能夠這樣做。 – darkyndy 2014-03-05 16:29:39