關閉瀏覽器時 onbeforeunload 不起作用


  最近在項目中,有一個小需求,需要記錄用戶在頁面中的停留時間。設計了一個離開頁面觸發onbeforeunload 事件,來進行提交。但是發現方法在chrome瀏覽器下,時好時壞,不是很靈。

  在網上查了一下,又自己做了一些測試,發現如果進入頁面不進行點擊等操作,直接關閉,會出現不觸發的情況。總結來說就是 onbeforeunload 方法需要用戶和頁面有交互動作才能在關閉頁面時進行觸發,否則不生效。

  

window.onbeforeunload = function (e) {
    console.log('beforeunload');
    // TODO   
    return 1;
};

  最終只能選擇了一個比較妥協的辦法,在進入頁面時給用戶一個彈出框,用戶如果瀏覽則需要手動點擊關閉,這樣進行了交互,就可以觸發方法了

 

  另外,有看到網友說,如果不進行交互也會觸發,但是不會彈出提示。針對這種情況,個人感覺是因為頁面關閉,導致post請求中斷,所以數據並未進行保存處理。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM