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

关闭浏览器响应的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对象提供了两个事件:onUnloaddocument被卸载触发)和onBerforUnload(被卸载前触发),因为它们是针对document的,当document被卸载或被卸载前触发。但这两个事件在刷新时也会触发,所以我们要采用什么方法来屏蔽除了关闭窗口操作以外而触发的onUnloadonBerforUnload事件从而执行里面的操作呢? 下面是从网上搜到的和大家一起分享。 

<script> 

window.onunload = function(){if(self.screenTop>9000)alert('该窗口已经被关闭!')} 

</script> 

或 

<script> 

window.onunload = function(){if(self.screenLeft>9000)alert(该窗口已经被关闭!.')} 

</script> 

下面是对这两个window的属性的解释: 

window.screenTop 

获取浏览器客户区左上角相对于屏幕左上角的 坐标 

screenTop>后面的数字必须大于你显示分辩率中的高度 

比如,800*600, 这个数得大于600 

window.screenLeft 

获取浏览器客户区左上角相对于屏幕左上角的 坐标 

screenLeft>后面的数字必须大于你显示分辩率中的宽度 

比如,800*600, 这个数得大于800 

通常这两个值设为900

PageMethods 需要ScriptManager.EnablepageMethods="true"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值