导航:首页 > 编程语言 > js区分页面刷新和关闭

js区分页面刷新和关闭

发布时间:2023-01-20 00:58:52

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>

阅读全文

与js区分页面刷新和关闭相关的资料

热点内容
mdfldf是什么文件 浏览:569
文件在桌面怎么删除干净 浏览:439
马兰士67cd机版本 浏览:542
javaweb爬虫程序 浏览:537
word中千位分隔符 浏览:392
迷你编程七天任务的地图怎么过 浏览:844
word2003格式不对 浏览:86
百度云怎么编辑文件在哪里 浏览:304
起名app数据哪里来的 浏览:888
微信怎么去泡妞 浏览:52
百度广告html代码 浏览:244
qq浏览器转换完成后的文件在哪里 浏览:623
jsp中的session 浏览:621
压缩完了文件去哪里找 浏览:380
武装突袭3浩方联机版本 浏览:674
网络机顶盒移动网络 浏览:391
iphone手机百度云怎么保存到qq 浏览:148
数据库设计与实践读后感 浏览:112
js对象是什么 浏览:744
网页文件存pdf 浏览:567

友情链接