0

window.blur()を使用して、ウィンドウにフォーカスせずにウィンドウを開こうとしています(または、フォーカスとフォーカス解除が非常に高速であるため、フォーカスされていないように見えます)。

しかし、それはうまくいかないようです、代替手段はありますか?

私の試み:

blurTest.xul:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window width="400" height="300"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <script>
        <![CDATA[
            function onkeypress(event) {
                // for this sample don't matter which key is pressed
                open('second.xul','SecondWindow','chrome, width=400, height=300');
            }
            addEventListener("keypress", onkeypress, false);
        ]]>
    </script>

    <label value="MAIN WINDOW"/>

</window>

second.xul:

<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>

<window width="400" height="300"
    onload="blur();"
    xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">

    <label value="SECOND" />

</window>

オブス。setTimeout(window.focus, 1) を使用して、2 番目のウィンドウを開いた後にフォーカスを自分のウィンドウに戻すことを考えることができます。しかし、フォーカスを処理するには 2 番目のウィンドウが必要です。完璧なシナリオは、2 番目のウィンドウがフォーカスを取得できなかった場合で、フォーカスを取得せずにウィンドウを開いて復元するだけです。

4

1 に答える 1

1

popup呼び出しでウィンドウ機能を使用すると、ポップアップのように XUL ウィンドウを開くことができopenDialogます。これにより、フォーカスを奪わない最上位のウィンドウが開きます。デフォルトでは、ポップアップ ウィンドウには OS クロムが含まれていないことに注意してください。titlebarWindows では、機能 (パレット ウィンドウのようにミニ タイトル バーが表示されます) とボタン (タイトル バーと連動)を追加できますがclose、他のプラットフォームでどの機能フラグが機能するかはわかりません。

デスクトップ アラートは Windows でこの機能を引き続き使用しますが、Linux では libnotify を使用し、Mac では Growl を使用していると思います。

于 2011-02-10T20:38:22.433 に答える