私はwindow.blur()を使用して、フォーカスなしでウィンドウを開くようにしようとしています(またはフォーカスとフォーカスが非常に速く、フォーカスがないように見えます)。Xulの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>
OBS。私は2番目のウィンドウを開いた後、フォーカスを呼び出すためにsetTimeout(window.focus、1)を使うと考えることができます。しかし、私はフォーカスを処理するために2番目のウィンドウが必要です。完璧なシナリオは、第2のウィンドウが決してフォーカスを得ることができず、焦点を合わせずにウィンドウをオープン/復元するだけの場合です。
私の知る限り、通常のウィンドウは表示されたときに常にアクティブになり、ポップアップウィンドウ(メニュー、ドロップダウン、アラートなど)は表示されません。 – Neil
@Neilはい、そうです。新しいウィンドウの前に、別のウィンドウの前に情報を表示したいので、この新しい情報ウィンドウにフォーカスがないようにしますユーザーはフィールドへの入力など、継続することができます。 –
@Neilポップアップはオプションではありません。なぜなら、Xulのポップアップは、別のウィンドウが開いているときに隠れるからです。だから、私はポップアップのように、フォーカスを得られない常時オンのウィンドウを使用する必要があります。クールであれば、すべてのウィンドウの前にポップアップを作成する方法があります。少なくともXulアプリケーションのウィンドウです)。 –