实现浏览器关闭登陆的用户自动退出

关闭浏览器响应的js代码如下:
在head中调用js:
<script >
 window.onunload = function(){
 if(self.screenTop > 9000) {
  Out();
 }
}
</script>
在body中添加js方法如下:
<script language="JavaScript" type="text/javascript"> 
function Out()
{ PageMethods.LogOut(GetResult);}
function GetResult(Result)
{  }
</script>
其中在后台添加方法:
  [WebMethod] 这个需要引用什么程序不知道
        public static string LogOut()
        {
            MembershipUser mu = Membership.GetUser();
   mu.LastActivityDate = mu.LastActivityDate.Subtract(new TimeSpan                                       (0,Membership.UserIsOnlineTimeWindow + 1, 0));
            Membership.UpdateUser(mu);
            return "true";}
总结:当用户点击关闭浏览器时(算是字,而不是按钮),利用ajax方法,异步调用后台的方法,让用户及时退出,这样在统计在线用户数量时,能得到准确的数字。
以下是对浏览器关闭事件的解释:
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{要在关闭窗口时触发一个事件,我们会想到window对象提供了两个事件:onUnload(document被卸载触发)和onBerforUnload(被卸载前触发),因为它们是针对document的,当document被卸载或被卸载前触发。但这两个事件在刷新时也会触发,所以我们要采用什么方法来屏蔽除了关闭窗口操作以外而触发的onUnload和onBerforUnload事件从而执行里面的操作呢? 下面是从网上搜到的和大家一起分享。 
<script> 
window.onunload = function(){if(self.screenTop>9000)alert('该窗口已经被关闭!')} 
</script> 
或 
<script> 
window.onunload = function(){if(self.screenLeft>9000)alert(该窗口已经被关闭!.')} 
</script> 
下面是对这两个window的属性的解释: 
window.screenTop 
获取浏览器客户区左上角相对于屏幕左上角的 y 坐标 
screenTop>后面的数字必须大于你显示分辩率中的高度 
比如,800*600, 这个数得大于600 
window.screenLeft 
获取浏览器客户区左上角相对于屏幕左上角的 x 坐标 
screenLeft>后面的数字必须大于你显示分辩率中的宽度 
比如,800*600, 这个数得大于800 
通常这两个值设为900
PageMethods 需要ScriptManager.EnablepageMethods="true"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值