检测用户是否已关闭网站的所有窗口?

tim*_*son 2 javascript browser

我知道这一点:

window.onbeforeunload = function() {
   //tell server user has left your site
};
Run Code Online (Sandbox Code Playgroud)

但是有没有一种客户端方法可以使用javascript检测用户是否关闭了您网站的所有浏览器窗口?

还是我需要服务器端代码来检测到这一点?

RWA*_*WAM 5

您可以将信息保存到LocalStorage中以检测是否存在。

一些想法:在加载时,您将值写入sessionStorage:

window.onload = function() {
    if (sessionStorage.instances) {
        sessionStorage = Number(sessionStorage.instances) + 1;
    } else {
        sessionStorage.instances = 1
    }
}
Run Code Online (Sandbox Code Playgroud)

并在卸载时减小该值:

window.onbeforeunload = function() {
    var instances;

    if (sessionStorage.instances) {
        instances = Number(sessionStorage.instances) - 1;
        sessionStorage.instances = instances;
        if (0 === instances) {
            // all instances closed
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

乔·拉尔夫

PS:示例取自http://www.w3schools.com/html/html5_webstorage.asp,并做了一些修改;)