1

私は奇妙な行動に直面しており、助けが必要です..

次のコードを使用して、すべてのタブ切り替えイベントとすべての最大化イベント (つまり、ウィンドウが表示されるたび) をキャッチしようとしています。

window.addEventListener("focus", function (e) { this.foo(e); }, false);
window.document.addEventListener("focus", function (e) { this.foo(e); }, false);

ただし、最大化イベントをキャッチしません!ユーザーがウィンドウを最小化した後に最大化した場合、どうすればわかりますか?

また、window.addEventListener("focus") と window.document.addEventListener("focus") の両方を持つことは冗長に思えますが、タブを切り替えると、フォーカスされている選択されたドキュメントがコンテンツではない可能性があることがわかりました私は興味があるので、window.focus を使用しています....しかし、ウィンドウに対してこのイベントが常に発生するとは限らないため、両方のフォーカスをリッスンする必要があります...どう思いますか?

私の問題がどこにあるかを理解するのを手伝ってもらえますか? タブを切り替えるたびに発生するイベントを作成する必要があります\最大化-およびウィンドウ内のすべてのドキュメントに対して、コンテンツを処理しますか?

どうもありがとう、ニリ

4

1 に答える 1

0

window.onresizeイベントを使用できます。 window.outerHeight === screen.availHeight && window,outerWidth === screen.availWidthの場合、最大化されます。

ただし、outerHeight/Width は IE8 をサポートしていません。http://www.javascriptkit.com/domref/windowproperties.shtml を参照してください。

更新: IE8 ハックの場合: ユーザーがウィンドウ サイズを最大にできることを確認できる場合は、window.resizeTo(screen.availWidth, screen.availHeight)を使用して、 document.documentElement.clientWidthとdocument.documentElementを記録できます。後で最大化されているかどうかを比較するclientHeight 。

于 2011-03-21T15:45:27.130 に答える