如何使用Javascript检测当前窗口是否位于另一个窗口后面

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

是否可以检测网络浏览器窗口当前是否被另一个窗口覆盖?

document.hidden 和 document.visibilityState 仅在切换选项卡或整个窗口最小化时更改状态。

如果窗口可见但未获得焦点(例如焦点位于任务栏上),则 document.hasFocus() 返回 false

javascript dom
3个回答
2
投票

不,这是不可能的。

JavaScript 中无法知道窗口的可见程度。


2
投票

浏览器窗口彼此重叠、浏览器窗口的位置以及其中哪一个位于顶部 - 这些功能均由操作系统处理。

无论您为网页编写什么代码,您都无法判断您的浏览器窗口是否与另一个浏览器窗口重叠。

是的,答案是


0
投票

如果您的网站作为一个网站运行,则很有可能。 通过使用窗口焦点和模糊事件。

注意:这期望所有代码都在同一帧中执行,因为下面的代码片段是在 iframe 中执行的,其行为就像在单独的窗口中一样!

var element = document.getElementById("out");

window.onblur = () => {
  element.innerHTML = "I lost focus"
}
window.onfocus = () => {
  element.innerHTML = "Focus"
}
<div id="out">Focus</div>

© www.soinside.com 2019 - 2024. All rights reserved.