html - 在 onvisibilitychange 回调中调用 document.hasFocus() 时总是返回 false
问题描述
似乎总是在事件侦听器回调document.hasFocus()
的上下文中返回 false 。visibilitychange
我知道我可以使用document.hidden
,但我更喜欢使用hasFocus()
,因为当它是真的时它会更窄一些。
document.addEventListener('visibilitychange', function() {
console.log(document.hasFocus()) // always false
console.log(document.hidden) // "more correct"
});
我更想知道为什么会这样。是不是因为每次visibilitychange
被调用时document.hasFocus()
实际上都不是真的,因为document
必须聚焦但在被调用之前不会发生这种情况visibilitychange
?
示例1,我们从tabA切换到tabB ->document.hasFocus()
设置为false
然后visibilitychange
运行。示例 2,我们从 tabB 切换回 tabA ->visibilitychange
运行,document.hasFocus()
仍然是 false,因为我们在技术上没有专注于文档,因此它返回 false?只有当我们鼠标点击进入文档时才会document.hasFocus()
成立?
解决方案
推荐阅读
- python - 如何获取数据帧的子组开始完成索引
- java - mongorepository 中的空中间错误,同时在 Spring Boot 中的 pojo 中保存带有空文档的文档
- swift - SwiftUI - 显示符合协议的元素并为元素使用 == 的视图
- android - 安卓。如何自定义单选按钮
- javascript - 在javascript中调用函数参数内的函数的算法
- google-apps-script - 电子邮件主题和正文中的动态数据(月)
- java - 适配器是外部 SOAP 客户端的正确模式吗?
- python - python中的下拉菜单
- mongodb - MongoDB Compass 使用对象而不是数组分析模式并显示地图
- spring-boot - 获取错误:没有 org.springframework.boot.info.BuildProperties 类型的合格 bean