2017-04-11 10 views
1

現在、Webブラウザウィンドウが別のウィンドウで覆われているかどうかを検出できますか?現在のウィンドウが別のウィンドウの背後にあるかどうかをJavascriptで検出する方法

document.hiddenとdocument.visibilityStateは、切り替えタブでのみ、またはウィンドウ全体が最小化されたときに状態を変更します。

document.hasFocus()ウィンドウが表示されなく、焦点が合っている場合にfalseを返す(例えばフォーカスがタスクバーにある)

+3

同じドメインの場合 - トリッキーな例あり。別のドメインやアプリケーションのウィンドウで覆われている場合 - いいえ – Peter

+1

@Peter:それでもツールバーの大きさや画面上の位置はわかりません。 – Cerbrus

+0

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

答えて

2

いや、それが可能ではありません。

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'です。したがって、すべてのウィンドウを反復することで、**ブラウザの**ウィンドウの1つが他のウィンドウの上にあるかどうかを知ることができます。しかしもちろん、それはまだこのブラウザのウィンドウに限られています。 – Kaiido

1

ブラウザウィンドウが重なり、ブラウザウィンドウの位置、およびそのうちの1つが上にあります。これらの機能はオペレーティングシステムによって処理されます。

ウェブページに書き込むコードが何であっても、ブラウザウィンドウが別のものと重なっているかどうかはわかりません。

だから、答えはです。です。

+0

...基本的には私がすでに言ったことです。 – Cerbrus

+0

..何も説明せずに。 – nashcheez

+0

私は何を言うことができますか? JSは、その点で助けになるものにアクセスできない... – Cerbrus

関連する問題