是否在當前頁面api

2021-06-26 12:27:24 字數 1469 閱讀 2040

目前頁面可見性api有兩個屬性,乙個事件,如下:

我寫了個如下的頁面可見性api支援性的測試**:

var ispagevisibilitysupport = (function() 

});

}return support;

})();

測試發現,如下瀏覽器都是支援的

不支援的瀏覽器:

因此,typeof document.mshidden != "undefined"可以用來區分ie9瀏覽器還是ie10瀏覽器。

正如上面的code所展示的,頁面可見性api的所有屬性以及事件,目前是需要使用私有字首的(如果沒有這些字首,瀏覽器就不認識這些屬性或方法了)。

一旦有了字首,實際應用的時候**就有些囉哩吧嗦了(可見參見文章底部參考文章中展示的**)!

因為要乙個字首乙個字首判斷——oh, my!

):

var pagevisibility = (function() 

return key;

};var ispagevisibilitysupport = (function()

});

}return support;

})();

var ishidden = function()

return undefined;

};var visibilitystate = function()

return undefined;

};return .bind(this), usecapture);

}return undefined;

}};

})(undefined);

或者直接呼叫:

其中具體細節無需關心,實際上上面這麼多**本質上就是下面這點:

var pagevisibility = ;
與_原生屬性事件_對應關係如下:

pagevisibility.hidden === document.hidden(相容處理)

pagevisibility.visibilitystate=== document.visibilitystate(相容處理)

pagevisibility.visibilitychange(function() ); === document.addeventlistener("visibilitychange", function() {});(相容處理)

於是,要判斷乙個瀏覽器是否支援頁面可見性api如下**就可以了(無需什麼webkit或moz或ms等字首乙個個判斷了):

var issupport = typeof pagevisibility.hidden !== "undefined"
測試demo

怎樣統計使用者在當前頁面停留的時間

頁面停留時間 time on page 簡稱 tp,是 分析中很常見的乙個指標,用於反映使用者在某些頁面上停留時間的長短,傳統的tp統計方法會存在一定的統計盲區,比如無法監控單頁應用,沒有考慮使用者切換tab 最小化視窗等操作場景。基於上述背景,重新調研和實現了精確統計頁面停留時長的方案,需要 相容...

android 如何判斷當前頁面是否是桌面

最近在自己的專案中需要用到判斷乙個應用是否啟動的功能。為了擴充套件一下知識點,就把題目定成了如果判斷當前顯示是否為桌面。其實這個過程有三個知識點。1.如何找出正在執行的任務?android系統是支援多工的,找到所有執行的任務是關鍵。2.如何找出當前正在執行的任務?雖然android是多工的系統,但是...

js監聽頁面是否在瀏覽器當前頁面

在最近的乙個socket專案中,需要監聽客戶端是否已讀客服端傳送的訊息。這裡用到了html5中document新增了乙個事件 visibilitychange,這個事件在頁面前台或後台切換時被觸發,它也有個對應的屬性visibilitystate,用於檢測當前頁面的狀態值為hidden還是visib...