关闭浏览器时退出登录

关闭浏览器响应的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"

原文地址:https://www.cnblogs.com/shaoke123/p/5787857.html