我怎么能控制当有人按下退出按钮

本文关键字:退出 按钮 怎么能 控制 | 更新日期: 2023-09-27 17:49:20

我怎么能控制当有人按下退出按钮在firefox, chrome, IE, safari或控制当按下风扇关闭按钮,然后从数据库中删除它们,实际上我知道。我唯一的问题是如何抓住那个按钮。

我得到一些代码,但它似乎不工作。我得到的代码是这样的

on my 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;
 }

和默认值。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页面的主体

如果你只是想在用户关闭浏览器时做一些动作,

我看不出有什么理由去捕捉button事件。

按下X按钮将导致Session_End

just handle global.aspx Session_End

如何处理会话结束在global.asax?

注意:这不会在用户退出时发生,而是在会话超时

时发生。
  1. 你正在使用的jQuery idleTimer插件是用于检测页面的空闲时间&

  2. 你可以使用:jQuery unload Event:

当用户从页面导航离开时,卸载事件被发送到window元素。这可能意味着很多事情中的一件。用户可以点击链接离开页面,或者在地址栏中输入新的URL。前进和后退按钮将触发事件。关闭浏览器窗口将触发事件。即使页面重新加载也会首先创建一个卸载事件