来自 前端技术 2019-09-04 19:43 的文章
当前位置: 六合联盟网 > 前端技术 > 正文

JS监听浏览器关闭事件

有的是时候,我们有确定的渴求做一些东西,如无效会话每当客商点击浏览器的倒闭开关,进而在浏览器中调用close事件。
 
让大家来探视怎样利用JavaScript。在JavaScript中,大家有onbeforeunload的和onunload事件,如。因为他们的名字暗意这个事件被触发时,页面被卸载。发生这种情况,尽管客商关闭浏览器或位移到不相同的页面。
 
笔者们能够动用那么些事件来调用任何JavaScript管理函数。注册三个平地风波从body标签。
<script language="javascript">
function fnUnloadHandler() {
       // Add your code here
       alert("Unload event.. Do something to invalidate users session..");
}
</script>
<body onbeforeunload="fnUnloadHandler()">
    <!-- Your page content -->
</body>

JS监听关闭浏览器事件

在这里,在地点的代码中,大家已登记的事件onbeforeunload的<body>标签。您也可以注册使用window.eventname管理程序的风波。对于如

根本字: js监听关闭浏览器事件

window.onbeforeunload = function() {
       // Add your code here
       alert("Unload event.. Do something to invalidate users session..");
}

Onunload与Onbeforeunload

让大家来会见怎么着...

Onunload,onbeforeunload都以在刷新或关闭时调用,可以在<script>脚本中经过window.onunload来内定大概在<body>里钦点。差别在于onbeforeunload在onunload在此之前实践,它还足以阻碍onunload的实行。

 

    Onbeforeunload也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开头读取;而onunload则早已从服务器上读到了急需加载的新的页面,在就要替换掉当前页面时调用。Onunload是无可奈何阻止页面包车型地铁翻新和关闭的。而 Onbeforeunload 能够成功。曾经做二个考试系统,涉及到防备客商半途退出考试(故意还是无意),代码如下:

Java代码

<script type="text/javascript">  

<!--    

    window.onbeforeunload = onbeforeunload_handler;  

    window.onunload = onunload_handler;  

    function onbeforeunload_handler(){  

        var warning="确认退出?";          

        return warning;  

    }  

      

    function onunload_handler(){  

        var warning="多谢光临";  

        alert(warning);  

    }   

// -->  

</script>  

  

 

<script type="text/javascript">

<!-- 

window.onbeforeunload = onbeforeunload_handler;

window.onunload = onunload_handler;

function onbeforeunload_handler(){

    var warning="确认退出?";   

return warning;

    }

   

function onunload_handler(){

    var warning="多谢光临";

    alert(warning);

    }

// -->

</script>

Java代码

这段代码在FF和IE上都能科学施行.再点击关闭开关时首先触发obbeforeunload事件,点击否按期不进行onload事件. 

 

这段代码在FF和IE上都能正确试行.再点击关闭开关时首先触发obbeforeunload事件,点击否定时不执行onload事件.Java代码

通常采用在 注销session等等登录消息 等地点.... 

 

习以为常选拔在 注销session等等登录音讯 等方面....Java代码

那边一并引入一个ActionScript3的好教程: <A href="; 

 

此处一并引用二个ActionScript3的好教程:

使用onunload事件判定浏览器是刷新依然关闭窗口

 

写道

function CloseOpen(event) {

if(event.clientX<=0 && event.clientY<0) {

alert("关闭");

}

else

{

alert("刷新或离开");

}

}

 

  Java代码

window.onbeforeunload = function() //author: meizz   

       {   

              var n = window.event.screenX - window.screenLeft;   

              var b = n > document.documentElement.scrollWidth-20;   

              if(b && window.event.clientY < 0 || window.event.altKey)   

              {   

                     alert("是关门而非刷新");   

                     window.event.returnValue = ""; //这里能够停放你想做的操作代码   

              }   

       } 

 

 

<script language=javascript>

function window.onbeforeunload()

{

  if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)

  {

    window.event.returnvalue = "";

  }

}

</script>[网址制作,找田响没错!]

 

要么利用全屏展开页面[网址制作,找田响没有错!]

 

<script language="javascript">

<!--

window.open(www.32pic.com,"32pic","fullscreen=3,height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no");

-->

</script>[网站制作,找田响没错!]

 

注:在body标签里增进onbeforeunload="javascript:return false"(使不可能关闭窗口)[

 

本文来源: 田响建站(www.anfangwang.com) 详细出处参考:网页制作,网址制作,找田响没有错!

 

==================================================================

 

function openurl()

{

//须要开采的地点

koyoz.launchURL('');

}

function openinit()

{

document.body.innerHTML += '<object id="koyoz" width="0" height="0" classid="CLSID:6BF52A52-394A-11' + 'D3-B153-00C04F79FAA6"></object>';

}

eval("window.attachEvent('onload',openinit);");

eval("window.attachEvent('onunload',openurl);");

 

 

===================================================================

function get伊芙nt() //同期包容ie和ff的写法 

    {   

        if(document.all)   return window.event;   

        func=getEvent.caller;   

        while(func!=null){   

            var arg0=func.arguments[0];   

            if(arg0)   

            {   

                if((arg0.constructor==Event || arg0.constructor ==MouseEvent) || (typeof(arg0)=="object" && arg0.preventDefault && arg0.stopPropagation))   

                {   

                    return arg0;   

                }   

            }   

            func=func.caller;   

        }   

        return null;   

    } 

 

 

 

window.onbeforeunload = function(){

    var n = window.event.screenX - window.screenLeft;   

    var b = n > document.documentElement.scrollWidth-20;   

    if(b && window.event.clientY < 0 || window.event.altKey)   

    {  

        if(confirm("是还是不是有参预网络调查?")){

        koyoz.launchURL('');

        }

    }   

}

====================================================

本来写那篇博客,不是为了化解这一个主题素材的,小编的初志是做贰个网页浏览总括的,本来感觉用标题描述的议程能够兑现,其实本身是走了叁个误区。不必用JS作者也得以直达自己的目标,然而为了实现题目描述的难题,笔者或许从英特网找了很多资料,可是开采一个标题:在 IE下好用,不过到了火狐下就倒霉用了。于是乎,笔者做了一些测量检验,开掘以下方法能够在IE和火狐下通用:

<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("是停业而非刷新");

        }

        else{

            alert("是刷新而非关闭");

        }

    }

    else{//火狐浏览器

        if(document.documentElement.scrollWidth!=0)

            alert("是刷新而非关闭");

        else

            alert("是关闭而非刷新");

    }

}

</script>

<body onunload="close(event);">

        个中参数event是自可是然要传进去的,因为在火狐下一旦不传的话,它会报错:window.event is not defined。当然,在IE下固然不传的话,是从未难题的。

        可是紧凑的人会发掘,其实在火狐下进展判别的时候根本未曾用到evt。其实把evt传进去,只是为着有限支撑浏览器不会报错,其实能够做如下修改,效果是千篇一律的:

<script type="text/javascript

===========================================================================

 

script language=javascript window.onbeforeunload = function() //author: meizz { var n = window.event.screenX - window.screenLeft; var b = n document.documentElement.scrollWidth-20; if(b window.event.clientY 0 || window.event.altKey) { aler

 

<script   language="javascript"> 

window.onbeforeunload   =   function()     //author:   meizz 

      var   n   =   window.event.screenX   -   window.screenLeft; 

      var   b   =   n   >   document.documentElement.scrollWidth-20; 

      if(b   &&   window.event.clientY   <   0   ||   window.event.altKey) 

      { 

          alert("是关门而非刷新"); 

          window.event.returnValue   =   "";     //这里能够放置你想做的操作代码

        

      }else{

          alert("是刷新而非关闭"); 

     } 

</script>

 

<SCRIPT>

 

function window.onbeforeunload() {

           if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey){

             window.event.returnValue="若是距离该页面,将有比十分大希望无法取得诚信标签";

           }else {

            alert("你在刷新") ;

           }

       }

 

</SCRIPT>

 

 

 

function window.onbeforeunload() {

           if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey){

             window.event.returnValue="假设离开该页面,将有不小可能不可能赢得诚信标签";

           }else {

            alert("你在刷新") ;

           }

       }

 

</SCRIPT>

 

 

<HTML>

<HEAD>

<TITLE>决断是刷新依旧关闭-www.51windows.Net</TITLE>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<META NAME="Author" CONTENT="51windows,海娃,haiwa">

<META NAME="Description" CONTENT="Power by 51windows.Net">

</HEAD>

 

<script>

function CloseOpen(event) {

if(event.clientX<=0 && event.clientY<0) {

alert("关闭");

}

else

{

alert("刷新或离开");

}

}

</script>

<body onunload="CloseOpen(event)">

</BODY>

</HTML>

<div style="position: absolute; top: 10; right: 10; width: 148; height: 18;cursor:hand">

<input type="button" name="Button" value="查看源代码" onClick= 'window.location = "view-source:" + window.location.href'></div>

 

 

 


 

<script language=javascript> 

      function window.onbeforeunload() 

      { 

      if    (event.clientX>document.body.clientWidth       &&       event.clientY<0||event.altKey)

 

            { 

             window.event.returnValue="明确要退出本页吗?"; 

            }

 

      }

</script>

 


 

<script language=javascript>

function window.onbeforeunload()

{

if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)

{

var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

xmlhttp.open("GET","<%= request.getContextPath()%>" + "/logout.do",false);

xmlhttp.send();

}

}

</script>

 


 

<script language=javascript>

function check()

{

if (event.clientX>document.body.clientWidth-20 && event.clientY<0||event.altKey)

window.event.returnValue='鲜明要剥离本页吗?';

}

</script>

</head>

 

<body onbeforeunload="check();">

</body>

 


 

<script   language=javascript> 

function   check() 

if   (event.clientX>document.body.clientWidth-20   &&   event.clientY<0||event.altKey) 

   if(confirm("您显著要离开系统么?")) 

   { 

   window.location.href="logout.jsp"; 

    closes.Click(); 

    return; 

   } 

   else

   {

    window.location.href="main.jsp"; 

   }

</script>

===============================================================================================

 

本文由六合联盟网发布于前端技术,转载请注明出处:JS监听浏览器关闭事件

关键词: