2011-02-09 10 views
0

私は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のウィンドウが決してフォーカスを得ることができず、焦点を合わせずにウィンドウをオープン/復元するだけの場合です。

+0

私の知る限り、通常のウィンドウは表示されたときに常にアクティブになり、ポップアップウィンドウ(メニュー、ドロップダウン、アラートなど)は表示されません。 – Neil

+0

@Neilはい、そうです。新しいウィンドウの前に、別のウィンドウの前に情報を表示したいので、この新しい情報ウィンドウにフォーカスがないようにしますユーザーはフィールドへの入力など、継続することができます。 –

+0

@Neilポップアップはオプションではありません。なぜなら、Xulのポップアップは、別のウィンドウが開いているときに隠れるからです。だから、私はポップアップのように、フォーカスを得られない常時オンのウィンドウを使用する必要があります。クールであれば、すべてのウィンドウの前にポップアップを作成する方法があります。少なくともXulアプリケーションのウィンドウです)。 –

答えて

1

openDialogコールのpopupウィンドウ機能を使用して、XULウィンドウをポップアップのように開くことができます。フォーカスを奪うことのない一番上のウィンドウが開きます。デフォルトでは、ポップアップウィンドウにOSクロムはありません。 Windowsの場合は、titlebar機能(パレットウィンドウの場合はミニタイトルバー)とcloseボタン(タイトルバーと組み合わせて)を追加できますが、他のプラットフォームで機能するフラグはわかりません。

デスクトップアラートではWindowsでもこの機能が使用されていますが、現在Linuxではlibnotifyを使用していますが、MacではGrowlが使用されています。

+0

+1アイデアは完璧ですが、完全に透明なウィンドウから開いているので、hidePopup()で閉じることはできません。どんなアイデアを私はそれをプログラムで閉じる/隠すことができますか? 'close()'も動作しません.. –

+0

ops、 'close()'が動作します..メソッド呼び出し時にエラーメッセージなしでタイプミスが発生しました.. –

+0

残念ながら、残念ながら、 'openDialog ( 'top.xul'、 'TopWindow'、 'chrome、popup'); ' –

関連する問題