簡體   English   中英

防止在休假時彈出“確認導航”對話框

[英]Prevent the “Confirm Navigation” dialog box from popping up on page leave

這個問題似乎已經被問了很多,但從未解決。

我想防止在離開頁面時出現此對話框(附加圖像)。 每當我更改此頁面上的表單中的任何內容時,都會發生警報,​​但是表單是異步保存的,因此可以這么說,實際上沒有任何更改是“骯臟的”。

確認導航對話框

我已經嘗試了一些在stackoverflow和其他站點上發現的東西,例如:

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);

我為此創建了一個可行的解決方案。

如前所述,我的表單是異步保存的,因此“您可能會丟失更改”警報並不總是准確的。

現在,任何鏈接單擊都不再顯示對話框。 但是,這不能防止關閉選項卡/瀏覽器。

;(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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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