>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Как поменять изображение на кнопке? http://forum.mozilla-russia.org/viewtopic.php?id=10032 |
Sky > 03-05-2006 14:04:15 |
Есть кнопка: Выделить код Код:<toolbarpalette id="BrowserToolbarPalette"> <toolbarbutton id="TransBar-Button" type="menu-button" class="toolbarbutton-1 chromeclass-toolbar-additional" tooltiptext="&transbar.button.tooltip;" oncommand="TranslatePage();" label="&transbar.button.text;"/> </toolbarpalette> Для кнопки определен стиль: Выделить код Код:#TransBar-Button { list-style-image: url("chrome://translatebar/skin/button.gif"); } toolbar[iconsize="small"] #TransBar-Button { list-style-image: url("chrome://translatebar/skin/button_small.gif"); } А как теперь из скрипта поменять изображение на кнопке? При этом нужно поменять изображение и для маленького и для большого варианта. |
Anton > 03-05-2006 14:23:38 |
Ну, например добавить в *.css что-то вроде Выделить код Код:#TransBar-Button[transbarstate="1"] { list-style-image: url("chrome://translatebar/skin/state_1_button.gif"); } toolbar[iconsize="small"] #TransBar-Button[transbarstate="1"] { list-style-image: url("chrome://translatebar/skin/state_1_button_small.gif"); } А при необходимости сменить изображение устанавливать/удалять кнопке атрибут transbarstate: Выделить код Код:... if (...) { ... document. getElementById ("BrowserToolbarPalette"). setAttribute ("transbarstate", "1"); ... } ... ... if (...) { ... document. getElementById ("BrowserToolbarPalette"). removeAttribute ("transbarstate"); ... } ... |
Sky > 03-05-2006 17:13:54 |
Спасибо! Еще один вопрос (уже, правда, по другой теме ) Выделить код Код:<popup id="contentAreaContextMenu"> <menuseparator/> <menuitem label="123456" oncommand="TranslateSelection();" id="TransBar-PM-Item"/> </popup> Пункт появляется в меню. А вот как сделать, чтобы он появлялся только в том, случае, когда в окне выделен фрагмент текста? |
vladmir > 03-05-2006 19:41:29 |
Sky
В Autocopy можно посмотреть как сделано. |
Sky > 03-05-2006 23:05:12 |
У меня есть расширение, которое добавляет пункт в контекстное меню, смотрел его исходники, но что-то тольку ноль. |
Merlyel > 04-05-2006 09:39:30 |
vladmir |
vladmir > 04-05-2006 11:54:53 |
Sky
От меня, тогда - ваще минус.)))
Что-то сомневаюсь... |
Anton > 04-05-2006 13:05:50 |
Выделить код Код:document. getElementById ("contentAreaContextMenu"). addEventListener ("popupshowing", setMenuitemsVisible, true); function setMenuitemsVisible () { document. getElementById ("needed_menuitem_id"). hidden = (window. getSelection () == ""); } Разумеется, "needed_menuitem_id" должен быть в оверлее contentAreaContextMenu. |
Sky > 04-05-2006 13:43:48 |
Спасибо. 2 vladmir Сделал так: Выделить код Код:document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", OnContextMenuShowing, false); function OnContextMenuShowing() { var SelItem = document.getElementById("TransBar-PM-Item"); var IsSelection = false; if(gContextMenu) IsSelection = gContextMenu.isTextSelected; if(SelItem) SelItem.hidden = !IsSelection; } |
cesspit > 05-05-2006 16:19:59 |
у меня странный эффект проявляется, при вставке в код фрагмента Выделить код Код:document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", OnContextMenuShowing, false); (функция обработчик - OnContextMenuShowing ничего не делает) у меня из контекстного меню исчезает куча пунктов (вместе с моими). Ни у кого нет идей с чем это может быть связано? |
cesspit > 05-05-2006 16:52:49 |
cesspit пишет
разобрался, точнее подсмотрел в transbar &), тока я вот подумал что скрывать элемент в меню это не очень красиво выглядит, гораздо симпатичнее было бы дизаблить его, но как удалось установить, установка(масло маслянное блин ) disabled=true для xul-элемента(пункта меню) не означает замены цвета шрифта на серый. То есть если я хочу добится вида задизабленного пункта меню как, например "Назад", "Вперёд" на пустой странице мне нужно руками менять цвет пункта меню? |
Sky > 06-05-2006 12:55:01 |
Почему-то принято в контекстном меню не дизаблить элементы, а скрывать. Выделить код Код:var SelItem = document.getElementById("TransBar-Context-SelectionItem"); SelItem="true"; ничего не происходит. или установке этого аттрибута статически, в .xul пункт меню пропадает. |