一些网站,当你把标签页移动到别的网页的时候会把标题替换成其他的文本,例如「快回来,网页崩溃了」,当你回去打开标签页的时候,标题又变成了「又好了」,通常的实现方式类似:
var OriginTitle = document.title;
var titleTime;
document.addEventListener('visibilitychange', function () {
if (document.hidden) {
document.title = '哦豁,回来,网页崩溃了';
clearTimeout(titleTime);
}
else {
document.title = '好了,没事了 (。・∀・)ノ゙';
titleTime = setTimeout(function () {
document.title = OriginTitle;
}, 1000);
}
});
谈谈原理,主要是用到了一个事件监听器 visibilitychange,字面意思理解就是「可见度改变」,这个事件监听器允许我们在网页可见度被改变时时执行 js 代码,也就是切换到其他的标签页或者从其他标签页切换回来时。
/* like this */
document.addEventListener('visibilitychange', function(){
//your code here when visibility has changed
});
/* or this */
document.addEventListener('visibilitychange', yourFunction);
利用 document.hidden 属性可以判断标签页处于什么状态,当 document.hidden 返回 true 的时候,标签页处于「不可见」状态,也就是切换到了其他的标签页。