XUL是否支持不同的模态范围?

时间:2013-11-12 01:15:22

标签: firefox xul

是否可以使用XUL(特别是在Firefox中)创建一个对话框:

  • 始终在线,但不会阻止用户与网页的互动

和/或

  • 只有标签模式,而不是窗口模态

1 个答案:

答案 0 :(得分:1)

您肯定可以使用非阻止对话框,但在单击窗口时它会转到后台。有关参考,请参阅this

window.openDialog("chrome://membees/content/dialog.xul",
    "","centerscreen=yes, all=no, titlebar=yes, chrome=yes, toolbar=yes, 
    dialog=no, resizable=no,modal=no","");

但如果您想要更多控制权,可以改为创建panel,并利用关卡属性:

<强>水平

  

指定面板是显示在所有窗口的顶部,还是仅显示在   面板所在的窗口顶部。如果未设置此属性,则   弹出窗口级别取决于平台。在Linux上,默认   value是top,否则,默认值是parent。如果一个小组有   一个或多个文本字段,不应设置此属性,否则   IME或屏幕键盘弹出窗口将显示不正确。对于这些   原因是,如果不需要,你应该避免设置等级。

  

面板显示在所有其他正常窗口的前面,包括其他应用程序窗口。

  

面板显示在面板所在的窗口上方,但在后面   它上面的其他窗户。如果锚定,则子窗口保持其状态   相对于其父窗口的位置。

  • 浮动
  

面板浮在面板所在窗口的上方。在Mac上,面板   仅在应用程序处于活动状态时可见。

要创建它,您必须将其添加到叠加层中的基本元素<popupset>,然后使用以下命令将其打开:

openPopup(anchor,position,x,y,isContextMenu,attributesOverride,triggerEvent )