最近,项目中需要做一个关闭IE窗口前的提示事件。
网上寻找了一下这方面:
其实就是一个onbeforeunload方法的问题
对于右上角的关闭来说,使用onbeforeunload来调用函数就可以了
可是对于在页面上做关闭窗口事件呢,这也是一个小小问题,其实就是再做一个js函数,直接使用window.close()就可以了,它会在IE窗口关闭前,调用onbeforeunload事件。
但是onbeforeunload有个小毛病,就是页面刷新时,他还是会调用到onbeforeunload,为什么?其实刷新就相当于关闭了这个IE再重新打开的意思,因此还是会调用到onbeforeunload。
究竟怎么解决刷新不调用onbeforeunload呢?
网上提供很多方法,本人觉得最实用还是以下这段JS
window.onbeforeunload = function(){
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("是刷新而非关闭");
}
}