問題タブ [visibilitychange]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
79 参照

javascript - document.hidden が true の場合、Chrome でスクロール イベントが発生しない。回避策はありますか?

ページが実際にスクロールしているにもかかわらず、ページが非表示の場合、Chrome によってスクロール イベントが発生することはありません。これは、表示されていないページの CPU とネットワークの使用量を減らすために実装したもののようです。

Chrome のフラグや拡張機能を使用しても、この動作を回避する方法はありますか? それが私がテストしているものなので、トリガーするには「スクロール」イベントが必要です。

0 投票する
0 に答える
32 参照

html - onvisibilitychange コールバックで呼び出された場合、document.hasFocus() は常に false を返します。

イベントリスナーのコールバックdocument.hasFocus()のコンテキストでは、常に false を返すようです。visibilitychange使用できることは知っていますが、本当の場合はもう少し狭いので、document.hidden使用したいと思います。hasFocus()

どうしてこうなったのか、もっと気になります。visibilitychangeそれは、実際に呼び出されるたびに焦点を合わせる必要がdocument.hasFocus()あるため、実際には真実ではないためですが、呼び出されるdocument前にそれが起こることはありませんvisibilitychangeか?

例 1、tabA から tabB に切り替えます ->document.hasFocus()に設定してからfalse実行visibilitychangeします。例 2、tabB から tabA に切り替えます ->visibilitychange実行document.hasFocus()されますが、ドキュメントに技術的に焦点を当てていないため、まだ false であり、したがって false を返していますか? ドキュメントをマウスでクリックしたときだけdocument.hasFocus()true になりますか?