目前頁面可見性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(相容處理)於是,要判斷乙個瀏覽器是否支援頁面可見性api如下**就可以了(無需什麼webkit或moz或ms等字首乙個個判斷了):pagevisibility.visibilitystate=== document.visibilitystate(相容處理)
pagevisibility.visibilitychange(function() ); === document.addeventlistener("visibilitychange", function() {});(相容處理)
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...