js判斷頁面是關(guān)閉還是刷新原理,就是通過離開頁面行為時間onunload觸發(fā)時間去檢測此時的瀏覽器的窗口大小,根據(jù)大小由此判斷用戶是刷新,跳轉(zhuǎn)或是關(guān)閉行為。
程序
代碼如下 | |
window.onunload = function(){ |
用瀏覽器右上角的關(guān)閉按鈕時好用,但在選項卡上關(guān)閉和在任務(wù)欄上關(guān)閉,這個方法就不作用了
js標(biāo)簽只有onloadonunloadonbeforeunload事件,而沒有onclose事件。
不管頁面是關(guān)閉還是刷新都會執(zhí)行onunload事件。
如何捕捉到頁面關(guān)閉呢?
頁面加載時只執(zhí)行onload
頁面關(guān)閉時只執(zhí)行onunload
頁面刷新時先執(zhí)行onbeforeunload,然后onunload,最后onload。
這樣我們可以在onbeforeunload中加一個標(biāo)記,在onunload中判斷該標(biāo)記,即可達(dá)到判斷頁面是否真的關(guān)閉了
更完整的兼容ff
代碼如下 | |
<mce:script type="text/javascript"><!-- |
上面的方法沒辦法判斷多選項卡的瀏覽器,如360,ie8這種,下面再看
代碼如下 | |
function CloseOpen(event) { function document.onkeydown() { // 本窗口的所有下屬頁面都必須含有本函數(shù) top.currentKeyCode = event.keyCode; function onbeforeunload(){ <body onunload="CloseOpen(event)" ></body></html> |
上面只有不能使用在任務(wù)欄關(guān)閉了,基本可以滿足我們的要求了。