需求:关闭浏览器时,退出,清除session。
在网上找了一段代码,可是测试的时候有偏差,有时关闭浏览器可以退出,有时退出不了。分析后发现,当浏览器的窗口大小改变后,网页的宽度没有及时跟着变,这个项目没有做到这一点。
document.documentElement.scrollWidth 网页宽度
document.body.clientWidth 窗口宽度
以上两个值意思是不一样的,前者是网页的宽度,如果浏览器窗口拉小,但是页面内容没有自适应,那么网页的宽度没有变,而窗口宽度变小了。以下两个网页看的很清除,一个有滚动条,一个没有。
function RunOnBeforeUnload() {
var qq =window.event.screenX-window.screenLeft+45-document.body.clientWidth;
alert(window.event.screenX+" "+window.screenLeft+" "+document.documentElement.scrollWidth+" "+document.body.clientWidth+" "+qq);
var n = window.event.screenX - window.screenLeft;
var b = n > document.body.clientWidth - 45;
if (b && window.event.clientY < 0 || window.event.altKey) {// 浏览器右上角 关闭按钮
alert("true");
//
});
};
}
认识一下各个值的含义
window.event.screenX 鼠标相对于显示器的X坐标值
window.screenLeft 网页左边相对于显示器的X坐标值
document.body.clientWidth 浏览器窗口的宽度
document.documentElement.scrollWidth 网页宽度