【问题标题】:How to open a dialog in modal-mode如何在模态模式下打开对话框
【发布时间】:2011-10-18 13:58:17
【问题描述】:

什么是正确的方法,打开一个新对话框,以便用户在模式对话框关闭之前无法返回主窗口。

一个典型的模态窗口是由 alert() 函数创建的。

我试过这样没有成功:

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

【问题讨论】:

    标签: xul thunderbird


    【解决方案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()

    【讨论】:

    • 再次感谢您,弗拉基米尔!但是当我将 mainWin 变量定义为 "chrome://messenger/content/AccountManager.xul" 时,它会导致错误消息(控制台)
    • 如果您还没有对该窗口的引用,您可以使用nsIWindowMediator.getMostRecentWindow() 找到它(在这种情况下,窗口类型为"mailnews:accountmanager")。
    猜你喜欢
    • 2018-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2021-09-11
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多