javascript捕獲頁面窗口關閉事件

window.onbeforeunload = signout; 
function signout(){ if (event.clientY<0){ alert("closed"); } } 

在頁面被卸載的之前會觸發onbeforeunload事件,比如: 頁面刷新 表單提交 窗口關閉 瀏覽器關閉 爲了只捕獲窗口關閉以及瀏覽器關閉,需要使用event.clientY event.clientY表示的是當事件觸發的時候鼠標所在的點相對於當前網頁左上角的相對座標。 那麼爲什麼要用event.clientY<0的條件進行判斷呢?因爲只有鼠標點擊在當前網頁窗口的上方的某個點上的時候, event.clientY才爲負數,而窗口上方的點只有關閉按鈕被點擊的時候纔會觸發onbeforeunload事件。 

不過,這種方法也不是萬能的,某些情況下也會失效,比如: 當前瀏覽器中打開着多個tab頁窗口,一個tab頁對應一個網頁,如果直接點擊屏幕右上角的關閉整個瀏覽器的 按鈕, 此時如果瀏覽器彈出提示窗口,比如提示是否要關閉所有的tab頁,而這個提示窗口一般都在屏幕的中間區域顯 示,這是 點擊確定按鈕,瀏覽器會關閉所有的tab頁,進而會觸發onbeforeunload事件,但此時獲取的event.clientY是個正 數, event.clientY>0。要避免這種情況,只能修改瀏覽器的設置,讓它不彈出提示窗口,直接關閉瀏覽器。
發佈了14 篇原創文章 · 獲贊 17 · 訪問量 34萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章