-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
[html] 第99天 HTML5的页面可见性(Page Visibility)有哪些应用场景? #975
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Labels
html
html
Comments
document.hidden 来判断页面是否处于可见,项目有个功能恰好用到这个。 |
document.visibilityState属性
触发的事件:document.onvisibilitychange |
2019-07-24 HTML5的页面可见性(Page Visibility) document.visibilityState属性 产生的原因:
使用的场景:
属性值:字符串 hidden:页面彻底不可见。
visible:页面至少一部分可见。 触发的事件: document.onvisibilitychange
document.addEventListener('visibilitychange', ()=> {
// 用户当前页面不可见(离开或者后端或者最小化,或者页签切换)
if (document.visibilityState === 'hidden') {
document.title = '页面不可见';
}
// 用户打开或回到页面
if (document.visibilityState === 'visible') {
document.title = '页面可见';
}
}); 页面卸载:
hidden:页面彻底不可见。
visible:页面至少一部分可见。 用户正在离开页面。常用的方法是监听下面三个事件。 1、visibilitychange
visibilitychange事件比pagehide、beforeunload、unload事件更可靠,所有情况下都会触发(从visible变为hidden)。因此,可以只监听这个事件,运行页面卸载时需要运行的代码,不用监听后面那三个事件。
2、beforeunload
事件只有一种适用场景,就是用户修改了表单,没有提交就离开当前页面,不会缓存当前页面
3、unload
unload事件在任何情况下都不必监听,不会缓存当前页面
4、pagehide
(大家可以补充一下,没有特别明显的定义) 注意:
参考链接: |
可以用在手机端打开网页唤起原生app的流程里, 网页是无法直接得知app是否成功打开,决定是否后续要再唤起appstore之类的操作,可以利用这个在唤起app后延迟判断是否网页被隐藏,隐藏了就表示打开成功了 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
第99天 HTML5的页面可见性(Page Visibility)有哪些应用场景?
The text was updated successfully, but these errors were encountered: