document API之visibilitychange事件:判斷頁
下面將對document事件visibilitychange
及兩個屬性hidden
和visibilityState
的特性及應用做簡單介紹與記錄。
hidden和visibilieyState屬性
hidden
與visibilityState
均為document
的只讀屬性。
其中document.hidden
的值是一個布林值,表示標籤頁的顯示或隱藏。
而document.visibilityState
相對詳細一些,目前有四個可能的值:
visibble
:頁面部分內容可見。意味著該標籤頁是一個非最小化的可見標籤頁,可能被別的頁面覆蓋了一部分。hidden
:頁面內容不可見。意味著該頁面是後臺標籤頁或者最小化,或者系統是鎖屏狀態等。prerender
:網頁內容被預渲染並且使用者不可見。unloaded
:如果文件被解除安裝,將返回這個值。
一般情況下,使用document.hidden
就可以滿足需求。為了支援老版本瀏覽器,我們對document.hidden
做一些字首處理,以便跨瀏覽器獲得頁面可見性:
function getHidden (){ let prefixs = ['webkit','moz','mos','o']; if ('hidden' in document) return document.hidden; for (let i = 0; i同樣,對
document.visibilityState
也做一下字首處理:function getVivibilityState (){ let prefixs = ['webkit','moz','mos','o']; if ('visibilityState' in document) return document.visibilityState; for (let i = 0; ivisibilitychange事件
當瀏覽器可見性發生變化得時候,這個事件會被觸發。實際的應用場景例如:標籤頁隱藏的時候暫停播放流媒體檔案、停止一些不必要的輪詢;頁面顯示的時候出現提示彈窗(點選支付跳轉到新開頁面,再返回這個頁面時彈出支付狀態相關提示彈窗)等等。
我們可以在document物件上註冊一個監聽
visibilititychange
的事件,當瀏覽器可見性發生變化的時候利用hidden
或者visibilityState
判斷頁面的狀態,然後處理一些業務邏輯。以比較常用的hidden
為例:function pageHiddenHandler () { let isHidden = getHidden(); // 改變頁面title使用者觀察狀態 document.title = isHidden ? '藏起來了' : '閃現'; }document.addEventListener('visibilitychange',pageHiddenHandler,false);
作者:搞點兒事情
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4548/viewspace-2812557/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- document API之visibilitychange事件:判斷頁面可見性API事件
- 頁面可見性判斷:document.hidden與visibilitychange事件事件
- visibilitychange搭配document.hidden實現有意思的tab頁離開進入效果
- python之判斷語句Python
- PbootCMS整理分頁判斷進階各種條件判斷和標籤boot
- APEX重定向頁(通過分支判斷)
- 11.9 python之判斷語句Python
- ACM之判斷迴文數ACM
- H5觸控事件判斷滑動方向H5事件
- js之普通/高效判斷質數JS
- Python之判斷迴圈語句Python
- vue監聽頁面中的某個div的滾動事件,並判斷滾動的位置Vue事件
- jsp頁面判斷檔案上傳型別JS型別
- 寫一個方法判斷頁面滾動方向
- 帝國CMS利用PHP判斷當前頁面是否為首頁PHP
- vue:移動端判斷鍵盤事件,相容安卓iosVue事件安卓iOS
- 12.python流程控制之if判斷Python
- 演算法之複雜度判斷演算法複雜度
- PbootCMS內容頁判斷列表中的當前文章高亮各種條件判斷和標籤boot
- 怎麼判斷dns汙染,怎麼判斷dns汙染,具體判斷方法DNS
- 爬蟲:如何判斷一個網頁已經更新?爬蟲網頁
- 在 Web 中判斷頁面是不是重新整理Web
- JS的判斷語句:判斷、迴圈JS
- PbootCMS判斷列表頁有無內容,無內容返回提示各種條件判斷和標籤boot
- 模擬微任務 判斷是否有對應的apiAPI
- shell請求api,獲取json返回值,做判斷APIJSON
- if 判斷使用
- 肖sir__python之判斷語句4.1Python
- 使用帶型別判斷的比較判斷型別
- js函式中的if判斷和a==b判斷JS函式
- 在首頁判斷是否登入並執行登陸
- vue router+ vuex+ 首頁登入判斷邏輯Vue
- H5網頁判斷終端並喚起appH5網頁APP
- day31-33 關於點選事件內的判斷語句事件
- JavaScript 之 DOM [ Document物件 ]JavaScript物件
- js系列文章之 : 判斷 object 物件是否為空JSObject物件
- 機房重構之餘額實時判斷
- frida 判斷so已載入之後再hookHook