4

Firefoxウィンドウの状態(「最大化」、「最小化」、「通常」、「フルスクリーン」、ここを参照)を追跡しようとしています。ただし、何を試しても、最小化されたイベントは表示されません。他の人はうまくやっています。たとえば、次のようなウィンドウにリスナーを追加すると、

window.addEventListener("activate", function(event) { dump("activate " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false);
window.addEventListener("deactivate", function(event) { dump("deactivate " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false);
window.addEventListener("resize", function(event) { dump("resize " + window.windowState + " " + window.screenX + " " + window.screenY + "\n"); }, false);

2をwindow.windowState(2 = STATE_MINIMIZED)として表示することはありません。screenXとscreenYを使用して回避策を試しましたが、それは役に立ちません。ウィンドウを最小化すると、サイズ変更ではなく非アクティブ化イベントが発生し、window.windowStateが3(STATE_NORMAL)で、古いscreenX/screenY値が使用されます。

Firefoxウィンドウが最小化されていることを検出する方法はありますか?私は私の知恵の終わりにいます。

4

1 に答える 1

4

sizemodechangeイベントを聞いているはずです。これは、ウィンドウが最小化または最大化された後に発生するイベントです。ウィンドウのresize最小化では、技術的にはウィンドウのサイズが変更されず、非表示になっているため、イベントは発生しません。そして、ウィンドウがまだ通常の状態にあるときに、ウィンドウが最小化される前にdeactivateイベントが発生する可能性があります(ただし、確認しませんでした)。

于 2012-05-26T21:43:59.830 に答える