[英]How can i control when somebody press exit button
我如何控制何時有人在firefox,chrome,IE,safari上按下退出按鈕,或控制何時按下風扇關閉按鈕,然后從數據庫中刪除它們,實際上我知道這一點。 我唯一的問題是如何抓住那個按鈕按下。
我有一些代碼,但似乎不起作用。 我得到的代碼看起來像這樣
在我的default.aspx.cs上
public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
string callBackReference = Page.ClientScript.GetCallbackEventReference(this, "arg", "LogOutUser", "");
string logOutUserCallBackScript = "function LogOutUserCallBack(arg, context) { " + callBackReference + "; }";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "LogOutUserCallBack", logOutUserCallBackScript, true);
void System.Web.UI.ICallbackEventHandler.RaiseCallbackEvent(string eventArgument)
_callBackStatus = "failed";
// log out the user by deleting from the LoggedInUser table
DataClassesDataContext db = new DataClassesDataContext();
var loggedInUser = (from l in db.BrugerOnlines
where l.BrugerId == Convert.ToInt32(Session["ChatUserID"])
&& l.RumId == lb
select l).SingleOrDefault();
db.BrugerOnlines.DeleteOnSubmit(loggedInUser);
db.SubmitChanges();
var besvarer = (from p in db.Rums where p.FK_Bruger == Session["SupportAdd"].ToString() select p).SingleOrDefault();
db.Rums.DeleteOnSubmit(besvarer);
db.SubmitChanges();
// insert a message that this user has logged out
this.sendbesked("Bruger har lukket siden " + DateTime.Now.ToString());
_callBackStatus = "success";
}
string System.Web.UI.ICallbackEventHandler.GetCallbackResult()
{
return _callBackStatus;
}
在我的default.aspx上,它看起來像這樣。
在頁面頂部的javascript中,它看起來像這樣
function LogOutUser(result, context) {
// don't do anything here
}
function LogMeOut() {
LogOutUserCallBack();
}
<div onload="SetScrollPosition()" onunload="LogMeOut()">
</div>
我使用的庫是http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.js ,我不知道這段代碼是其中的一部分
$(function () {
var timeout = 60000;
$(document).bind("idle.idleTimer", function () {
// function you want to fire when the user goes idle
$.timeoutDialog({ timeout: 1, countdown: 60, logout_redirect_url: 'http://www.aspdotnet-suresh.com', restart_on_yes: true });
});
$(document).bind("active.idleTimer", function () {
// function you want to fire when the user becomes active again
});
$.idleTimer(timeout);
});
在頁面主體的onBeforeUnload上調用您的方法
如果您想要的只是在用戶關閉瀏覽器時執行一些操作。
我看不到任何原因來捕獲按鈕事件。
按下X
按鈕將進入Session_End
只需處理global.aspx Session_End
像這個例子:
注意:這不會在用戶退出時發生相同的瞬間,而是在出現超時時發生
您正在使用的jQuery idleTimer插件用於檢測頁面的空閑時間,並基於您重定向用戶的超時。
您可以使用: jQuery卸載事件 :
當用戶離開頁面導航時,將把unload事件發送到window元素。 這可能意味着很多事情之一。 用戶可能已經單擊了鏈接以離開頁面,或在地址欄中輸入了新的URL。 前進和后退按鈕將觸發事件。 關閉瀏覽器窗口將導致事件被觸發。 即使頁面重新加載也會首先創建一個卸載事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.