我正在开发Firefox扩展程序。我熟悉JS,CSS,XML,但对XUL很新。
我希望以每个下载文件旁边添加按钮的方式覆盖下载以重命名。我已经完成了它(放置一个按钮并处理重命名逻辑)。
剩下的就是UI。该按钮看起来像已禁用,但显然不是,因为我可以单击它并弹出窗口。
现在看来它是这样的:
和相应的代码:
<xul:button label="Rename" tabindex="1" onclick="foo()"/>
添加disabled="false"
没有帮助。我可以添加style="color:black; text-shadow:0 0;"
和这使它看起来像预期的,但是有几个问题(我认为类似于禁用的外观可能是原因):
foo()
。command
/ oncommand
而不是onclick
(因为例如 Tab 导航),但在我的示例中,仅onclick
调用foo()
。另外两个不起作用。如果需要更详细的代码(我完全从其他扩展中借用):
<binding id="download-done" extends="chrome://mozapps/content/downloads/download.xml#download-base">
<content>
<xul:hbox flex="1">
...
<xul:vbox pack="start" flex="1">
...
<xul:hbox align="center" flex="1">
<xul:label xbl:inherits="value=status,tooltiptext=statusTip" crop="end" flex="1" class="status"/>
<xul:button label="Rename" tabindex="1" onclick="foo()"/>
</xul:hbox>
</xul:vbox>
</xul:hbox>
</content>
</binding>
非常感谢。
修改1
我上面提到的代码来自原始的Firefox download.xml(<binding id="download-done">
),只是通过添加<xul:button>
来更改。
对于更奇怪的事情,我从同一个文件中获取了另外两个绑定(<binding id="download-paused">
和<binding id="download-downloading">
)并向它们添加了完全相同的<xul:button>
,在这两种情况下,按钮都是“可推动”和黑色(简而言之,正常,应该是)。它也可以通过 Tab 从键盘导航,即使没有明确设置tabindex
。