js监听浏览器离开页面操作

1、unload 事件属性

//window
window.onbeforeunload=function(e){     
  var e = window.event||e;  
  e.returnValue=("确定离开当前页面吗?");
}

用法:当用户离开页面时,会发生 unload 事件。注意:如果您重载页面,也会触发 unload 事件(以及 onload 事件)。 

  触发于:

关闭浏览器窗口
通过地址栏或收藏夹前往其他页面的时候
点击返回,前进,刷新,主页其中一个的时候
点击 一个前往其他页面的url连接的时候
调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit.
当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。
重新赋予location.href的值的时候。
通过input type="submit"按钮提交一个具有指定action的表单的时候。 

onbeforeunload 事件属性

//body
<body onbeforeunload="goodbye()">
//window
window.onbeforeunload=function(e){     
  var e = window.event||e;  
  e.returnValue=("确定离开当前页面吗?");
}

用法:onbeforeunload 事件在即将离开当前页面(刷新或关闭)时触发。该事件可用于弹出对话框,提示用户是继续浏览页面还是离开当前页面。对话框默认的提示信息根据不同的浏览器有所不同,标准的信息类似 "确定要离开此页吗?"。该信息不能删除。但你可以自定义一些消息提示与标准信息一起显示在对话框。注意: 在 Firefox 浏览器中,只显示默认提醒信息(不显示自定义信息)。

  触发于: 

关闭浏览器窗口 
通过地址栏或收藏夹前往其他页面的时候 
点击返回,前进,刷新,主页其中一个的时候 
点击 一个前往其他页面的url连接的时候 
调用以下任意一个事件的时候:click,document write,document open,document close,window close ,window navigate ,window NavigateAndFind,location replace,location reload,form submit. 
当用window open打开一个页面,并把本页的window的名字传给要打开的页面的时候。 
重新赋予location.href的值的时候。 
通过input type=”submit”按钮提交一个具有指定action的表单的时候。

连接https://www.cnblogs.com/slly/p/7991474.html

<!DOCTYPE html>
<HTML>
<HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <script>
    function onbeforeunload() {
      debugger;
      //用户点击浏览器右上角关闭按钮
      if (event.clientX > document.body.clientWidth && event.clientY < 0 || event.altKey) {
        document.getElementById("btnCompelete").click();
        //window.event.returnValue="确定要退出本页吗?";   
      }
      //用户点击任务栏,右键关闭
      else if (event.clientY > document.body.clientHeight || event.altKey) {
        document.getElementById("btnCompelete").click();
        //window.event.returnValue="确定要退出本页吗?";   
      }
      else{ //其他情况为刷新         
        alert("你在刷新");
      }
    }
  </script>
</HEAD>

<body scroll="no" onbeforeunload="return CloseEvent();" onunload="UnLoadEvent()">
</body>
<script language="JavaScript" type="text/javascript">
  var DispClose = true;
  function CloseEvent() {
    debugger
    if (DispClose) {
      return "是否离开当前页面?";
    }
  }
  function UnLoadEvent() {
    DispClose = false;
    //在这里处理关闭页面前的动作
  }
</script>
</HTML>
原文地址:https://www.cnblogs.com/slightFly/p/11819486.html