如何知道导致可见性变化的原因

Nik*_*ili 5 javascript

我正在使用visibilitychange浏览器的事件。该网站适用于手机。所以我通过手机进行测试。

document.addEventListener('visibilitychange', (e) => {
    console.log("visibility changed", e);
})
Run Code Online (Sandbox Code Playgroud)

这可能是由许多不同的原因引起的。

  • 来回切换应用程序
  • 强制关闭应用程序
  • 当屏幕关闭时

有什么方法可以检测什么行为导致visibilitychange监听器被调用?我尝试过e.targete.srcElement,但在所有情况下,它们似乎都是相同的。有任何想法吗?

gea*_*ser 1

简短回答:你不能

正如该事件的MDN 文档中所述visibilitychange

当文档的选项卡内容变得可见或隐藏时,将在文档中触发 VisibilityChange 事件。

您只有两个可能的值,visiblehidden。这就是网站所能知道的一切。您要求网络浏览器敏锐地了解用户在操作系统上所做的事情(他锁定了计算机吗?他是否切换到新应用程序?他是否杀死了网络浏览器?)这是隐私方面的,但不是很重要有用也不安全。

但是,如果您绝对需要这些功能并且有能力让用户安装您的应用程序,您可以使用cordova之类的东西。