2011-10-18 17 views
1

モーダルダイアログが閉じられるまでユーザーがメインウィンドウに戻ることができないように新しいダイアログを開くには、正しい方法があります。モーダルモードでダイアログを開く方法

典型的なモーダルウィンドウは、alert()関数によって作成されます。

私は成功せず、このようにそれを試してみた:

.openWindow(null, "chrome://myapp/content/mywindow.xul","mywindow", 
"chrome,centerscreen,all,modal",null); 

答えて

1

あなたはnsIWindowWatcherを使用していることを言及するのを忘れてしまいました。

ウィンドウをモーダルにするには、どのウィンドウをモーダルにする必要があるかを指定する必要があります。 openWindow()コールの最初のパラメータがnullの場合、ウィンドウウォッチャーはどのウィンドウがダイアログを開いたのかわかりません(ダイアログが閉じられるまで中断する必要があるウィンドウ)。

watcher.openWindow(mainWin, "chrome://myapp/content/mywindow.xul", "mywindow", 
        "chrome,centerscreen,all,modal", null); 

それとも単純:つまり

mainWin.openWindow("chrome://myapp/content/mywindow.xul", "mywindow", 
        "chrome,centerscreen,all,modal"); 

window.openDialog()を参照してください。

+0

再びありがとう、ウラジミール!しかし、 'mainWin'変数を' 'chrome://messenger/content/AccountManager.xul ''と定義するとエラーメッセージ(コンソール)になります – mate64

+1

ウィンドウへの参照がない場合は、 [nsIWindowMediator.getMostRecentWindow()](https://developer.mozilla.org/en/nsIWindowMediator#getMostRecentWindow%28%29)を使用して見つけることができます(ウィンドウタイプは 'mailnews:accountmanager"となります)。 –

関連する問題