Кнопка XUL выглядит отключенной и не является «нажимной» (но вызывается функция onclick) - PullRequest
4 голосов
/ 14 ноября 2011

Я разрабатываю расширение для Firefox. Я знаком с JS, CSS, XML, но плохо знаком с XUL.

Я хочу переопределить Загрузки, добавив кнопку рядом с каждым загруженным файлом, чтобы переименовать его. Я уже сделал это (размещение кнопки и обработка логики переименования).

То, что осталось, это пользовательский интерфейс. Кнопка выглядит отключенной, но, видимо, нет, потому что я могу нажать на нее, и появится всплывающее окно.

Вот как это выглядит сейчас:

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.

...