使用 window.onbeforeunload 防止短時間內重複刷新,但瀏覽器彈出確認對話框顯示 false 字樣,體驗差。
處理函數返回 false (布爾值) 會被瀏覽器轉為字符串 "false" 顯示在確認框中。
返回**空字符串**或**不返回值** (undefined):
window.onbeforeunload = function() {
var now = Date.now();
if (now - lastLoad < 2000) {
return ' '; // 空格或空字符串,瀏覽器不顯示自定義文本,僅展示默認提示
// return ''; // 同效果
}
lastLoad = now;
};
history.pushState 或服務端 Token 機制,前端無法完全攔截用戶關閉/刷新行為。