关闭浏览器时退出登录
关闭浏览器响应的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"