XUL按钮看起来像已禁用,并且不是“可推送的”(但是调用了onclick函数)

时间:2011-11-14 16:02:02

标签: button firefox-addon xul

我正在开发Firefox扩展程序。我熟悉JS,CSS,XML,但对XUL很新。

我希望以每个下载文件旁边添加按钮的方式覆盖下载以重命名。我已经完成了它(放置一个按钮并处理重命名逻辑)。

剩下的就是UI。该按钮看起来像已禁用,但显然不是,因为我可以单击它并弹出窗口。

现在看来它是这样的:

XUL button in Firefox downloads

和相应的代码:

<xul:button label="Rename" tabindex="1" onclick="foo()"/>

添加disabled="false"没有帮助。我可以添加style="color:black; text-shadow:0 0;"这使它看起来像预期的,但是有几个问题(我认为类似于禁用的外观可能是原因):

  • 我添加的按钮不像本机“清除列表”按钮那样“可推动”(按下它不会改变它的外观,即它不会“下降”)。但是,会调用foo()
  • 我无法从键盘导航到带有 Tab 的按钮。
  • 我读过一个应该更喜欢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

0 个答案:

没有答案