转至:http://www.cnblogs.com/leochu2008/articles/1048174.html
关闭浏览器的事件
在做图片刷新功能的时候,会出现IE图片缓存的问题,试了N多方法都没有效果,最后只有使用每刷新一次修改图片文件名加随机数的方法才勉强解决。但是这样的方法是下次打开浏览器读取图片的时候,上次产生的随机数是动态的,这时候只有让用户关闭浏览器的时候捕捉关闭事件然后将图片更名为一个统一的名字。由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况:1.真正的关闭浏览器 2.刷新浏览器。如何判断区分这两种动作呢。
一. Javascript代码处理方法:
function window.onbeforeunload()
{
//用户点击浏览器右上角关闭按钮
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("你在刷新");
}
}
其中 event.clientX 鼠标光标X坐标 document.body.clientWidth窗体工作区宽度 event.clientY鼠标光标Y坐标 event.altKey 是否按下alt键
二. 事件捕捉方法:
<body scroll="no" οnbefοreunlοad="return CloseEvent();" οnunlοad="UnLoadEvent()" >
</body>
<script language="JavaScript" type="text/javascript">
var DispClose = true;
function CloseEvent()
{
if (DispClose)
{
return "是否离开当前页面?";
}
}
function UnLoadEvent()
{
DispClose = false;
//在这里处理关闭页面前的动作
}
在页面卸载之前引发onbeforeunload事件,如果用户选择“是”即确定卸载页面将引发onunload事件,否则返回页面不做任何操作。