Mozilla XUL -对话框按钮'

Mozilla XUL - Dialog button's ID

本文关键字:按钮 对话框 XUL Mozilla      更新时间:2023-09-26

我在想是否有办法在对话框中添加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"/>

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

可以在对话框上下文中完成。但是,您发布的代码可能不会像预期的那样工作,这取决于您期望实现的目标。

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

如果对dialog中预定义按钮的布局不满意,可以在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;