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頁離開進入效果
- jQuery如何判斷是否註冊某事件jQuery事件
- jQuery 判斷頁面元素是否存在jQuery
- PbootCMS整理分頁判斷進階各種條件判斷和標籤boot
- android監聽TF卡插拔事件 判斷Android事件
- 判斷螢幕旋轉的事件程式碼事件
- document.onreadystatechange事件事件
- ACM之判斷迴文數ACM
- H5觸控事件判斷滑動方向H5事件
- 如何判斷頁面是否存在某個元素
- js之普通/高效判斷質數JS
- vue:移動端判斷鍵盤事件,相容安卓iosVue事件安卓iOS
- 用`visibilitychange`事件實現吸睛的十八禁事件
- javascript如何判斷一個頁面元素是否存在JavaScript
- iOS版本更新比較及廣告頁展示判斷iOS
- vue監聽頁面中的某個div的滾動事件,並判斷滾動的位置Vue事件
- 帝國CMS利用PHP判斷當前頁面是否為首頁PHP
- 演算法之複雜度判斷演算法複雜度
- JavaScript專題之型別判斷(上)JavaScript型別
- JavaScript專題之型別判斷(下)JavaScript型別
- PbootCMS內容頁判斷列表中的當前文章高亮各種條件判斷和標籤boot
- 怎麼判斷dns汙染,怎麼判斷dns汙染,具體判斷方法DNS
- JS的判斷語句:判斷、迴圈JS
- jsp頁面判斷檔案上傳型別JS型別
- 爬蟲:如何判斷一個網頁已經更新?爬蟲網頁
- js如何判斷頁面是否已經載入完成JS
- js如何判斷頁面中是否存在某個元素JS
- 在 Web 中判斷頁面是不是重新整理Web
- 模擬微任務 判斷是否有對應的apiAPI
- 字元判斷字元
- PbootCMS判斷列表頁有無內容,無內容返回提示各種條件判斷和標籤boot
- js函式中的if判斷和a==b判斷JS函式
- 使用帶型別判斷的比較判斷型別
- 12.python流程控制之if判斷Python
- MongoDB之資料查詢(欄位判斷)MongoDB
- iOS 8之後相機授權判斷iOS