最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript判斷網(wǎng)頁(yè)是關(guān)閉還是刷新

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

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

 代碼如下 

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

用瀏覽器右上角的關(guān)閉按鈕時(shí)好用,但在選項(xiàng)卡上關(guān)閉和在任務(wù)欄上關(guān)閉,這個(gè)方法就不作用了

js標(biāo)簽只有onloadonunloadonbeforeunload事件,而沒有onclose事件。

不管頁(yè)面是關(guān)閉還是刷新都會(huì)執(zhí)行onunload事件。

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

這樣我們可以在onbeforeunload中加一個(gè)標(biāo)記,在onunload中判斷該標(biāo)記,即可達(dá)到判斷頁(yè)面是否真的關(guān)閉了
更完整的兼容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("是關(guān)閉而非刷新");
          window.location.href="../include/logout.php";
        }
        else{
          //alert("是刷新而非關(guān)閉");
          return false;
        }
      }
      else{//火狐瀏覽器
        if(document.documentElement.scrollWidth!=0)
        {
          //alert("是刷新而非關(guān)閉");
          //window.location.href="report_list.php?ss=1";
          return false;
          
        }
        else{
          alert("是關(guān)閉而非刷新");
          //window.location.href="repost_list.php?ss=0";
          //alert("bbbbbbb");
        }
      }
    }
// --></mce:script>
<BODY onunload="close(event);"> 

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

 代碼如下 

function CloseOpen(event) { 
     if(event.clientX<=0 || event.clientY<0) { 
       //獲取當(dāng)前時(shí)間
      var date=new Date();
      //將date設(shè)置為過(guò)去的時(shí)間
      alert("關(guān)閉網(wǎng)頁(yè)");
      date.setTime(date.getTime()-10000);
      //將userId這個(gè)cookie刪除
      document.cookie="zhuangtao;expire="+date.toUTCString();
      document.cookie="quanxianzifucuan;expire="+date.toUTCString();
      document.cookie="quanxian;expire="+date.toUTCString();
     s0 += "關(guān)閉窗口!"; sw = 1;
      onbeforeunload();
      // window.event.returnValue = '關(guān)閉瀏覽器將退出系統(tǒng).';
     } 
     else 
     { 
        alert("刷新或離開"); 
     } 
 } 
       
        var currentKeyCode = -1;

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

    top.currentKeyCode = event.keyCode;
  }

  function onbeforeunload(){
  
   var sw = 0, s0 = "";
    if (currentKeyCode == 116) 
    {
      s0 += "刷新窗口!(F5)";
    }
    else 
    {
      if ((event.altKey)&&(currentKeyCode == 115)) 
      {
         s0 += "關(guān)閉窗口!(alt+F4)"; sw = 1;
          //獲取當(dāng)前時(shí)間
          var date=new Date();
          //將date設(shè)置為過(guò)去的時(shí)間
         alert("關(guān)閉窗口");
          date.setTime(date.getTime()-10000);
          //將userId這個(gè)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 
        {
        //獲取當(dāng)前時(shí)間
          var date=new Date();
          //將date設(shè)置為過(guò)去的時(shí)間
          alert("關(guān)閉網(wǎng)頁(yè)");
          date.setTime(date.getTime()-10000);
          //將userId這個(gè)cookie刪除
          document.cookie="zhuangtao;expire="+date.toUTCString();
          document.cookie="quanxianzifucuan;expire="+date.toUTCString();
          document.cookie="quanxian;expire="+date.toUTCString();
         s0 += "關(guān)閉窗口!"; sw = 1;
        }
      }
    }
    if (sw == 1) 
    {
     event.returnValue = "";
    }
    else 
    {
     currentKeyCode = -1;
    }
  
  }

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

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

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

相關(guān)文章

  • 輕松掌握J(rèn)avaScript代理模式

    輕松掌握J(rèn)avaScript代理模式

    這篇文章主要幫助大家輕松掌握J(rèn)avaScript代理模式,什么是代理模式?代理的用途,感興趣的小伙伴們可以參考一下
    2016-08-08
  • js字符串去重復(fù)id的實(shí)現(xiàn)代碼

    js字符串去重復(fù)id的實(shí)現(xiàn)代碼

    最近由于需要我們將相關(guān)id的重復(fù)的去掉,一個(gè)是客戶端一個(gè)后臺(tái)程序把關(guān),這里分享下js的去重復(fù)id的實(shí)現(xiàn)代碼
    2013-07-07
  • 基于JavaScript實(shí)現(xiàn)多級(jí)菜單效果

    基于JavaScript實(shí)現(xiàn)多級(jí)菜單效果

    這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)多級(jí)菜單效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Echarts實(shí)現(xiàn)點(diǎn)擊列表聯(lián)動(dòng)餅圖的示例代碼

    Echarts實(shí)現(xiàn)點(diǎn)擊列表聯(lián)動(dòng)餅圖的示例代碼

    本文主要介紹了Echarts實(shí)現(xiàn)點(diǎn)擊列表聯(lián)動(dòng)餅圖的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 配置Webpack?SourceMap?實(shí)踐教程

    配置Webpack?SourceMap?實(shí)踐教程

    這篇文章主要介紹了如何配置Webpack?SourceMap,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03
  • echart在微信小程序的使用簡(jiǎn)單示例

    echart在微信小程序的使用簡(jiǎn)單示例

    最近公司的項(xiàng)目中需要在小程序內(nèi)使用echarts組件來(lái)展示數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于echart在微信小程序的使用方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-02-02
  • js 判斷各種數(shù)據(jù)類型的簡(jiǎn)單方法(推薦)

    js 判斷各種數(shù)據(jù)類型的簡(jiǎn)單方法(推薦)

    下面小編就為大家?guī)?lái)一篇js 判斷各種數(shù)據(jù)類型的簡(jiǎn)單方法(推薦)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • JS定時(shí)器用法分析【時(shí)鐘與菜單中的應(yīng)用】

    JS定時(shí)器用法分析【時(shí)鐘與菜單中的應(yīng)用】

    這篇文章主要介紹了JS定時(shí)器用法,結(jié)合時(shí)鐘與菜單中的應(yīng)用分析了JS中setInterval與setTimeout操作時(shí)間的相關(guān)技巧,需要的朋友可以參考下
    2016-12-12
  • 原生js實(shí)現(xiàn)波浪導(dǎo)航效果

    原生js實(shí)現(xiàn)波浪導(dǎo)航效果

    這篇文章主要為大家詳細(xì)介紹了原生js實(shí)現(xiàn)波浪導(dǎo)航效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 一步步教你用js簡(jiǎn)單實(shí)現(xiàn)新年倒計(jì)時(shí)

    一步步教你用js簡(jiǎn)單實(shí)現(xiàn)新年倒計(jì)時(shí)

    一轉(zhuǎn)眼已經(jīng)臘月了,相信小伙伴們一定想知道我們距離2023新年還有多少天,下面這篇文章主要給大家介紹了關(guān)于如何一步步教你用js簡(jiǎn)單實(shí)現(xiàn)新年倒計(jì)時(shí)的相關(guān)資料,需要的朋友可以參考下
    2022-12-12

最新評(píng)論

合川市| 信宜市| 通州区| 赤城县| 五家渠市| 阳高县| 崇仁县| 平凉市| 桂平市| 陈巴尔虎旗| 手游| 福建省| 商水县| 昂仁县| 平远县| 和政县| 寻乌县| 鄂尔多斯市| 安乡县| 呈贡县| 永福县| 铜陵市| 平顺县| 桑日县| 永昌县| 玉门市| 汉川市| 萍乡市| 凉城县| 彭山县| 汝州市| 青龙| 永新县| 大荔县| 翁源县| 盐山县| 南丹县| 新建县| 固原市| 海盐县| 噶尔县|