首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

JavaScript 防止頁面快速重複刷新:onbeforeunload 返回空字符串屏蔽默認提示

     編輯:程式設計綜合問答

現象

使用 window.onbeforeunload 防止短時間內重複刷新,但瀏覽器彈出確認對話框顯示 false 字樣,體驗差。

原因

處理函數返回 false (布爾值) 會被瀏覽器轉為字符串 "false" 顯示在確認框中。

解決方法

返回**空字符串**或**不返回值** (undefined):

window.onbeforeunload = function() {
    var now = Date.now();
    if (now - lastLoad < 2000) {
        return ' '; // 空格或空字符串,瀏覽器不顯示自定義文本,僅展示默認提示
        // return ''; // 同效果
    }
    lastLoad = now;
};

注意

  • 現代瀏覽器 (Chrome 51+, Firefox 44+) **不再顯示自定義文本**,統一展示瀏覽器默認提示 (如「您輸入的內容可能不會被保存」),返回值僅作為觸發條件。
  • 若需完全禁止刷新,需結合 history.pushState 或服務端 Token 機制,前端無法完全攔截用戶關閉/刷新行為。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved