亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何阻止頁面在JS中卸載(導航)?

如何阻止頁面在JS中卸載(導航)?

慕無忌1623718 2019-10-17 12:47:52
有人知道如何阻止頁面重新加載或導航嗎?jQuery(函數($){    / *全局卸載通知* /    警告=真;    如果(警告){        $(window).bind(“ unload”,function(){             如果(confirm(“是否要離開此頁面”)== true){                //他們按了確定                警報('確定');            }其他{                //他們按下了取消                警報('取消');                返回false;            }        });    }});目前,我正在一家電子商務網站上工作,顯示您將來的訂單的頁面可以更改使用+/-按鈕訂購的項目的數量。以這種方式更改數量實際上并不會更改訂單本身,他們必須按下確認鍵,因此會采取積極行動更改訂單。但是,如果他們更改了數量并離開了頁面,我想警告他們,以防萬一,這是偶然的,因為如果更改數量或離開頁面或刷新頁面,更改的數量將會丟失。在上面的代碼中,我使用的是全局變量,默認情況下將為false(僅用于測試),更改數量時,我會將其更新為true,當他們確認更改時,會將其設置為false 。如果警告是正確的并且該頁面已被卸載,那么我會向他們提供一個確認框,如果他們說不,他們希望停留在該頁面上,則需要停止該頁面的卸載。return false不起作用,它仍然允許用戶導航(警報僅在調試時使用)有任何想法嗎?
查看完整描述

3 回答

?
Cats萌萌

TA貢獻1805條經驗 獲得超9個贊

onbeforeunload是你想要的那個 您的函數“應將字符串值分配給Event對象的returnValue屬性并返回相同的字符串”。查看Microsoft和Mozilla的文檔以了解詳細信息。


瀏覽器將使用您返回的字符串為用戶提供一個自定義確認框,從而允許他們拒絕選擇停留在那的用戶。必須采取這種方式來防止惡意腳本引起“瀏覽器拒絕”攻擊。


查看完整回答
反對 回復 2019-10-17
?
侃侃無極

TA貢獻2051條經驗 獲得超10個贊

此代碼按照Natalie的建議發出警告,但如果提交了頁面上的表單,則會禁用警告。使用JQuery。


var warning = true;

window.onbeforeunload = function() { 

  if (warning) {

    return "You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes";

  }

}


$('form').submit(function() {

   window.onbeforeunload = null;

});


查看完整回答
反對 回復 2019-10-17
?
catspeake

TA貢獻1111條經驗 獲得超0個贊

window.onbeforeunload = function() { 

  if (warning) {

    return 'You have made changes on this page that you have not yet confirmed. 

    If you navigate away from this page you will loose your unsaved changes';

  }

}

Chrome,Safari和Opera不支持


查看完整回答
反對 回復 2019-10-17
  • 3 回答
  • 0 關注
  • 674 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號