欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

javascript判斷網(wǎng)頁是關閉還是刷新

 更新時間:2015年09月12日 10:33:31   作者:kbeer  
本篇文章給大家介紹js判斷網(wǎng)頁是關閉還是刷新,實現(xiàn)原理就是通過離開頁面行為時間onunload觸發(fā)時間去檢測此時的瀏覽器的窗口大小,根據(jù)大小由此判斷用戶是刷新,跳轉或是關閉行為程序,需要的朋友可以參考下本文

原理就是通過離開頁面行為時間onunload觸發(fā)時間去檢測此時的瀏覽器的窗口大小,根據(jù)大小由此判斷用戶是刷新,跳轉或是關閉行為程序

 代碼如下 

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('關閉頁面行為'); 
    }else{ 
         alert('跳轉或者刷新頁面行為');   
      } 
}

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

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

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

如何捕捉到頁面關閉呢?
頁面加載時只執(zhí)行onload
頁面關閉時只執(zhí)行onunload
頁面刷新時先執(zhí)行onbeforeunload,然后onunload,最后onload。

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

 代碼如下 

<mce:script type="text/javascript"><!--
    function close(evt) //author: sunlei
    {  
      var isIE=document.all?true:false;
      evt = evt ? evt :(window.event ? window.event : null);
      if(isIE){//IE瀏覽器
        var n = evt.screenX - window.screenLeft;
        var b = n > document.documentElement.scrollWidth-20;
        if(b && evt.clientY<0 || evt.altKey){
          //alert("是關閉而非刷新");
          window.location.href="../include/logout.php";
        }
        else{
          //alert("是刷新而非關閉");
          return false;
        }
      }
      else{//火狐瀏覽器
        if(document.documentElement.scrollWidth!=0)
        {
          //alert("是刷新而非關閉");
          //window.location.href="report_list.php?ss=1";
          return false;
          
        }
        else{
          alert("是關閉而非刷新");
          //window.location.href="repost_list.php?ss=0";
          //alert("bbbbbbb");
        }
      }
    }
// --></mce:script>
<BODY onunload="close(event);"> 

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

 代碼如下 

function CloseOpen(event) { 
     if(event.clientX<=0 || event.clientY<0) { 
       //獲取當前時間
      var date=new Date();
      //將date設置為過去的時間
      alert("關閉網(wǎng)頁");
      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;
      onbeforeunload();
      // window.event.returnValue = '關閉瀏覽器將退出系統(tǒng).';
     } 
     else 
     { 
        alert("刷新或離開"); 
     } 
 } 
       
        var currentKeyCode = -1;

  function document.onkeydown() { // 本窗口的所有下屬頁面都必須含有本函數(shù)

    top.currentKeyCode = event.keyCode;
  }

  function onbeforeunload(){
  
   var sw = 0, s0 = "";
    if (currentKeyCode == 116) 
    {
      s0 += "刷新窗口!(F5)";
    }
    else 
    {
      if ((event.altKey)&&(currentKeyCode == 115)) 
      {
         s0 += "關閉窗口!(alt+F4)"; sw = 1;
          //獲取當前時間
          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();
      }
      else 
      {
        if ((event.clientX > 0)&&(event.clientX < document.body.clientWidth)) 
        {
         s0 += "刷新窗口!";
        }
        else 
        {
        //獲取當前時間
          var date=new Date();
          //將date設置為過去的時間
          alert("關閉網(wǎng)頁");
          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;
    }
  
  }

<body onunload="CloseOpen(event)" ></body></html>

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

以上內(nèi)容就是本文給大家介紹的javascript判斷網(wǎng)頁是關閉還是刷新,希望大家喜歡。

相關文章

  • ie和firefox不兼容的解決方法集合

    ie和firefox不兼容的解決方法集合

    網(wǎng)頁設計很多情況下,需要注意ie跟firefox的不同區(qū)別,腳本之家提供了不好這樣的文章,大家可以好好看下。
    2009-04-04
  • element-ui組件中input等的change事件中傳遞自定義參數(shù)

    element-ui組件中input等的change事件中傳遞自定義參數(shù)

    這篇文章主要介紹了element-ui組件中的input等的change事件中傳遞自定義參數(shù)的實例代碼,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-05-05
  • JS實現(xiàn)為表格動態(tài)添加標題的方法

    JS實現(xiàn)為表格動態(tài)添加標題的方法

    這篇文章主要介紹了JS實現(xiàn)為表格動態(tài)添加標題的方法,涉及javascript中createCaption方法添加標題的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • JS動畫效果代碼3

    JS動畫效果代碼3

    用js實現(xiàn)的動畫效果
    2008-04-04
  • js網(wǎng)頁右下角提示框實例

    js網(wǎng)頁右下角提示框實例

    這篇文章主要介紹了js網(wǎng)頁右下角提示框的實現(xiàn)方法,以實例展示了css樣式與HTML布局,以及對應的js顯示與關閉提示框等功能,需要的朋友可以參考下
    2014-10-10
  • 用IE重起計算機或者關機的示例代碼

    用IE重起計算機或者關機的示例代碼

    本篇文章主要是對用IE重起計算機或者關機的實現(xiàn)代碼進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-03-03
  • javascript進行數(shù)組追加方法小結

    javascript進行數(shù)組追加方法小結

    javascript中給數(shù)組加元素是一個非常簡單的問題,javascript本身就提供了大量這類函數(shù),我們可以使用js自帶函數(shù)快速給數(shù)組增加元素了,本文就javascript進行數(shù)組追加的方法做出如下小結。
    2014-06-06
  • 微信小程序之事件交互操作實例分析

    微信小程序之事件交互操作實例分析

    這篇文章主要介紹了微信小程序之事件交互操作,結合實例形式分析了微信小程序事件響應、交互及界面布局等相關操作技巧與注意事項,需要的朋友可以參考下
    2018-12-12
  • 控制文字內(nèi)容的顯示與隱藏示例

    控制文字內(nèi)容的顯示與隱藏示例

    控制某id或class的地div顯示與隱藏是比較容易實現(xiàn)的,但若控制文字內(nèi)容的顯示與隱藏該如何做到呢?下面有個示例,大家可以參考下
    2014-06-06
  • js仿微博動態(tài)欄功能

    js仿微博動態(tài)欄功能

    本文主要介紹了js仿微博動態(tài)欄功能的示例代碼,具有很好的參考價值,下面跟著小編一起來看下吧
    2017-02-02

最新評論