session监听器 关闭浏览器,执行一个 jsp页面的跳转

Run佳 发布于 2010/08/19 15:07
阅读 2K+
收藏 4

统计当前在线人数的时候,如果客户端关闭了浏览器,就相当于退出了页面,需要销毁session值,

但好像只有IE支持:

<script type="text/javascript">
    window.onbeforeunload = function()  
    {  
        if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)  
        {  
        window.location.href='<%=basePath%>miaosha/spikecloseKill';       
        }  
    }    
</script>

其它浏览器不支持,怎么解决?

加载中
0
Run佳
Run佳

肯定也有人遇到此问题,能不能给点提示.............

0
红薯
红薯

可以用 jQuery ,示例:

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

0
Run佳
Run佳

页面卸载的时候弹出一个警告框:

jQuery 代码:

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

这种是也是在IE可以用,但其它浏览器就不能用,而且刷新页面时也执行

0
jing31
jing31

引用来自#4楼“李泽佳”的帖子

页面卸载的时候弹出一个警告框:

jQuery 代码:

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

这种是也是在IE可以用,但其它浏览器就不能用,而且刷新页面时也执行

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

这种代码在firefox和chrome的tab关闭时都有效,但是直接关闭整个firefox浏览器则无效。

是否应该考虑一下有没有必要关闭时清除session。

因为这个方法无效的范围是关掉整个浏览器,当你重新打开新的浏览器的时候已经使用的另外的session了。

不会有问题的。

0
Run佳
Run佳

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

你试着在firefox,刷新一下,也执行的.

0
BossKiller
BossKiller

    closeAlert = "关闭本页面将会退出OA系统。";


    <!-- IF is_ie_browser -->

    function window.onbeforeunload() {

        if(event.clientX > 1 && event.clientY < 0 || event.altKey) {

            window.event.returnValue = closeAlert;

        }

    }

    <!-- ELSE -->

    window.onbeforeunload = function (oEvent) { oEvent.returnValue = closeAlert; }

    <!-- ENDIF -->

0
linnchord
linnchord

靠客户端触发很多时候不可靠。

统计在线人数需要这么准确吗?把session过期设置为10分钟,误差在10分钟以内应该没有什么不能接受的吧?何况误差的实际人数也不会很多。

0
Sky__
Sky__

把session过期设置为10分钟,你只让用户停留在浏览器上10分钟,10分钟以后就变成“游客”了, 这样用户还受得了吗? 哈!

0
mallon
mallon

客户端用JavaScript定时向服务段发送心跳包,过时不发则认为是离线。

用Session肯定误差很大的

0
k
koio1018

你想网站关门吗js定时发包有植入木马嫌疑

返回顶部
顶部