首頁 > web前端 > js教程 > javascript判斷網頁是關閉還是刷新_javascript技巧

javascript判斷網頁是關閉還是刷新_javascript技巧

PHP中文网
發布: 2016-05-16 15:39:38
原創
2000 人瀏覽過

原理是透過離開頁面行為時間onunload觸發時間去偵測此時的瀏覽器的視窗大小,根據大小由此判斷使用者是刷新,跳轉或是關閉行為程式

 程式碼如下 

window.onunload = function(){    
    var a_n = window.event.screenX - window.screenLeft;    
    var a_b = a_n > document.documentElement.scrollWidth-20;    
    if(a_b && window.event.clientY< 0 || window.event.altKey){    
         alert(&#39;关闭页面行为&#39;); 
    }else{ 
         alert(&#39;跳转或者刷新页面行为&#39;);   
      } 
}
登入後複製

用瀏覽器右上角的關閉按鈕時好用,但在選項卡上關閉和在任務欄上關閉,這個方法就不作用了

js標籤只有onloadonunloadonbeforeunload事件,而沒有onclose事件。

不管頁面是關閉還是刷新都會執行onunload事件。

如何捕捉到頁面關閉呢?
頁面載入時只執行onload
頁面關閉時只執行onunload
頁面刷新時先執行onbeforeunload,然後onunload,最後onload。

這樣我們可以在onbeforeunload中加一個標記,在onunload中判斷該標記,即可達到判斷頁面是否真的關閉了
更完整的兼容ff

 代碼如下 

 document.documentElement.scrollWidth-20;
        if(b && evt.clientY
登入後複製

上面的方法沒辦法判斷多選項卡的瀏覽器,如360,ie8這種,下面再看

 代碼如下 

function CloseOpen(event) { 
     if(event.clientX<=0 || event.clientY0)&&(event.clientX < document.body.clientWidth)) 
        {
         s0 += "刷新窗口!";
        }
        else 
        {
        //获取当前时间
          var date=new Date();
          //将date设置为过去的时间
          alert("关闭网页");
          date.setTime(date.getTime()-10000);
          //将userId这个cookie删除
          document.cookie="zhuangtao;expire="+date.toUTCString();
          document.cookie="quanxianzifucuan;expire="+date.toUTCString();
          document.cookie="quanxian;expire="+date.toUTCString();
         s0 += "关闭窗口!"; sw = 1;
        }
      }
    }
    if (sw == 1) 
    {
     event.returnValue = "";
    }
    else 
    {
     currentKeyCode = -1;
    }
  
  }
登入後複製

上面只有不能使用在工作列關閉了,基本上可以滿足我們的要求了。

以上內容就是本文要介紹給大家的javascript判斷網頁是關閉還是刷新,更多相關內容請關注PHP中文網(www.php.cn)!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板