【高分等待高人】JavaScript 如何判断浏览器是关闭还是刷新?兼容Firefox、IE6、IE8

时间:2021-04-01 14:35:10
非常急的一个事情, JavaScript 如何判断用户操作浏览器是关闭还是刷新?
我用以下代码在IE6中可行,但是在IE 8 中却不行,Firefox中也不行:


  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('是关闭而非刷新');
      }else{
       alert('是刷新而非关闭');
      }
    }


我想用jQuery来实现这个功能,但是没有找到。等待高人出现。extjs 也行,反正要达到的效果便是 用户关闭当前页执行某个动作,用户刷新当前页就不执行。就是 判断用户的操作是关闭还是刷新并且兼容 Firefox、IE 6、IE 7、IE8




13 个解决方案

#1


这个用JS没有什么好的办法却判断了.
如果是单标签浏览器还好说,如果是多标签的情况,这个方法就不好用了.

#2


难道真的没有人知道吗???? 【高分等待高人】JavaScript 如何判断浏览器是关闭还是刷新?兼容Firefox、IE6、IE8

#3


没得,如果是点击浏览器的刷新按钮,这个在FF下就无法判断了

或者直接从人任务管理器中直接干掉IE进程,你怎么判断

#4


引用 3 楼 showbo 的回复:
没得,如果是点击浏览器的刷新按钮,这个在FF下就无法判断了

或者直接从人任务管理器中直接干掉IE进程,你怎么判断


是啊,BOSS跟我说要我弄这个的那时候,我就说了“JS是无法判断是刷新还是关闭的”,BOSS根本就不管这些,对程序也根本不了解,说某某网站可以。然后我打开那个网站,我发现他们是 写入COOKIE,如果关闭或者刷新页面的时候检测到该COOKIE值存在就不弹出;否则就弹出,然后写入COOKIE。

我跟BOSS说了,可根本就不管这些,反而眼神一直在说我想偷懒,还让我先去网上搜索。
晕,本来就判断不了,还搜索什么。。。好像我就水平就那么差,JS能够做什么不能做什么都不清楚。。

目前只能做到判断IE 6 浏览器是否是关闭还是刷新,其他的浏览器根本就判断不了。

【高分等待高人】JavaScript 如何判断浏览器是关闭还是刷新?兼容Firefox、IE6、IE8

#5


需求本身不合理

#6


以前很多这样的贴,基本都无解......

#7


不太可能用js来实现的。

#8


根本判断不了。键盘操作可以判断alt+f4  f5  。
鼠标操作判断不了。点击链接,也会触发onunload 事件的。

#9


我最近也遇到这个问题,不是很急还没来的急解决。

#10


js也是可以写cookie的,你用cookie不就行了

#11


4楼正解 同情ing....

#12


路过,关注一下!

#13


引用 10 楼 mowanglijiang 的回复:
js也是可以写cookie的,你用cookie不就行了


.... 写COOKIE又能够怎么样,关键是判断浏览器是关闭还是刷新 【高分等待高人】JavaScript 如何判断浏览器是关闭还是刷新?兼容Firefox、IE6、IE8

#1


这个用JS没有什么好的办法却判断了.
如果是单标签浏览器还好说,如果是多标签的情况,这个方法就不好用了.

#2


难道真的没有人知道吗???? 【高分等待高人】JavaScript 如何判断浏览器是关闭还是刷新?兼容Firefox、IE6、IE8

#3


没得,如果是点击浏览器的刷新按钮,这个在FF下就无法判断了

或者直接从人任务管理器中直接干掉IE进程,你怎么判断

#4


引用 3 楼 showbo 的回复:
没得,如果是点击浏览器的刷新按钮,这个在FF下就无法判断了

或者直接从人任务管理器中直接干掉IE进程,你怎么判断


是啊,BOSS跟我说要我弄这个的那时候,我就说了“JS是无法判断是刷新还是关闭的”,BOSS根本就不管这些,对程序也根本不了解,说某某网站可以。然后我打开那个网站,我发现他们是 写入COOKIE,如果关闭或者刷新页面的时候检测到该COOKIE值存在就不弹出;否则就弹出,然后写入COOKIE。

我跟BOSS说了,可根本就不管这些,反而眼神一直在说我想偷懒,还让我先去网上搜索。
晕,本来就判断不了,还搜索什么。。。好像我就水平就那么差,JS能够做什么不能做什么都不清楚。。

目前只能做到判断IE 6 浏览器是否是关闭还是刷新,其他的浏览器根本就判断不了。

【高分等待高人】JavaScript 如何判断浏览器是关闭还是刷新?兼容Firefox、IE6、IE8

#5


需求本身不合理

#6


以前很多这样的贴,基本都无解......

#7


不太可能用js来实现的。

#8


根本判断不了。键盘操作可以判断alt+f4  f5  。
鼠标操作判断不了。点击链接,也会触发onunload 事件的。

#9


我最近也遇到这个问题,不是很急还没来的急解决。

#10


js也是可以写cookie的,你用cookie不就行了

#11


4楼正解 同情ing....

#12


路过,关注一下!

#13


引用 10 楼 mowanglijiang 的回复:
js也是可以写cookie的,你用cookie不就行了


.... 写COOKIE又能够怎么样,关键是判断浏览器是关闭还是刷新 【高分等待高人】JavaScript 如何判断浏览器是关闭还是刷新?兼容Firefox、IE6、IE8