javascript監控瀏覽器上的關閉和重新整理操作

來源:互聯網
上載者:User

因為在後台執行了一個死迴圈進程,需要在退出當前介面的時候將其kill,所以需要在關閉瀏覽器和重新整理時調用函數執行操作

onunload和onbeforeunload 事件是在使用者退出頁面時(關閉頁面或重新整理頁面)發生,Onbeforeunload是正要去伺服器讀取新的頁面時調用,此時還沒開始讀取;而onunload則已經從伺服器上讀到了需要載入的新的頁面,在即將替換掉當前頁面時調用。Onunload是無 法阻止頁面的更新和關閉的。而 Onbeforeunload 可以做到

且在頁面卸載之前引發onbeforeunload事件,如果選擇“確定離開”將引發onunload事件,若取消,則不做任何操作,故我的操作是:

  window.onbeforeunload = onbeforeunload_handler;
  window.onunload = onunload_handler;
    function onbeforeunload_handler(){
            var warning="您確認是否要退出當前頁面。";
            return warning;
        }

       function onunload_handler(){
           $.get(url , {'c':'interface','a':'start'} , function( data ) {
           });    //傳遞參數並調用PHP中的函數操作,來kill死迴圈進程
       }


附1:如果需要區別重新整理和關閉頁面的操作,可以參考http://blog.csdn.net/laoxiao1987/article/details/9007571


附2:

NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMWindow.alert]
在參照網上尋找的資料,在   function onunload_handler()函數中,添加了代碼alert(warning),結果在firebug中顯示上面的問題,將alert代碼注釋掉後就沒有問題了,尋找了資料,網上的說法有:
1.因為onunload函數是在body已經關閉後才調動的,所以如果使用alert的話(alert父視窗是body)就會報錯或不顯示
2.firfox連續彈出相同的值的框,會報一個“阻止此頁面建立其他對話方塊的提示”
個人覺得第一種解釋更符合我代碼的情況,如果您閱讀了該篇文章,且遇到相同的問題或者您有其他解釋,希望能多多交流,謝謝


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.