2012-03-15 4 views
0

Как динамически изменять изображение панели инструментов с помощью javascript?изменить изображение панели инструментов

Я стараюсь это:

<toolbarbutton id="" oncommand="this.style.listStyleImage= 'url(green-chrono.png)';alert('boom');" label="Menu-button" type="menu-button" style="list-style-image: url(chrono.png);"> 
     <menupopup id="edit-popup1"> 
      <menuitem id="toto" label="Accéder à la pointeuse"/> 
      <menuitem id="recap" label="Accéder au récapitulatif des heures"/> 
     </menupopup> 
    </toolbarbutton> 

Но это не работает, когда я нажимаю на кнопку, изображение исчезает.

images и xul находятся в одном каталоге.

Спасибо за вашу помощь

+1

В принципе, код работает для меня, но вы добавили 2 изображения для одной команды. Проверьте эту ссылку https://developer.mozilla.org/en/Creating_toolbar_buttons – linguini

ответ

1

В общем подходе является правильным, но вы используете относительный URL. Относительные URL-адреса разрешены относительно таблицы стилей - поэтому, если chrome://myextension/skin/style.css использует относительный URL-адрес green-chrono.png, браузер загрузит chrome://myextension/skin/green-chrono.png. В случае, если вы здесь, нет внешней таблицы стилей, но это означает, что URL-адрес будет разрешен относительно документа XUL. Я предполагаю, что этот XUL-код находится в окне браузера - это означает, что загружен URL-адрес chrome://browser/content/green-chrono.png, и он, конечно, не существует. Решение: укажите абсолютный URL, а не относительный, например:

this.style.listStyleImage = 'url(chrome://myextension/skin/green-chrono.png)'; 
Смежные вопросы