怎样监听ie7的网页关闭事件

aptech_meibo 2009-06-19 10:55:59
我在javascript里面加入了这样一段代码
function window.onunload()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey||event.ctrlKey)
{
alert('关闭');
}
else{
alert("刷新");
}

}

但是不管我是刷新还是关闭网页,都只弹出 “刷新” ,不能弹出关闭
各位大哥帮忙解决一下这个问题,就是把刷新和关闭区分出来
...全文
374 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
soccerx 2011-09-29
  • 打赏
  • 举报
回复
这对ie7以上的浏览器和ff,多标签浏览时,上述代码就无法判断是否为关闭标签的操作了
zp87530 2010-03-24
  • 打赏
  • 举报
回复
学习。。。。顶上去。。。
shenhai800 2010-03-14
  • 打赏
  • 举报
回复
mark,mark
aptech_meibo 2009-06-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ptrunner 的回复:]
引用 10 楼 hemingwang0902 的回复:
JScript code
function CloseOpen(event) {
if(event.clientX <=0 && event.clientY <0) {
alert("关闭");
}else{
alert("刷新或离开");
}
}





JScript code
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.sc…
[/Quote]


上面这2段代码在ie6里面的确可以监听到,但是在ie7就不行了
上面代码要求的是一个浏览器只有一个网页,而ie7是一个浏览器有多个网页标签,这样的话上面的代码就行不通了
xiangtanboy 2009-06-20
  • 打赏
  • 举报
回复
meizz大侠的那段代码..在通过双击标题栏前面的图标/浏览器的右键控制菜单关闭时无法判断.
过_路_人 2009-06-20
  • 打赏
  • 举报
回复
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("是刷新而非关闭");
}
}

pstrunner 2009-06-20
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hemingwang0902 的回复:]
JScript code
function CloseOpen(event) {
if(event.clientX<=0 && event.clientY<0) {
alert("关闭");
}else{
alert("刷新或离开");
}
}







JScript code
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.e…
[/Quote]
正解,测试过啦。
hemingwang0902 2009-06-20
  • 打赏
  • 举报
回复

function CloseOpen(event) {
if(event.clientX<=0 && event.clientY<0) {
alert("关闭");
}else{
alert("刷新或离开");
}
}





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("是刷新而非关闭");
}
}


参考于:http://www.javaeye.com/topic/269213

ghcery 2009-06-20
  • 打赏
  • 举报
回复
IE明确指出,以下会动作会触发onunload事件

Close the current browser window.
Navigate to another location by entering a new address or selecting a Favorite.
Click the Back, Forward, Refresh, or Home button.

所以刷新和关闭应该是不能区分的
ghcery 2009-06-20
  • 打赏
  • 举报
回复
楼上两位的是非IE的网页监听事件
helanye 2009-06-19
  • 打赏
  • 举报
回复
用window.onbeforeunload()
toury 2009-06-19
  • 打赏
  • 举报
回复
用window.onbeforeunload()试试
monexus 2009-06-19
  • 打赏
  • 举报
回复
支持1L,两者是无法区分的
aptech_meibo 2009-06-19
  • 打赏
  • 举报
回复
我自己顶起来!!!
aptech_meibo 2009-06-19
  • 打赏
  • 举报
回复
会调用的
lihan6415151528 2009-06-19
  • 打赏
  • 举报
回复
function window.onunload()

刷新的时候不会调用吧
9441 2009-06-19
  • 打赏
  • 举报
回复
没办法区分刷新与关闭

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧