本文实例总结了JS针对浏览器窗口关闭事件的监听方法。
1、onbeforeunload事件:
说明:目前三大主流浏览器中firefox和IE都支持onbeforeunload事件,opera尚未支持。
用法:
·object.onbeforeunload = handler
·<element onbeforeunload = “handler” … ></element>
描述:
事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。handler可以设一个返回值作为该对话框的显示文本。
触发于:
·关闭浏览器窗口
·通过地址栏或收藏夹前往其他页面的时候
·点击返回,前进,刷新,主页其中一个的时候
·点击 一个前往其他页面的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的表单的时候。
可以用在以下元素:
·BODY, FRAMESET, window
平台支持:
IE4+/Win, Mozilla 1.7a+, Netscape 7.2+, Firefox0.9+
示例:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>onbeforeunload测试</title>
<script>
function checkLeave(){
event.returnValue="确定离开当前页面吗?";
</script>
</head>
<body οnbefοreunlοad="checkLeave()">
</body>
</html> 也可以这样写:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<TITLE> top.html </TITLE>
</HEAD>
<script language="JavaScript">
window.onbeforeunload = function()
// 这是用来设定一个时间, 时间到了, 就会执行一个指定的 method。
setTimeout(onunloadcancel, 10);
return "真的离开?";
window.onunloadcancel = function()
alert("取消离开");
</script>
<p> 点击关闭按钮 监听</p>
</BODY>
</HTML>
一个判断页面是否真的关闭和刷新的好方法:
window.οnbefοreunlοad=function (){
alert("===οnbefοreunlοad===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
window.onbeforeunload = function(e) {
var e = window.event ||e;
e.returnValue=("是否确定关闭页面");
加入js文件后,查看网页效果:
点击网页对应窗口的关闭按钮,会弹窗如下弹窗:
// $(window).bind('beforeunload',function(){return '您输入的内容尚未保存,确定离开此页面吗?';});
// window.onbeforeunload = function() { return "确定离开此页面吗?"; };
// function myFunction() {return "自定义内容";}
// w
window.onbeforeunload = function(e) {
var e = window.event ||e;
e.returnValue="确认关闭页面吗?";
不过returnValue给的字符是没有用的,浏览器始终都只会返回固定的提示,如下:
在JavaScript中,可以使用`window.onbeforeunload`事件来监听浏览器窗口关闭事件。当用户尝试关闭窗口时,该事件会触发。
以下是一个示例代码:
```javascript
window.onbeforeunload = function() {
return "确定要离开吗?"; // 返回提示信息
以上代码将在用户尝试关闭窗口时弹出一个提示框,询问用户是否确定离开。
需要注意的是,由于浏览器的安全限制,无法通过代码强制阻止用户关闭窗口。因此,使用该事件时应尽量避免过于依赖它来进行数据保存等操作。