javascriptはウェブページが閉じるかそれとも更新するかを判断します.

4769 ワード

原理とは、ページ行動時間Onloadトリガ時間を離れることによって、この時のブラウザのウィンドウサイズを検出し、サイズによってユーザがリフレッシュ、ジャンプまたはクローズアクションプログラムであると判断することです.
 コードは以下の通りです 

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タグはオンロadonunloadonbeforeunloadイベントだけで、oncloseイベントはありません.
ページが閉じられていても、更新されていても、ワンロードイベントが実行されます.
どのようにしてページを閉じますか?ページの読み込みはワンロードページのクローズ時のみワンロードページの更新を実行する場合は、まずワンバーforevunloadを実行し、その後ワンロードを実行します.
このように、私達はObeforeunloadにマークを付けて、Ounloadでこのマークを判断して、ページが本当に閉じるかどうかを判断することができます.
 コードは以下の通りです 


 
上の方法では多タブのブラウザを判断できません.360、ie 8のように、次を見てください.
 コードは以下の通りです 

function CloseOpen(event) { 
     if(event.clientX<=0 || event.clientY<0) { 
       //      
      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;
      onbeforeunload();
      // window.event.returnValue = '          .';
     } 
     else 
     { 
        alert("     "); 
     } 
 } 
       
        var currentKeyCode = -1;

  function document.onkeydown() { //                   

    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("    ");
          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はウェブページが閉鎖されているかそれとも更新されているかを判断します.