document添加visibilitychange事件
需要有前缀,-webkit- 、 -o-、-ms-、-moz-…
可以用hidden 或者 visibilityState 是否是document属性来获取前缀
const getHiddenProp = () => {
const prefixes = ['webkit', 'moz', 'ms', 'o'];
// if 'hidden' is natively supported just return it
if ('hidden' in document) return 'hidden';
// otherwise loop over all the known prefixes until we find one
for (let i = 0; i < prefixes.length; i++) {
if ((`${prefixes[i]}Hidden`) in document) {
return `${prefixes[i]}Hidden`
}
}
// otherwise it's not supported
return null;
}
visibilityState:visible | hidden
hidden: true | false
兼容性:iOS Safari 7开始支持
Android浏览器4.4开始支持,但是实测,安卓系统4,5 Android Webview不能支持这个事件的监听,所以还是要根据native端具体去测
网友评论