我知道这个:
window.onbeforeunload = function() {
//tell server user has left your site
};
但有没有客户端方式使用javascript来检测用户是否关闭了您网站的所有浏览器窗口?
或者我是否需要服务器端代码来检测?
答案 0 :(得分:4)
您可以将信息保存到LocalStorage以检测是否存在。
一些想法:在加载时,你将值写入sessionStorage:
window.onload = function() {
if (sessionStorage.instances) {
sessionStorage = Number(sessionStorage.instances) + 1;
} else {
sessionStorage.instances = 1
}
}
并在卸载时减小值:
window.onbeforeunload = function() {
var instances;
if (sessionStorage.instances) {
instances = Number(sessionStorage.instances) - 1;
sessionStorage.instances = instances;
if (0 === instances) {
// all instances closed
}
}
}
侨 拉尔夫
PS:取自http://www.w3schools.com/html/html5_webstorage.asp并略微修改的示例;)
答案 1 :(得分:0)
您可以生成一个cookie,其前缀如closed_tab_,后缀可以说是时间戳或uuid。关闭窗口时,删除此选项卡设置的cookie,并使用相同的命名方案检查其他cookie。 即使没有本地存储的浏览器,这应该可以解决问题 对于崩溃的浏览器 - 您可以每秒使用一个计时器来更新cookie并将其设置为每秒过期。 如果你不是时间敏感,则将其设置为更大的值。