狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

【WEB開發】前端如何判斷用戶是否離開了當前頁面?

admin
2025年7月3日 8:5 本文熱度 235

有幾種方法可以檢測用戶是否離開了當前頁面:

1. visibilitychange 事件

document.addEventListener('visibilitychange'function() {  if (document.visibilityState === 'hidden') {    console.log('用戶離開了頁面');  } else {    console.log('用戶回到了頁面');  }});
優點:標準、可靠:W3C 標準,所有現代瀏覽器都支持。

性能友好:專門為此設計,能有效節省 CPU 和電池資源。

邏輯清晰:直接反映頁面的“可見”狀態。

缺點:它無法判斷用戶是否正在關閉頁面。當用戶關閉標簽頁時,visibilitychange 事件可能會觸發(變為 hidden),但我們無法區分這是切換還是關閉。

2pagehide  事件  

 window.addEventListener('pagehide'function() {  console.log('用戶正在離開頁面');  if (e.persisted) {    console.log('頁面正在進入 bfcache');  } else {    console.log('頁面正在被正常卸載');  }  });

pagehide 比 unload 更可靠,特別是在移動設備上。

3unload 事件

window.addEventListener('beforeunload'function(e) {  // 可以在這里顯示確認對話框  e.preventDefault();  e.returnValue = '';  console.log('用戶嘗試離開頁面');});

重大缺陷:

unload 事件非常不可靠。瀏覽器在處理頁面卸載時,并不會等待 unload 事件處理器中的異步操作(如 fetch 或 XMLHttpRequest)完成。這個請求很可能在發送完成之前就被瀏覽器終止了。

4. beforeunload 事件

window.addEventListener('beforeunload'function(e) {  // 可以在這里顯示確認對話框  e.preventDefault();  e.returnValue = '';  console.log('用戶嘗試離開頁面');  e.returnValue ='您有未保存的更改,確定要離開嗎?‘;});

5. 監聽鼠標離開窗口

document.addEventListener('mouseout'function(e) {  if (!e.relatedTarget && e.clientY <= 0) {    console.log('鼠標離開了窗口');  }});

注意事項

  • beforeunload 和 unload 事件在某些移動瀏覽器中可能不可靠

  • 現代瀏覽器限制了這些事件的使用,以防止濫用(如強制用戶留在頁面上)

  • 對于單頁應用(SPA),路由變化不會觸發這些事件,需要使用路由守衛


選擇哪種方法取決于你的具體需求,visibilitychange 通常是推薦的方法,因為它能準確反映頁面是否對用戶可見。


閱讀原文:原文鏈接


該文章在 2025/7/3 14:24:08 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved