>Форум 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=9001 |
bunker6 > 15-03-2006 21:35:18 |
Экстеншн для thunderbird. В messengercompose хочу, чтобы вместо label для поля subject была моя кнопка. Как сделать такой оверлей? И каков вообще алгоритм решения таких проблем? Как узнавать название того обьекта, в который я хочу втроить что-то свое? Лезть в исходники, или есть какой-то «культурный» способ? |
Anton > 16-03-2006 15:58:43 |
bunker6 пишет
вроде бы так: Выделить код Код:<overlay id="..."> ... <button id="..." removeelement="id_заменяемого элемента" .../> ... </overlay>
Для Thunderbird тоже есть DOM Inspector: https://addons.mozilla.org/extensions/m … 10&id=1806 |
bunker6 > 17-03-2006 19:51:03 |
Спасибо, особенно за DOM. Выделить код Код:<hbox align="center"> <label value="&subject.label;" accesskey="&subject.accesskey;" control="msgSubject"/> <textbox id="msgSubject" flex="1" class="toolbar" disableonsend="true" oninput="gContentChanged=true;SetComposeWindowTitle();" onkeypress="subjectKeyPress(event);" /> </hbox> |
Anton > 17-03-2006 20:35:48 |
bunker6 пишет
Тогда (по-моему) проще встроить в оверлей родительского окна элемента обработчик onload, при обработке события найти нужный элемент, удалить и заменить своим. Что-то вроде Выделить код Код:var b = document. createElement ("button"); b. setAttribute ("label", "..."); ... var l = document. getElementsByAttribute ("control", "msgSubject") [0]; var p = l. parentNode; p. insertBefore (b, l); p. removeChild (l); |
mojo > 20-03-2006 16:03:45 |
немного похожая задача. overlay xul: Выделить код Код:<overlay> <vbox id="cvbPhone"> <description class="CardViewText" id="cvPhWork" removeelement="true" /> <description class="CardViewText" id="cvPhHome" removeelement="true" /> <description class="CardViewText" id="cvPhFax" removeelement="true" /> <description class="CardViewText" id="cvPhCellular" removeelement="true" /> <description class="CardViewText" id="cvPhPager" removeelement="true" /> <vbox id="my_id"> <hbox align="center"> <vbox flex="1"> <description class="CardViewText" id="cvPhWork" /> </vbox> <vbox pack="end"> <button id="cvPhWork-button" label="call" oncommand="callCall( 'cvPhWork' );" /> </vbox> </hbox> <hbox align="center"> <vbox flex="1"> <description class="CardViewText" id="cvPhHome" /> </vbox> <vbox pack="end"> <button id="cvPhHome-button" label="call" oncommand="callCall( 'cvPhHome' );" /> </vbox> </hbox> <hbox align="center"> <vbox flex="1"> <description class="CardViewText" id="cvPhFax" /> </vbox> <vbox pack="end"> <button id="cvPhFax-button" label="call" oncommand="callCall( 'cvPhFax' );" /> </vbox> </hbox> <hbox align="center"> <vbox flex="1"> <description class="CardViewText" id="cvPhCellular" /> </vbox> <vbox pack="end"> <button id="cvPhCellular-button" label="call" oncommand="callCall( 'cvPhCellular' );" /> </vbox> </hbox> <hbox align="center"> <vbox flex="1"> <description class="CardViewText" id="cvPhPager" /> </vbox> <vbox pack="end"> <button id="cvPhPager-button" label="call" oncommand="callCall( 'cvPhPager' );" /> </vbox> </hbox> </vbox> </vbox> </overlay> |
bunker6 > 21-03-2006 12:48:26 |
Все получается, только вот тут бы еще чуток поподробней. Спасибо, уже не надо. Протупил. window.addEventListener("load", my_function(), false); |