1. 程式人生 > >實現瀏覽器關閉登陸的使用者自動退出

實現瀏覽器關閉登陸的使用者自動退出

關閉瀏覽器響應的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"