Полезная информация

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№135122-11-2009 22:35:16

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

Отсюда:

Najlus пишет

Внимание!!! - В кнопке присутсвует баг: при открытии закладки из кнопки в текущей вкладке (ЕЗа исключением вкладки Fast Dial) он сразу после открытия сохранённой, открывает текущую. Т.е. для перехода на сохранённую необходимо нажать "назад". При открытии закладки в новой вкладке всё работает отлично.

Это из-за принудительного обновления при

Выделить код

Код:

this. reload = true;

Можно попробовать заменить

Выделить код

Код:

if(this.reload && !this.ios.offline)
        {
            var wn = Components.interfaces.nsIWebNavigation;
            gBrowser.getBrowserForTab(tab).reloadWithFlags(wn.LOAD_FLAGS_BYPASS_PROXY | wn.LOAD_FLAGS_BYPASS_CACHE);
        }

на

Выделить код

Код:

if(this.reload && !this.ios.offline)
        {
            tab.addEventListener("DOMAttrModified", function _l(e) {
                tab.removeEventListener(e.type, _l, true);
                let wn = Components.interfaces.nsIWebNavigation;
                gBrowser.getBrowserForTab(tab).reloadWithFlags(wn.LOAD_FLAGS_BYPASS_PROXY | wn.LOAD_FLAGS_BYPASS_CACHE);
            }, true);
        }

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№135222-11-2009 23:45:56

ndima
Участник
 
Группа: Members
Зарегистрирован: 16-11-2009
Сообщений: 33
UA: Firefox 3.5

Re: Custom Buttons

не подскажите насчет кнопки перезагрузки ff, может есть такая?

Отсутствует

 

№135322-11-2009 23:52:29

Jarichek
Member I
 
Группа: Members
Откуда: Минск
Зарегистрирован: 09-04-2009
Сообщений: 306
UA: Firefox 3.5

Re: Custom Buttons

ndima пишет

не подскажите насчет кнопки перезагрузки ff, может есть такая?

есть, вот

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0D%0A%20%20%3Cname%3ERestart%20%28with%20confirmation%29%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjM2qefiJQAAA6hJREFUOE9VkwtMU1cYx/+9tYAKWAYixWXjIQpYBGEF3AZoNKEyLeCiDQ+dBidjQHj4qHEoyLYw0KCTQUarqLQisGRmG+CCo0zEGljXAI0dr0InJpDNER/Lqin026GajJ3kl3Puyf1+93+/nMPD4pGpFYLHSbxErnJ3Hr3HA3lbbXa71U6WpzbSzv9tU8NORvB5TzFPfmyu/688XStakae7LFWO/pXcYqF930/RwbYpkn8zSYnqMYqq+438ywzTyOr5Ghndb7nk3/uO/2Gv7aUgXesrKuzvKPrpj7lDHQ9pd+sEpTSbKXURu1rMlNJkpo01921LP+p9kHx9cm79CT0BaV2eHvn3mg53/Wk/1P6QZOylheL3WyZIdt3sYGG9sOfYZ/JtjWN0Vj9LkScNTHDgduKOhvEn+bdmSKoepyTNOIs8Tn4Vg+Sr6HewpmqIpEycxARJTLaT/VZ53yxFnPyV4F3Y25bWNk2bNWaKaRijmEujtLyw5wmSGlQIzZQiJEPKkzXdWHpYZxOrRknSOEFvt/xOBXdnab2ij+D/cdczWdsM+dWN0Ju1I+R2VEdI+KqGdcaLwWHLpQDsbG1Dds8cFCxy2RCtrB0n2a1HFJj/M0F05A6FaaZI8IWJBBX3iZP/YEVQntjR3PgrTth6rRMZP9pQzL52jDXtExb71AAFXZ4k770dBHn7MqqyeFDeIOhgH2iTGtaQGvg6BJLzexBZ1YzwzzXYwAj9VIOQ8pesO61BRGUL4tUuzz+zuFG2ASS/DYprBvlXI+fVAVnGZk/Gax6pEItzESnJhTh8H4LWJsN/hQRvIKx6SX+JyYmy9Bzt6gbtYYTW4YFPBT7wLIe3sBRebB0XW++cd84YvP+CMSJZadoUd6QzKNzvBEvqnoucvTfdX5QYRQ5BRi8oS4f5ba14HK3CgETFv7P7hmsnK26sN8VUKI1xRXWGd9KTVT5bndNYOucdCAwo57ouDL9rLzAIKVMHytFjvsiAZ0cNmC4bdB86P7xGqxyOblaZ4quVxoTjxe1r93vlI5ZLgDMgAMelYsu6SlfjGVO4/ZRxFRUYOLvCiOenTdyjs8O+IxfNUXevmjd/ywS1xzqDS18vdpIjAsLF91DAbUdiYKlz94H2gBcKvZAqx1bO1Vh8HistoWaVOeaXMl3IzZQrqy+uLuZnIwyrWDHvfzeZPQgEsdiwPA3Hgytd9NEqNyvjH0m928zGL90HAkqWnHPaDik/CiLHAXs1/gU8lc1wSyvYVQAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20*****%20VARS%20*****%20//%0A%0Avar%20prompts%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/prompt-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIPromptService%29%3B%0A%0A%0A%0A%0A//%20*****%20FUNCTIONS%20*****%20//%0A%0Afunction%20createBrandingBundle%28%29%20%7B%0A%20%20%20%20var%20myBrandingPath%20%3D%20null%3B%0A%20%20%20%20var%20myStringBundleService%20%3D%20Components.classes%5B%22@mozilla.org/intl/stringbundle%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIStringBundleService%29%3B%0A%20%20%20%20%0A%20%20%20%20myBrandingPath%20%3D%20%22chrome%3A//branding/locale/brand.properties%22%0A%20%20%20%20return%20myStringBundleService.createBundle%28myBrandingPath%29%3B%0A%7D%0A%0A%0Afunction%20getWindowType%28%29%20%7B%0A%20%20%20%20//%20Relies%20on%20Branding%20Code%20so%20can%20not%20be%20run%20on%20startup%0A%20%20%20%20var%20myBrandStrings%20%3D%20createBrandingBundle%28%29%3B%0A%20%20%20%20var%20thisBrandShortName%20%3D%20myBrandStrings.GetStringFromName%28%22brandShortName%22%29%0A%20%20%20%20switch%20%28thisBrandShortName%29%20%7B%0A%20%20%20%20%20%20case%20%22Mozilla%20Thunderbird%22%3A%0A%20%20%20%20%20%20case%20%22Shredder%22%3A%0A%20%20%20%20%20%20case%20%22Thunderbird%22%3A%0A%20%20%20%20%20%20%20%20return%20%22mail%3A3pane%22%3B%0A%20%20%20%20%20%20case%20%22Nvu%22%3A%0A%20%20%20%20%20%20%20%20return%20%22composer%3Ahtml%22%3B%0A%20%20%20%20%20%20case%20%22Calendar%22%3A%0A%20%20%20%20%20%20case%20%22Sunbird%22%3A%0A%20%20%20%20%20%20%20%20return%20%22calendarMainWindow%22%3B%0A%20%20%20%20%20%20case%20%22eMusic%20Download%20Manager%22%3A%0A%20%20%20%20%20%20case%20%22eMusic%20Remote%22%3A%0A%20%20%20%20%20%20%20%20return%20%22emusic%3Awindow%22%3B%0A%20%20%20%20%20%20case%20%22Songbird%22%3A%0A%20%20%20%20%20%20%20%20return%20%22Songbird%3AMain%22%3B%0A%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20return%20%22navigator%3Abrowser%22%3B%0A%20%20%20%20%7D%0A%7D%0A%0A%0Afunction%20Restart%28%29%0A%7B%0A%20%20%20%20//%20Notify%20all%20windows%20that%20an%20application%20quit%20has%20been%20requested.%0A%20%20%20%20var%20os%20%3D%20Components.classes%5B%22@mozilla.org/observer-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIObserverService%29%3B%0A%20%20%20%20var%20cancelQuit%20%3D%20Components.classes%5B%22@mozilla.org/supports-PRBool%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsISupportsPRBool%29%3B%0A%20%20%20%20os.notifyObservers%28cancelQuit%2C%20%22quit-application-requested%22%2C%20%22restart%22%29%3B%0A%0A%20%20%20%20//%20Something%20aborted%20the%20quit%20process.%0A%20%20%20%20if%20%28cancelQuit.data%29%0A%20%20%20%20%20return%20false%3B%0A%0A%20%20%20%20var%20wm%20%3D%20Components.classes%5B%22@mozilla.org/appshell/window-mediator%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIWindowMediator%29%3B%0A%20%20%20%20var%20windows%20%3D%20wm.getEnumerator%28%22%22%29%3B%0A%0A%20%20%20%20var%20windowType%20%3D%20getWindowType%28%29%3B%0A%0A%20%20%20%20while%20%28windows.hasMoreElements%28%29%29%20%7B%0A%20%20%20%20%20%20var%20myConfigWindow%20%3D%20windows.getNext%28%29.QueryInterface%28Components.interfaces.nsIDOMWindowInternal%29%3B%0A%20%20%20%20%20%20if%20%28myConfigWindow.document.documentElement.getAttribute%28%22windowtype%22%29%20%21%3D%20windowType%29%20%7B%0A%20%20%20%20%20%20%20%20%20myConfigWindow.close%28%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28%22@zeniko/crashrecoveryservice%3B1%22%20in%20Components.classes%29%20%7B%0A%20%20%20%20%20%20nsPreferences.setBoolPref%28%22extensions.crashrecovery.resume_session_once%22%2C%20true%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20appStartup%20%3D%20Components.interfaces.nsIAppStartup%3B%0A%20%20%20%20Components.classes%5B%22@mozilla.org/toolkit/app-startup%3B1%22%5D%0A%20%20%20%20%20%20.getService%28appStartup%29.quit%28appStartup.eRestart%20%7C%20appStartup.eAttemptQuit%29%3B%0A%0A%20%20%20%20return%20true%3B%0A%7D%0A%0A%0A%0A%0A//%20*****%20MOUSE%20HANDLING%20*****%20//%0A%0Athis.leftclick%20%3D%20function%28evt%29%20%7B%0A%20%20var%20RestartProceed%20%3D%20prompts.confirm%28null%2C%20%22Restart%20Firefox%22%2C%20%22%u041F%u0435%u0440%u0435%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20Firefox%3F%22%29%3B%0A%20%20if%20%28RestartProceed%29%20%7B%0A%20%20%20%20Restart%28%29%3B%0A%20%20%7D%0A%7D%0A%0Athis.aleftclick%20%3D%20function%28evt%29%20%7B%0A%20%20Restart%28%29%3B%0A%7D%0A%0A%0A%0A%0A//%20*****%20INITIALISATION%20*****%20//%0A%0Athis.tooltipText%20%3D%20%22Restart%22%3B%0Athis.style.opacity%20%3D%20%27.85%27%3B%0A%0Athis.setAttribute%28%22onclick%22%2C%22custombuttons.gQuot.mHandler%28event%2C%20this%29%22%29%3B%0Athis.setAttribute%28%27ondblclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%0A%0A%0A%0A%0A//%20*****%20ATTRIBUTES%20*****%20//%0A%0Athis.setAttribute%28%27author%27%2C%27Rawny%2C%20zooot%27%29%3B%0Athis.setAttribute%28%27version%27%2C%274%27%29%3B%0Athis.setAttribute%28%27homepage%27%2C%20%27http%3A//custombuttons2.com/forum/buttons/buttons-database/restart-session-restore.html%27%29%3B%0Athis.setAttribute%28%27dependency%27%2C%27FF2.0*%2C%20FL1.0*%2C%20TB2.0*%2C%20CB2%202.0.5*%27%29%3B%0Athis.setAttribute%28%27status%27%2C%27Complete%27%29%3B%0Athis.setAttribute%28%27public%27%2Ctrue%29%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*%0A%0A%20%20Left%20%20%20%20%20%3D%20Restart%20application%20with%20confirmation%20dialogue%0A%20%20Alt+Left%20%3D%20Restart%20application%0A%0A%20%20Rawny%20%5E%5E%0A%0A*/%0A%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BLeft%20%20%20%20%20%20%20%20%3D%20Restart%20application%20with%20confirmation%20dialogue%0AAlt+Left%20%3D%20Restart%20application%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E

левый клик - перезагрузка с подтверждением
Левый клик + Alt - перезагрузка без подтверждения

Отсутствует

 

№135423-11-2009 00:09:27

ndima
Участник
 
Группа: Members
Зарегистрирован: 16-11-2009
Сообщений: 33
UA: Firefox 3.5

Re: Custom Buttons

Jarichek спасибо за код!
P.S. может разместишь его на странице "Готовые кнопки для Custom Buttons"
сделал у себя в подборке ссылку к этому расширению на эту страницу с описанием о том что это супер расширение!

Добавлено 23-11-2009 00:25:49
okkamas_knife кнопки лево право закрытие вкладок, супер!!!

Отредактировано ndima (23-11-2009 00:12:11)

Отсутствует

 

№135524-11-2009 17:27:18

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

okkamas_knife

как мне избавится от наложения текста?

Перед рисованием как-нибудь очистить канву.
Например ctx. clearRect (x1, y1, x2, y2);


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№135624-11-2009 23:52:34

jg-staffel
Участник
 
Группа: Members
Зарегистрирован: 24-11-2009
Сообщений: 22
UA: Firefox 3.6

Re: Custom Buttons

Нужна кнопка в Thunderbird для удаления сообщения и закрытия его окна. Стандартная кнопка "Удалить" после нажатия открывает в том же окне следующее сообщение. Даже не знаю с чего начать. Где можно узнать команды для кнопок?
Thunderbird 3.0.1pre

Отсутствует

 

№135725-11-2009 08:49:39

jfs2201
Участник
 
Группа: Members
Откуда: Курск
Зарегистрирован: 25-11-2009
Сообщений: 33
UA: Namoroka 3.6

Re: Custom Buttons

okkamas_knife пишет

Anton
огромное спасибо!:D
я наконец допилил погодную кнопку всё работает ок!
http://forum.mozilla-russia.org/viewtop … 31#p397931

Спасибо! А как заставить показывать "+" "-" при отображении температуры?
И интервал обновления какой?

Отредактировано jfs2201 (25-11-2009 08:56:56)


Лучше по утру на Google Earth искать где ты пил, чем на Youtube как

Отсутствует

 

№135825-11-2009 19:17:15

jg-staffel
Участник
 
Группа: Members
Зарегистрирован: 24-11-2009
Сообщений: 22
UA: Firefox 3.6

Re: Custom Buttons

jg-staffel пишет

Нужна кнопка в Thunderbird для удаления сообщения и закрытия его окна. Стандартная кнопка "Удалить" после нажатия открывает в том же окне следующее сообщение

Нашел команды, отвечающие за удаление сообщения и его закрытие, это:
cmd_delete и cmd_close.
В Коде кнопки пишу:
cmd_delete();
cmd_close()

Не работает. Подскажите, что не так делаю?

Отсутствует

 

№135925-11-2009 20:04:43

jg-staffel
Участник
 
Группа: Members
Зарегистрирован: 24-11-2009
Сообщений: 22
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife
Удаление заработало, но вот следующая команда на закрытие не работает.
Код:
goDoCommand('cmd_delete');
goDoCommand('cmd_close')

Отсутствует

 

№136025-11-2009 20:26:34

jg-staffel
Участник
 
Группа: Members
Зарегистрирован: 24-11-2009
Сообщений: 22
UA: Firefox 3.6

Re: Custom Buttons

okkamas_knife
Отдельно тоже не работает. Код команды списывал с MenuManipulator.
Точка с запятой не помогают.
Есть хоткей на эту команду - Ctrl+W, может с ним что-то можно придумать.

Отсутствует

 

№136125-11-2009 20:41:49

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

jg-staffel

следующая команда на закрытие не работает.

Выделить код

Код:

window. close ();

должно сработать.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№136225-11-2009 20:51:27

jg-staffel
Участник
 
Группа: Members
Зарегистрирован: 24-11-2009
Сообщений: 22
UA: Firefox 3.6

Re: Custom Buttons

Anton

Anton пишет

window. close ();

Закрывает вообще приложение.

Правда у меня не отдельные окна сообщений, а вкладки.

okkamas_knife пишет

var br = getBrowser();
br.removeTab(br.mCurrentTab);

Дописал к команде удаления - на сработало.

Отсутствует

 

№136325-11-2009 20:56:22

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

jg-staffel пишет

Правда у меня не отдельные окна сообщений, а вкладки.

Нужно было сразу начинать с того, что это Thunderbird 3.0. =)

Выделить код

Код:

CloseTabOrWindow();

+ mail.tabs.closeWindowWithLastTab в редакторе настроек.

Добавлено 25-11-2009 21:01:01
А на случай открытия в окне можно сделать вот так:

Выделить код

Код:

if("CloseTabOrWindow" in window)
    CloseTabOrWindow();
else
    window.close();

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№136425-11-2009 21:07:09

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

jg-staffel

Правда у меня не отдельные окна сообщений, а вкладки.

Вот тут: http://forum.mozilla-russia.org/viewtopic.php?pid=397960#p397960 было написано

Нужна кнопка в Thunderbird для удаления сообщения и закрытия его окна.

Пробуй

Выделить код

Код:

document. getElementById ("tabmail"). removeCurrentTab ();

Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№136525-11-2009 21:08:15

jg-staffel
Участник
 
Группа: Members
Зарегистрирован: 24-11-2009
Сообщений: 22
UA: Firefox 3.6

Re: Custom Buttons

Infocatcher

Infocatcher пишет

CloseTabOrWindow();

Ура! Работает! Спасибо!

Единственное но: как предотвратить закрытие всего приложения при нажатии этой кнопки в окне почты?

P.S. Вот окончательный вариант, правильно работающий даже при нажатии в окне почты:

goDoCommand('cmd_delete');
document. getElementById ("tabmail"). removeCurrentTab ();

Anton
Спасибо!

Отредактировано jg-staffel (25-11-2009 21:48:36)

Отсутствует

 

№136625-11-2009 21:57:58

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

jg-staffel пишет

Единственное но: как предотвратить закрытие всего приложения при нажатии этой кнопки в окне почты?

Infocatcher пишет

+ mail.tabs.closeWindowWithLastTab в редакторе настроек.

Инструменты – Настройки – Дополнительные – Основные – Редактор настроек
Найти там mail.tabs.closeWindowWithLastTab и установить в false.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№136726-11-2009 10:04:56

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 1008
UA: Firefox 3.5

Re: Custom Buttons

люди добрые, подскажите!
можно ли создать кнопку для сворачивания окна FF в трей, повесить кнопку на горячую клавишу (например Ctrl+`) и чтобы по ней окно и сворачивалось и разворачивалось?
И еще, чтобы при вызове из другой программы или по ссылке url окно тоже само могло развернуться...
Есть конечно похожее расширение - Boss Key, но оно не позволяет разворачивать окно при внешнем вызове и это расширение :)
Хотелось бы просто кнопочку! :beer:

Отсутствует

 

№136828-11-2009 17:45:23

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

Можно: tooltip

Выделить код

Код:

var ps = document.getElementById("mainPopupSet");
var xulns = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
var ttId = this.id + "-tooltip";
var tt = document.getElementById(ttId);
if(tt)
    ps.removeChild(tt);
tt = custombuttonsUtils.makeXML(
    <tooltip xmlns={xulns} id={ttId} align="center">
        <label value="Some image:" />
        <image src="http://forum.mozilla-russia.org/img/browsers/firefox35.png" />
    </tooltip>
);
ps.appendChild(tt);

this.removeAttribute("tooltiptext");
this.setAttribute("tooltip", ttId);

P.S. [занудство] А я бы это обозвал parseFromXML – по аналогии c new DOMParser().parseFromString(). :) [/занудство]


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№136928-11-2009 19:09:36

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

Infocatcher

я бы это обозвал parseFromXML

Она и строки парсит. Я сначала хотел назвать normalizeXML, но после добавления проверки типа аргумента на string назвал так.
Сейчас вот думаю, полное название получается buildDOMNodeFromXMLorStringWithNoXMLPrettyPrintingFlag, может быть, стоило назвать buildDOMNode.

okkamas_knife

будет ли картинка в тултипе обновляться при наведении а если нет то как это можно сделать?

Обновлять по таймеру.

btw: http://forum.mozilla-russia.org/viewtopic.php?pid=397931#p397931
Вот это:

Выделить код

Код:

if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }

явно лишнее, как, собственно и GetXmlHttpObject.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№137028-11-2009 19:33:58

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

Anton пишет

Она и строки парсит. Я сначала хотел назвать normalizeXML, но после добавления проверки типа аргумента на string назвал так.
Сейчас вот думаю, полное название получается buildDOMNodeFromXMLorStringWithNoXMLPrettyPrintingFlag, может быть, стоило назвать buildDOMNode.

Вообще говоря, там же не XML делается, вот с make/build DOMNode уже лучше суть отражает.

Как по мне, так вполне хватает отдельных функций:

Выделить код

Код:

parseFromString: function(str, contentType) {
        return new DOMParser().parseFromString(str, contentType || "application/xml").documentElement;
    },
    parseFromXML: function(xml) {
        var pp = XML.prettyPrinting;
        XML.prettyPrinting = false;
        var elt = this.parseFromString(xml.toXMLString());
        XML.prettyPrinting = pp;
        return elt;
    }

К тому же, промежуточный перевод строк в XML представляется мне лишним.

И не стоит ошибки парсинга давить (вроде, они там вообще не ловятся – по крайней мере, ошибки в консоли на тему кривого XML и неизвестных entities я видел, а вот прерывания выполнения при этом не случалось).

P.S. Кстати, почему там «typeof (xmlObject)», а не «typeof xmlObject» – оператор же.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№137128-11-2009 20:08:54

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

okkamas_knife пишет

ну не знаю.. у меня почемуто без GetXmlHttpObject. не работало..

Совсем без работать и не будет.

скрытый текст
А вот заменить

Выделить код

Код:

xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }

на

Выделить код

Код:

xmlhttp = new XMLHttpRequest();

и убрать

Выделить код

Код:

function GetXmlHttpObject()
{
...
}

вполне можно.

okkamas_knife пишет

проверил.. не обновляется..

Ну, вообще, должна обновляться, но с учетом кэширования.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№137228-11-2009 20:22:41

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

Infocatcher

Вообще говоря, там же не XML делается, вот с make/build DOMNode уже лучше суть отражает.

Стоит сделать псевдоним ?

К тому же, промежуточный перевод строк в XML представляется мне лишним.

Я предполагал ограниченную область использования для этой функции. Цель - сформировать нормальный XUL (менюшки, например) если случайно XML.prettyPrinting=true. А парсинг строк - бонусом и в том же ключе.

И не стоит ошибки парсинга давить (вроде, они там вообще не ловятся – по крайней мере, ошибки в консоли на тему кривого XML и неизвестных entities я видел, а вот прерывания выполнения при этом не случалось).

Если конструктору XML попадет xml с незакрытым тегом и в виде строки (new XML ("<a>")&#59;) - будет ошибка.

P.S. Кстати, почему там «typeof (xmlObject)», а не «typeof xmlObject» – оператор же.

Так он выглядит как функция, и мне комфортней считать что это функция у которой более высокий приоритет, чем у операции сравнения.

okkamas_knife

у меня почемуто без GetXmlHttpObject. не работало..

Если удалить определение функции, то, весьма вероятно что при попытке её вызова случится ошибка.

Попробуй выкинуть определение GetXmlHttpObject и заменить

Выделить код

Код:

xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }

на

Выделить код

Код:

xmlhttp = new XMLHttpRequest ();

Отредактировано Anton (28-11-2009 20:28:24)


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№137328-11-2009 20:31:05

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

okkamas_knife

то есть походу картинка берется из кеша браузера а не запрашивается снова..

Может быть, картинке надо установить атрибут validate="always", я не знаю.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№137428-11-2009 20:37:53

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 3.5

Re: Custom Buttons

Anton

Стоит сделать псевдоним ?

Не обязательно, но «правильно» названные функции сами себе документация. =)

Я предполагал ограниченную область использования для этой функции. Цель - сформировать нормальный XUL (менюшки, например) если случайно XML.prettyPrinting=true. А парсинг строк - бонусом и в том же ключе.

Да, есть такое – не проверил с new XML(). А вот парсер лопает все подряд, кажется.
Так что, по-водимому, достаточно завернуть в try/catch только new XML(). Ну, и хорошо бы оттуда сделать что-нибудь вроде

Выделить код

Код:

Components.utils.reportError(err);

Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№137528-11-2009 20:52:55

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 3.5
Веб-сайт

Re: Custom Buttons

Infocatcher

Ну, и хорошо бы оттуда сделать что-нибудь вроде

Да, но инфраструктуры, позволяющей определить из какой строки кода и какой кнопки была вызвана функция, в CB пока нет.
И я думаю, что сейчас я с такой задачей справиться не смогу.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]