【问题标题】:Detect window closed检测窗口关闭
【发布时间】:2012-02-18 22:18:16
【问题描述】:

我正在创建一个聊天客户端,它使用数据库检查会话的状态 0-等待、1-运行、2-关闭。

我有一个关闭按钮,它会将状态更改为 2,但我想知道,如何检测浏览器是否仅通过按 x 关闭?

这样做的主要原因是我不希望会话在其中一位参与者关闭浏览器时显示为正在运行。

【问题讨论】:

    标签: php javascript jquery window


    【解决方案1】:

    您可以使用 JavaScript 监听 onbeforeunload-event,它会在浏览器窗口关闭时触发。

    当您使用 jquery 标记问题时,您可以使用 .unload():

    $(window).unload(function() {
      // Do some ajax-request to kill the session
    });
    

    如果没有 jQuery,它会是:

    window.onbeforeunload = function() {
       // Do some ajax-request to kill the session
    };
    

    【讨论】:

      【解决方案2】:

      使用unloadonbeforeunload 事件:

      window.onunload = window.onbeforeunload = function (){...};
      

      最好同时注册这两个事件以确保回调会触发。

      【讨论】:

      • @THeK。为 chrome 添加了答案。试试看
      • 非常感谢您的快速回复。完美运行。
      【解决方案3】:

      您可以使用 beforeunload 事件,因为 unload 事件在 jQuery 版本 1.8 中已被弃用,并且当用户离开您的页面时会触发 beforeunload 事件。

      $(window).bind("beforeunload", function() { 
          return confirm("Do you really want to close?"); 
      })
      

      【讨论】:

        猜你喜欢
        • 2019-05-04
        • 2013-05-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-18
        • 1970-01-01
        相关资源
        最近更新 更多