2015-04-22 90 views
1

似乎這個問題已被問到相當數量,但從未解決。防止「確認導航」對話框從頁面上彈出

我想阻止此對話框(附加圖片)在離開頁面時出現。每次我在這個頁面上的表單中更改某些內容時,都會發出警報,但表單是異步保存的,所以沒有變化實際上是「髒」的。

Confirm Navigation dialog box

我試過在計算器和其他網站發現一對夫婦的事情,比如下面:

window.onbeforeunload = null; 

window.onbeforeunload = function(e) { 
    e.returnValue = ''; 
    return false; 
} 

window.onbeforeunload = function(e) { 
    history.go(0); 
} 

如何刪除這個有些意見,將不勝感激。

編輯:按照要求,這是我正在嘗試的代碼示例。文件中還有其他代碼,但與它無關。

;(function($) { 
    // doc ready 
    $(function(){ 
     // Remove the alert 
     window.onbeforeunload = null; 
    }); 
})(jQuery); 
+0

你的實際代碼是什麼? –

+0

我有一個關於我的'window.onbeforeunload'賦值的document.ready監聽器。這是關於這個問題的唯一移動部分。如果您覺得有必要,我會將其添加到問題中。 –

回答

0

我爲此創建了一個工作解決方案。

如上所述,我的表單異步保存,所以「您可能會失去更改」警報並不總是準確的。

現在任何鏈接點擊都不再顯示對話框。但是,這不檢查關閉標籤/瀏覽器。

;(function($){ 
    var dontSubmit = false, 
     $form = $('form#my-form'); 

    // Prevent the trigger a false submission on link click 
    window.addEventListener("beforeunload", function (e) { 
     dontSubmit = true; 
     $form.trigger('submit'); 
    }); 

    $form.on('submit', function(event){ 
     if (dontSubmit) { 
      event.preventDefault(); 
      return; 
     } 

     // Continue on as normal 
    }); 
})(jQuery); 
相關問題