① js如何区分页面是关闭还是刷新
简单版本(没办法判断多选项卡的浏览器):
<mce:scripttype="text/javascript"><!--
functionclose(evt)//author:sunlei
{
varisIE=document.all?true:false;
evt=evt?evt:(window.event?window.event:null);
if(isIE){//IE浏览器
varn=evt.screenX-window.screenLeft;
varb=n>document.documentElement.scrollWidth-20;
if(b&&evt.clientY<0||evt.altKey){
//alert("是关闭而非刷新");
window.location.href="../include/logout.php";
}
else{
//alert("是刷新而非关闭");
returnfalse;
}
}
else{//火狐浏览器
if(document.documentElement.scrollWidth!=0)
{
//alert("是刷新而非关闭");
//window.location.href="report_list.php?ss=1";
returnfalse;
}
else{
alert("是关闭而非刷新");
//window.location.href="repost_list.php?ss=0";
//alert("bbbbbbb");
}
}
}
//--></mce:script>
<BODYonunload="close(event);">
复杂版本(除非用任务栏关闭):
functionCloseOpen(event){
if(event.clientX<=0||event.clientY<0){
//获取当前时间
vardate=newDate();
//将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("刷新或离开");
}
}
varcurrentKeyCode=-1;
functiondocument.onkeydown(){//本窗口的所有下属页面都必须含有本函数
top.currentKeyCode=event.keyCode;
}
functiononbeforeunload(){
varsw=0,s0="";
if(currentKeyCode==116)
{
s0+="刷新窗口!(F5)";
}
else
{
if((event.altKey)&&(currentKeyCode==115))
{
s0+="关闭窗口!(alt+F4)";sw=1;
//获取当前时间
vardate=newDate();
//将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
{
//获取当前时间
vardate=newDate();
//将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;
}
}
<bodyonunload="CloseOpen(event)"></body></html>
② 用JS判断浏览器是关闭还是刷新
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("是刷新而非关闭");
}
}
③ asp或js 判断当前页面是否关闭
js判断页面是否关闭、刷新或跳转的方法:
window.onbeforeunload=function(){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey){
alert("关闭了浏览器");
}else{
alert("正在刷新页面");
}
}
这段代码就是判断触发onbeforeunload事件时,鼠标是否点击了关闭按钮,或者按了ALT+F4来关闭网页,如果是,则认为系统是关闭网页,否则在认为系统是刷新网页。
④ 用JS在IE和火狐下判断网页是刷新还是关闭,页面跳转
<script type="text/javas
cript">
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);">
⑤ 如何用js监听浏览器页面的关闭/刷新事件
首先判断浏览器的抄类型,简便可用navigator.userAgent()获取浏览器的字符串,与浏览器类型做查找即可。
目前对Chrome和firfox区分关闭和刷新成功。
浏览器为firfox时flag为false,Chrome为true。
window.onload(){
window.onunload = function() {
if(flag){
console.log('关闭操作');
}
else {
console.log('刷新操作');
}
};
window.onbeforeunload = function () {
if(!flag){
console.log('关闭操作');
}
else{
console.log('刷新操作');
}
};
}
⑥ js区分浏览器页面是刷新还是关闭
页面加载时只执行onload
页面关闭时只执行onunload
页面刷新时先执行onbeforeunload,然后onunload,最后onload。
经过验证我得出的结论是:
//对于ie,谷歌,360:
//页面加载时只执行onload
//页面刷新时,刷新之前执行onbeforeunload事件,在新页面即将替换旧页面时onunload事件,最后onload事件。
//页面关闭时,先onbeforeunload事件,再onunload事件。
//对于火狐:
//页面刷新时,只执行onunload;页面关闭时,只执行onbeforeunload事件
那么回归正题,到底怎样判断浏览器是关闭还是刷新?我按照网上的各种说法实验千百遍,都未成功,其中各种说法如下:
window.onbeforeunload=function()//author:meizz
{
varn=window.event.screenX-window.screenLeft;
varb=n>document.documentElement.scrollWidth-20;
if(b&&window.event.clientY<0||window.event.altKey)
{
alert("是关闭而非刷新");
window.event.returnValue="";//这里可以放置你想做的操作代码
}else
{
alert("是刷新而非关闭");
}
}
window.onbeforeunload=function()//author:meizz
{
varn=window.event.screenX-window.screenLeft;
varb=n>document.documentElement.scrollWidth-20;
if(b&&window.event.clientY<0||window.event.altKey)
{
alert("是关闭而非刷新");
window.event.returnValue="";//这里可以放置你想做的操作代码
}else
{
alert("是刷新而非关闭");
}
}
⑦ js判断页面是关闭还是刷新
<body>标签只有onload\onunload\onbeforeunload事件,而没有onclose事件。不管页面是关闭还是刷新都会执行onunload事件。如何捕捉到页面关闭呢?
页面加载时只执行onload
页面关闭时只执行onunload
页面刷新时先执行onbeforeunload,然后onunload,最后onload。这样我们可以在onbeforeunload中加一个标记,在onunload中判断该标记,即可达到判断页面是否真的关闭了。
<html>
<head>
<title>判断页面是关闭还是刷新</title>
</head>
<body onunload="fclose();" onload="fload();" onbeforeunload="bfunload();">
<script language="javascript">
var s = "test";
function fclose()
{
if(s=="no")
alert(’unload me!=’+s+’这是刷新页面!’);
else
alert(’这是关闭页面’);
}
function fload()
{
alert("load me!="+s);
}
function bfunload()
{
s = "no";
}
</script>
</body>
</html>