某些笔记本电脑设备在窗口全屏显示时不监听模糊事件[关闭]

问题描述 投票:0回答:1

我编写了一段代码来检测用户是否要离开浏览器窗口。 (就像锁定浏览器一样) 首先,我全屏打开页面。

document.documentElement.requestFullscreen();

然后我将事件监听器添加到窗口中,如下所示。

window.addEventListener('blur', onBlur);

我尝试过的大多数笔记本电脑设备,如果窗口失去焦点,都会成功触发 onBlur 函数。 但有些笔记本电脑在全屏显示时不会触发 onBlur 功能。到目前为止,我仅在 HP 笔记本电脑上发现此问题。它使用的是 intel Iris GPU。

我也尝试将模糊事件侦听器添加到 document.body 中。没成功。

当窗口失去焦点时,是否还有其他事件监听器比

blur
工作得更好?

更新 我也尝试了

window.addEventListener('visibilitychange', onBlur)
。但是使用 ALT+TAB 切换程序/窗口或单击任务栏时不会触发
visibilitychange
事件

javascript reactjs onblur lockdown
1个回答
1
投票

监听

blur
事件并不是完美的解决方案,因为(正如你所写的)你在不同的浏览器中得到不一致的结果。

检测用户是否在页面上的更可预测和标准的方法是使用

addEventListener("visibilitychange", onVisibilityChange)
,您可以在
event.visibilityState

中观察当前页面状态
© www.soinside.com 2019 - 2024. All rights reserved.