Mozilla XUL - 对话框按钮的ID

时间:2014-07-18 20:09:59

标签: javascript xul

我在想是否有办法在对话框中为“接受”和“取消”按钮添加ID属性?

<dialog id="myDialog" title="My Dialog"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        onload="window.sizeToContent();"
        buttons="accept,cancel"
        buttonlabelaccept="Set Favourite"
        buttonaccesskeyaccept="S"
        ondialogaccept="return doSave();"
        buttonlabelcancel="Cancel"
        buttonaccesskeycancel="n"
        ondialogcancel="return doCancel();">

我知道我可以添加这样的按钮:

<button
    id="identifier"
    class="dialog"
    label="OK"
    image="images/image.jpg"
    disabled="true"
    accesskey="t"/>

但是可以在对话框上下文中完成吗?

1 个答案:

答案 0 :(得分:3)

可以在对话框上下文中完成。但是,您发布的代码可能无法正常工作,具体取决于您希望实现的目标。

您发布的按钮不会作为接受按钮,除非它具有特殊属性dlgtype="accept"。引用this article谈论创建自定义对话框按钮:

  

如果您对对话框中预定义按钮的布局不满意,可以在XUL文件中放置显式按钮元素并为其添加dlgtype属性。 dlgtype的有效值是上面列出的六种按钮类型。

<button
    dlgtype="accept"
    class="dialog"
    label="OK"
    image="images/image.jpg"
    disabled="true"
    accesskey="t"/>

这种方法可让您选择接受按钮的位置,样式等等。


如果目标是在代码中的某处获取接受按钮并操纵其属性,则只需使用document.documentElement.getButton("accept")。引用同一篇文章:

// Disable the OK and Cancel btns
document.documentElement.getButton("accept").disabled = true;
document.documentElement.getButton("cancel").disabled = true;

如果你想要不同的东西,请告诉我。