您的位置:首页 > Web前端 > JavaScript

JS判断浏览器是否是关闭

2010-09-17 23:23 344 查看
js标签只有
onload"onunload"onbeforeunload
事件,而没有
onclose
事件。不管页面是关闭还是刷新都会执行
onunload
事件。如何捕捉到页面关闭呢?

页面加载时只执行
onload

页面关闭时只执行
onunload

页面刷新时先执行
onbeforeunload
,然后
onunload
,最后
onload
。这样我们可以在
onbeforeunload
中加一个标记,在
onunload
中判断该标记,即可达到判断页面是否真的关闭了。

触发于:

关闭浏览器窗口

通过地址栏或收藏夹前往其他页面的时候

点击返回,前进,刷新,主页其中一个的时候

点击 一个前往其他页面的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+

// 方法1:

window.onbeforeunload = function(event) {

var n = event.screenX - window.screenLeft;

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

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

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

window.open(this.location);

//return false;

//window.event.returnValue = ""; }

} else{

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

}

}

// 方法二:

/*

function promptOnClose(e){

//e = e ? e : windowevent;

var promptString = '你是否要离开此页面,离开该页面的信息将不被保存!';

//e.returnValue = promptString;

return promptString;

}

if (window != top){

top.location.href = "www.baidu.com";

}else{

if (window.Event) {

window.onbeforeunload = function(event) {

var isClose = promptOnClose(event);

return isClose;

alert('bbb');

}

} else {

window.onbeforeunload = function() {

return promptOnClose(event);

}

}

}

*/

/*window.onunload = function(){

alert('关闭窗体!');

}*/

// 在FF中 如果 点击浏览器的 关闭按钮(不是选项卡的关闭按钮) 无法监测到
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: