问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

一个javascript页面关闭触发事件的问题

发布网友 发布时间:2022-04-27 00:59

我来回答

4个回答

热心网友 时间:2022-04-23 14:57

你要换一个思路,后台用一个Application数组来记录所有在线用户的登录状态,你的聊天页面要每隔一个固定的时间(比如20秒或半分钟)利用ajax调用后台一个固定的页面,这个页面的作用就是刷新自身session对应的application数组元素(用SessionID来匹配)的时间值,然后再遍历这个Application数组,如果发现有某个Application元素的时间值超过指定的间隔值(20秒或半分钟,当然为了安全起见,可以适当放宽,比如40秒或1分钟),那么就说明这个用户已经关闭浏览器或离线了,就可以把它删掉。然后你的聊天页面就可以把这个Application数组作为所有用户是否仍然在线的依据了。
利用onunload和onbeforeunload事件来判断用户是否离线是非常不保险的,最简单的,如果该用户的网络突然发生故障造成断网,这时是没有任何事件被触发的(即使有也没法传送到后台服务器),这样服务器端就会一直以为该用户在线(直到Session过期)。唯一可行的办法就是我上面说的,类似于上班打卡,就是每隔一段时间向服务器报告“我是在线的”,如果没有打卡,那就说明离线了。而且这种方法由于大部分是在后台完成的,对前台脚本的依赖性较小(只要支持ajax即可),因此基本上可以说兼容所有浏览器。

热心网友 时间:2022-04-23 16:15

一个判断页面是否真的关闭和刷新的好方法:

window.onbeforeunload=function (){
alert("===onbeforeunload===");
if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
alert("你关闭了浏览器");
}else{
alert("你正在刷新页面");
}
}
这段代码就是判断触发onbeforeunload事件时,鼠标是否点击了关闭按钮,或者按了ALT+F4来关闭网页,如果是,则认为系统是关闭网页,否则在认为系统是刷新网页。

onbeforeunload与onunload事件
Onunload,onbeforeunload
都是在刷新或关闭时调用,可以在<script>脚本中通过window.onunload
来指定或者在<body>里指定。区别在于onbeforeunload在onunload之前执行,它还可以阻止onunload的执行。
Onbeforeunload
也是在页面刷新或关闭时调用,Onbeforeunload是正要去服务器读取新的页面时调用,此时还没开始读取;而onunload则已经从服务器上读
到了需要加载的新的页面,在即将替换掉当前页面时调用。Onunload是无法阻止页面的更新和关闭的。而Onbeforeunload 可以做到。

页面加载时只执行onload
页面关闭时先执行onbeforeunload,最后onunload
页面刷新时先执行onbeforeunload,然后onunload,最后onload。

1、onbeforeunload事件:
说明:目前三大主流浏览器中firefox和IE都支持onbeforeunload事件,opera尚未支持。
用法:
·object.onbeforeunload = handler
·<element onbeforeunload = “handler” … ></element>
描述:
事件触发的时候弹出一个有确定和取消的对话框,确定则离开页面,取消则继续待在本页。handler可以设一个返回值作为该对话框的显示文本。

热心网友 时间:2022-04-23 17:50

简单一点,用jquery1.7,我测试过,里面的属性兼容iE6后的所有浏览器,

$(window).unload( function () { alert("Bye now!"); } );

兼容应该没问题,不过能不能实现你要的功能就带你研究,或者百度看看

热心网友 时间:2022-04-23 19:41

同求,我也遇到过这样的问题,判断的是在一个session中不能登录两个用户。防止用户信息交错现象,也是需要清session。因为公司用的就是ie,也没有去深究过。同求解决方案。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我的世界手游天堂门怎么做 天堂门怎么放水 肌肤暗沉怎么调理?肌肤美白小窍门 该收心回归工作的说说 开启上班模式幽默说说(开启上班模式,享受美好生活) 格兰仕电磁炉e0换245k电阻用两次又烧 格兰仕电磁炉显示E4怎么办? ...于海中小虾,海中大虾……瀚海蛟龙的性质。谢谢了 相亲之后一周都有联系,也有出去吃饭看电影,但不明确男方具体什么态度... 相亲男之前一直对我很好(三天两头喊我看电影,吃饭),正好聊的那段时间我... ...个星期几每天晚上叫我出去吃饭看电影 当然都是他买单 。这样弄的... 如何在页面关闭或刷新时触发javascript事件 北半球的夏至日与南半球的冬至日是不是同一天?(急求~~) 地理中,看图怎样判断是夏至日冬至日 赤道夏至日春分日秋分日冬至日日期各是什么,还有北半球和南半球的春夏秋冬的日期 夏至日,冬至日一般在农历的什么月什么日和什么月日的前后 北半球的夏至日与冬至日,春分日与秋分日的大致日期. 春分日,夏至日,秋分日,冬至日的日期是什么时候 根据统计图完成统计表羊毛衫和衬衫的销售情况有什么不同 羊毛衫尺码120指的是多大。 羊绒衫95,100,105,什么意思,100相当于165 羊毛衫尺码对照表 O/S, P/S, M/L是什么尺码? 用于羊毛衫。谢谢 羊毛衫尺码对照表, 好看的两个字网名(带楠字) 有谁用过小米有品纳拓六合一雷鸣手电吗,值得买吗? 小米商城和小米有品家那款手表好看着大气,时尚,价格一般的,(智能手表除外) 天梭小米有品店铺是正品吗? 小米有品众筹的手环按键不好按了怎么办? 汽车充电桩用电器取直流电可以给小牛电动车充电吗 小牛电动车充电器2十4有佬作用 js有关闭窗口时的事件吗 Javascript关闭页面的事件是什么 js 只监听关闭浏览器事件,关闭时触发一个自定义函数 asp.net页面关闭时,有没有什么方法触发一个事件呢,用js和jque也行 js窗口关闭事件 jquery或者JS【关闭窗口触发】 JS中监听浏览器窗口关闭事件 js脚本监听页面关闭时执行参数传递动作 js如何监控wps关闭事件,或者保存事件? 羊撅嘴什么意思? 在线等,这个羊歪头舔水表情是什么意思? 微信上有多少种可以打出来的羊的表情&#xF411; 羊qq表情 眉飞色舞可以比喻羊吗 用符号画出来的羊图 护理本科毕业,可以去卫生局工作吗? 卫健委和卫生局都是干什么的?哪个更好一些?*考研以后可以去卫健委或者卫生局工作吗?待遇如何? 本人女,30岁,目前是护士,想问去卫生局事业编好吗?以后有什么出息,可 ... 学护理专业,可以在卫生局工作吗 kdj中的k线和j线相交意味着什么