
javascript关闭页面时提示是否真的关闭,浏览器兼容
就是在你关闭页面的时候,提示一句是否真的关闭,如果确定就关闭,如果取消就继续留在本页面。现在的代码是<scripttype="text/javascript">windo...
就是在你关闭页面的时候,提示一句是否真的关闭,如果确定就关闭,如果取消就继续留在本页面。
现在的代码是
<script type="text/javascript">
window.onbeforeunload = function(evt){
if (typeof evt == 'undefined') {
myEvent = window.event;
} else {
myEvent = evt;
}
if(myEvent.clientY < 0 || myEvent.altKey)
{
return '是否真的关闭?';
}
}
</script>
这个在ie中没问题,但是在firefox和chrome中,myEvent.clientY的值都是undefined.
我已经加入
if (typeof evt == 'undefined') {
myEvent = window.event;
} else {
myEvent = evt;
}
来使浏览器兼容,但是没有成功,请高手帮忙。
加入if(myEvent.clientY < 0 || myEvent.altKey) 这句是为了防止刷新页面的时候浏览器响应事件,我只需要在关闭的时候出现提示。
还有些人加入
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
然后判断b,但是这样的话只能判断关闭按钮在最右边的情况,无法判断关闭浏览器标签,而现在的大部分浏览器都是用标签打开的,所以我删掉了这两句。 展开
现在的代码是
<script type="text/javascript">
window.onbeforeunload = function(evt){
if (typeof evt == 'undefined') {
myEvent = window.event;
} else {
myEvent = evt;
}
if(myEvent.clientY < 0 || myEvent.altKey)
{
return '是否真的关闭?';
}
}
</script>
这个在ie中没问题,但是在firefox和chrome中,myEvent.clientY的值都是undefined.
我已经加入
if (typeof evt == 'undefined') {
myEvent = window.event;
} else {
myEvent = evt;
}
来使浏览器兼容,但是没有成功,请高手帮忙。
加入if(myEvent.clientY < 0 || myEvent.altKey) 这句是为了防止刷新页面的时候浏览器响应事件,我只需要在关闭的时候出现提示。
还有些人加入
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
然后判断b,但是这样的话只能判断关闭按钮在最右边的情况,无法判断关闭浏览器标签,而现在的大部分浏览器都是用标签打开的,所以我删掉了这两句。 展开
1个回答
展开全部
window.onbeforeunload=function(){
return "你确认离开本页面吗?";
}
支持IE FF SAFARI CHROME
你说的刷新不去管javascript是没办法做到的,因为刷新页面有很多种途径,比如F5键,右键点刷新,点工具栏的刷新,菜单栏的刷新,这些事件javascript根本取不到,也无从拦截
return "你确认离开本页面吗?";
}
支持IE FF SAFARI CHROME
你说的刷新不去管javascript是没办法做到的,因为刷新页面有很多种途径,比如F5键,右键点刷新,点工具栏的刷新,菜单栏的刷新,这些事件javascript根本取不到,也无从拦截
更多追问追答
追问
好吧,我退一步,不需要判断“F5键,右键点刷新,点工具栏的刷新,菜单栏的刷新”,只判断表单提交到自身页面的刷新可以吗?
追答
在表单的onsubmit事件里面判断form的action和当前页面的location是不是一样的,根据结果返回true或者false,返回false就会把submit事件拦截下来
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询