2017-04-11 60 views
1

是否可以检测Web浏览器窗口当前是否被另一个窗口覆盖?如何检测当前窗口是否在另一个窗口后面,使用Javascript

document.hidden和document.visibilityState只改变切换选项卡上的状态或整个窗口最小化时的状态。如果窗口是可见的,但不在焦点(例如焦点在任务栏上)

+3

如果来自同一个域 - 有一些技巧是的。如果窗口覆盖了来自不同域或甚至应用程序的窗口 - 否 – Peter

+1

@Peter:即使那样,您仍然不知道工具栏的大小或窗口在屏幕上的位置。 – Cerbrus

+0

@Cerbrus [window.screenX](https://developer.mozilla.org/en-US/docs/Web/API/Window/screenX)呢? – Kaiido

回答

2

都能跟得上

document.hasFocus()返回false,这是不可能的。

JavaScript无法知道窗口的可见性。

+0

...来自web上下文。在Chrome上下文(插件)中,您可以访问[更强大的API](https://developer.chrome.com/extensions/windows)。 – Kaiido

+1

@Kaiido看不到你是怎么知道窗口是否与该API重叠(只能快速浏览它),其他浏览器也是如此。 – George

+0

@George,答案显示* JavaScript没有办法知道窗口的可见性*我链接的API提供的信息如['WindowState'](https://developer.chrome.com/extensions/windows #WindowState),'top','left','width','height'。所以通过遍历所有的窗口,你可以知道**浏览器的一个**窗口是否在另一个窗口之上。但是,当然,它仍然局限于这个浏览器的窗口。 – Kaiido

1

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

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

所以是的,答案是NO

+0

......这基本上就是我已经说过的。 – Cerbrus

+0

..没有提供任何解释。 – nashcheez

+0

我能说什么? JS无法访问任何有助于这方面的事情...... – Cerbrus

相关问题