Страницы: 1
Экстеншн для thunderbird. В messengercompose хочу, чтобы вместо label для поля subject была моя кнопка. Как сделать такой оверлей? И каков вообще алгоритм решения таких проблем? Как узнавать название того обьекта, в который я хочу втроить что-то свое? Лезть в исходники, или есть какой-то «культурный» способ?
Отредактировано bunker6 (15-03-2006 21:39:36)
Отсутствует
Экстеншн для thunderbird. В messengercompose хочу, чтобы вместо label для поля subject была моя кнопка. Как сделать такой оверлей?...
вроде бы так:
<overlay id="..."> ... <button id="..." removeelement="id_заменяемого элемента" .../> ... </overlay>
...Как узнавать название того обьекта, в который я хочу втроить что-то свое? Лезть в исходники, или есть какой-то «культурный» способ?
Для Thunderbird тоже есть DOM Inspector: https://addons.mozilla.org/extensions/m … 10&id=1806
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Спасибо, особенно за DOM.
А что делать в том случае, если у конкретного элемента не прописан id? К нему же можно как-то обратиться (скриптом)? В моем случае это:
<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>
Отсутствует
...если у конкретного элемента не прописан id?...
Тогда (по-моему) проще встроить в оверлей родительского окна элемента обработчик 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);
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
немного похожая задача.
в thunderbird в addressbook хочется добавить кнопку напротив каждого телефона.
не очень понятно, как управлять их видимостью, т.к. неясно как приделать event handler к смене текущей карточке.
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>
Отредактировано mojo (20-03-2006 16:04:27)
Отсутствует
встроить в оверлей родительского окна элемента обработчик onload
Все получается, только вот тут бы еще чуток поподробней.
Спасибо, уже не надо. Протупил.
window.addEventListener("load", my_function(), false);
Отредактировано bunker6 (21-03-2006 12:56:13)
Отсутствует
Страницы: 1