2011-10-18 92 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」)。 –

相關問題