2017-04-11 62 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

相關問題