window 的 focus 事件
window.onfocus = function(e) {
// 事件處理
}
// 或
window.addEventListener('focus', () => {
// 事件處理
}, true)
如果打開該頁面,然后直接切換瀏覽器的標簽,是不會觸發focus事件的,想要觸發事件這個 焦點事件,必須要在頁面打開后點擊一次頁面,這樣以后 切換 瀏覽器標簽 focus 事件才會生效。
可以使用html5的Page Visibility API來替換
這個 API 本身非常簡單,由以下三部分組成。
document.hidden:表示頁面是否隱藏的布爾值。頁面隱藏包括 頁面在后台標簽頁中 或者 瀏覽器最小化 (注意,頁面被其他軟件遮蓋並不算隱藏,比如打開的 sublime 遮住了瀏覽器)。
document.visibilityState:表示下面 4 個可能狀態的值
hidden:頁面在后台標簽頁中或者瀏覽器最小化
visible:頁面在前台標簽頁中
prerender:頁面在屏幕外執行預渲染處理 document.hidden 的值為 true
unloaded:頁面正在從內存中卸載
Visibilitychange事件:當文檔從可見變為不可見或者從不可見變為可見時,會觸發該事件。
這樣,我們可以監聽 Visibilitychange 事件,當該事件觸發時,獲取 document.hidden 的值,根據該值進行頁面一些事件的處理。
document.addEventListener('visibilitychange', function() {
var isHidden = document.hidden;
if (isHidden) {
// 頁面隱藏
} else {
// 頁面聚焦
}
});
https://blog.csdn.net/huangzhenkun94/article/details/73772728/