>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Сustom Buttons http://forum.mozilla-russia.org/viewforum.php?id=34 >Готовые кнопки для Custom Buttons http://forum.mozilla-russia.org/viewtopic.php?id=41987 |
bunda1 > 22-11-2009 13:29:00 |
Постим сюда только готовые и оформленные кнопки! - все вопросы, замечания, обсуждения тут: https://forum.mozilla-russia.org/viewto … 591&p=last Как добавить кнопку(помощь для новичка) 1 Устанавливаем расширение Custom Buttons. второй способ: Как удалить кнопку(помощь для новичка) ПКМ на кнопке и нажать пункт Удалить в контекстном меню кнопки или открыть Управление дополнениями и там открыть вкладку Custom Buttons найти нужную кнопку и нажать Удалить. Шаблон добавления готовой кнопки Выделить код Код:[b][color=#FF4F00]Название кнопки[/color][/b](Firefox + версия), от какого числа кнопка. Описание что кнопка делает, указать если для работы кнопки нужны расширения и программы. [b]Клики на кнопке:[/b] [color=#006600]ЛКМ[/color] => описание, [color=#006600]СКМ[/color] => описание, [color=#006600]ПКМ[/color] => описание. Другие клики(если они есть) [spoiler=Код кнопки, вкладки код и инициализации:] [b]Код кнопки:[/b] тут код получаемый по ПКМ - Копировать код в буфер [b]Код:[/b] тут код из вкладки Код(если он есть) [b]Инициализация:[/b] тут код из вкладки Инициализация(если он есть) [/spoiler] Автор кнопки(если он известен): [b]указать автора без ссылки на его профиль[/b] + ссылка на страницу кнопки если такая есть. Важно! Расширение Custom Buttons (bootstrap) можно взять тут 11-04-2023 12:33:42, но перед установкой нужно сделать это Как отключить проверку цифровых подписей в дополнениях Firefox. |
Najlus > 22-11-2009 14:34:26 |
ВСЕ КНОПКИ В МОЁМ СООБЩЕНИИ ДЛЯ FIREFOX ------------------------------------------------------------------------------------------------------------------------- Иконка
Код "ссылка"
Код кнопки
------------------------------------------------------------------------------------------------------------------------- Block Site Button Кнопка для дополнения BlockSite. Данная кнопка выводит запрос на добавление текущей страницы в список блокировки и вносит её туда в случае подтверждения. Иконка
Код "ссылка"
Код кнопки
------------------------------------------------------------------------------------------------------------------------- DownloadFolder С помощью данной кнопки открывается папка, куда сохраняются загрузки. Иконка
Код "ссылка"
Код кнопки
-------------------------------------------------------------------------------------------------------- Qick Bookmarks Кнопка для "одноразового" хранения закладок. Для того чтобы сохранить закладку: достаточно перетащить вкладку на кнопку. При этом вкладка закроется а закладка на неё появится в списке кнопки. При открытии закладки она убирается из списка. Открытые страницы проматываются к тому месту, где они были сохранены. Удалить закладку можно щёлкнув на неё правой кнопкой мыши. Для того чтобы открыть все закладки из кнопки нужно нажать на кнопку средней кнопкой мыши. Иконка Тёмный вариант
Светлый вариант
Код "ссылка" (тёмный вариант) Код "ссылка" (светлый вариант) Код кнопки - Инициализация!!!
|
Jarichek > 24-11-2009 20:52:38 |
Bookmarks Menu (Firefox) Bookmarks Menu Код кнопки Выделить код Код: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%3EBookmarks%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20document.%20getElementById%20%28%22bookmarksMenuPopup%22%29.%20cloneNode%20%28true%29%3B%0Afunction%20delId%28node%29%20%7B%0A%20%20%20%20node.removeAttribute%28%22id%22%29%3B%0A%20%20%20%20Array.forEach%28node.childNodes%2C%20delId%29%3B%0A%7D%0AdelId%28menu%29%3B%0Athis.%20appendChild%20%28menu%29%3B%0A//this.%20type%20%3D%20%22menu-button%22%3B%0A//this.%20orient%20%3D%20%22horizontal%22%3B%0Athis.%20setAttribute%20%28%22popup%22%2C%20menu.%20id%20%3D%20%22cbBookmarks-%22%20+%20this.%20id%29%3B%0A%0Athis.%20onclick%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%201%29%0A%20%20%20%20%7B%0A%20%20%20%20%09if%20%28event.%20originalTarget.%20nodeName%20%21%3D%20%22toolbarbutton%22%29%0A%20%20%20%20%09%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20PlacesCommandHook.bookmarkCurrentPage%28true%2C%20PlacesUtils.bookmarksMenuFolderId%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28event.%20button%20%3D%3D%202%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28event.%20shiftKey%20%7C%7C%20%28event.%20originalTarget.%20nodeName%20%21%3D%20%22toolbarbutton%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20toggleSidebar%28%27viewBookmarksSidebar%27%29%3B%0A%20%20%20%20%20%20%20%20event.%20preventDefault%20%28%29%3B%0A%20%20%20%20%20%20%20%20event.%20stopPropagation%20%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E Инициализация Выделить код Код:var menu = document. getElementById ("bookmarksMenuPopup"). cloneNode (true); function delId(node) { node.removeAttribute("id"); Array.forEach(node.childNodes, delId); } delId(menu); this. appendChild (menu); //this. type = "menu-button"; //this. orient = "horizontal"; this. setAttribute ("popup", menu. id = "cbBookmarks-" + this. id); this. onclick = function (event) { if (event. button == 1) { if (event. originalTarget. nodeName != "toolbarbutton") return; PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId); } else if (event. button == 2) { if (event. shiftKey || (event. originalTarget. nodeName != "toolbarbutton")) return; toggleSidebar('viewBookmarksSidebar'); event. preventDefault (); event. stopPropagation (); } }; Иконка (взята из расширения Personal Menu) Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAgZJREFUeNqMkztoVEEUhv+7m2sgChJsFLXIFpqAUUyRRsS10UIhTToLAzaWWrvg2tnZCCJYBGwUJCgSbSMqoo2yplgbH0ExnSDmzsydl/+cfUjCLmbg3JnDzPnOf87MzWKMaDQapwDUrbVzeZ4f54zvu6ZgSgdNU6XlbGVtrENJcz7g84NmNoLOqNOa5xau4ujEXmxnzCw0Ze4BxFtevIW728i8eP1yHySAarWKGAMqWYba5DRK5xnguxAnQMOyjLFor76XwFR6H2DLUhzvPaohIjCLJ8TRD95xzczOir91VNKnJMDaZJYyPSwDLAFHDu5hYPItvO1Aepk3AbRR0FpToqZ8KyUk2PyJSYxkkQqt+CnJQAVGaWhFiCpQsk5DRWdnahgbzXHh9DR2sNCSAE/Q1iE9UAzMuj2oT+3H+dlD/QOzhw+IPXrRwtM3q/j5YwCgKP4QUJH6lt+28erjV9y8dKZ/6Nq9Z3jX/iYNHViCLgqRr4oNKG2weyyXzaWXLZkn9o3DpSY7N6QENjCVEEKAI2B85yiu3H6MT2vrWFr5gJPHarwBJ/sDAUmB9IBvwCqDJ69b7Djvn5LXqOr+83UJHgowWnVfF+B4lV4eTwrwHfPddRwCcLyiJEH2eVUhuH9BzBpT9ug5dx7RxeadzQAeXCGgDu5v/P713z/xy8MbWW/9V4ABABX3fg9RweLRAAAAAElFTkSuQmCC Кнопка истории (Firefox) Кнопка служит для быстрого доступа к истории посещения (не путать с закрытыми вкладами - здесь выводятся посещенные адреса) Левый клик мышью - выводит список последних 37-и последних адресов Средний клик мышью - Открывается весь журнал посещений в отдельном окне. Правый клик мышью - Открывается история посещений слева в боковой панели. Shift+правый клик - меню кнопки. [spoiler=Кнопка истории]Код кнопки Выделить код Код: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%3EHistory%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20document.%20getElementById%20%28%22goPopup%22%29.%20cloneNode%20%28true%29%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20menu.%20childNodes.%20length%3B%20i++%29%0A%7B%0A%20%20%20%20if%20%28menu.%20childNodes%20%5Bi%5D.%20hasAttribute%20%28%22id%22%29%29%0A%20%20%20%20%20%20%20%20menu.%20childNodes%20%5Bi%5D.%20setAttribute%20%28%22hidden%22%2C%20%22true%22%29%3B%0A%7D%0Amenu.%20setAttribute%20%28%22place%22%2C%20%22type%3D0%26sort%3D4%26maxResults%3D37%22%29%3B%0Afunction%20delId%28node%29%20%7B%0A%20%20%20%20node.removeAttribute%28%22id%22%29%3B%0A%20%20%20%20Array.forEach%28node.childNodes%2C%20delId%29%3B%0A%7D%0AdelId%28menu%29%3B%0Athis.%20appendChild%20%28menu%29%3B%0A//this.%20type%20%3D%20%22menu%22%3B%0A//this.%20orient%20%3D%20%22horizontal%22%3B%0Athis.%20setAttribute%20%28%22popup%22%2C%20menu.%20id%20%3D%20%22cbHistory-%22%20+%20this.%20id%29%3B%0A%0Athis.%20onclick%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20node%20%3D%20event.%20originalTarget.%20node%3B%0A%20%20%20%20if%20%28%28event.%20button%20%3C%202%29%20%26%26%20node%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20PlacesUIUtils.%20markPageAsTyped%20%28node.%20uri%29%3B%0A%20%20%20%20%20%20%20%20openUILink%20%28node.%20uri%2C%20event%2C%20false%2C%20true%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28event.%20button%20%3D%3D%201%29%0A%20%20%20%20%20%20%20%20PlacesCommandHook.showPlacesOrganizer%28%27History%27%29%3B%0A%20%20%20%20else%20if%20%28event.%20button%20%3D%3D%202%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20if%20%28event.%20shiftKey%20%7C%7C%20%28event.%20originalTarget.%20nodeName%20%21%3D%20%22toolbarbutton%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20toggleSidebar%20%28%22viewHistorySidebar%22%29%3B%0A%20%20%20%20%20%20%20%20event.%20preventDefault%20%28%29%3B%0A%20%20%20%20%20%20%20%20event.%20stopPropagation%20%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E Инициализация Выделить код Код:var menu = document. getElementById ("goPopup"). cloneNode (true); for (var i = 0; i < menu. childNodes. length; i++) { if (menu. childNodes [i]. hasAttribute ("id")) menu. childNodes [i]. setAttribute ("hidden", "true"); } menu. setAttribute ("place", "type=0&sort=4&maxResults=37"); function delId(node) { node.removeAttribute("id"); Array.forEach(node.childNodes, delId); } delId(menu); this. appendChild (menu); //this. type = "menu"; //this. orient = "horizontal"; this. setAttribute ("popup", menu. id = "cbHistory-" + this. id); this. onclick = function (event) { var node = event. originalTarget. node; if ((event. button < 2) && node) { PlacesUIUtils. markPageAsTyped (node. uri); openUILink (node. uri, event, false, true); } else if (event. button == 1) PlacesCommandHook.showPlacesOrganizer('History'); else if (event. button == 2) { if (event. shiftKey || (event. originalTarget. nodeName != "toolbarbutton")) return; toggleSidebar ("viewHistorySidebar"); event. preventDefault (); event. stopPropagation (); } }; Иконка (также позаимствована из расширения Personal Menu) Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAwlJREFUeNpUk99LFFEUx79zZ2dnRncdd13dpEJtWX/3UKBFPx6Cgt6i8KGXoKKHLIKK8r0XISN705fAf0ACI3qIXiKJskj6QRIlmVhCurq/dGfmzp3p3EkXugwz3Ln3fM85n3OOEgQBtte9B+Oq7wdHa2rMM/FYbb9h6Bl5btvOfKm8MWPb9iNFUV7evjEotm2UbYG798eao1FtqK1194W6eMzinEP4W+J0hzEVpVK5sPR7eYLORoZuXlmuCkjjeLx2vCO755QQApwMrYYE4rqGTYfDFQHWV9fAfCmk4MfPxalKpTIoRdRaK61qmnanpyt73nE5ahIWevftxY4daQwPj+LA8ZNoaW1GKp0GpYFysYSEZXUWikV1+tXMc0Y5H2lr2XVJCB+xZD26e7ugqmqVy9zsO3Duww8UdHR3Ip5sAPcEmhqbLlH0RxgBG7Csupjr+8h2ZuliAI/EBO3l8oUHKe64Hhn6aO9sh1AYTMOMRaPRAUa0+ziFnkglwcizoHwpKogtuCyihf8k0I0Kh2lqxIeiIMiGbvQxQ9czHnnTAgmPPCtB1UCuF8+eQlGVUJQHPgwtAlVGRXtil2HhtSCsVLj+hU9pULiplIXFhQW8fzNL9VLoUcI78lxWT9pEqDnmCUHKDhgCOvD5vwgcV+Di1WvYf/Ajnj15jM2Kg8OHDoQCHCz0yD0+z6g0b2WTrK/k4DkiVJWUZSSViof2nm4cPnYCG8U80vU1yBds5HO5kBc5f8voNVkql8tUT3z/+g2ayqBTnpRuyERWRXo+d/Y0HC7w4dMXMGLguk7Z8/gko7yml34tP5T55VdWMfd5TrYnGhMmMmkLbY11aKw3sVrYxPTrWRRXV8CojGtrOWkzHbbyyOhYs2ma47t37jzFyYugdq1LJom2IPo+XKgorOWgeB5USncl92fKceywlavDJEUikcgQddgF0zAsl3rDD6sTQLJnjMF2nML6em5C+GKEJnL5v2ncHmfaH9V1/Ywe1fsjES0TUifajm3P0Dcc51vXL1fH+a8AAwBdk7sH+MV5ZQAAAABJRU5ErkJggg== |
Jarichek > 25-11-2009 01:12:12 |
Add-on's (Firefox) Add-on's Код кнопки Выделить код Код: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%3E%u0414%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.url2xul%20%3D%20%27chrome%3A//mozapps/content/extensions/extensions.xul%27%3B%0Athis.onClick%20%3D%20function%20%28e%29%20%7B%0A%20%20%20%20switch%20%28e.button%29%20%7B%0A%20%20%20%20case%200%3A%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20BrowserOpenAddonsMgr%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20BrowserOpenExtensions%28%27extensions%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.ctrlKey%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20t%20%3D%20gBrowser.mTabs%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20current%20%3D%20content.document.location.href%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20i%20%3D%20t.length%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28current%20%3D%3D%20this.url2xul%29%20gBrowser.removeCurrentTab%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20while%20%28true%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28--i%20%3C%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28current%20%3D%3D%20%27about%3Ablank%27%29%20//%20replace%20blank%20tab%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20loadURI%28this.url2xul%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20//%20add%20new%20tab%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28this.url2xul%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28t%5Bi%5D.linkedBrowser.currentURI.spec%20%3D%3D%20this.url2xul%29%20//%20popup%20loaded%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.tabContainer.childNodes%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20openWebPanel%28this.tooltipText%2C%20this.url2xul%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%3B%0A%7D%3B%0Athis.setAttribute%28%27onclick%27%2C%20%27this.onClick%28event%29%3B%27%29%3B%0A%0Aconst%20Cb%20%3D%20custombuttons%3B%0Aconst%20EXTENSION%20%3D%20Ci.nsIUpdateItem.TYPE_EXTENSION%3B%0A%0A%0A%0Afunction%20prop%28aElement%2C%20aString%29%20%7B%0A%20%20%20%20var%20emRDF%20%3D%20%22http%3A//www.mozilla.org/2004/em-rdf%23%22%3B%0A%20%20%20%20var%20arc%20%3D%20RDFService.GetResource%28emRDF%20+%20aString%29%3B%0A%20%20%20%20var%20target%20%3D%20extensionDS.GetTarget%28aElement%2C%20arc%2C%20true%29%3B%0A%20%20%20%20if%20%28target%20instanceof%20Ci.nsIRDFLiteral%29%20return%20target.Value%3B%0A%20%20%20%20if%20%28target%20instanceof%20Ci.nsIRDFInt%29%20return%20target.Value%3B%0A%20%20%20%20return%20null%3B%0A%7D%0A%0Avar%20cloneCBcontext%20%3D%20%7B%0A%20%20%20%20cloneItems%3A%20function%20%28aNode%2C%20aID%2C%20aSeparate%29%20%7B%0A%20%20%20%20%20%20%20%20var%20menupopup%20%3D%20document.getElementById%28aID%29.cloneNode%28true%29%3B%0A%20%20%20%20%20%20%20%20var%20menuitems%20%3D%20menupopup.childNodes.length%3B%0A%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20menuitems%3B%20i++%29%0A%20%20%20%20%20%20%20%20aNode.appendChild%28menupopup.firstChild%29%3B%0A%20%20%20%20%20%20%20%20if%20%28aSeparate%29%20aNode.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20makeMenu%3A%20function%20%28aNode%29%20%7B%0A%20%20%20%20%20%20%20%20var%20m%20%3D%20aNode.appendChild%28document.createElement%28%22menu%22%29%29%3B%0A%20%20%20%20%20%20%20%20m.setAttribute%28%22label%22%2C%20%22Custom%20Button%22%29%3B%0A%20%20%20%20%20%20%20%20m.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%20%20%20%20%20%20%20%20var%20mp%20%3D%20m.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20%20%20cloneCBcontext.cloneItems%28mp%2C%20%22custombuttons-contextpopup%22%29%3B%0A%20%20%20%20%20%20%20%20aNode.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20m%29%3B%0A%20%20%20%20%7D%0A%7D%0A%0Aconst%20popupID%20%3D%20%22cbContext-extensionsButton%22%3B%0A%0Avar%20test%20%3D%20document.getElementById%28popupID%29%3B%0Aif%20%28test%29%20test.parentNode.removeChild%28test%29%3B%0A%0Avar%20main%20%3D%20document.getElementById%28%22mainPopupSet%22%29%3B%0Avar%20cPopup%20%3D%20main.appendChild%28document.createElement%28%22popup%22%29%29%3B%0AcPopup.id%20%3D%20popupID%3B%0AcPopup.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%3B%20document.popupNode.openPrefs%28event%29%3B%22%29%0A%0Avar%20RDFService%20%3D%20Cc%5B%22@mozilla.org/rdf/rdf-service%3B1%22%5D.getService%28Ci.nsIRDFService%29%3B%0Avar%20Container%20%3D%20Cc%5B%22@mozilla.org/rdf/container%3B1%22%5D.getService%28Ci.nsIRDFContainer%29%3B%0Avar%20extensionDS%20%3D%20Cc%5B%22@mozilla.org/extensions/manager%3B1%22%5D.getService%28Ci.nsIExtensionManager%29.datasource%3B%0A%0Avar%20root%3B%0Atry%20%7B%0A%20%20%20%20root%20%3D%20RDFService.GetResource%28%22urn%3Amozilla%3Aitem%3Aroot%22%29%3B%0A%7D%20catch%28err%29%20%7B%0A%20%20%20%20root%20%3D%20RDFService.GetResource%28%22urn%3Amozilla%3Aextension%3Aroot%22%29%3B%0A%7D%0A%0AContainer.Init%28extensionDS%2C%20root%29%3B%0A%0Avar%20elements%20%3D%20Container.GetElements%28%29%3B%0Avar%20extensionArray%20%3D%20%5B%5D%3B%0Avar%20i%20%3D%20-1%3B%0Awhile%20%28elements.hasMoreElements%28%29%29%20%7B%0A%20%20%20%20i++%3B%0A%20%20%20%20var%20element%20%3D%20elements.getNext%28%29%3B%0A%20%20%20%20element.QueryInterface%28Components.interfaces.nsIRDFResource%29%3B%0A%20%20%20%20var%20prop_OptionsURL%20%3D%20prop%28element%2C%20%22optionsURL%22%29%3B%0A%20%20%20%20if%20%28prop%28element%2C%20%22type%22%29%20%3D%3D%20EXTENSION%20%26%26%20prop_OptionsURL%29%20%7B%0A%20%20%20%20%20%20%20%20var%20prop_name%20%3D%20prop%28element%2C%20%22name%22%29%3B%0A%20%20%20%20%20%20%20%20extensionArray%5Bi%5D%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20extensionArray%5Bi%5D%5B0%5D%20%3D%20prop_name.charAt%280%29.toUpperCase%28%29%20+%20prop_name.substr%281%29%3B%0A%20%20%20%20%20%20%20%20extensionArray%5Bi%5D%5B1%5D%20%3D%20prop_OptionsURL%3B%0A%20%20%20%20%20%20%20%20extensionArray%5Bi%5D%5B2%5D%20%3D%20prop%28element%2C%20%22userDisabled%22%29%3B%0A%20%20%20%20%20%20%20%20extensionArray%5Bi%5D%5B3%5D%20%3D%20prop%28element%2C%20%22version%22%29%3B%0A%20%20%20%20%20%20%20%20extensionArray%5Bi%5D%5B4%5D%20%3D%20prop%28element%2C%20%22iconURL%22%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%21extensionArray%5Bi%5D%5B4%5D%29%20extensionArray%5Bi%5D%5B4%5D%20%3D%20%22chrome%3A//mozapps/skin/xpinstall/xpinstallItemGeneric.png%22%3B%0A%20%20%20%20%7D%0A%7D%0A%0AextensionArray.sort%28%29%3B%0A%0Avar%20features%20%3D%20%22chrome%2C%20dialog%20%3D%200%2C%20resizable%2C%20titlebar%2C%20toolbar%2C%20centerscreen%22%3B%0A%0Avar%20extCommand%20%3D%20%22window.openDialog%28%27ZZZ%27%2C%20%27%27%2C%20%27%22%20+%20features%20+%20%22%27%29%3B%22%3B%0A%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20extensionArray.length%3B%20i++%29%20%7B%0A%20%20%20%20var%20extArray%20%3D%20extensionArray%5Bi%5D%3B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%22label%22%2C%20extArray%5B0%5D%20+%20%22%20%22%20+%20extArray%5B3%5D%29%3B%0A%20%20%20%20%20%20%20%20if%20%28extArray%5B4%5D%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%20bookmark-item%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%22image%22%2C%20extArray%5B4%5D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28extArray%5B1%5D%29%20mItem.setAttribute%28%22oncommand%22%2C%20extCommand.replace%28%22ZZZ%22%2C%20extArray%5B1%5D%29%29%3B%0A%20%20%20%20%20%20%20%20if%20%28extArray%5B2%5D%29%20mItem.setAttribute%28%22disabled%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20cPopup.appendChild%28mItem%29%3B%0A%20%20%20%20%7D%20catch%28e%29%20%7B%7D%0A%7D%0A%0AcloneCBcontext.makeMenu%28cPopup%29%3B%0Athis.setAttribute%28%22context%22%2C%20popupID%29%3B%0A%0Aif%20%28typeof%20Local_Install%20%21%3D%20%22object%22%29%20return%3B%0A%0Avar%20test%20%3D%20document.getElementById%28%22cbContext-extensions%22%29%3B%0Aif%20%28test%29%20test.parentNode.removeChild%28test%29%3B%0A%0Avar%20cbPopup%20%3D%20document.getElementById%28%22custombuttons-contextpopup-subCall%22%29.cloneNode%28true%29%3B%20//%20Cb%20context%0Avar%20subMenu%20%3D%20document.createElement%28%22menu%22%29%3B%0AsubMenu.setAttribute%28%22label%22%2C%20%22Custom%20Button%22%29%3B%0AsubMenu.appendChild%28cbPopup.lastChild%29%3B%0A%0Avar%20extensionsPopup%20%3D%20document.getElementById%28%22emb-context%22%29%3B%0Avar%20popup%20%3D%20extensionsPopup.cloneNode%28true%29%3B%0Apopup.id%20%3D%20%22cbContext-extensions%22%3B%0Apopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0Apopup.appendChild%28subMenu%29%3B%0AextensionsPopup.parentNode.appendChild%28popup%29%3B%0A%0Athis.setAttribute%28%22context%22%2C%20popup.id%29%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%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%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E Инициализация Выделить код Код:this.url2xul = 'chrome://mozapps/content/extensions/extensions.xul'; this.onClick = function (e) { switch (e.button) { case 0: try { BrowserOpenAddonsMgr(); } catch(e) { BrowserOpenExtensions('extensions'); } break; case 1: { if (e.ctrlKey) { var t = gBrowser.mTabs; var current = content.document.location.href; var i = t.length; if (current == this.url2xul) gBrowser.removeCurrentTab(); else while (true) { if (--i < 0) { if (current == 'about:blank') // replace blank tab loadURI(this.url2xul); else // add new tab gBrowser.selectedTab = gBrowser.addTab(this.url2xul); break; }; if (t[i].linkedBrowser.currentURI.spec == this.url2xul) // popup loaded { gBrowser.selectedTab = gBrowser.tabContainer.childNodes[i]; break; }; }; } else openWebPanel(this.tooltipText, this.url2xul); }; break; }; }; this.setAttribute('onclick', 'this.onClick(event);'); const Cb = custombuttons; const EXTENSION = Ci.nsIUpdateItem.TYPE_EXTENSION; function prop(aElement, aString) { var emRDF = "http://www.mozilla.org/2004/em-rdf#"; var arc = RDFService.GetResource(emRDF + aString); var target = extensionDS.GetTarget(aElement, arc, true); if (target instanceof Ci.nsIRDFLiteral) return target.Value; if (target instanceof Ci.nsIRDFInt) return target.Value; return null; } var cloneCBcontext = { cloneItems: function (aNode, aID, aSeparate) { var menupopup = document.getElementById(aID).cloneNode(true); var menuitems = menupopup.childNodes.length; for (var i = 0; i < menuitems; i++) aNode.appendChild(menupopup.firstChild); if (aSeparate) aNode.appendChild(document.createElement("menuseparator")); }, makeMenu: function (aNode) { var m = aNode.appendChild(document.createElement("menu")); m.setAttribute("label", "Custom Button"); m.setAttribute("oncommand", "event.stopPropagation()"); var mp = m.appendChild(document.createElement("menupopup")); cloneCBcontext.cloneItems(mp, "custombuttons-contextpopup"); aNode.insertBefore(document.createElement("menuseparator"), m); } } const popupID = "cbContext-extensionsButton"; var test = document.getElementById(popupID); if (test) test.parentNode.removeChild(test); var main = document.getElementById("mainPopupSet"); var cPopup = main.appendChild(document.createElement("popup")); cPopup.id = popupID; cPopup.setAttribute("oncommand", "event.stopPropagation(); document.popupNode.openPrefs(event);") var RDFService = Cc["@mozilla.org/rdf/rdf-service;1"].getService(Ci.nsIRDFService); var Container = Cc["@mozilla.org/rdf/container;1"].getService(Ci.nsIRDFContainer); var extensionDS = Cc["@mozilla.org/extensions/manager;1"].getService(Ci.nsIExtensionManager).datasource; var root; try { root = RDFService.GetResource("urn:mozilla:item:root"); } catch(err) { root = RDFService.GetResource("urn:mozilla:extension:root"); } Container.Init(extensionDS, root); var elements = Container.GetElements(); var extensionArray = []; var i = -1; while (elements.hasMoreElements()) { i++; var element = elements.getNext(); element.QueryInterface(Components.interfaces.nsIRDFResource); var prop_OptionsURL = prop(element, "optionsURL"); if (prop(element, "type") == EXTENSION && prop_OptionsURL) { var prop_name = prop(element, "name"); extensionArray[i] = []; extensionArray[i][0] = prop_name.charAt(0).toUpperCase() + prop_name.substr(1); extensionArray[i][1] = prop_OptionsURL; extensionArray[i][2] = prop(element, "userDisabled"); extensionArray[i][3] = prop(element, "version"); extensionArray[i][4] = prop(element, "iconURL"); if (!extensionArray[i][4]) extensionArray[i][4] = "chrome://mozapps/skin/xpinstall/xpinstallItemGeneric.png"; } } extensionArray.sort(); var features = "chrome, dialog = 0, resizable, titlebar, toolbar, centerscreen"; var extCommand = "window.openDialog('ZZZ', '', '" + features + "');"; for (var i = 0; i < extensionArray.length; i++) { var extArray = extensionArray[i]; try { var mItem = document.createElement("menuitem"); mItem.setAttribute("label", extArray[0] + " " + extArray[3]); if (extArray[4]) { mItem.setAttribute("class", "menuitem-iconic bookmark-item"); mItem.setAttribute("image", extArray[4]); } if (extArray[1]) mItem.setAttribute("oncommand", extCommand.replace("ZZZ", extArray[1])); if (extArray[2]) mItem.setAttribute("disabled", true); cPopup.appendChild(mItem); } catch(e) {} } cloneCBcontext.makeMenu(cPopup); this.setAttribute("context", popupID); if (typeof Local_Install != "object") return; var test = document.getElementById("cbContext-extensions"); if (test) test.parentNode.removeChild(test); var cbPopup = document.getElementById("custombuttons-contextpopup-subCall").cloneNode(true); // Cb context var subMenu = document.createElement("menu"); subMenu.setAttribute("label", "Custom Button"); subMenu.appendChild(cbPopup.lastChild); var extensionsPopup = document.getElementById("emb-context"); var popup = extensionsPopup.cloneNode(true); popup.id = "cbContext-extensions"; popup.appendChild(document.createElement("menuseparator")); popup.appendChild(subMenu); extensionsPopup.parentNode.appendChild(popup); this.setAttribute("context", popup.id); Иконка Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAFfKj/FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAMAUExURf///wIBAQAAAAECB21yoAAAAAAAAG1yoFVloQAAAwAAAAEBAwAAAFJkoWV1rQAAAAAAAEthonN4pHJ5pmtzoxUMBwAAAEUmEyQVDF9vphAVIZObvxAUIJWewZxaMKWv0AhVAHF+sBcdKDwjE5NXNI2Tt2F1rl52sCQuSFp1tmZ5sYaMspdaOzghE5edwAxdAYKazi84T1BnmWF8t7S50omdzG6CsJpkPm+JwHSNwniOwH+YzHiQw5pkT5FYL49tcHaUyY6KoLO30HtIKKq63n2Yyrm81AhVAApYABdrARtxAR10AUiWMFifQbe60YGe0GB4oJer0qZfJ5Wz3qi52pCz5b/Dz9LW54ir3ZljPrWckcnQ45Z7mqFlMIyp0pzD9L7Z+d/k9wAAABBlARt5Ax58Bh5/AyKGBCOIBCiBDyiSBC2VCi6cBTKKGDOlBjSoBjqrDT6oFUCrFkGOKkGWJkKuF0yF00yyI06WN1e3MF2vQF6hSGCkSmOV12O8P2SpTWWX12/BT3S3WnW6W3bBWXiza3mo6XzAYn3HX3+eyYWy54nGcou26YvNcIy26JG57JKy2ZfPiZnTgp1+lJ7G9p7MmqO/56PWjqaNnKqbuqrS+7LW2bLa/7Te/7Xe/7aGcbbZ/bdLJLjX+Lje/7rX97rb6LrewLrf/7zb/7zg/72Ve73a0L58PsA+BcDf/MLe58O6vMPi/8WLU8WSaMXp0Mbk/8e9v8fe+Mji88jk/8nl/8qLVcqmSsrl/8vY5Mvl/8yDQcyZZ8yolMzn/83p/86CN87q/8+bONFfKNOIa9TRz9WHOtaZWNePSNzS0t3u9d30/9/y/+L08+PDs+Po8Obz/+fQyefv/em/rer1/+zArOzaifLo6fP2+vX2+fbXMvbyxvf///jrovv///z///36+P/0mP//8v///+np6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///y0MWcAAAAABdFJOUwBA5thmAAABFUlEQVR42mJgYGBgqAQAAAD//2JgYGBufgcAAAD//2Jk8LZ4xcSgtIYJAAAA//9iYGBgYGBkqPl3jqmC9fcNRobSXeYAAAAA//9iZmBgYKgwP87AyMBQI/jlx5+PjAzF7P///DrwkZnhODfb5pv2LAAxoIBuBgYGRgaGahbWD1+nMzEwiHP+YmZnYPFi/vbt55epDEz//3/7+fM/AwPT9i0/v0xgyGdgYWB494/h5y8GAJljbIMwDEXBw3akUEQUtJkoLUNkgRRILBKE2IwtUID4+X+liSteedKdXqyJ4dK9AEIF8RT3c8Ctl7SaXO9HAkgfrSbPuTgHrudiZnLXb67K1HjOFoJbeSaA5ejfO4xtMv62DQBrzlvofJ5duQAAAABJRU5ErkJggg== Поиск по текущему сайту (Firefox) Поиск по текущему сайту Код кнопки Выделить код Код: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%3E%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3Ethis.%20searchGoogle%20%3D%20function%20%28text%2C%20url%2C%20encode%29%0D%0A%7B%0D%0A%20%20%20%20if%20%28encode%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20text%20%3D%20escape%20%28convertFromUnicode%20%28%22UTF-8%22%2C%20text%29%29%3B%0D%0A%20%20%20%20%20%20%20%20url%20%3D%20encodeURIComponent%20%28url%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20var%20searchUrl%20%3D%20%22http%3A//www.google.com/search%3Fas_q%3D%22%20+%20text%20+%20%22%26amp%3Bas_sitesearch%3D%22%20+%20url%3B%0D%0A%20%20%20%20getBrowser%20%28%29.%20addTab%20%28searchUrl%29%3B%0D%0A%7D%3B%0D%0A%0D%0Athis.%20searchYandex%20%3D%20function%20%28text%2C%20url%2C%20encode%29%0D%0A%7B%0D%0A%20%20%20%20if%20%28encode%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20text%20%3D%20escape%20%28convertFromUnicode%20%28%22UTF-8%22%2C%20text%29%29%3B%0D%0A%20%20%20%20%20%20%20%20url%20%3D%20encodeURIComponent%20%28url%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20var%20searchUrl%20%3D%20%22http%3A//yandex.ru/yandsearch%3Frpt%3Drad%26amp%3Btext%3D%22%20+%20text%20+%20%22%26amp%3Bserverurl%3D%22%20+%20url%3B%0D%0A%20%20%20%20getBrowser%20%28%29.%20addTab%20%28searchUrl%29%3B%0D%0A%7D%3B%0D%0A%0D%0Athis.%20showSearchDialog%20%3D%20function%20%28callback%2C%20url%29%0D%0A%7B%0D%0A%20%20%20%20XML.%20ignoreProcessingInstructions%20%3D%20false%3B%0D%0A%20%20%20%20var%20dialog%20%3D%20%26lt%3B%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//global/skin/%22%3F%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%26lt%3B%3Fxml-stylesheet%20href%3D%22resource%3A//gre/res/html.css%22%3F%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%26lt%3Bdialog%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20id%3D%22dlg02%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Custom%20Buttons%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20onload%3D%22windowController.init%28%29%22%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ondialogaccept%3D%22return%20windowController.accept%28%29%3B%22%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bscript%20type%3D%22application/x-javascript%22%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B%21%5BCDATA%5B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20windowController%20%3D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20init%3A%20function%20%28%29%0D%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%7B%0D%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%20var%20stb%20%3D%20document.%20getElementById%20%28%22sitetb%22%29%3B%0D%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%20stb.%20value%20%3D%20window.%20arguments%20%5B1%5D%3B%0D%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%20window.%20sizeToContent%20%28%29%3B%0D%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%7D%2C%0D%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%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20accept%3A%20function%20%28%29%0D%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%7B%0D%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%20var%20text%20%3D%20document.%20getElementById%20%28%22texttb%22%29.%20value%3B%0D%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%20var%20url%20%3D%20document.%20getElementById%20%28%22sitetb%22%29.%20value%3B%0D%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%20window.%20arguments%20%5B0%5D%20%28text%2C%20url%2C%20true%29%3B%0D%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%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%5D%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/script%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bvbox%20flex%3D%221%22%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bgrid%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bcolumns%26gt%3B%0D%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%26lt%3Bcolumn/%26gt%3B%0D%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%26lt%3Bcolumn%20flex%3D%221%22/%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/columns%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Brows%26gt%3B%0D%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%26lt%3Brow%20align%3D%22center%22%26gt%3B%0D%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%26lt%3Blabel%20value%3D%22%u0418%u0441%u043A%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%22/%26gt%3B%0D%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%26lt%3Btextbox%20id%3D%22texttb%22%20flex%3D%221%22/%26gt%3B%0D%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%26lt%3B/row%26gt%3B%0D%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%26lt%3Brow%20align%3D%22center%22%26gt%3B%0D%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%26lt%3Blabel%20value%3D%22%u0421%u0430%u0439%u0442%22/%26gt%3B%0D%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%26lt%3Btextbox%20id%3D%22sitetb%22%20flex%3D%221%22/%26gt%3B%0D%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%26lt%3B/row%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/rows%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/grid%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/vbox%26gt%3B%0D%0A%20%20%20%20%20%20%20%20%26lt%3B/dialog%26gt%3B%0D%0A%20%20%20%20%26lt%3B/%26gt%3B%3B%0D%0A%20%20%20%20window.%20openDialog%20%28%22data%3Aapplication/vnd.mozilla.xul+xml%2C%22%20+%20dialog.%20toXMLString%20%28%29%2C%20%22%22%2C%20%22chrome%2Cdependent%2Cminimizable%2Cresizable%3Dyes%2Ccenterscreen%2Cdialog%3Dyes%22%2C%20callback%2C%20url%29%3B%0D%0A%7D%3B%0D%0A%0D%0Athis.%20onclick%20%3D%20function%20%28event%29%0D%0A%7B%0D%0A%20%20%20%20var%20focusedWindow%20%3D%20document.%20commandDispatcher.%20focusedWindow%3B%0D%0A%20%20%20%20var%20text%20%3D%20focusedWindow.%20getSelection%20%28%29.%20toString%20%28%29%3B%0D%0A%20%20%20%20var%20doc%20%3D%20getBrowser%20%28%29.%20contentDocument%3B%0D%0A%20%20%20%20try%20%7B%20var%20url%20%3D%20doc.%20location.%20hostname%3B%20%7D%0D%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20url%20%3D%20%22%22%3B%20%7D%0D%0A%20%20%20%20if%20%28event.%20ctrlKey%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20if%20%28event.%20button%20%3D%3D%200%29%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this.%20showSearchDialog%20%28this.%20searchGoogle%2C%20url%29%3B%0D%0A%20%20%20%20%20%20%20%20else%20if%20%28event.%20button%20%3D%3D%202%29%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20event.%20preventDefault%20%28%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20event.%20stopPropagation%20%28%29%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20this.%20showSearchDialog%20%28this.%20searchYandex%2C%20url%29%3B%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%20%20%20%20return%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20if%20%28%21text%20%7C%7C%20event.%20shiftKey%29%0D%0A%20%20%20%20%20%20%20%20return%3B%0D%0A%20%20%20%20var%20charset%20%3D%20doc.%20characterSet%3B%0D%0A%20%20%20%20try%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20charset%20%3D%20PlacesUtils.%20history.%20getCharsetForURI%20%28makeURI%20%28doc.%20location.%20href%29%29%3B%0D%0A%20%20%20%20%7D%20catch%20%28e%29%20%7B%7D%0D%0A%20%20%20%20if%20%28charset%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20text%20%3D%20escape%20%28convertFromUnicode%20%28charset%2C%20text%29%29%3B%0D%0A%20%20%20%20%20%20%20%20url%20%3D%20escape%20%28convertFromUnicode%20%28charset%2C%20url%29%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20else%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20text%20%3D%20encodeURIComponent%20%28text%29%3B%0D%0A%20%20%20%20%20%20%20%20url%20%3D%20encodeURIComponent%20%28url%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20var%20searchURL%20%3D%20%22%22%3B%0D%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%202%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20event.%20preventDefault%20%28%29%3B%0D%0A%20%20%20%20%20%20%20%20event.%20stopPropagation%20%28%29%3B%0D%0A%20%20%20%20%20%20%20%20this.%20searchYandex%20%28text%2C%20url%2C%20false%29%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20else%20if%20%28event.%20button%20%3D%3D%200%29%0D%0A%20%20%20%20%20%20%20%20this.%20searchGoogle%20%28text%2C%20url%2C%20false%29%3B%0D%0A%7D%3B%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%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%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E Инициализация Выделить код Код:this. searchGoogle = function (text, url, encode) { if (encode) { text = escape (convertFromUnicode ("UTF-8", text)); url = encodeURIComponent (url); } var searchUrl = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + url; getBrowser (). addTab (searchUrl); }; this. searchYandex = function (text, url, encode) { if (encode) { text = escape (convertFromUnicode ("UTF-8", text)); url = encodeURIComponent (url); } var searchUrl = "http://yandex.ru/yandsearch?rpt=rad&text=" + text + "&serverurl=" + url; getBrowser (). addTab (searchUrl); }; this. showSearchDialog = function (callback, url) { XML. ignoreProcessingInstructions = false; var dialog = <> <?xml-stylesheet href="chrome://global/skin/"?> <?xml-stylesheet href="resource://gre/res/html.css"?> <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" id="dlg02" title="Custom Buttons" onload="windowController.init()" ondialogaccept="return windowController.accept();"> <script type="application/x-javascript"> <![CDATA[ var windowController = { init: function () { var stb = document. getElementById ("sitetb"); stb. value = window. arguments [1]; window. sizeToContent (); }, accept: function () { var text = document. getElementById ("texttb"). value; var url = document. getElementById ("sitetb"). value; window. arguments [0] (text, url, true); } }; ]]> </script> <vbox flex="1"> <grid> <columns> <column/> <column flex="1"/> </columns> <rows> <row align="center"> <label value="Искать текст"/> <textbox id="texttb" flex="1"/> </row> <row align="center"> <label value="Сайт"/> <textbox id="sitetb" flex="1"/> </row> </rows> </grid> </vbox> </dialog> </>; window. openDialog ("data:application/vnd.mozilla.xul+xml," + dialog. toXMLString (), "", "chrome,dependent,minimizable,resizable=yes,centerscreen,dialog=yes", callback, url); }; this. onclick = function (event) { var focusedWindow = document. commandDispatcher. focusedWindow; var text = focusedWindow. getSelection (). toString (); var doc = getBrowser (). contentDocument; try { var url = doc. location. hostname; } catch(e) { var url = ""; } if (event. ctrlKey) { if (event. button == 0) this. showSearchDialog (this. searchGoogle, url); else if (event. button == 2) { event. preventDefault (); event. stopPropagation (); this. showSearchDialog (this. searchYandex, url); } return; } if (!text || event. shiftKey) return; var charset = doc. characterSet; try { charset = PlacesUtils. history. getCharsetForURI (makeURI (doc. location. href)); } catch (e) {} if (charset) { text = escape (convertFromUnicode (charset, text)); url = escape (convertFromUnicode (charset, url)); } else { text = encodeURIComponent (text); url = encodeURIComponent (url); } var searchURL = ""; if (event. button == 2) { event. preventDefault (); event. stopPropagation (); this. searchYandex (text, url, false); } else if (event. button == 0) this. searchGoogle (text, url, false); }; Иконка Выделить код Код:data:image/png;base64,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 |
Jarichek > 25-11-2009 11:59:21 |
Преобразование из латиницы в кириллицу и наоборот Преобразование из латиницы в кириллицу Код кнопки Выделить код Код: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%3EURLCorrector%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0D%0A%20%20%3Cmode%3E0%3C/mode%3E%0D%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.noSelUseFullText%20%3D%20true%3B%0Athis.convTableForward%20%3D%20%7B%0A%20%20%20%20%22%5C%22%22%3A%20%22@%22%2C%0A%20%20%20%20%22%3A%22%3A%20%22%5E%22%2C%0A%20%20%20%20%22%3B%22%3A%20%22%24%22%2C%0A%20%20%20%20%22%3F%22%3A%20%22%26%22%2C%0A%20%20%20%20%22%2C%22%3A%20%22%3F%22%2C%0A%20%20%20%20%22/%22%3A%20%22%7C%22%2C%0A%20%20%20%20%22.%22%3A%20%22/%22%2C%0A%20%20%20%20%22%u044D%22%3A%20%22%27%22%2C%0A%20%20%20%20%22%u0431%22%3A%20%22%2C%22%2C%0A%20%20%20%20%22%u044E%22%3A%20%22.%22%2C%0A%20%20%20%20%22%u0416%22%3A%20%22%3A%22%2C%0A%20%20%20%20%22%u0436%22%3A%20%22%3B%22%2C%0A%20%20%20%20%22%u0411%22%3A%20%22%3C%22%2C%0A%20%20%20%20%22%u042E%22%3A%20%22%3E%22%2C%0A%20%20%20%20%22%u042D%22%3A%20%22%5C%22%22%2C%0A%20%20%20%20%22%u0445%22%3A%20%22%5B%22%2C%0A%20%20%20%20%22%u044A%22%3A%20%22%5D%22%2C%0A%20%20%20%20%22%u0451%22%3A%20%22%60%22%2C%0A%20%20%20%20%22%u0425%22%3A%20%22%7B%22%2C%0A%20%20%20%20%22%u042A%22%3A%20%22%7D%22%2C%0A%20%20%20%20%22%u0401%22%3A%20%22%7E%22%2C%0A%20%20%20%20%22%u2116%22%3A%20%22%23%22%2C%0A%20%20%20%20%22%u0424%22%3A%20%22A%22%2C%0A%20%20%20%20%22%u0444%22%3A%20%22a%22%2C%0A%20%20%20%20%22%u0418%22%3A%20%22B%22%2C%0A%20%20%20%20%22%u0438%22%3A%20%22b%22%2C%0A%20%20%20%20%22%u0421%22%3A%20%22C%22%2C%0A%20%20%20%20%22%u0441%22%3A%20%22c%22%2C%0A%20%20%20%20%22%u0412%22%3A%20%22D%22%2C%0A%20%20%20%20%22%u0432%22%3A%20%22d%22%2C%0A%20%20%20%20%22%u0423%22%3A%20%22E%22%2C%0A%20%20%20%20%22%u0443%22%3A%20%22e%22%2C%0A%20%20%20%20%22%u0410%22%3A%20%22F%22%2C%0A%20%20%20%20%22%u0430%22%3A%20%22f%22%2C%0A%20%20%20%20%22%u041F%22%3A%20%22G%22%2C%0A%20%20%20%20%22%u043F%22%3A%20%22g%22%2C%0A%20%20%20%20%22%u0420%22%3A%20%22H%22%2C%0A%20%20%20%20%22%u0440%22%3A%20%22h%22%2C%0A%20%20%20%20%22%u0428%22%3A%20%22I%22%2C%0A%20%20%20%20%22%u0448%22%3A%20%22i%22%2C%0A%20%20%20%20%22%u041E%22%3A%20%22J%22%2C%0A%20%20%20%20%22%u043E%22%3A%20%22j%22%2C%0A%20%20%20%20%22%u041B%22%3A%20%22K%22%2C%0A%20%20%20%20%22%u043B%22%3A%20%22k%22%2C%0A%20%20%20%20%22%u0414%22%3A%20%22L%22%2C%0A%20%20%20%20%22%u0434%22%3A%20%22l%22%2C%0A%20%20%20%20%22%u042C%22%3A%20%22M%22%2C%0A%20%20%20%20%22%u044C%22%3A%20%22m%22%2C%0A%20%20%20%20%22%u0422%22%3A%20%22N%22%2C%0A%20%20%20%20%22%u0442%22%3A%20%22n%22%2C%0A%20%20%20%20%22%u0429%22%3A%20%22O%22%2C%0A%20%20%20%20%22%u0449%22%3A%20%22o%22%2C%0A%20%20%20%20%22%u0417%22%3A%20%22P%22%2C%0A%20%20%20%20%22%u0437%22%3A%20%22p%22%2C%0A%20%20%20%20%22%u0419%22%3A%20%22Q%22%2C%0A%20%20%20%20%22%u0439%22%3A%20%22q%22%2C%0A%20%20%20%20%22%u041A%22%3A%20%22R%22%2C%0A%20%20%20%20%22%u043A%22%3A%20%22r%22%2C%0A%20%20%20%20%22%u042B%22%3A%20%22S%22%2C%0A%20%20%20%20%22%u044B%22%3A%20%22s%22%2C%0A%20%20%20%20%22%u0415%22%3A%20%22T%22%2C%0A%20%20%20%20%22%u0435%22%3A%20%22t%22%2C%0A%20%20%20%20%22%u0413%22%3A%20%22U%22%2C%0A%20%20%20%20%22%u0433%22%3A%20%22u%22%2C%0A%20%20%20%20%22%u041C%22%3A%20%22V%22%2C%0A%20%20%20%20%22%u043C%22%3A%20%22v%22%2C%0A%20%20%20%20%22%u0426%22%3A%20%22W%22%2C%0A%20%20%20%20%22%u0446%22%3A%20%22w%22%2C%0A%20%20%20%20%22%u0427%22%3A%20%22X%22%2C%0A%20%20%20%20%22%u0447%22%3A%20%22x%22%2C%0A%20%20%20%20%22%u041D%22%3A%20%22Y%22%2C%0A%20%20%20%20%22%u043D%22%3A%20%22y%22%2C%0A%20%20%20%20%22%u042F%22%3A%20%22Z%22%2C%0A%20%20%20%20%22%u044F%22%3A%20%22z%22%2C%0A%20%20%20%20__proto__%3A%20null%0A%7D%3B%0A%0Athis.convTableBackward%20%3D%20%7B%20__proto__%3A%20null%20%7D%3B%0Afor%28var%20c%20in%20this.convTableForward%29%0A%20%20%20%20this.convTableBackward%5Bthis.convTableForward%5Bc%5D%5D%20%3D%20c%3B%0A%0Athis.insertText%20%3D%20function%28ta%2C%20text%2C%20noFocus%29%20%7B%0A%20%20%20%20var%20editor%20%3D%20ta.QueryInterface%28Components.interfaces.nsIDOMNSEditableElement%29%0A%20%20%20%20%20%20%20%20.editor%0A%20%20%20%20%20%20%20%20.QueryInterface%28Components.interfaces.nsIPlaintextEditor%29%3B%0A%20%20%20%20if%28editor.flags%20%26%20editor.eEditorReadonlyMask%29%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20var%20sTop%20%3D%20ta.scrollTop%3B%0A%20%20%20%20var%20sHeight%20%3D%20ta.scrollHeight%3B%0A%20%20%20%20var%20sLeft%20%3D%20ta.scrollLeft%3B%0A%20%20%20%20//%20var%20sWidth%20%3D%20ta.scrollWidth%3B%0A%0A%20%20%20%20if%28noFocus%29%20%7B%0A%20%20%20%20%20%20%20%20var%20val%20%3D%20ta.value%3B%0A%20%20%20%20%20%20%20%20var%20ss%20%3D%20ta.selectionStart%3B%0A%20%20%20%20%20%20%20%20ta.value%20%3D%20val.substring%280%2C%20ss%29%20+%20text%20+%20val.substring%28ta.selectionEnd%29%3B%0A%20%20%20%20%20%20%20%20var%20se%20%3D%20ss%20+%20text.length%3B%0A%20%20%20%20%20%20%20%20ta.selectionStart%20%3D%20se%3B%0A%20%20%20%20%20%20%20%20ta.selectionEnd%20%3D%20se%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%0A%20%20%20%20%20%20%20%20if%28text%29%0A%20%20%20%20%20%20%20%20%20%20%20%20editor.insertText%28text%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20editor.deleteSelection%280%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20ta.scrollTop%20%3D%20sTop%20+%20%28ta.scrollHeight%20-%20sHeight%29%3B%0A%20%20%20%20ta.scrollLeft%20%3D%20sLeft%3B%20//%20+%20%28ta.scrollWidth%20-%20sWidth%29%3B%0A%7D%3B%0Athis.inPrimaryLayout%20%3D%20function%28s%29%20%7B%0A%20%20%20%20var%20c%3B%0A%20%20%20%20for%28var%20i%20%3D%200%2C%20l%20%3D%20s.length%3B%20i%20%3C%20l%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20c%20%3D%20s.charAt%28i%29%3B%0A%20%20%20%20%20%20%20%20if%28c%20in%20this.convTableForward%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20if%28c%20in%20this.convTableBackward%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20false%3B%0A%7D%3B%0Athis.switchKeybLayout%20%3D%20function%28convTable%2C%20s%29%20%7B%0A%20%20%20%20var%20r%20%3D%20%22%22%2C%20c%3B%0A%20%20%20%20for%28var%20i%20%3D%200%2C%20l%20%3D%20s.length%3B%20i%20%3C%20l%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20c%20%3D%20s.charAt%28i%29%3B%0A%20%20%20%20%20%20%20%20r%20+%3D%20c%20in%20convTable%20%3F%20convTable%5Bc%5D%20%3A%20c%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20r%3B%0A%7D%3B%0Athis.switchSelKeybLayout%20%3D%20function%28s%29%20%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20var%20ta%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20%20var%20val%20%3D%20ta.value%3B%0A%20%20%20%20%20%20%20%20var%20sel%20%3D%20val.substring%28ta.selectionStart%2C%20ta.selectionEnd%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%28this.noSelUseFullText%20%26%26%20%21sel%29%20%7B%0A%20%20%20%20%20%20%20%20ta.selectionStart%20%3D%200%3B%0A%20%20%20%20%20%20%20%20ta.selectionEnd%20%3D%20val.length%3B%0A%20%20%20%20%20%20%20%20sel%20%3D%20val%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%28%21sel%29%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20sel%20%3D%20this.switchKeybLayout%28%0A%20%20%20%20%20%20%20%20this.inPrimaryLayout%28sel%29%20%3F%20this.convTableForward%20%3A%20this.convTableBackward%2C%0A%20%20%20%20%20%20%20%20sel%0A%20%20%20%20%29%3B%0A%20%20%20%20this.insertText%28ta%2C%20sel%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.switchSelKeybLayout%28%29%3B%5D%5D%3E%3C/code%3E%0D%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5BAlt+z%5D%5D%3E%3C/accelkey%3E%0D%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E Код Инициализация Выделить код Код:this.noSelUseFullText = true; this.convTableForward = { "\"": "@", ":": "^", ";": "$", "?": "&", ",": "?", "/": "|", ".": "/", "э": "'", "б": ",", "ю": ".", "Ж": ":", "ж": ";", "Б": "<", "Ю": ">", "Э": "\"", "х": "[", "ъ": "]", "ё": "`", "Х": "{", "Ъ": "}", "Ё": "~", "№": "#", "Ф": "A", "ф": "a", "И": "B", "и": "b", "С": "C", "с": "c", "В": "D", "в": "d", "У": "E", "у": "e", "А": "F", "а": "f", "П": "G", "п": "g", "Р": "H", "р": "h", "Ш": "I", "ш": "i", "О": "J", "о": "j", "Л": "K", "л": "k", "Д": "L", "д": "l", "Ь": "M", "ь": "m", "Т": "N", "т": "n", "Щ": "O", "щ": "o", "З": "P", "з": "p", "Й": "Q", "й": "q", "К": "R", "к": "r", "Ы": "S", "ы": "s", "Е": "T", "е": "t", "Г": "U", "г": "u", "М": "V", "м": "v", "Ц": "W", "ц": "w", "Ч": "X", "ч": "x", "Н": "Y", "н": "y", "Я": "Z", "я": "z", __proto__: null }; this.convTableBackward = { __proto__: null }; for(var c in this.convTableForward) this.convTableBackward[this.convTableForward[c]] = c; this.insertText = function(ta, text, noFocus) { var editor = ta.QueryInterface(Components.interfaces.nsIDOMNSEditableElement) .editor .QueryInterface(Components.interfaces.nsIPlaintextEditor); if(editor.flags & editor.eEditorReadonlyMask) return; var sTop = ta.scrollTop; var sHeight = ta.scrollHeight; var sLeft = ta.scrollLeft; // var sWidth = ta.scrollWidth; if(noFocus) { var val = ta.value; var ss = ta.selectionStart; ta.value = val.substring(0, ss) + text + val.substring(ta.selectionEnd); var se = ss + text.length; ta.selectionStart = se; ta.selectionEnd = se; } else { if(text) editor.insertText(text); else editor.deleteSelection(0); } ta.scrollTop = sTop + (ta.scrollHeight - sHeight); ta.scrollLeft = sLeft; // + (ta.scrollWidth - sWidth); }; this.inPrimaryLayout = function(s) { var c; for(var i = 0, l = s.length; i < l; i++) { c = s.charAt(i); if(c in this.convTableForward) return true; if(c in this.convTableBackward) return false; } return false; }; this.switchKeybLayout = function(convTable, s) { var r = "", c; for(var i = 0, l = s.length; i < l; i++) { c = s.charAt(i); r += c in convTable ? convTable[c] : c; } return r; }; this.switchSelKeybLayout = function(s) { try { var ta = document.commandDispatcher.focusedElement; var val = ta.value; var sel = val.substring(ta.selectionStart, ta.selectionEnd); } catch(e) { return; } if(this.noSelUseFullText && !sel) { ta.selectionStart = 0; ta.selectionEnd = val.length; sel = val; } if(!sel) return; sel = this.switchKeybLayout( this.inPrimaryLayout(sel) ? this.convTableForward : this.convTableBackward, sel ); this.insertText(ta, sel); }; Иконка Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAADaSURBVHja7FXRDYIwEL1nGEBdBTaQDQyMQEcARymughOAIzDL+VEu9CoYE2Pxw/fzcrTkvbteryCylpmZNkKiQyCuPPOONkby7KmqYggDbUtEtHkFPAPGAEQAMPPQO2Z2XJR6fY3TTP8XsrULBnykmeauc1yc38vrsNexMbrJJV41IEIi3F6n7+UkcPzCEfiQRuxu2ki4Po7SujoOISWXfXWjFudBJBlKvMZD/zqvPNf7l26W0w0qkJ8c3wd9ZsLNZblHPriOugJA3DnwA5PwbyAJXwKZ0bHwGAAE21lZASOQtgAAAABJRU5ErkJggg== Рестарт (Firefox, TB) Рестарт Код кнопки Выделить код Код: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%5B%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%20%u043F%u0440%u0438%u043B%u043E%u0436%u0435%u043D%u0438%u0435%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%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 Инициализация Выделить код Код:// ***** VARS ***** // var prompts = Components.classes["@mozilla.org/embedcomp/prompt-service;1"] .getService(Components.interfaces.nsIPromptService); // ***** FUNCTIONS ***** // function createBrandingBundle() { var myBrandingPath = null; var myStringBundleService = Components.classes["@mozilla.org/intl/stringbundle;1"] .getService(Components.interfaces.nsIStringBundleService); myBrandingPath = "chrome://branding/locale/brand.properties" return myStringBundleService.createBundle(myBrandingPath); } function getWindowType() { // Relies on Branding Code so can not be run on startup var myBrandStrings = createBrandingBundle(); var thisBrandShortName = myBrandStrings.GetStringFromName("brandShortName") switch (thisBrandShortName) { case "Mozilla Thunderbird": case "Shredder": case "Thunderbird": return "mail:3pane"; case "Nvu": return "composer:html"; case "Calendar": case "Sunbird": return "calendarMainWindow"; case "eMusic Download Manager": case "eMusic Remote": return "emusic:window"; case "Songbird": return "Songbird:Main"; default: return "navigator:browser"; } } function Restart() { // Notify all windows that an application quit has been requested. var os = Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService); var cancelQuit = Components.classes["@mozilla.org/supports-PRBool;1"] .createInstance(Components.interfaces.nsISupportsPRBool); os.notifyObservers(cancelQuit, "quit-application-requested", "restart"); // Something aborted the quit process. if (cancelQuit.data) return false; var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var windows = wm.getEnumerator(""); var windowType = getWindowType(); while (windows.hasMoreElements()) { var myConfigWindow = windows.getNext().QueryInterface(Components.interfaces.nsIDOMWindowInternal); if (myConfigWindow.document.documentElement.getAttribute("windowtype") != windowType) { myConfigWindow.close(); } } if ("@zeniko/crashrecoveryservice;1" in Components.classes) { nsPreferences.setBoolPref("extensions.crashrecovery.resume_session_once", true); } var appStartup = Components.interfaces.nsIAppStartup; Components.classes["@mozilla.org/toolkit/app-startup;1"] .getService(appStartup).quit(appStartup.eRestart | appStartup.eAttemptQuit); return true; } // ***** MOUSE HANDLING ***** // this.leftclick = function(evt) { var RestartProceed = prompts.confirm(null, "Restart Firefox", "Перезапустить приложение?"); if (RestartProceed) { Restart(); } } this.aleftclick = function(evt) { Restart(); } // ***** INITIALISATION ***** // this.tooltipText = "Restart"; this.style.opacity = '.85'; this.setAttribute("onclick","custombuttons.gQuot.mHandler(event, this)"); this.setAttribute('ondblclick', 'gQuot(event, this)'); // ***** ATTRIBUTES ***** // this.setAttribute('author','Rawny, zooot'); this.setAttribute('version','4'); this.setAttribute('homepage', 'http://custombuttons2.com/forum/buttons/buttons-database/restart-session-restore.html'); this.setAttribute('dependency','FF2.0*, FL1.0*, TB2.0*, CB2 2.0.5*'); this.setAttribute('status','Complete'); this.setAttribute('public',true) Иконка Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/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== |
MySh > 27-03-2010 23:22:20 |
Stop All Tabs (Firefox) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EStop%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1gkPDzESY3gWcgAAAqFJREFUeNplkz1sE0kYhp9dZzfBXq8HYpQUBxjOinQUVhBQRKIB3XFSjkgIAlQUAV1/6VPS5yip0FFCwU8kBxSJSG7QFXBgCayDIEwgQPjd7Np79s7uDIWDiXOfNBppPj2v3u9nDDbEpdzAqOtkFp1MWmx8x4BGM/RW/ebPf/itB4DekPoO57dtXTw2dULYfQriBJK4c8cxkWExd/WO//D9p/ELjegeoLoCXfj8KWF/eQuvlkFKiNaPlDA8TLTrR+auLfSIpLrw76eFHXxg6e8aq6GJSMWk0Mh2zNPWFtZWPpA32hQPHej3l99NjsioUomSFdN1MovHzk0K21tl6d4Ttl/8i+L1BapBmjCMqMbbKM5X2H7lBs+erGDUakycOOzuFdkykDGdTFrYtobXy0jTJl0oYAlB6WaZ2q4xSrfmsYQgXSggtzjIF3VSzYCsk3aBnAl0GiUlxWxM9fg40vOwhGD/5ctYQiA9j0fjRynITyil0bo7BKsjkMQQxVhofur7QnV6umeK1elpRoKXmIBSCrTq5r47iCQybFGTgtLsbI9AaXaWf7M7acsYlSi00t0FMDHWHUjJUtOmdHO+a/v+1FS3nNHyAi/tPEmyyUGjGXqR7oOhIaymT1ivd2r+7Sgj98s8Gv8F6XmE9TpmsIa9ewfazRE0Qh/A+NMd2P9DfuvdiTO/uvbzpzx7/Ao54FCIP5NC04pi6lYeM/Ao7Bmkf1+JuRsV/9bKx7NX/pMPUrfb8bsRGVX8+pvJ4qGD/YO6Re7zW3SiSJIEnSiybZ/B3cOb4X+AtW9/wZxx7LHRocHyxMkjbioMQOtOs7RCK4V2c5thD2gaG5ptzjj22F6RLa8vSc93Cxqhf/uj3wMDyqA3TCAD5ACL/4cE1r7BAF8BBX1jYyT/fJkAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.StopAll%3Dfunction%28%29%7B%0A%20try%7B%0A%20%20for%20%28var%20i%3D0%3Bi%3CgBrowser.browsers.length%3Bi++%29%7B%0A%20%20%20%20gBrowser.browsers%5Bi%5D.stop%28%29%3B%0A%20%20%7D%0A%20%7Dcatch%28ex%29%20%7B%7D%0A%7D%0A%20var%20nMItem%3Dfunction%28label%2Cimg%2Cobj%29%7B%0A%20%20%20var%20m%3Ddocument.createElement%28%27menuitem%27%29%3B%0A%20%20%20m.setAttribute%28%27label%27%2Clabel%29%3B%0A%20%20%20m.f%3Dobj.StopAll.bind%28obj%29%3B%0A%20%20%20m.setAttribute%28%27oncommand%27%2C%27this.f%28%29%27%29%3B%0A%20%20%20m.setAttribute%28%27image%27%2Cimg%29%3B%0A%20%20%20m.setAttribute%28%27class%27%2C%27menuitem-iconic%27%29%3B%0A%20%20%20return%20m%3B%0A%20%7D%0A%0A%20var%20mP%3Ddocument.createElement%28%27menupopup%27%29%3B%0A%20mP.appendChild%28nMItem%28%27Stop%20All%20Tabs%27%2Cthis.image%2Cthis%29%29%3B%0A%0A%20this.appendChild%28mP%29%3B%0A%20this.type%3D%22menu-button%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BBrowserStop%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Пиктограмма: Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH1gkPDzESY3gWcgAAAqFJREFUeNplkz1sE0kYhp9dZzfBXq8HYpQUBxjOinQUVhBQRKIB3XFSjkgIAlQUAV1/6VPS5yip0FFCwU8kBxSJSG7QFXBgCayDIEwgQPjd7Np79s7uDIWDiXOfNBppPj2v3u9nDDbEpdzAqOtkFp1MWmx8x4BGM/RW/ebPf/itB4DekPoO57dtXTw2dULYfQriBJK4c8cxkWExd/WO//D9p/ELjegeoLoCXfj8KWF/eQuvlkFKiNaPlDA8TLTrR+auLfSIpLrw76eFHXxg6e8aq6GJSMWk0Mh2zNPWFtZWPpA32hQPHej3l99NjsioUomSFdN1MovHzk0K21tl6d4Ttl/8i+L1BapBmjCMqMbbKM5X2H7lBs+erGDUakycOOzuFdkykDGdTFrYtobXy0jTJl0oYAlB6WaZ2q4xSrfmsYQgXSggtzjIF3VSzYCsk3aBnAl0GiUlxWxM9fg40vOwhGD/5ctYQiA9j0fjRynITyil0bo7BKsjkMQQxVhofur7QnV6umeK1elpRoKXmIBSCrTq5r47iCQybFGTgtLsbI9AaXaWf7M7acsYlSi00t0FMDHWHUjJUtOmdHO+a/v+1FS3nNHyAi/tPEmyyUGjGXqR7oOhIaymT1ivd2r+7Sgj98s8Gv8F6XmE9TpmsIa9ewfazRE0Qh/A+NMd2P9DfuvdiTO/uvbzpzx7/Ao54FCIP5NC04pi6lYeM/Ao7Bmkf1+JuRsV/9bKx7NX/pMPUrfb8bsRGVX8+pvJ4qGD/YO6Re7zW3SiSJIEnSiybZ/B3cOb4X+AtW9/wZxx7LHRocHyxMkjbioMQOtOs7RCK4V2c5thD2gaG5ptzjj22F6RLa8vSc93Cxqhf/uj3wMDyqA3TCAD5ACL/4cE1r7BAF8BBX1jYyT/fJkAAAAASUVORK5CYII= Инициализация: Выделить код Код:this.StopAll=function(){ try{ for (var i=0;i<gBrowser.browsers.length;i++){ gBrowser.browsers[i].stop(); } }catch(ex) {} } var nMItem=function(label,img,obj){ var m=document.createElement('menuitem'); m.setAttribute('label',label); m.f=obj.StopAll.bind(obj); m.setAttribute('oncommand','this.f()'); m.setAttribute('image',img); m.setAttribute('class','menuitem-iconic'); return m; } var mP=document.createElement('menupopup'); mP.appendChild(nMItem('Stop All Tabs',this.image,this)); this.appendChild(mP); this.type="menu-button"; Код: 27-03-2010 23:32:57 Инвертировать выделение (Firefox) Автор: Anton. Позволяет инвертировать выделение (менять местами выделенные области). Незаменимая вещь для пользователей расширений типа Scrapbook (обсуждение функционала, обсуждение кнопки). скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0418%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%0Afunction%20notNull%20%28x%29%20x%20%21%3D%20null%3B%0Afunction%20compareRanges%20%28r1%2C%20r2%29%0A%7B%0A%20%20%20%20return%20r1.%20compareBoundaryPoints%20%28Range.%20START_TO_START%2C%20r2%29%3B%0A%7D%0Avar%20doc%20%3D%20gBrowser.%20contentDocument%3B%0Avar%20win%20%3D%20document.%20commandDispatcher.%20focusedWindow%3B%0Avar%20sel%20%3D%20win.%20getSelection%20%28%29.%20QueryInterface%20%28Components.%20interfaces.%20nsISelectionPrivate%29%3B%0Avar%20ranges%20%3D%20%5B%5D%3B%0Avar%20i%2C%20j%3B%0Afor%20%28i%20%3D%200%3B%20i%20%3C%20sel.%20rangeCount%3B%20i++%29%0A%20%20%20%20ranges.%20push%20%28sel.%20getRangeAt%20%28i%29.%20cloneRange%20%28%29%29%3B%0Aranges.%20sort%20%28compareRanges%29%3B%0Avar%20range1%2C%20range2%3B%0Avar%20css%2C%20cse%2C%20ces%2C%20cee%3B%0Afor%20%28i%20%3D%200%3B%20i%20%3C%20ranges.%20length%3B%20i++%29%0A%7B%0A%20%20%20%20range1%20%3D%20ranges%20%5Bi%5D%3B%0A%20%20%20%20if%20%28%21range1%29%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20if%20%28range1.%20collapsed%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20ranges%20%5Bi%5D%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%7D%0A%20%20%20%20for%20%28j%20%3D%20i%20+%201%3B%20j%20%3C%20ranges.%20length%3B%20j++%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20range2%20%3D%20ranges%20%5Bj%5D%3B%0A%20%20%20%20%20%20%20%20if%20%28%21range2%29%0A%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20css%20%3D%20range1.%20compareBoundaryPoints%20%28Range.%20START_TO_START%2C%20range2%29%3B%0A%20%20%20%20%20%20%20%20cse%20%3D%20range1.%20compareBoundaryPoints%20%28Range.%20START_TO_END%2C%20range2%29%3B%0A%20%20%20%20%20%20%20%20ces%20%3D%20range1.%20compareBoundaryPoints%20%28Range.%20END_TO_START%2C%20range2%29%3B%0A%20%20%20%20%20%20%20%20cee%20%3D%20range1.%20compareBoundaryPoints%20%28Range.%20END_TO_END%2C%20range2%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%28css%20%3C%3D%200%29%20%26%26%20%28cee%20%3E%3D%200%29%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20ranges%20%5Bj%5D%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28%28css%20%3C%3D%200%29%20%26%26%20%28cse%20%3E%3D%200%29%20%26%26%20%28cee%20%3C%3D%200%29%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20range1.%20setEnd%20%28range2.%20endContainer%2C%20range2.%20endOffset%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20ranges%20%5Bj%5D%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28range1.%20collapsed%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20ranges%20%5Bi%5D%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20continue%3B%0A%20%20%20%20%7D%0A%7D%0Aranges%20%3D%20ranges.%20filter%20%28notNull%29%3B%0Asel.%20startBatchChanges%20%28%29%3B%0Asel.%20removeAllRanges%20%28%29%3B%0Avar%20range%20%3D%20doc.%20createRange%20%28%29%3B%0Asel.%20addRange%20%28range%29%3B%0Arange.%20setStartBefore%20%28doc.%20body.%20firstChild%29%3B%0Afor%20%28i%20%3D%200%3B%20i%20%3C%20ranges.%20length%3B%20i++%29%0A%7B%0A%20%20%20%20range.%20setEnd%20%28ranges%20%5Bi%5D.%20startContainer%2C%20ranges%20%5Bi%5D.%20startOffset%29%3B%0A%20%20%20%20if%20%28range.%20collapsed%29%0A%20%20%20%20%20%20%20%20sel.%20removeRange%20%28range%29%3B%0A%20%20%20%20range%20%3D%20doc.%20createRange%20%28%29%3B%0A%20%20%20%20sel.%20addRange%20%28range%29%3B%0A%20%20%20%20range.%20setStart%20%28ranges%20%5Bi%5D.%20endContainer%2C%20ranges%20%5Bi%5D.%20endOffset%29%3B%0A%7D%0Arange.%20setEndAfter%20%28doc.%20body.%20lastChild%29%3B%0Aif%20%28range.%20collapsed%29%0A%20%20%20%20sel.%20removeRange%20%28range%29%3B%0Aif%20%28sel.%20rangeCount%20%3D%3D%200%29%0A%20%20%20%20sel.%20addRange%20%28doc.%20createRange%20%28%29%29%3B%0Asel.%20endBatchChanges%20%28%29%3B%0Awin.%20blur%20%28%29%3B%0Awin.%20focus%20%28%29%3B%0A//sel.%20deleteFromDocument%20%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Пиктограмма: Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAASCAIAAAA2bnI+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAD3GlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHja7ZZdTFNnGMf/5xxKW6CWjxap0vFaQQGxw+InCAJHEDK+0nasrQMpLZYC/fBwQAQCbhkytgluMToz5r4kWJ0yXYy6LOp0WRbGMp02tTFujCFxxDDmNjfDFnbBNsgull3MO/43z5P/8+b9v2/yu3gAsRUAaBpwOHlOuyWbGIwmIvQhCEpIEY1Qs6XeXajL1QOALocluSWbCWZFAQ+8oADgepIuh507+y+SWNwcD1AEwHprVb0FoAwAdlsdTitA3QTQbHVYrQCtB1DJGYwmgD4HQGab6YcAyCpn+mEAsp28mwfonwDIOL2WBRgRQIfY9FoWEMgAOqRSr2UBIQHoEIu5jgfESQBkjfaqnYA4E0AsX9XEAwDrcu/i7LZqnsRbEogmOTmF6MyO+ganjeTUVVl4zuW0W+oJ61InkQLeipl/AABi/zq4khSZ+QbOXEdYV52LIyWci6xSJ5N8thD/t+bkK//1oY9Ac7IFhBDyKDIMRtOf9za4gLQ3AOb1WU97Ajj9PLDMMOutUAFhfuBe66z3YwYoAFSk29LANf6N80xhIEQwwhAFggSsRhaKUAYndmM/PLiEm7hPSahEKp+yUy9SA9QNaoqOpYvpFtpD+5kgJp3hGA8zEhAdYAw4GOATKARlgrcF44EpgW2BnwkXCWuFF0QRohrRFbFS3Cz2B20I6g2mgm3BV0NSQ/olkZI9kocLnAvuSMul/tDSUG9YaZg/vDx8LMIVMSXrkivkxyI3RXoXOqJEUUcUrGJ0UefipMU3otuUCUrfY50xqTETpG9JuUqh8i09EGuIi477dtnx5Y3xbEJ4wmji2RXdSdtXZqqV6t8e/yr5o1X9mn0pzatta0rX5q3buF6zITE1Lk21cUn60ozlm9SZa7OysovZbZt35HTk9m45k3ct//snpAWawqeK2os9JV5tgG6NvvrJw6U+Q5ixyNS99WqZrHzrtiMVk5UZlh7ryPZ1tp7q72pya/scQmet68sdaVw/L2/oaPy1yblrrKWi9XZbWfvXz1ieHX+uvmO6s7sr5oXTL+Xt/aan9WXFK+f3P32AOug5pHsNvQOHzW/K3xp6Z09fdj919PKxjncLTsoHhk+dfL/9jPZs/Hl8cOvDcxdevdRyueLjvE80n5JB6RD1+YMvJq7dvX7HO+ob84/f+uH21LBoZOFo/Fj6Xf24417XxNHJwfsTP8t/yXhYM3Xo98Hp6XkW5lmYZ2GehX+yYOXtDgCYsxupZnYFgMk1H2c4k4m5eOoK+k+o8F5TEy5OmgDQfwBMZtCjN+4TcwAAACBjSFJNAABtqQAAc7QAAPq1AACAlQAAYy4AAOVvAAA3hQAAFbAnc1zwAAABjElEQVR42mRTO3IVMRDsbkl+yxV8AhJIXGQEriL0Aci4AoHLnIDsQcAVnBKTv4SQxCEH4Arss3Y1BKPPLk81wainRz0zkmhmZiiGYrYWLMVKQTErRgMIiCZSQhSDIFIEiYi2zGAGGF6+fXDk6XR8dVv93z+PlcDKZ9dcS9VcVitGM7y+fXg6HUmIFgNdM6hqqmuSIECAJPaLZAsNULs0AgS5Y9QtN5yRySbFoTwysT2URA2rOl46IdQ2/Gxe4C6zqXajgIvMzt4y9V9VY+h7Hi66iNc39+4FKaUwHdI0pemQXhzSn19f373/8vec53Oe5zyfc87rWsqFpg+A7BViU3kPDU20CyQpUWKQ3LwQNw/1bDOrmiIpioxB1aIAxKiOdM5IaaOnAim6CtuY61ZUoBqZpNBuWKJX5DZeWUNEqQltJsTRp4e3j3aHczOh/qb9r52+f3Lw7sO3H48f3X9z9xnjPxgAXt/ce4dXKaYYpilNVzGlGKMklVKWpeS8zM/LPOe8rM95KasVs38DALR8gMtwnJ/jAAAAAElFTkSuQmCC Код: Выделить код Код:function notNull (x) x != null; function compareRanges (r1, r2) { return r1. compareBoundaryPoints (Range. START_TO_START, r2); } var doc = gBrowser. contentDocument; var win = document. commandDispatcher. focusedWindow; var sel = win. getSelection (). QueryInterface (Components. interfaces. nsISelectionPrivate); var ranges = []; var i, j; for (i = 0; i < sel. rangeCount; i++) ranges. push (sel. getRangeAt (i). cloneRange ()); ranges. sort (compareRanges); var range1, range2; var css, cse, ces, cee; for (i = 0; i < ranges. length; i++) { range1 = ranges [i]; if (!range1) continue; if (range1. collapsed) { ranges [i] = null; continue; } for (j = i + 1; j < ranges. length; j++) { range2 = ranges [j]; if (!range2) continue; css = range1. compareBoundaryPoints (Range. START_TO_START, range2); cse = range1. compareBoundaryPoints (Range. START_TO_END, range2); ces = range1. compareBoundaryPoints (Range. END_TO_START, range2); cee = range1. compareBoundaryPoints (Range. END_TO_END, range2); if ((css <= 0) && (cee >= 0)) { ranges [j] = null; continue; } if ((css <= 0) && (cse >= 0) && (cee <= 0)) { range1. setEnd (range2. endContainer, range2. endOffset); ranges [j] = null; continue; } } if (range1. collapsed) { ranges [i] = null; continue; } } ranges = ranges. filter (notNull); sel. startBatchChanges (); sel. removeAllRanges (); var range = doc. createRange (); sel. addRange (range); range. setStartBefore (doc. body. firstChild); for (i = 0; i < ranges. length; i++) { range. setEnd (ranges [i]. startContainer, ranges [i]. startOffset); if (range. collapsed) sel. removeRange (range); range = doc. createRange (); sel. addRange (range); range. setStart (ranges [i]. endContainer, ranges [i]. endOffset); } range. setEndAfter (doc. body. lastChild); if (range. collapsed) sel. removeRange (range); if (sel. rangeCount == 0) sel. addRange (doc. createRange ()); sel. endBatchChanges (); win. blur (); win. focus (); //sel. deleteFromDocument (); |
iDev.Pi > 16-05-2010 17:57:29 |
Disable/enable windows titlebar with drag ability (кроме панели вкладок) (Firefox) скрытый текст Установка кнопки Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u043E%u0441%u0442%u043E%u044F%u043D%u043D%u043E%20%u0432%u044B%u043A%u043B%u044E%u0447%u0435%u043D%u043D%u044B%u0439%20Chrome-%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043E%u043A%20-%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUVJREFUeNqkUz1PwzAQPUedmBCDw8pEg1IJdiREV/4H8Bf4GcnGxsKEQGKDlXYrIgtF7Bk8gQqUJG6wD9tJ81UhIL3Ivvh09+75WUcQEZaxju/7h8qftqw/As/zsGpCLSklpl9qCYHJLMXjE6/wD49j49nLO+raPwHo9RZxnHwm+DqNkU0+CoDOnMvF5fW/uO/2+5kGelNdYWVtFQ7294qE0X0AO9u9WhFRn7abwbAUsYnMGAP9Ms3XIYTUzjwVxlt6qybTdQq2bQNKUem8aELKCkAeNEAqHoYhjJ+ei2QkPzPJriDzRCEMMqUUoiguC3QHK/MIuAgw5TNziDmHIAigyb1oaumQVQPINcgoCBTgui44TreGgPM/dZemuIZBkis6GJXdN7Y24fZu+PssGAkkQtfptRsmPRBX52eth4ksO87fAgwAwhDaXBPgKF4AAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%20%20document.getElementById%28%22main-window%22%29.setAttribute%28%27hidechrome%27%2C%27true%27%29%3B%0A%20%0Awindow.restore%28%29%3B%0Awindow.maximize%28%29%3B%0Awindow.restore%28%29%3B%0A%0Athis.drag%3D%20function%28%29%20%7B%0A%20%20if%28window%5B%22bDragW%22%5D%20%29%0A%20%20%20%20return%3B%0Avar%20Ctrls%20%3D%20%5B%27PersonalToolbar%27%2C%20%27toolbar-menubar%27%2C%27nav-bar%27%2C%20%27status-bar%27%2C%20%27FindToolbar%27%5D%3B%0A%20%20try%20%7B%0A%20%20%20%20%20Components.utils.import%28%27resource%3A//gre/modules/WindowDraggingUtils.jsm%27%29%3B%0A%0A%20%20%20%20%20for%28i%3D0%3B%20i%3CCtrls.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20ctrlW%20%3D%20document.getElementById%28Ctrls%5Bi%5D%29%3B%0A%20%20%20%20%20%20%20if%20%28%21ctrlW%29%20continue%3B%0A%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20bDragW%20%3D%20new%20WindowDraggingElement%28ctrlW%2C%20window%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20DragW.mouseDownCheck%3Dfunction%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%20WinState%3D%3D0%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7Dcatch%28e%29%7B%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%7Dcatch%28e%29%7B%7D%0Awindow%5B%22bDragW%22%5D%3Dtrue%0A%7D%0Athis.drag%28%29%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20mainWindow%20%3D%20document.getElementById%28%22main-window%22%29%3B%0Avar%20chromeattrib%3DmainWindow.getAttribute%28%27hidechrome%27%29%0A%0A%0Athis.togglechrome%20%3D%20function%28%29%20%7B%0A%20%20if%28chromeattrib%3D%3D%27true%27%29%20%7B%0A%20%20document.getElementById%28%22main-window%22%29.setAttribute%28%27hidechrome%27%2C%27false%27%29%3B%0Awindow.restore%28%29%3B%0Awindow.maximize%28%29%3B%0Awindow.restore%28%29%3B%0A%20%20%20%20%20%20this.checked%3Dtrue%3B%0A%20this.image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUVJREFUeNqkUz1PwzAQPUedmBCDw8pEg1IJdiREV/4H8Bf4GcnGxsKEQGKDlXYrIgtF7Bk8gQqUJG6wD9tJ81UhIL3Ivvh09+75WUcQEZaxju/7h8qftqw/As/zsGpCLSklpl9qCYHJLMXjE6/wD49j49nLO+raPwHo9RZxnHwm+DqNkU0+CoDOnMvF5fW/uO/2+5kGelNdYWVtFQ7294qE0X0AO9u9WhFRn7abwbAUsYnMGAP9Ms3XIYTUzjwVxlt6qybTdQq2bQNKUem8aELKCkAeNEAqHoYhjJ+ei2QkPzPJriDzRCEMMqUUoiguC3QHK/MIuAgw5TNziDmHIAigyb1oaumQVQPINcgoCBTgui44TreGgPM/dZemuIZBkis6GJXdN7Y24fZu+PssGAkkQtfptRsmPRBX52eth4ksO87fAgwAwhDaXBPgKF4AAAAASUVORK5CYII%3D%22%3B%20%0A%20%20%7D%0A%20%20else%20%7B%20%20%0A%20%20%20document.getElementById%28%22main-window%22%29.setAttribute%28%27hidechrome%27%2C%27true%27%29%3B%0A%20%20%0Awindow.restore%28%29%3B%0Awindow.maximize%28%29%3B%0Awindow.restore%28%29%3B%0A%20%20%20%20%20this.image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR5JREFUeNpi/P//PwMlgImBQsCyc+/eGiDdTIbes0C8mYWDg6PZztqafBeAiDffsUuGxkeBaWnvcAy5CWH+EAM+fvpE0BYpfWMU/rOLZzED8dyxvWCMDYA0dBvIgDGyZrALPgFd8P/fPwZ3Z2ewwMuv/xkYgfR/BvzR++8fRJ7l569fDH///mPYuXc/WEDP1B6ighFVQ0xVI4ShbgCm/v/9iwjEf38QLnj67hfYdjT9DP+hGmHgD8iA/4wQA/4COcD0AJbQ0LdiYCQicf7985eBkRHqApBpVmZGYIk3X//CFcmoqEMYNy9ghoG7MyigIAaA/PPqEyxC/oI9wAgkG7ILoAHKiBYs/xn+AcMNJqY0Z9Giu+QmZcYBz40AAQYAXyBzO2qih9QAAAAASUVORK5CYII%3D%22%3B%0A%20%20%20%20this.checked%3Dfalse%3B%0A%20%20%7D%0A%7D%0Athis.togglechrome%28%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B********************************************************************%20%20%20%20%20%20%20%20%0A%0A%20Toggles%20window%20chrome%20for%20your%20browser.%20%20%20%20%20%20%20%20%20%0A%20Makes%20the%20window%20almost%20chromeless%20meaning%20no%20titlebar%20%20%20%20%20%20%20%20%20%0A%20but%20taskbar%20should%20still%20be%20accessible.%20%20%20%20%20%20%20%20%20%0A%0A%20Convenient%20for%20going%20fullscreen%20without%20losing%20all%20%20%20%20%20%20%20%20%20%0A%20those%20useful%20toolbars%20and%20the%20windows%20taskbar.%20%20%20%20%20%20%20%20%0A%0A%20By%20default%20this%20button%20makes%20the%20browser%20startup%20chromeless%20%20%20%20%20%20%20%20%20%0A%20you%20can%20change%20this%20by%20commenting%20out%20the%20appropriately%20marked%20%20%20%20%20%20%20%20%20%0A%20line%20of%20code%20in%20the%20button%27s%20initialization%20tab.%20%20%20%20%20%20%20%20%20%0A%0A********************************************************************%20%20%20%20%20%20%20%20%0A%0A%20Directly%20Clicking%20on%20the%20Button%20does%20the%20following%3A%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20L%20%3D%20Toggles%20Chrome%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20Any%20Other%20Click%20%3D%20Custom%20Buttons%20Context%20Menu%20%20%20%20%20%20%20%20%0A%0A********************************************************************%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var mainWindow = document.getElementById("main-window"); var chromeattrib=mainWindow.getAttribute('hidechrome') this.togglechrome = function() { if(chromeattrib=='true') { document.getElementById("main-window").setAttribute('hidechrome','false'); window.restore(); window.maximize(); window.restore(); this.checked=true; this.image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAUVJREFUeNqkUz1PwzAQPUedmBCDw8pEg1IJdiREV/4H8Bf4GcnGxsKEQGKDlXYrIgtF7Bk8gQqUJG6wD9tJ81UhIL3Ivvh09+75WUcQEZaxju/7h8qftqw/As/zsGpCLSklpl9qCYHJLMXjE6/wD49j49nLO+raPwHo9RZxnHwm+DqNkU0+CoDOnMvF5fW/uO/2+5kGelNdYWVtFQ7294qE0X0AO9u9WhFRn7abwbAUsYnMGAP9Ms3XIYTUzjwVxlt6qybTdQq2bQNKUem8aELKCkAeNEAqHoYhjJ+ei2QkPzPJriDzRCEMMqUUoiguC3QHK/MIuAgw5TNziDmHIAigyb1oaumQVQPINcgoCBTgui44TreGgPM/dZemuIZBkis6GJXdN7Y24fZu+PssGAkkQtfptRsmPRBX52eth4ksO87fAgwAwhDaXBPgKF4AAAAASUVORK5CYII="; } else { document.getElementById("main-window").setAttribute('hidechrome','true'); window.restore(); window.maximize(); window.restore(); this.image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR5JREFUeNpi/P//PwMlgImBQsCyc+/eGiDdTIbes0C8mYWDg6PZztqafBeAiDffsUuGxkeBaWnvcAy5CWH+EAM+fvpE0BYpfWMU/rOLZzED8dyxvWCMDYA0dBvIgDGyZrALPgFd8P/fPwZ3Z2ewwMuv/xkYgfR/BvzR++8fRJ7l569fDH///mPYuXc/WEDP1B6ighFVQ0xVI4ShbgCm/v/9iwjEf38QLnj67hfYdjT9DP+hGmHgD8iA/4wQA/4COcD0AJbQ0LdiYCQicf7985eBkRHqApBpVmZGYIk3X//CFcmoqEMYNy9ghoG7MyigIAaA/PPqEyxC/oI9wAgkG7ILoAHKiBYs/xn+AcMNJqY0Z9Giu+QmZcYBz40AAQYAXyBzO2qih9QAAAAASUVORK5CYII="; this.checked=false; } } this.togglechrome(); Код "инициализации" Выделить код Код:document.getElementById("main-window").setAttribute('hidechrome','true'); window.restore(); window.maximize(); window.restore(); this.drag= function() { if(window["bDragW"] ) return; var Ctrls = ['PersonalToolbar', 'toolbar-menubar','nav-bar', 'status-bar', 'FindToolbar']; try { Components.utils.import('resource://gre/modules/WindowDraggingUtils.jsm'); for(i=0; i<Ctrls.length; i++) { ctrlW = document.getElementById(Ctrls[i]); if (!ctrlW) continue; try { var bDragW = new WindowDraggingElement(ctrlW, window); DragW.mouseDownCheck=function(e) { return WinState==0 } }catch(e){} } }catch(e){} window["bDragW"]=true } this.drag() p.s.: код кнопки основан на коде 4-ой кнопки из этого поста + доработан автором foxiFrame basic'а (добавленный код - одна из функций которое выполняет это же дополнение, возможно вам стоит посмотреть и его (там больше функций)) p.p.s.: если использовать эту кнопку в сочетании с 1. 4-ой кнопкой этого поста (Меню делает иконкой) + 2. кнопку из этого поста (титульник страницы на панель) + 3. первые 3 кнопки из этого поста (скрыть, развернуть и закрыть окно) (их ещё бы можно переделать сделав их похожими на дефолтные виндовые (как в вин висте и вин 7) = то можно разместить все эти кнопки на 1 панели меню: лого кнопку - слева (клик по ней - вызывает меню), потом титульник страницы, потом изменяемый интервал, потом кнопки "свернуть", "развернуть" и "закрыть" (они будут справа) - то получится хорошо сэкономить место на экране, за счёт убирания виндовой рамки и тайтлбара + функциональность вся остаётся, и можно ещё на свободное место перетащить другие КБ кнопки (между тайтлбаром и кнопками свернуть-развернуть-закрыть). |
iDev.Pi > 03-06-2010 23:25:57 |
Minimize/Maximize/Close window (win7 aero style) (Firefox) Свернуть окно (Firefox) скрытый текст Установка Выделить код Код: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%0A%20%20%3Cname%3E%u0421%u0432%u0435%u0440%u043D%u0443%u0442%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3Evar%20cssStr%20%3D%20%26lt%3B%21%5BCDATA%5B%0A%09%09%25button%25%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB0AAAATCAYAAABsmQZ/AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAAESUlEQVRIS42VWU9bVxDH7zcCRYqagmNsyEPf2+apjRS1SgMGQonAJixp8G5sMAQCMSGRmtKGhMV4t8GkEomxDV4wUOOVpdBHvsK/c861ARM/cKWfZs42/zn3nntGODw6QmPTHZye/oed3T3s7l2wR/7e3j+XKI2V5zFbBRangp1Sm+zR0TGEsujJ6akoWuaS+Hkil8a/CFxNiIldgYseHLKdNoGLVpnE+yhgqjRWtuLcXeqv5HIMNvfquCh6cAh5YxPfdiyeQJxgtkw8nqxox2KV45fb8QStTySrQ3HYWKF4AKFQPIRM1oh8oYhQKHLBRjU/jM8hkVCZjTA2GOEIwoxIFBGC2TKRyCb1MaLI5fIQ8vkipFI5HZZ9+P1BkUA1u0pjlQQCqwisrGKFsRrEanANQcbaR6yd8zf5F7AzI2QyBdTXNyCZ3MHysreE58J3sD7WZrgJF8fhIJxuOF0euAiPxwuv1wefzw+fP0AJlgis0CYYlDCxvZ2CkE7nceuWFJubSczN2b/g/Xs7RJY4c3OLZBfw4cMi5ueXML+whMVFO+z2ZSw7nJSEi5Jww+X2wM3xilBSbo+PnxlhdzeHmzclFMSJzs4BPH78FF1dIt3dvxHMH8CP99rw7d0H1+L+Tx0wGEwwmoZg4phLWCg5B4Tt7Qxu3KjD7OwSWlpUUBCtCrIKJVpblWhrUxFKLnbdh81Vq7XQaHTQaHXQ6vTQcQxYoDcjJBP7qK39Gm/fLuCXB11obu4muigBEYWimxLp4qJnZ2fXoiyqZqIaPUerNXC4aCKeRk3NLRJdwsOHSrQ0K0mktEu2U6K1tZuLnpycXAsuqmEiRtqlkXZogl7PGMICfX8hkUijtuYrvHvnpNfYj/ZHfXjE6OjDr50X/HBPca3vyQTv/9wBrcECvXEYBuMIYeUYTVYs2V30epNpfpAW5t3o6dFDqdRAqWKooSLb06NGzxMNVGRVqkHqf0b+IJ70qtHbr0XfgA5PnxkxqB6CVs9ERmEyj2OIMFsmYBl+QUye43D6IaRS+5DLv6H/zg+zeYoOwAh9fEIjWi3ztcPUFhlUmzkarQUa3TB0erYLUYgFt47aMPZ8BmPjM3g+8RrjL95wJkp4fWsQ1tejdHA60N7eQf9WELbpWb7IOjqNEcI6RjDf+hKWkSke2Mwhn7WtUzTPhtHxVxiffINJ2++Ymv4DL1/NwjbzJ6Zf/wUbwSwj+PETBPasr4cgl92hk9rOr7NYLEX3ZOyccDhGd+sWQhtRunej+PQ5Ugn1hTY26a6lNdEEoltJbDJi20QKW0TZMp+LsodVk/7eAXz/3V00yhspCYJbORUEORqkMty+LYVEIqFrU4K6uvoK6qlfQuNSmtfQIONrWCGRUYyrnIsyJ53O4Pj4XxEqdQxW8o6o5rISWCwWkc8XeKXIZnOcTCaLTDaLbC6HHI2xalUoHPASVqQKVmTrrvA/8KJW0ZMmlNcAAAAASUVORK5CYII%3D%22%29%20%21important%3B%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-moz-box-shadow%3A%20none%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20background%3A%20none%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20border%3A%200%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%20%21important%3B%0A%09%09%7D%0A%09%09%25button%25%3Ahover%2C%20%25button%25%3A-moz-window-inactive%3Ahover%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%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%3D%22%29%20%21important%3B%0A%09%09%7D%0A%09%09%25button%25%3Aactive%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%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%3D%3D%22%29%20%21important%3B%0A%09%09%7D%0A%09%09%25button%25%3A-moz-window-inactive%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB0AAAATCAYAAABsmQZ/AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAAB90RVh0U29mdHdhcmUAUGFpbnQuTkVUID8/Pz8/PyAzLjUuNefKA2EAAASTSURBVEhLjZV5UxNZFMX7E47LUDJWqSMuKMqIUzpCICFrJ+mkO+l0d/aQhcgeCGZYZFVAdGY+h3/7Fc6c+xLQ8i+66lf3Lfe9c959L6AdHBxiZOQh1jrryDnegDwjyeXhDKJte8hmXeIo7KyNnO0wx4GTc5nnwnUL8PIl5AtlFIoVFEs1lMpzKFXqKFcbirX1TWg7u+9x5+49LCwuI21mFKaZhWkRxnSaYxekLKQEw2RMI50yYaYtWFxjWRlkLBu2MkLzNOB6RWXCowmvWKWRKpZX16H1elsYHr6NZmseup6EHjcQj6eQSBqKuPT1FPRYkpHzjHosoZB+Ii4YSDJXzKRpQsxaVg4ZqQwrZEu13CJyXgkLS2vQ1je6GBq6hVqtjmAoQqIIhWIIh/UBbLMvYyHOhUkkHOFchJHtSBTRiI5oVFemxWQimaIJE0mpSpoVyziwaCCT9dB+uwRN7vL69ZusfxXTM7OKGX8Q/kCoj7T9gzgTQoBjfcIIzIYxq4jQkEBTykACURqIqYqlYaQySjzF8jfnF6GtrHbwy7Ub6vInp/yY8s0QiX74pmcZA31kjvimA5ieDtJcH3+gb1AZoQGpVijEKkXiiESTSlxPiLhF8SwazTa05RURvUnRCt5M+vGGApMCBd6QyamAihcoAyLMUytYBWGGJ/fL6YMRzPIqghQO8dR9YQM6y50wLMw1KLra2cC1G0PqeU/yBBdM+dgWZMw3+32cfZ8IUWCGZRX8FPIHoxQkFAwMBEMsczhmUDSFOE+aMDKYk5N2uj3cHBpGpdbkBlESo+MoN/2Oj+1791/g11ujV+L3BxOXYrGEyVNaiLO0RtpGQ+50s7eDW7/dQb21gFA0pQhGjJ9IKrGrfpKr81RxI8sXbMMwHT4iF6mMh1Z7GdrW7j5u37mP1sIq3eQUOpP1pK2IJTMK2ejbt29XQnJT2bzCzBZg5YrIOCVknTLaix1o7w8+4O7IYyytbsLkpGmX+LsqcEEB6cFCcSgbff369UpIbtatwPZIvoJcvgYnPwe3WMcidbTDj2cYeTyGTncbTqEOuzCnkmyvhqxXHVDBo6evrnSfIjg69hfcUh1eqXFJvtxEodzCSqcH7ePZFzwd/xMb73ZQmmsjX2mRJvKlJlwmuuUGHG4gmwiqzbFLmOtJfrWFwgW1ebbbiqJivh9rbaxtbEE7/fIfXr72ocsH1WivotxYoDhhQoEU1QY0UqVTFX+G8yr3LdcRiUL9BzheFji2xoqyvOdIWg6K/PfT/fs9WrzoanMJlcYiF4qBtyiyAkqc5OlaomoPojInOSIqa0h5wEVfTIhohxXV5NvdP8b4xGveYxGdzW1s7R2jt3OAd9v76G7tKTMbPWGX7KiF6xLJOsf69HO6gqz5iU32hXfbe31R+Q6OT9Xv6BX/FD55PoEnzybweOwF+YOPaBwPnzzHg1HhGR+eMPYD/bH+/HOV+0gxrtbKHheMsn0pqoQ/nOHk/F98/PQP5IF9OP2C45PPODo5h7xymRdz+0cn2Dv8AekfcZxzB8dnOGSe5B+dfFIcC6fnAz7jf77nyyVS9zSnAAAAAElFTkSuQmCC%22%29%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%5D%5D%26gt%3B%0A%09.toString%28%29%0A%09.replace%28/%25button%25/g%2C%20%22%23%22%20+%20this.id%29%3B%0Avar%20cssURI%20%3D%20this._cssURI%20%3D%20makeURI%28%20//%20chrome%3A//global/content/contentAreaUtils.js%0A%09%22data%3Atext/css%2C%22%0A%09+%20encodeURIComponent%28cssStr%29%0A%29%3B%0Athis.setSheet%20%3D%20function%28cssURI%2C%20addFlag%29%20%7B%0A%09var%20sss%20%3D%20Components.classes%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D%0A%09%09.getService%28Components.interfaces.nsIStyleSheetService%29%3B%0A%09if%28sss.sheetRegistered%28cssURI%2C%20sss.USER_SHEET%29%20%26amp%3B%26amp%3B%20%21addFlag%29%0A%09%09sss.unregisterSheet%28cssURI%2C%20sss.USER_SHEET%29%3B%0A%09if%28addFlag%29%0A%09%09sss.loadAndRegisterSheet%28cssURI%2C%20sss.USER_SHEET%29%3B%0A%7D%0Athis.setSheet%28cssURI%2C%20true%29%3B%0Athis.onDestroy%20%3D%20function%28%29%20%7B%0A%09this.setSheet%28this._cssURI%2C%20false%29%3B%0A%7D%3B%20%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bwindow.minimize%28%29%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код Инициализация Выделить код Код:var cssStr = <![CDATA[ %button% { list-style-image: url("1pic") !important; -moz-box-shadow: none !important; background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; } %button%:hover, %button%:-moz-window-inactive:hover { list-style-image: url("2pic") !important; } %button%:active { list-style-image: url("3pic") !important; } %button%:-moz-window-inactive { list-style-image: url("4pic") !important; } ]]> .toString() .replace(/%button%/g, "#" + this.id); var cssURI = this._cssURI = makeURI( // chrome://global/content/contentAreaUtils.js "data:text/css," + encodeURIComponent(cssStr) ); this.setSheet = function(cssURI, addFlag) { var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"] .getService(Components.interfaces.nsIStyleSheetService); if(sss.sheetRegistered(cssURI, sss.USER_SHEET) && !addFlag) sss.unregisterSheet(cssURI, sss.USER_SHEET); if(addFlag) sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET); } this.setSheet(cssURI, true); this.onDestroy = function() { this.setSheet(this._cssURI, false); }; Развернуть/восстановить окно (Firefox) скрытый текст Установка Выделить код Код: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%0A%20%20%3Cname%3E%u0420%u0430%u0437%u0432%u0435%u0440%u043D%u0443%u0442%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3Evar%20sId%20%3D%20%22__customButtonsStyle__%22%20+%20this.id%3B%20//%20Unique%20style%20%22id%22%0Avar%20cssStr%20%3D%20%26lt%3B%26gt%3B%26lt%3B%21%5BCDATA%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%25button%25%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABsAAAATCAIAAADu5eFvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAADeElEQVQ4T43U/1PaZhwH8Pxd3beiod2Prnrurnfbfpp33bqz7qQKCCEQQgJJgCRY+aKzTrer3e1LLVrYJu02IgExAsGVL4Far3abv+w/2D4JGpzecXvudbmH557PO58nR4LgXu/JyUm1qhpqF9XUmlo3qWpdrZsO1PqBvnIGth2+PEI8Hvws8VIc3OMssV+pJxpZPUaceUs90eVy/6X3eDmupseZif3WzMTT7vqHqNUPD48Qh8N5/Pr13p7SUzbAhKQio+MTA5B0VNmvKErfnrKvdbrIzMzsq1fHBblYKABZnxgg65+BAzYUiyW5R9avBbnUbLWRO1NT3e6L7e3cBf8nMZd7tq17asj9vJ2rqSoyOTmpaZ1s9scMyPSZiZcP3msd1rPZn/SqbPaJYSuTUSr7yO3bn7Va7XR66wIo+NsYMNl6kjGdX09vbj5Ob26k0xvpx4/SGz+kN0rlXWR0dGxnpxAMMueEYA6VfxgDJgzDmc6vB2iapCmCIr0U4Q34wPq3D5GRkffyecnvD5BkAK5+goQrQZBQeWSMy6c213Ev7sY9LtzlxJ123D6L21fXVyHxRi+RIP4DgjoDB2xwezAnNmfHHDPYzF3MZsOmVx7cR0ZujOWlAkkGDTTpp/0GKGgOHLDB5XFD4qzbftdts7mnp7HPlx8sw3MclySZoiMUHdZR4QDFgVuf2gb/wyduTWE4Poe7HJgTerTpPdpW1u8jY+M3ZbnMcvdYbp7h5kNsjAGMGAKsyLAiywGeYaMMGwkxXDDEUEEmQNF+MgDPHPf73D5szutyep0On2PtmzXk/ZsflcvV2PwXQIwtCeISLywK4iKvSwliUhATQizBiwu8EOMFMcoL4WiEC4cZlgsxDBWiA0GSoAiC8vpo78Pv15EPPvxYqRwkF78GidRXidRaHCTBaiL1pWElnlqOp5biyeRCMr6QWIjdi4nzohATeDEaFcJhnuWiISYSZKL0o83vkImJT46P/yztVs7ZL5aAUtxVSrq94m65WCrBuyvDu1uUCnJ+p5CXdn7VSb/kpWf5/NPfeqQcYr32ruG61dqHWq+j6DWDFbUCFEWHhlHLMPrO8PDbQ0NvAYvlTd1V8MYpy5WrlitIp/ui0wFdAN8iTQOdM1pbA+221mprjVb791b7oNlSm80aaDSqjeenms+rTfjZqIB/AUBg8dI6uaMqAAAAAElFTkSuQmCC%22%29%20%21important%3B%0A%09%09%09-moz-box-shadow%3A%20none%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20background%3A%20none%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20border%3A%200%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%20%21important%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%09%25button%25%3Ahover%2C%20%25button%25%3A-moz-window-inactive%3Ahover%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABsAAAATCAIAAADu5eFvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAAEV0lEQVQ4T61Sa0xadxy9n/Zhn7ZlbmnX2laxDgVBrTNK26Vdui9LmiVLmmVJF5M+nMV1VSuiDGNx6BSk+ACFaFVUVBAQlJdQUJha54OHl6eCFkTro6XOR0H3+k8716SJ2YeenPxz7vmf37n3l1woo0ZgD/zWORHonlwUmpZEphUJvCqF16T2Z3JnUOkCfK5yv6Tcvb6vgalwBvvtwT74aS+8CqYE5qXuqUWDdw26Wit+w43fsCRvuPHr2l6rP/jg0XzLmI83vtA+udhpWhJYV4iVjV9duXkIC2lNInhNYF3tMj3pmFxsH/eDBr17GbpSLTH5njUMergGT5NxrnnkceuYv208ALr+OhQg0GVa7pgI8MYWmkcfNw7PgYYBeBn6kiEc8axUKu10lZ2hcTG1s3WDs2zD3P9p5A776o3zdUOe6oezTK2brnZIJhegy3ShcWaZKp0uk9kqFPZKpZsx4GbqPAeNry++/+nAZw15a3RehmaWpnZXKhxl/baecR/0BU2gdy6RhFNkkblEar0ns5fJHT+r3WDg+R6AqDHO7bN6aP5Vv0o7U6meKVM4KX12itRKFls6RuagpAJutWr66C3e8e87TuZ0xhAEcSQJliwDk0/2AMR5un6f5+iDr/opVFVSiRxFksQWiKJy+JG3O65xdRD2bkOV3PLu9ab3M1s+xPOO3eFHEYQfE8Vg0r+H17c+8NEl8jiSNJogjMzpPoLnRWS2XmVrIGw+BzS+d+MBeD6a3XY8ryuK2IMgS0GR91CAAJqijCPLogk9J3K7P8K3RWTyvmVroUQCl6GcjviuGbwkMod/giSOKpdHMdVgwH0oQCCOoYkrV8QWyU7lCU/9wD+Cb8to0EHJBE6tGj6e3X4S7FsojqYqYmrUiEb9pwX0w//wi3er0PWGhCoN6p4CWSiNAaV3Oq83GqAzBE79gA2R232aKI6nKpD3tSiuIZ4/huw1xSrNCK0VoYMRetsBYx7CyAErWmZGC6eS28aS2cZEmhZLUaKJUmS+GN86CqUUcLg6F6aoN7FUlczUJXN+SeJPJsksWI09YdCFGpmNG3cjJ2f2CTRwsEPuMzpHigJO7bGkt07gWMZ0mi6Nokwi9+d2/ArhyC2Nxvm0Ug2ONojjjpzlT6X1wWm6mdRhb8qUDwv7MY4AxvkvHQHgpJp86Y/mcQbvBbXrosj2WavpAmv0fIX+HFVLFE1Dl1tGBd6tetsyx7PK9gfpKxv5wS3c1ouYUOjY7k7E7zvv/LH79p8v+daeAM4HuzuR4fDp7dDZ9W3i6gYzsM6ef8pyrlAtQehSdd/nbE0KgRV/rRidRcHklGMK6Jii+5hiJqakJqG0DvVTHYr6H4EDfHCL/ZGZSKxKzKvA4KkJN0pQGaRP8usu1aogrnOjxrFJs29RbS+Kp0OF06E8a+i2OZxtCePN4VumMN60k2XZASfQWeZ/TuCDW5ABSZAvhkNglm7frnVscl2bfwMRUdfJvwX5CQAAAABJRU5ErkJggg%3D%3D%22%29%20%21important%3B%0A%0A%0A%09%09%7D%0A%09%09%25button%25%3Aactive%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABsAAAATCAIAAADu5eFvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAAEaklEQVQ4T2PIn7vl1I2H/WsOTlh3cPKGQ9M2HZ2x+eisbSfm7jg1b+fphbvPANGi3WehaM/ZRUC0+yxQcP6u0/N2npqz/QRQPVDX5I2HgSZsPnGVIWvuViqbmDqb2iYmzNx88PLdhkU7mpbsbF22q2P5nq6V+3rXHsip7g4OS8OD8qp7Jq473Lf2YNeqfR0r9rYu2w00YeWB8wxRUzfuPHszf9r6wukbSmZuKp+zuXLe1tqF24Fm/ccLgAoal+ysW7ijav7WijlbSmdtBpoADH2G0InrNh2/Ete5NLFreUrvyvT+VVmT1uRNW0eMicUzNgGdkj15TfqE1UC9iV0rJq0/xBAyYe3Go5dj2hbFty9J7FqW0rMifcKqrKlr4SZiehzidKB43rQN2ZPXZkxYldK7Aqg3vn3pxLUHGPy7Vq7eeyawdEpQ2dSQymlh9XPDWxdE9C4FavgABkBG5NItkUu3Qkhk8eiepZFtCyPq54bVzAqpnB5cPrVr4TYG/YzWzunLuDXceDQ9+QwDBKwjBd2ShIOygTpfgAGQIVzSAkfI4uK+WWKO8SIWYUKGgXy6vrxaXpF5TQw6KQ1tUxazKNqzKTlxaHlxmQZzO8Tw+oBi+TEYYPoaLi7ongJ0AdAdPFpeHGpu7MrOoZm1DDqpTW1Tl7AqObKruHDq+XJZhXO7JfEE5wANuocXABUI+GQIOMTxmQbz6PhwqrtzqLiEZtUx6KY2t09bxq7qzqnjw20RzuOWwhOSz5tcDdRwCy8AmRhVKuCbyQ801DiYR9uHU8MzPKeZQTeluWvmSh4tX16TMD7HJH7/PP64Kv7iNvPscvwp3CK1RDi1Xji0RNg9Tcgqht8giFfHPyq/DWRiz+y1AkZhgraJwl7ZwpGVwrltws2ThabOE1y0hH/jar5dG/j2bISiXRv4N60WWrJUeOYCkfbpYsXdYvH1Yv6Fok5pwuYxwkZhscU9DHrJzf3zN4paJYi6ZokHl4knt4pXTRKfsEBs8UrRDRuE9+8QOrFL6NReCBI+sRsoIrpxg/iy1RJTFkk1zJDO7pKOqJHyLpCwTxO3TEismMRgmNnZt2SHpGOmlE+xdGSjTH6/TNsc6TkrpdZtlNyzU+LMQfFLR8SuHYUgIBsoIrl3l/T6TbIL1sh3L5Qvnyof3y4fUCnrlidtn5HSMIfBbfLOpdde9+w803vkUtfF2y13H+c9f2Xy/r3C18+SP78J//7B//cn199fEMT27zeQ5P/zU/jXd6lvXxQ/fDR9+Tr//tPWK/e6Tl3rPnip7sAdhogVp+0612omNsn55yrF12oU9mo1ztLpW6ozY63WvI3qi7eqLN+usGqnwsqd8it3Kq7cqbx8u9qirZrzNmnNWK81YbVW21L1qgUqeTNlkyZrFi+PXH+dYeaNz5Oufem+9rXl6ve6yz8qLv8ouvQj78LPnIs/sy/8zDoPRL8yL/4CkkB25gUQCRQHygLVAFUC1ddd+QHU233t26TrX2be/AIAOtNJcCPMEfcAAAAASUVORK5CYII%3D%22%29%20%21important%3B%0A%0A%09%09%7D%0A%09%09%25button%25%3A-moz-window-inactive%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABsAAAATCAIAAADu5eFvAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAAB90RVh0U29mdHdhcmUAUGFpbnQuTkVUID8/Pz8/PyAzLjUuNefKA2EAAAOASURBVDhPjZTbbts2GID1jgV2U2RZ29WZk9pODKfJ2qBDgcSWZUnUgaIo6uT4JCd14vrsxG6dQ5EUe4Rd7GY3u9wbbD8lI8tQwBjxgSB/kZ/In5SEvf2D8XRO3XCJlzQCm/m24xPmW9SzqG/ankFc3WIaZshwVN1WdaIgLCNTVg1AQZxavSUUdn8ejS8J9f8FRBREPqYetl2DMBBxl8lUw5F1W9ZIBVmSYkqKIcmaVEGSvKRaawj5wt5gNDWJ+0As4i6TMIMvykEmRaaj6BR0FUTKiiXKpijrYkUrSagkqWJMWVKDsCbkdgq9wVg3qY4djsVgUYblZrbfPPkutYL0q9elsloU5YRSjO8fC5lcvtsbIJ0gw4a1aCb3wrrA9ffKAgOORPVIlI9KQKVYkgDPD4WtzM55dwA5VnTC823QhP9nVA5L8mGpEiMdFSXX48bts25fhlPTuFQxaMKD8duNJ0tP1ngogjGBSxPjzll3wHWapei2YjgKHILBd/1XXKBR0aiE7DKyRBU/jhclrVhGRRGyqcTIHuTxVTZ//nG43LLpIOyomKnYhZl/xoUbdVpBXCoh8jhekg1+4gkVjl9tCJmd3W5/DJcDYbgoroY9jfjI8mHmH3H5dtcPcQluJbLgbgJyzHE9ErYL+/3RhUF8wwYCgwamA3UIot9XFhgAyYE7D8cIXxGgmbTR+iDkd98OxzPLCS1Wxew4pmaxGkz4bWWBAZrlA7rlGQD/Rlir3REK++9G08+2W+d4QCMhV3i3+oZn8wcmDTl2gG2fQ9z2SUd4/eaXyeXCCZqcEGgBNGjFEV5Tv8nf4daJ2wAst44ZUDOdKqYJsZF42GJR+4Ow9/b9dHbFwug/VKHbSnCCCNTJO2jQtP0m8ZpczWpcZ4fYDkzim5iZmLYgj/sH76fza/c4cqttxonVVehC3XKrrTjYdkLwRvEOIrDbXMqNBgkgiTp24c+g6aTRiLjx5u7X/niW0BvPe1CPoAFc9jkQnwP80Wj2ERjOuoOL8/6k0x2fng1OOr32abd9ch61O1F0KqQ2M6nNXEw2tZU0cql0dlmnsxub2Y2t3JLN3EaaP335U+ZFauvZj+n15xvf//Bybf3F2tqzp0/XAWFxe3d1e7+4vYc6aXx+1E2C11++JlwBt18XN/eL67v54svs083F7Gpy8WkyncFvezicDIaTfwBi5Z9t02GZKAAAAABJRU5ErkJggg%3D%3D%22%29%20%21important%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Aroot%5Bsizemode%3D%22maximized%22%5D%20%25button%25%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABsAAAATCAMAAABWWYYKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURTw/OTw/Oj0/PD4/PTxAOTxAOj1BOz5BPUBAPkBBP0FBQEFCQUNDQkNDQ0JCREJDRU5OT05PUE9QUlBRUlFRVFJUWFVXXVNWZlpbYGJiZmtrbG1tbmdrc2lsd29vcGtteXV2dnl5enx8fX+AgH+IhoGBgYKDhoCEhIGEhYKEhoOEh4CGhYGGhoKGh4SEhoSEh4SGh4OGjoSFiIWFiYWGiYWGioeHi4eHjICIhoGIh4GIiIOIioGLiIKLiYKLioOKi4eIioWJjIeIjoWLjYeLj4aPjIaOjYePjoiIiomJi4iKi4iJj4iKjImKjYqKjoyMjoyOj4eJkoiKkIiKk4qLlIiPkIuPk4uMlIyNlYSQi4aQjIeRjomTj4iVjomVj4qTkYuXko2RlY+Rl4yUlI+Vl5CRmpCSmJGTmpKTm5KTnJGVmZOUnJOUnZOWnJSXnJWYnpeZn5aXoZaYoZiaoZiaoqqsrautrqqur62wsa60tLOztbS0tbS1trS1t7W2uLO5t7e4ubi5urm5vLm6vLy8vby9vr2+v76+wL6+wb/FwL/GwMDFwcHFw8DHwcHHw8PExcLGxcTExcbGxsXGx8TFyMXGyMbGycfHy8bIycfIysjJy8jKysnKy8jJzcnKzMnKzczMzczNzs3Nz83Ozs3Oz8vL0M7P0M7P0c3O09TXz9TYz9DR0tHS0tHS09LS1NLT1dPU1dTW0NbX0dfX09TY0NXZ0dbZ09jY1NjY1dnZ1tra19nZ2dvb2Nvb2dvb2tra29rb3Nvc29zc3d3e3+Hh4eHh4uHi4+Tk5eTk5+bm5urq6urq6/Pz8////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDTYekAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAABsElEQVQoU2NQPb0aCNasWbN27dp169ZtQIBjDMpgudVQqXXrkeWUTkGlAsWhIHjDhvUgcJRB8eSCBQsXLlqyRPwsFIgvX7YMiJYdZlA4PnXq1BkzDGG6xM+Kz5kzCwQOMMgdbmlpbW1D6Dor3gEC7R0bGKQPNTQ0NDYiyzWDQFPTagap/VVV1TW14mfOgEwFkmfE6+rqaoFgMYPwJAcHD09f8VOnxAP8QeQpcT9fHx8fL58KBoF+NU09fRPx48fFPRxA5HFxAwMdTR1NzTIGwYlaWvpGJuJHjoDMBJJHxHV1NTXU1TVKGYSmGBubmpmLH4ICcXEZXR1tDW1toJzINCcnJ+8g8d1QIO5obaVraaGjYlnOIDo9JCQ8PEIe5ndZF2d7W1sbG1u7CgaxpampqZmZOTk52dkZ6WlJiWGh7m6uUZFR0ZUMEisKi4qKSkpKiouLC/LzcrNSkuNj4uJi4xLqGSRPzAWC+UAwb87smTOmTp7Q093Z2dXV2zeBgZ8PAnh5eXi4ubk4OZiZGBkZWFhY2dgZDoDB/v0H9+3ds2vXzh3bN2/auHHjylVbtm4DADma44ANPgZaAAAAAElFTkSuQmCC%22%29%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Aroot%5Bsizemode%3D%22maximized%22%5D%20%25button%25%3Ahover%2C%20%3Aroot%5Bsizemode%3D%22maximized%22%5D%20%25button%25%3A-moz-window-inactive%3Ahover%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABsAAAATCAIAAADu5eFvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAAEcElEQVQ4T62SWVCaVxiG/6te9KZpOjGZqok2Lrj+uMUlTpPptL3ptL3oTDrTTDKtrYlo61JxwV3BuOFOjGgVLW4sigrKoijGolbhBwREiKiIWAXFGOtS7XaENuNF6fSi77zzzTfPme8935k50Od19AXTi6659R6JiY5sMJGtPqW5X2npV+9wNNbhReBdrnaXo31uN+iBARzSWNlq66Bym6U0MxEzTbbRI92Y0Fuge/V9/3PiZ49ZjhKziS2f3Hnwj84htjjc8dN61rxxt2V6hTJjaJ81UiWmTmSDpthizFtA1h8OBI561TtMpYWmMHcjP3VITNTZNZAwpt2E7tSyEMNOw9hSo2ipeWK5RbxKmTakPmp0tJ39GlC75eYu6SZ1dr1t2tg6tdo0qSdPLPFVm9DHlYwp/VbZsKqcqyYKNFUjuvrxZ/++nT2xeXqN/MNqw8RK/fhS9aiuWrBYzlP3SY3QR0T6U90mvl9BGFCWDKlKhxcr+dr/ktgwuUIS6WuF+kqBroy7WDakJgwq6bMG6IMK2phmI4suzWbI8ljyggEVgaMGifs2nX/7S2LnVWNLxBFdGU9H4CwUDqoKWIpspqxDvAwFpZNruPNX4ijOCd9fTeq4jqWhcL1gwGwTaG6WjUaXC88TOw8v5gXjh+G8QR8c0yONfi2xAyR8QRZCMLaxgi1/Lab5YmzrJUzbm4kdblgaGDDZBJoQAj+0WHCe2DlcMOSby/bOZLml9jgndTnFUV6Pbb1L4kNobCORI7/w5XcXYymX49udU7rcMhhgwGDT+Ve/JHYeUMzzLeB4ZYFEmktS1xVMG0i4SxKAVzdVDs+/8aD1MqbdJbnTFcd0f8QBA3oHst9xG1uOejKOIvK9CWyPTNbVlG7Xr6lOmLb7DaNQcBq5jqd0SaBeS+p0y2S644c8anlgRutA4Oh6n8S7ewbVOun3WORXwfPJH/TK6HVP7nZNpMY0iaCQdHKDQP1Wco9nRq8PnoOqGvEli97JqHL0w28X1qH4Cv8BmR9dgm6fQpNEAWU8/3y2T1qvVyodQxFDoelksnAxEMeCi4aDqoTBjZNBnZKgATl6ZCFQpPUTP/Od0/lIz6rdgMAibYhwIWRoPowhC6f8GF4/fqNUEJo/GJjNSqbOQFE5lObJlfBCQWT5WBRZHNUhjWArI4S6cPFyqNSAVhlhjQleNJ1VmwG5gRgip1ciJ5be5i7cYihutc5F1z2NKuFHFHHTGXLow7Yp+vLBE/UWWW95vGYlmvfTdg9uHhx5Hh+7nJ5c+vXkwm+nr/5++srfBj0gTqcnrr8cex4eRe8dZFheVK8/J61YSJqtYrkVeq+W/X7DSFgayTcmNwBTBKeUwOkVcFY1nFcDF9QF4kn+BJJ/sa3aGkAAPzvNqUZnVMLflgTG4wO+yve9jwtLrX+3jgvVyLbKkW2CzJqH7OGQfazs5yTZQQJyGC87wiB/+aGtj5MePbTVOOkhBjnASPa/ke6lSK1pkm3c3GbunBE/u1o6u/wn4EzJPzPchgUAAAAASUVORK5CYII%3D%22%29%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Aroot%5Bsizemode%3D%22maximized%22%5D%20%25button%25%3Aactive%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABsAAAATCAIAAADu5eFvAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAAEa0lEQVQ4T2PIn7vl1I2H/WsOTlh3cPKGQ9M2HZ2x+eisbSfm7jg1b+fphbvPANGi3WehaM/ZRUC0+yxQcP6u0/N2npqz/QRQPVDX5I2HgSZsPnGVIWvuViqbmDobp4lF9f3BYWlYUXFDP043JszcfPDy3YZFO5qW7Gxdtqtj+Z6ulft61x7oX3cIaNZ/HAAoNXnDkYnrDvetPdi1al/Hir2ty3YDTVh54DxD1NSNO8/ezJ+2vnD6hpKZm8rnbK6ctzWltA2X6yDWAMmWZXsal+ysW7ijav7WijlbSmdtBpoADH2G0InrNh2/Ete5NLFreUrvyvT+VVmT1uB3HcTEktmbi2dsAjole/Ka9AmrgXoTu1ZMWn+IIWTC2o1HL8e0LYpvX5LYtSylZ0X6hFXEmJg/a1PetA3Zk9dmTFiV0rsCqDe+fenEtQcY/LtWrt57JrB0SlDZ1JDKaWH1c8NbFwBN/AwGyH6Hi0DEoyeujO5ZGtm2MKJ+bljNrJDK6cHlU7sWbmPQz2jtnL6MW8ONR9OTzzBAwDpS0C0JqOEVGAAZwsXNwiUtyCIQcbGwfHHfLDHHeBGLMCHDQD5dX14tr8i8JgadlIa2KYtZFO3ZlJw4tLy4TIO5HWKAGp6CAZDBm1fPm9+ALAIRFwjMEnRPAboA6A4eLS8ONTd2ZefQzFoGndSmtqlLWJUc2VVcOPV8uazCucFufAgGyL6Gi0DEBcILBHwyBBzi+EyDeXR8ONXdOVRcQrPqGHRTm9unLWNXdefU8eG2COdxS+EJyQdquIsDQOwwTy3mz6wXiCoV8M3kBxpqHMyj7cOp4Rme08ygm9LcNXMlj5Yvr0kYn2MSv38ef1wVUM9NHAAoxTd9tkDnFKHKbuHUeuHQEmH3NCGrGH6DIF4d/6j8NpCJPbPXChiFCdomCntlC0dWCue2WWZW4Erh5jWNQkuWCs9cINI+Xay4Wyy+Xsy/UNQpTdg8RtgoLLa4h0Evubl//kZRqwRR1yzx4DLx5FbxqkniExaILV4pumGD8P4dQid2CZ3aC0HCJ3YDRUQ3bhBftlpiyiKphhnS2V3SETVS3gUS9mnilgmJFZMYDDM7+5bskHTMlPIplo5slMnvl2mbIz1npdS6jZJ7dkqcOSh+6YjYtaMQBGQDRST37pJev0l2wRr57oXy5VPl49vlAypl3fKk7TNSGuYwuE3eufTa656dZ3qPXOq6eLvl7uO8569M3r9X+PpZ8uc34d8/+P/+5Pr7C4LY/v0Gkvx/fgr/+i717Yvih4+mL1/n33/aeuVe16lr3Qcv1R24wxC+/KRd51rNxCY5/1yl+FqNwl6txlk6fUt1ZqzVmrdRffFWleXbFVbtVFi5U37lTsWVO5WXb1dbtFVz3iatGeu1JqzWaluqXrVAJW+mbNJkzeLl4WuvMky98q7v8oeOy5+aLn2pufit/OK3wovfc8//yLnwI+v8TwjKuIDOyL7wA6gGqLL84negLqBeoAn9lz9Mu/IeAMWpR92z3Hb3AAAAAElFTkSuQmCC%22%29%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Aroot%5Bsizemode%3D%22maximized%22%5D%20%25button%25%3A-moz-window-inactive%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABsAAAATCAMAAABWWYYKAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURVNWZmRlaGRlaWVmaWZnamdna2hoamhoa2lpbHN1f3t7f3R3gXV5gnd6hH19gH9/gX+Agn+Ag4CBg4CCg4CChIGChZeZnpiZnpianpqan5ucn5mboJqcoJucoZudopueopydoJycoZ2dop2eoZ6fop2eo52fpJ+gop6go5+gpJ6gpZ+hpqCgo6CgpKGhpaGipKKipaGipqGip6KkpqKkp6GjqKKkqKKkqaKlqqOmqKOmqaKmqqOmq6SlqKSlqaSmqKSmqaSmqqSnq6SnrKWoq6aorKWoraaprqeqrKeqraaqrqeqr6iprKiqramqrqiqr6qsr6ersKirsKmssKuusa6usq+ws66wtK+xtbCxs7CxtLGytLKytbKytrGzt7S0trS0t7K0uLS2ubS3ura4vLe5vbi6vbq6vri8vri8v7y8v729wL6/wb6/wr7Awr/Aw8DAw8DAxMHCxcTEx9nZ2d3d3eHh4eXl5erq6vPz8////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTgHqwAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAABj0lEQVQoU03Q+1vSUBzH8Y86M7WLmAoEGcQlm6FswhmYjJ25YYJCcVFDpxSlpWzgJW5/vWc8M3v/8N0Pr+d7dp6DxXY6IRIiKVTT94vFymN/sGClNxIkTTXtM6MvVZbDv0e2kVY0/RmcnjMrl7+WzvHKIonEpqrvYuiEERUKv+BiRqj2bwtDMCoUdnI/MWdliEz1x60hyiWb9CYzklG03P9Wyud3cttqEy4zm1X0IgYD+ypsDlBkS9vq1g/2P0WhzPp91Cr27COf09Wt1KfvmLcUqjLr9VCt2rMHXaOplCSNTKbaPrpd+0w2u6CbkpQUxVPMm7Isq3v46wTMkmRSWOX5I8y1iJiRKe6cIAoCz/Mr0eghXl7F19bEzOzDi03HPkRYb5ff1PDiMhpZicUFQYgL8fVYJBwKBP1+v8/nq2Dm4l0wGAp/tHsfDgZee70ej8ftXloqYebWME4M46zRaJwZhnFcr387qLEODut4OjXJcdyTKTuOm5gYe2h8HDc313ajT6fTsUyz1TJNi9W+B4ppe7qJG0ieAAAAAElFTkSuQmCC%22%29%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%5D%5D%26gt%3B%26lt%3B/%26gt%3B%0A%20%20%20%20.toString%28%29%0A%20%20%20%20.replace%28/%25button%25/g%2C%20%22%23%22%20+%20this.id%29%3B%0A%0Afunction%20sheet%28cssStr%2C%20removeFlag%29%20%7B%0A%20%20%20%20var%20cc%20%3D%20Components.classes%3B%0A%20%20%20%20var%20sss%20%3D%20cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIStyleSheetService%29%3B%0A%20%20%20%20var%20ios%20%3D%20cc%5B%22@mozilla.org/network/io-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIIOService%29%3B%0A%20%20%20%20var%20data%20%3D%20%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28cssStr%29%3B%0A%20%20%20%20var%20uri%20%3D%20ios.newURI%28data%2C%20null%2C%20null%29%3B%0A%20%20%20%20if%28sss.sheetRegistered%28uri%2C%20sss.USER_SHEET%29%29%0A%20%20%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.USER_SHEET%29%3B%0A%20%20%20%20if%28removeFlag%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.USER_SHEET%29%3B%0A%20%20%20%20window%5BsId%5D%20%3D%20cssStr%3B%0A%7D%0Aif%28%21%28sId%20in%20window%29%29%0A%20%20%20%20sheet%28cssStr%29%3B%0Aelse%20if%28window%5BsId%5D%20%21%3D%20cssStr%29%20%7B%0A%20%20%20%20sheet%28window%5BsId%5D%2C%20true%29%3B%0A%20%20%20%20sheet%28cssStr%29%3B%0A%7D%20%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bif%28window.windowState%20%3D%3D%201%29%0Awindow.restore%28%29%3B%0Aelse%20if%28window.windowState%20%3D%3D%203%29%0Awindow.maximize%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код Выделить код Код:if(window.windowState == 1) window.restore(); else if(window.windowState == 3) window.maximize(); Инициализация Выделить код Код:var sId = "__customButtonsStyle__" + this.id; // Unique style "id" var cssStr = <><![CDATA[ %button% { list-style-image: url("1pic") !important; -moz-box-shadow: none !important; background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; } %button%:hover, %button%:-moz-window-inactive:hover { list-style-image: url("2pic") !important; } %button%:active { list-style-image: url("3pic") !important; } %button%:-moz-window-inactive { list-style-image: url("4pic") !important; } :root[sizemode="maximized"] %button% { list-style-image: url("5pic") !important; } :root[sizemode="maximized"] %button%:hover, :root[sizemode="maximized"] %button%:-moz-window-inactive:hover { list-style-image: url("6pic) !important; } :root[sizemode="maximized"] %button%:active { list-style-image: url("7pic") !important; } :root[sizemode="maximized"] %button%:-moz-window-inactive { list-style-image: url("8pic") !important; } ]]></> .toString() .replace(/%button%/g, "#" + this.id); function sheet(cssStr, removeFlag) { var cc = Components.classes; var sss = cc["@mozilla.org/content/style-sheet-service;1"] .getService(Components.interfaces.nsIStyleSheetService); var ios = cc["@mozilla.org/network/io-service;1"] .getService(Components.interfaces.nsIIOService); var data = "data:text/css," + encodeURIComponent(cssStr); var uri = ios.newURI(data, null, null); if(sss.sheetRegistered(uri, sss.USER_SHEET)) sss.unregisterSheet(uri, sss.USER_SHEET); if(removeFlag) return; sss.loadAndRegisterSheet(uri, sss.USER_SHEET); window[sId] = cssStr; } if(!(sId in window)) sheet(cssStr); else if(window[sId] != cssStr) { sheet(window[sId], true); sheet(cssStr); } Закрыть Окно/Firefox (ЛКМ/СКМ) (Firefox) скрытый текст Установка Выделить код Код: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%0A%20%20%3Cname%3E%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u041E%u043A%u043D%u043E%5CFirefox%20%28%u041B%u041A%u041C%5C%u0421%u041A%u041C%29%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3Ethis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20window.close%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20goQuitApplication%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26amp%3B%26amp%3B%20%21event.ctrlKey%20%26amp%3B%26amp%3B%20%21event.shiftKey%20%26amp%3B%26amp%3B%20%21event.altKey%20%26amp%3B%26amp%3B%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%7D%0A%7D%3B%0Avar%20cssStr%20%3D%20%26lt%3B%21%5BCDATA%5B%0A%09%09%25button%25%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%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%22%29%20%21important%3B%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-moz-box-shadow%3A%20none%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20background%3A%20none%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20border%3A%200%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20padding%3A%200%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20margin%3A%200%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%09%25button%25%3Ahover%2C%20%25button%25%3A-moz-window-inactive%3Ahover%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAADEAAAATCAYAAAA5+OUhAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAfdEVYdFNvZnR3YXJlAFBhaW50Lk5FVCA/Pz8/Pz8gMy41LjXnygNhAAAHxElEQVRIS9WXeVCUVxbFKRUZQWYSqZoquzUuoVmiNjKuo2QYQA0xlpoYm2hsQhZwAwZcQAShZF8clKAxKI4Z4xYGNwKyCIoskU2WZhGafREQbLpZNTN/nLm3uyFKyEyq/Ctf1a9evffuO+fc+rq//lrH9x0rDJYWoPPrY2q6Tx/DExp7447haVwU+ggVMXAmEkNno9Q8I57HH8OPxL/jo/Cfc/+fiep4jTVY6zlpjmj1B2nsPxup9mV/ztFLmTgX5+OcysxkSG3ehqLgHnQC7H+7TeywXgVFfiZ0gt5d/Zu9Ex9brUBfbjp0QuxXY6AwF+3RgeiIDsJjGjuPB6Kb6DkRiN6YQChijkJJ9H8ZiMHYQAwTI7FH8Yx4fjIQP2r52sMTWyQuY/Cc935pnfdYg7VYc4joJ1RaP/Zlf87RRXk4F+fjnIqUa9i+cgmU91OhE2a/Cqq8LLQEe6ElxButRDvxONQbnaFe6KaxN8wbT8O9oSRUEd4YiPDCYKQ3homRSK8xuIEXL55/5eqqbmr8+k/nvNVarNlPKElfQT7s2UPeXdocHZSpTZuPc/beuIRtSy2gzL5NTaxdAQV9SeoOOENO1B90RuNBFzR7uaDV2xltxGOi65Aznvi4oPewCxSEklAR/b7OGPB1UXPKxXnCwOMb4DrNGWe1Bmux5lOih+g+5IJO8uvQ+rd4OaOZMjUQnI9zdl48A4nYjJpIgU7omuXoTb+FGjcpHhG17lLI/+aIBg9HNHlI0Uy0e0rRsW8HOvdJ8WS/FL37HaE4IFWjJPoPOI5x8vPPftbIaBN8R3h/tF5FZ/u0OqzZQ3SRPvuwXxv5sn8j0eDuiDqC83HOjm9OYesCkeZOhNguw5Pb1yFzkaCSqNopQc0uB9TudoB8twQNRMseCVr3bkX7Xgk6XSXodnVAj7sEvYSCULo7vESs0yfqRlQq1Rg8j3VyfKmuj84+JViLNbvcHNBB+uzDfs3ky/51RC1lqiY4H+dsjY/BFrP5mib8V5ijOjYSl+ca4iqRMG86rs2fjltvTkcykUpkGBvgrkgfucQPJvooIcpMp6GckJlNQ9U4wu2s1U10d3ePwXNef7G2ks5VkAZrPSTNIiKfyCYf9mNf9v+euEm5EgnOxznz3Zxga6irbWK5KSpPhOHCzKm4SFwW6OI7oS6uzdLFTSJ5ti5SZ0/BnTcmI5vInTMZhUTJvEkoJcrnT4LsBcJsrNQNtLe3/wxe5/3R+go6V0YarFVEmg/mTkYOjVnkw37sy/6cI5EyXSU4H+fM2b0Df9WfNHonzFAVE45vhXq4NEsPV2br4V9v6OH6HD3cmjMVKUTaHF1kztXF/Xm6yCOK5k/BwzenoIyoMJ6MSi3htpoGmpqaxphoznV8RkaUk0YpUUyaBUQu6d8l2I99k8mfc1yjTAkE5+OcuXulsDGYrG1ipTlqvorCVdHvkUAkmhrihpkhkswNcZtIf2s6st4ywP2FBshbpI8CsT6KLfRRulgfFZb6qLKchpo/aeDAcrl8DJ5H2Gs+WuPXuZ7Pyogy0iohikj7AXnkLKSP1AIDZJJvGvmnUA7Oc41ycT7O+cDzU9j9YSr9TtB34sgqM9SdjcaNxUa4ZWmEpCVGSFlqhNRlRshYYYS7fzZCNpG/2giFVjNQ8pcZKLOegQrb11Fp8zpq7F7DozUaIjfZvvRjx/P/tV5DZ6psX4OMdMqIUtIufnsGCsgnb5XGN2ulEe4s1+ThXJyPc5bQ436t0e+oiTTo+FITjRe/RKrNLKTbEWuFyFwnxD17IXLeFSLvPSEKNwpRvFmA0vcFKP9QgKqtAjxyEKDuIwHk22ei/hWQb5uJWtKplghQSbrlWwR4SD7FmwQo3CBE/noh7lOOe+8IcYdypa8RImPdXJSHemCDYDq9dmRA59Bqc7QlnkbOB6bI2WqKXIkJ8h1MULTdBCU7TFDmZIKKT0WodBahZqcItXtEqN8rQqObMT3DRWjZJ0Lrr2CiOl5r8RShyd0YDa4iyEn70S7ychFB9oUI5U4ilH1iguKPTVC4TZOL8z1wWoaHsf6QLvgj+n6gF8Aj1gvRlRSH4s8tUfKFJUp3Lkb5nsWQuVmgap8Fqg+K8chHjHo/MRoCxWgKEaMlQoy2aAu0nxDjcawYnSctfgUT1YnREbMIbccXoTVKjOYw0g8mnwAx5L7k6y1G9QELVHpYqPOU710C2X5b1J9wxeVAT8R+tgl9/Bb7zQdWGE79J3qu+KPnRgB6kwKgSPaHMs0Pyiw/9OcQhb4YLDmMwQofDFb7YLiOaDiE4Saijeig9yimk+h+AZ6P7nEdz7vGrTXTeiNBmkM1pC8jn1IfDBT5oj/fD6psypHhB0XqESjSQiC7GozzR3Zhp5UIzanXocPX8fXLkeBghbhNS3HI2hiHbYzhZydCwFoTHLU3RdB6MwRvMEPoRlOEbTZH+BZzRHxISMwR+RGx7RVx0GiFkyZrh75PbDZDyEYzBL1nqs7gv84EfmtE8LE1RvSGBbjpvhldGTc1DfDVn5GIgdtXMJB0AYPXz2EoIQ5DV05h6GIMRi78HSPnI/DsXDiexYfSPzoiPoRGJpgIenXOsI5Wkz3OheHZP8LJl4nE8LfHMXQ5FkPfncZg4hkM3DiPge8v/dQA9fBfUDpss0yPLb4AAAAASUVORK5CYII%3D%22%29%20%21important%3B%0A%09%09%7D%0A%09%09%25button%25%3Aactive%20%7B%0A%09%09%09list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%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%22%29%20%21important%3B%0A%09%09%7D%0A%09%09%25button%25%3A-moz-window-inactive%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20list-style-image%3A%20url%28%22data%3Aimage/png%3Bbase64%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%3D%3D%22%29%20%21important%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%5D%5D%26gt%3B%0A%09.toString%28%29%0A%09.replace%28/%25button%25/g%2C%20%22%23%22%20+%20this.id%29%3B%0Avar%20cssURI%20%3D%20this._cssURI%20%3D%20makeURI%28%20//%20chrome%3A//global/content/contentAreaUtils.js%0A%09%22data%3Atext/css%2C%22%0A%09+%20encodeURIComponent%28cssStr%29%0A%29%3B%0Athis.setSheet%20%3D%20function%28cssURI%2C%20addFlag%29%20%7B%0A%09var%20sss%20%3D%20Components.classes%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D%0A%09%09.getService%28Components.interfaces.nsIStyleSheetService%29%3B%0A%09if%28sss.sheetRegistered%28cssURI%2C%20sss.USER_SHEET%29%20%26amp%3B%26amp%3B%20%21addFlag%29%0A%09%09sss.unregisterSheet%28cssURI%2C%20sss.USER_SHEET%29%3B%0A%09if%28addFlag%29%0A%09%09sss.loadAndRegisterSheet%28cssURI%2C%20sss.USER_SHEET%29%3B%0A%7D%0Athis.setSheet%28cssURI%2C%20true%29%3B%0Athis.onDestroy%20%3D%20function%28%29%20%7B%0A%09this.setSheet%28this._cssURI%2C%20false%29%3B%0A%7D%3B%20%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация Выделить код Код:this.onclick = function(event) { if(event.button == 0) { window.close(); } else if(event.button == 1) { goQuitApplication(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { } }; var cssStr = <![CDATA[ %button% { list-style-image: url("1pic") !important; -moz-box-shadow: none !important; background: none !important; border: 0 !important; padding: 0 !important; margin: 0 !important; } %button%:hover, %button%:-moz-window-inactive:hover { list-style-image: url("2pic") !important; } %button%:active { list-style-image: url("3pic") !important; } %button%:-moz-window-inactive { list-style-image: url("4pic") !important; } ]]> .toString() .replace(/%button%/g, "#" + this.id); var cssURI = this._cssURI = makeURI( // chrome://global/content/contentAreaUtils.js "data:text/css," + encodeURIComponent(cssStr) ); this.setSheet = function(cssURI, addFlag) { var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"] .getService(Components.interfaces.nsIStyleSheetService); if(sss.sheetRegistered(cssURI, sss.USER_SHEET) && !addFlag) sss.unregisterSheet(cssURI, sss.USER_SHEET); if(addFlag) sss.loadAndRegisterSheet(cssURI, sss.USER_SHEET); } this.setSheet(cssURI, true); this.onDestroy = function() { this.setSheet(this._cssURI, false); }; Код кнопок был взят с предыдущей страницы этого топика + часть кода была доработана Infocatcher-ом, а картинки были сделаны мной (украдены скриншотами из винды). Кнопка сокрытия/показа нативного Windows тайтлаба находится тут. |
MySh > 14-06-2010 22:47:40 |
Вставка символа (Firefox 1 — Firefox 19). Более новая версия кнопки — здесь. скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAABBklEQVRIie3TvyvFURzG8RfXpMggmZAyqTswGYWFbP4AkkEWkc2MktWsDCaDQRlMVovFIIuIgRSKQX4N389wh28393zHe586nfo8n/O8zzmdQ0N1qxZ0/aOvN3pr1i6u0F2lZwAP2E4BlPGMS4zjGO94xSEmcYcb9KQAYBgv+MU3znGBn6jdoz81HNrwiCcMVdRHZae5RqkIYE620/kcbz28sSKAnQjpy/FGwlsuAtiIkMEcbyK8xSKA6QjZzPH2wysXAZRwiy+soB2d2IrwsyLhsBRBHzFXjrcAz6SGz8re+x46sIYj2SdbkD3hU3zKrrJmreIAzVV6WnGCqRQANKUubKjO9AcmPDqZdHOMswAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20oncommand%3D%22this.parentNode.handleMenuCommand%28event%29%22%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A4%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A6%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A7%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A9%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AB%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%BB%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AC%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AE%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B0%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B1%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B5%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B6%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2014%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2018%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2019%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u201C%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u201D%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2022%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2030%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2039%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u203A%22/%3E%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2122%22/%3E%0A%3C/menupopup%3E%3B%0A%0Amenu%20%3D%20custombuttonsUtils.%20makeXML%20%28menu%29%3B%0Athis.%20appendChild%20%28menu%29%3B%0Athis.%20value%20%3D%20menu.%20firstChild.%20getAttribute%20%28%22value%22%29%3B%0A%0Athis.%20makePNG%20%3D%20function%20%28text%2C%20height%29%0A%7B%0A%20%20%20%20var%20h%20%3D%20height%3B%0A%20%20%20%20var%20cw%20%3D%2024%2C%20ch%20%3D%2024%3B%0A%20%20%20%20var%20canvas%20%3D%20%3Ccanvas%20xmlns%3D%22http%3A//www.w3.org/1999/xhtml%22%20width%3D%7Bcw%7D%20height%3D%7Bch%7D%20style%3D%22display%3Anone%3B%22%3E%3C/canvas%3E%3B%0A%20%20%20%20cw%20-%3D%202%3B%0A%20%20%20%20ch%20-%3D%202%3B%0A%20%20%20%20canvas%20%3D%20custombuttonsUtils.%20makeXML%20%28canvas%29%3B%0A%20%20%20%20this.%20appendChild%20%28canvas%29%3B%0A%20%20%20%20var%20ctxt%20%3D%20canvas.%20getContext%20%28%222d%22%29%3B%0A%20%20%20%20ctxt.%20clearRect%20%280%2C%200%2C%20cw%2C%20ch%29%3B%0A%20%20%20%20ctxt.%20font%20%3D%20h%20+%20%22pt%20times%20bold%22%0A%20%20%20%20var%20m%20%3D%20ctxt.%20measureText%20%28text%29%3B%0A%20%20%20%20m%20%3D%20%28cw%20-%20m.%20width%29%20/%202.0%3B%0A%20%20%20%20h%20%3D%20ch%20-%20%28ch%20-%20h%29%20/%202.0%3B%0A%20%20%20%20ctxt.%20fillText%20%28text%2C%20m%2C%20h%29%3B%0A%20%20%20%20var%20uri%20%3D%20canvas.%20toDataURL%20%28%22image/png%22%2C%20%22%22%29%3B%0A%20%20%20%20this.%20removeChild%20%28canvas%29%3B%0A%20%20%20%20return%20uri%3B%0A%7D%3B%0A%0Athis.%20image%20%3D%20this.%20makePNG%20%28this.%20value%2C%2016%29%3B%0A%0Avar%20mi%2C%20val%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20menu.%20childNodes.%20length%3B%20i++%29%0A%7B%0A%20%20%20%20mi%20%3D%20menu.%20childNodes%20%5Bi%5D%3B%0A%20%20%20%20val%20%3D%20mi.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20val%20%3D%20this.%20makePNG%20%28val%2C%2012%29%3B%0A%20%20%20%20mi.%20setAttribute%20%28%22image%22%2C%20val%29%3B%0A%7D%0A%0Athis.%20insertText%20%3D%20function%20%28text%29%0A%7B%0A%20%20%20%20var%20command%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20%20var%20controller%20%3D%20document.%20commandDispatcher.%20getControllerForCommand%20%28command%29%3B%0A%20%20%20%20if%20%28controller%20%26%26%20controller.%20isCommandEnabled%20%28command%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20controller%20%3D%20controller.%20QueryInterface%20%28Components.%20interfaces.%20nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.%20classes%20%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20createInstance%20%28Components.%20interfaces.%20nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.%20setStringValue%20%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20controller.%20doCommandWithParams%20%28command%2C%20params%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Athis.%20handleMenuCommand%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20event.%20stopPropagation%20%28%29%3B%0A%20%20%20%20var%20mi%20%3D%20event.%20originalTarget%3B%0A%20%20%20%20var%20text%20%3D%20mi.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20this.%20image%20%3D%20this.%20makePNG%20%28text%2C%2016%29%3B%0A%20%20%20%20this.%20value%20%3D%20text%3B%0A%20%20%20%20this.%20insertText%20%28text%29%3B%0A%7D%3B%0A%0Athis.%20type%20%3D%20%22menu-button%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.%20insertText%20%28this.%20value%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="this.parentNode.handleMenuCommand(event)"> <toolbarbutton value="¤"/> <toolbarbutton value="¦"/> <toolbarbutton value="§"/> <toolbarbutton value="©"/> <toolbarbutton value="«"/> <toolbarbutton value="»"/> <toolbarbutton value="¬"/> <toolbarbutton value="®"/> <toolbarbutton value="°"/> <toolbarbutton value="±"/> <toolbarbutton value="µ"/> <toolbarbutton value="¶"/> <toolbarbutton value="—"/> <toolbarbutton value="‘"/> <toolbarbutton value="’"/> <toolbarbutton value="“"/> <toolbarbutton value="”"/> <toolbarbutton value="•"/> <toolbarbutton value="‰"/> <toolbarbutton value="‹"/> <toolbarbutton value="›"/> <toolbarbutton value="™"/> </menupopup>; menu = custombuttonsUtils. makeXML (menu); this. appendChild (menu); this. value = menu. firstChild. getAttribute ("value"); this. makePNG = function (text, height) { var h = height; var cw = 24, ch = 24; var canvas = <canvas xmlns="http://www.w3.org/1999/xhtml" width={cw} height={ch} style="display:none;"></canvas>; cw -= 2; ch -= 2; canvas = custombuttonsUtils. makeXML (canvas); this. appendChild (canvas); var ctxt = canvas. getContext ("2d"); ctxt. clearRect (0, 0, cw, ch); ctxt. font = h + "pt times bold" var m = ctxt. measureText (text); m = (cw - m. width) / 2.0; h = ch - (ch - h) / 2.0; ctxt. fillText (text, m, h); var uri = canvas. toDataURL ("image/png", ""); this. removeChild (canvas); return uri; }; this. image = this. makePNG (this. value, 16); var mi, val; for (var i = 0; i < menu. childNodes. length; i++) { mi = menu. childNodes [i]; val = mi. getAttribute ("value"); val = this. makePNG (val, 12); mi. setAttribute ("image", val); } this. insertText = function (text) { var command = "cmd_insertText"; var controller = document. commandDispatcher. getControllerForCommand (command); if (controller && controller. isCommandEnabled (command)) { controller = controller. QueryInterface (Components. interfaces. nsICommandController); var params = Components. classes ["@mozilla.org/embedcomp/command-params;1"]. createInstance (Components. interfaces. nsICommandParams); params. setStringValue ("state_data", text); controller. doCommandWithParams (command, params); } }; this. handleMenuCommand = function (event) { event. stopPropagation (); var mi = event. originalTarget; var text = mi. getAttribute ("value"); this. image = this. makePNG (text, 16); this. value = text; this. insertText (text); }; this. type = "menu-button"; Код: |
Indomito > 24-07-2010 15:09:43 |
GetChkView Addons(Firefox) скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EGetChkView%20Addons%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%2CR0lGODlhJQAaAPcAAAAAAAA7KAA/ND0+ACM5LAA5UjFSBztEJwpXQwxVWwVJZBRTfiFPXzdLVj5+W38dEnooB3oxAE5aBlpmFEdkKmhWAmdAI2Z2N3h4MkNCSEFbQkRXaExhdlptZ1N/cnNYR3FdXHlqSXB/VmZiYWZ2dnRyYypugTh7pUFvkVh1iFR8lmF7kj+1K1WTM06oMWmCGnqbJmy3NVKWR12Dbk6kQGSDRX+XQWyBcG+edGSxWH6nb367bXu7dUnKNmPENlnORWrRUnbDZ3TkXXrmZUmKl1aHi1yImk+Ot0uTokiQtleMoVyOs1WWrFictmODgmeOnXeHgnCLlH2RiGWVpGKas3iXpWq/hG2yn3Osg3OivVuaw12oymaqxmy41XapyHmxy3iz0XDBh3jDmH/K6pUWCoooE4A3AIk1GpYlAIQxLqkVAaktBJBTJ5ZQNpt7FoV2NZF2J71MHKZSLrNXJrhXNq5rFLRiKLloML13Ibt2PZNbUoxpSY1uXJ50W4l0YZ1qZ6l2SaJ+Xrt2RbN6cMQ6FstHCM1XFttXDNdaG99dI9xpFsllI8dmO8hxK8lyNddpJNVyJONZKOFlGOFmIOJ9Ncx6QNV/QoOcCouUJ5aNKJmKNauCKLykILGqNru6Lo+GQ42SXJqMTYWDboKDfpWNZp6PcpS6S4mvdqaMRKqTTaqVVrabS6GNdbqMar6TcbS0VLupebSwaY7fX4nJc47vdarKTaHkfdCpKNSsM+G7Ks2DS8mPX9CAQcyefdWyTtG0VsmuZ8ygfeGffOnGPOXSLv7XMd7KacPueubPRe3EW/bXRvvSU+7Ua+jwd4KYm5iKgYSds421iI2npo6zuaGhlaGxvre7xJDEhY3ri5LjhpronJv8i5jzlLb+mq7ioo7CzY7M24TG4I7W7o/U85jM4pDR5Zvf9KTY7dubgMCwjMS3lNa0m8yzqOqyieizo9LDnN3MrtfFtd3RuOjGvcXO08ndwdXOxN3cytvb29Tj0OXHxeHYyeXZ1fLMwwAAAAAAACH5BAEAAP8ALAAAAAAlABoAAAj/AP8JHEiwoMGDCBMehJZiRYoq1egpnHgQxRIv5M6ByZKiwSh7FBPGi2eNgwovX76UMzduY5QSIdSFPNirT4YNzpxJqwJO3BguVJyQAvZr1UyC8QQJ4vOMVSlRUr412dIlXJEDb5gxU5Xu6L91dihZquQozx5q0750WcuFAQEMxnytkkcRn8BgjRTpVbSIjR8oU7hsGaxlighNuJK9qytwF6S9eu+4gmKkSZITC44oufHp1jJY/Gbqerz3ka5AJKYQUaCggIkiGmINW6ZqX8h2vCA/ctSqxBMmSBIICIDAAYVXypShinfbkV5JhtBA+EDCiBIiV8SEscLDRidlw1DB/wspbNFeNGjOgEjB3gMWbdyw2cLEqViuVHQpopvzSBGiNWvQoccIHcyAgwxAbLONC7V4QgwyodwTkjtyLCKJJIUUYggjgFywQxBB0CIiLUDEcEkzoEhIUT9txHGhJIccsoYZEnTTzTYiDiEEELTEcEwN9cw0yBqJvOhfBAPM0kI2tAwxBBA/COFDDEFcM9M8Z8SByIWKPNIIHBMY0EKTQED5Q5lAzHLUIGWsEQkiiEyiCB6bZPICiVD2oCcLaXqlRxlkELKGhnW4kQkMspT5g54/nKmmnw+QoYYaaFRgSgtoxhBDo0DkkIOVXv0zSBpkkAGBBLOU6YILLbTgAhBBeDATTagC8cPOH2lYYICZrJ5yzas80FoQP/qwU4MMNNAggw75RCODDLMKG1I+0labUEAAOw%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0431%u0430%u0437%u0443%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%20%u0432%20%u0438%u043D%u0442%u0435%u0440%u043D%u0435%u0442%u0435%0Afunction%20lbMouse%28%29%7B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28%22https%3A//addons.mozilla.org/ru/firefox/%22%29%0A%7D%3B%0A%0A//%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043D%u044B%u0435%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%0Afunction%20rbMouse%28%29%7B%0Atry%7B%20BrowserOpenAddonsMgr%28%29%3B%20%7D%20catch%28e%29%20%7B%20BrowserOpenExtensions%28%27extensions%27%29%3B%20%7D%0A%7D%3B%0A%0A//%u041F%u0440%u043E%u0432%u0435%u0440%u0438%u0442%u044C%20%u043E%u0431%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u0435%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%0Afunction%20mbMouse%28%29%7B%0AcheckForUpdates%28%29%3B%0Avar%20win%20%3D%20BrowserOpenAddonsMgr%20%28%29%3B%0A%0Avar%20doc%20%3D%20win.%20document%3B%0Acmd%20%3D%20doc.%20getElementById%20%28%22extensions-view%22%29%3B%0Aif%20%28%21cmd%29%0A%20%20%20%20win.%20addEventListener%20%28%22load%22%2C%20function%20%28event%29%20%7B%20setTimeout%20%28function%20%28%29%20%7B%20win.%20document.%20getElementById%20%28%22extensions-view%22%29.%20doCommand%20%28%29%3B%20%7D%2C%20200%29%3B%20%7D%2C%20false%29%3B%0Aelse%0A%20%20%20%20cmd.%20doCommand%20%28%29%3B%0A%09cmd2%20%3D%20doc.%20getElementById%20%28%22cmd_checkUpdatesAll%22%29%3B%0Aif%20%28%21cmd2%29%0A%20%20%20%20win.%20addEventListener%20%28%22load%22%2C%20function%20%28event%29%20%7B%20setTimeout%20%28function%20%28%29%20%7B%20win.%20document.%20getElementById%20%28%22cmd_checkUpdatesAll%22%29.%20doCommand%20%28%29%3B%20%7D%2C%20500%29%3B%20%7D%2C%20false%29%3B%0Aelse%0A%20%20%20%20cmd2.%20doCommand%20%28%29%3B%0A%7D%3B%0A%0Afunction%20BrowserOpenAddonsMgr%28aPane%29%0A%7B%0A%20%20const%20EMTYPE%20%3D%20%22Extension%3AManager%22%3B%0A%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%20var%20theEM%20%3D%20wm.getMostRecentWindow%28EMTYPE%29%3B%0A%20%20if%20%28theEM%29%20%7B%0A%20%20%20%20theEM.focus%28%29%3B%0A%20%20%20%20return%20theEM%3B%0A%20%20%7D%0A%0A%20%20const%20EMURL%20%3D%20%22chrome%3A//mozapps/content/extensions/extensions.xul%22%3B%0A%20%20const%20EMFEATURES%20%3D%20%22chrome%2Cmenubar%2Cextra-chrome%2Ctoolbar%2Cdialog%3Dno%2Cresizable%22%3B%0A%20%20return%20window.openDialog%28EMURL%2C%20%22%22%2C%20EMFEATURES%29%3B%0A%7D%3B%0A%0Athis.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u0414%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%20%u0432%20%u0438%u043D%u0442%u0435%u0440%u043D%u0435%u0442%u0435%20%5CnMiddle%20%3D%3E%20%u041F%u0440%u043E%u0432%u0435%u0440%u0438%u0442%u044C%20%u043D%u0430%u043B%u0438%u0447%u0438%u0435%20%u043E%u0431%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u0439%20%5CnRight%20%20%20%3D%3E%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043D%u044B%u0435%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%22%3B%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%0AlbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%0AmbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0ArbMouse%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0A/*%0Athis.setFlLDC%20%3D%20false%3B%0Athis.setAttribute%28%27onclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%0Athis.setAttribute%28%27ondblclick%27%2C%20%27gQuot%28event%2C%20this%29%27%29%3B%0Athis.pause%20%3D%20function%20%28ms%29%7B%0Avar%20date%20%3D%20new%20Date%28%29%3B%0Avar%20curDate%20%3D%20null%3B%0Ado%20%7B%20curDate%20%3D%20new%20Date%28%29%3B%20%7D%0Awhile%28curDate-date%20%3C%20ms%29%3B%0A%7D%3B%0A%0A//%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043D%u044B%u0435%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%0Athis.leftDclick%20%3D%20function%28event%29%20%7B%0Athis.setFlLDC%20%3D%20true%3B%0Atry%7B%20BrowserOpenAddonsMgr%28%29%3B%20%7D%20catch%28e%29%20%7B%20BrowserOpenExtensions%28%27extensions%27%29%3B%20%7D%0Athis.pause%20%281000%29%3B%0Athis.setFlLDC%20%3D%20false%3B%0A%7D%3B%0A*/%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:/*Initialization Code*/ //Открыть базу дополнений в интернете function lbMouse(){ getBrowser (). selectedTab = getBrowser (). addTab ("https://addons.mozilla.org/ru/firefox/") }; //Открыть установленные дополнения function rbMouse(){ try{ BrowserOpenAddonsMgr(); } catch(e) { BrowserOpenExtensions('extensions'); } }; //Проверить обновление дополнений function mbMouse(){ checkForUpdates(); var win = BrowserOpenAddonsMgr (); var doc = win. document; cmd = doc. getElementById ("extensions-view"); if (!cmd) win. addEventListener ("load", function (event) { setTimeout (function () { win. document. getElementById ("extensions-view"). doCommand (); }, 200); }, false); else cmd. doCommand (); cmd2 = doc. getElementById ("cmd_checkUpdatesAll"); if (!cmd2) win. addEventListener ("load", function (event) { setTimeout (function () { win. document. getElementById ("cmd_checkUpdatesAll"). doCommand (); }, 500); }, false); else cmd2. doCommand (); }; function BrowserOpenAddonsMgr(aPane) { const EMTYPE = "Extension:Manager"; var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var theEM = wm.getMostRecentWindow(EMTYPE); if (theEM) { theEM.focus(); return theEM; } const EMURL = "chrome://mozapps/content/extensions/extensions.xul"; const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable"; return window.openDialog(EMURL, "", EMFEATURES); }; this.tooltipText = "Left => Дополнения в интернете \nMiddle => Проверить наличие обновлений \nRight => Установленные дополнения"; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ lbMouse(); } else if(event.button == 1) { // Действие при клике СКМ mbMouse(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов rbMouse(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; /* this.setFlLDC = false; this.setAttribute('onclick', 'gQuot(event, this)'); this.setAttribute('ondblclick', 'gQuot(event, this)'); this.pause = function (ms){ var date = new Date(); var curDate = null; do { curDate = new Date(); } while(curDate-date < ms); }; //Открыть установленные дополнения this.leftDclick = function(event) { this.setFlLDC = true; try{ BrowserOpenAddonsMgr(); } catch(e) { BrowserOpenExtensions('extensions'); } this.pause (1000); this.setFlLDC = false; }; */ |
Indomito > 25-07-2010 10:25:16 |
SaveSetOpenDocument(Firefox) скрытый текст Код кнопки Выделить код Код: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%0A%20%20%3Cname%3ESaveSetOpenDocument%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u043A%u0430%u043A...%0Afunction%20lbMouse%28%29%7B%0AsaveDocument%28window.content.document%29%3B%0A%7D%3B%0A%0A//%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20%u043A%u0430%u043A%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%0Afunction%20mbMouse%28%29%7B%0AApplication.prefs.setValue%28%22browser.download.lastDir%22%2C%20Application.prefs.getValue%28%22browser.download.dir%22%2C%20%22%22%29%29%3B%0A%7D%3B%20%20%20%20%20%20%20%20%0A%0A//%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0444%u0430%u0439%u043B%0Afunction%20rbMouse%28%29%7B%0ABrowserOpenFileWindow%28%29%3B%0A%7D%3B%0A%0Athis.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u043A%u0430%u043A...%20%5CnMiddle%20%3D%3E%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20%u043A%u0430%u043A%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%5CnRight%20%20%20%3D%3E%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0444%u0430%u0439%u043B%22%3B%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%0AlbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%0AmbMouse%28%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0ArbMouse%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация Выделить код Код:/*Initialization Code*/ //Сохранить как... function lbMouse(){ saveDocument(window.content.document); }; //Установить папку загрузки как текущую function mbMouse(){ Application.prefs.setValue("browser.download.lastDir", Application.prefs.getValue("browser.download.dir", "")); }; //Открыть файл function rbMouse(){ BrowserOpenFileWindow(); }; this.tooltipText = "Left => Сохранить как... \nMiddle => Установить папку загрузки как текущую \nRight => Открыть файл"; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ lbMouse(); } else if(event.button == 1) { // Действие при клике СКМ mbMouse(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов rbMouse(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; |
Indomito > 31-07-2010 22:52:36 |
ToolsBookmark (Firefox) скрытый текст Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EToolsBookmark%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%0Afunction%20lbMouse%28%29%7B%0Atry%20%7BPlacesCommandHook.bookmarkCurrentPage%28true%2C%20PlacesUtils.bookmarksMenuFolderId%29%3B%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20addBookmarkAs%28document.getElementById%28%27content%27%29%29%3B%20%7D%0A%7D%3B%0A%0A//%u0421%u043A%u0440%u044B%u0442%u044C/%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%0Afunction%20mbMouse%28%29%7B%0Aconst%20ptId%20%3D%20%22PersonalToolbar%22%3B%0Avar%20pt%20%3D%20document.getElementById%28ptId%29%3B%0Avar%20pt_hideAttr%20%3D%20pt.getAttribute%28%22type%22%29%20%3D%3D%20%22menubar%22%20%3F%20%22autohide%22%20%3A%20%22collapsed%22%3B%0Apt.setAttribute%28pt_hideAttr%2C%20pt.getAttribute%28pt_hideAttr%29%20%21%3D%20%22true%22%29%3B%0Adocument.persist%28ptId%2C%20pt_hideAttr%29%3B%0A%7D%3B%0A%0A//%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u0435%u0434%u0436%u0435%u0440%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%0Afunction%20rbMouse%28%29%7B%0Atry%20%7BPlacesCommandHook.showPlacesOrganizer%28%27AllBookmarks%27%29%3B%20%7D%0A%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7BtoOpenWindowByType%28%27bookmarks%3Amanager%27%2C%20%27chrome%3A//browser/content/bookmarks/bookmarksManager.xul%27%29%3B%20%7D%0A%7D%3B%0A%0A//%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0438%u0437%u043D%u0430%u0447%u0430%u043B%u044C%u043D%u043E%0Aconst%20ptId%20%3D%20%22PersonalToolbar%22%3B%0Avar%20pt%20%3D%20document.getElementById%28ptId%29%3B%0Avar%20pt_hideAttr%20%3D%20pt.getAttribute%28%22type%22%29%20%3D%3D%20%22menubar%22%20%3F%20%22autohide%22%20%3A%20%22collapsed%22%3B%0Apt.setAttribute%28pt_hideAttr%2C%20%22false%22%29%3B%0Adocument.persist%28ptId%2C%20pt_hideAttr%29%3B%0A%0Athis.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%5CnMiddle%20%3D%3E%20%u0421%u043A%u0440%u044B%u0442%u044C/%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%5CnRight%20%20%20%3D%3E%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u0435%u0434%u0436%u0435%u0440%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%3B%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%0AlbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%0AmbMouse%28%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0ArbMouse%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация Выделить код Код:/*Initialization Code*/ //Добавить в закладки текущую страницу function lbMouse(){ try {PlacesCommandHook.bookmarkCurrentPage(true, PlacesUtils.bookmarksMenuFolderId); } catch(e) { addBookmarkAs(document.getElementById('content')); } }; //Скрыть/Показать панель закладок function mbMouse(){ const ptId = "PersonalToolbar"; var pt = document.getElementById(ptId); var pt_hideAttr = pt.getAttribute("type") == "menubar" ? "autohide" : "collapsed"; pt.setAttribute(pt_hideAttr, pt.getAttribute(pt_hideAttr) != "true"); document.persist(ptId, pt_hideAttr); }; //Открыть менеджер закладок function rbMouse(){ try {PlacesCommandHook.showPlacesOrganizer('AllBookmarks'); } catch(e) {toOpenWindowByType('bookmarks:manager', 'chrome://browser/content/bookmarks/bookmarksManager.xul'); } }; //Открыть изначально const ptId = "PersonalToolbar"; var pt = document.getElementById(ptId); var pt_hideAttr = pt.getAttribute("type") == "menubar" ? "autohide" : "collapsed"; pt.setAttribute(pt_hideAttr, "false"); document.persist(ptId, pt_hideAttr); this.tooltipText = "Left => Добавить в закладки текущую страницу \nMiddle => Скрыть/Показать панель закладок \nRight => Открыть менеджер закладок"; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ lbMouse(); } else if(event.button == 1) { // Действие при клике СКМ mbMouse(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов rbMouse(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; |
Indomito > 01-08-2010 16:59:42 |
RestartHideQuit(Firefox 20) скрытый текст Код кнопки Выделить код Код: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%0A%20%20%3Cname%3ERestartHideQuit%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A//%u0423%u0431%u0438%u0440%u0430%u0435%u043C%20%20%u0425%u0440%u043E%u043C-%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043E%u043A%0A/*%20%u0421%u043D%u044F%u0442%u044C%20%u043A%u043E%u043C%u043C%u0435%u0442%u0430%u0440%u0438%u0438%20%u0435%u0441%u043B%u0438%20%u0445%u043E%u0442%u0438%u043C%20%u0432%u044B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0425%u0440%u043E%u043C.%0Adocument.getElementById%28%22main-window%22%29.setAttribute%28%27hidechrome%27%2C%27true%27%29%3B%0Awindow.restore%28%29%3B%0Awindow.maximize%28%29%3B%0Awindow.restore%28%29%3B%0A*/%0A%0A//%u0421%u043A%u0440%u044B%u0442%u044C%20%u0438%u0437%u043D%u0430%u0447%u0430%u043B%u044C%u043D%u043E%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043C%u0435%u043D%u044E%20%20%20%20%20%20%20%20%0Aconst%20tbId%20%3D%20%22toolbar-menubar%22%3B%0Avar%20tb%20%3D%20document.getElementById%28tbId%29%3B%0Avar%20tb_hideAttr%20%3D%20tb.getAttribute%28%22type%22%29%20%3D%3D%20%22menubar%22%20%3F%20%22autohide%22%20%3A%20%22collapsed%22%3B%0Atb.setAttribute%28tb_hideAttr%2C%20%22true%22%29%3B%0Adocument.persist%28tbId%2C%20tb_hideAttr%29%3B%0A%0Athis.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20Mozilla%20FireFox%20%5CnMiddle%20%3D%3E%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C/%u0441%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043C%u0435%u043D%u044E%20%5CnRight%20%20%20%3D%3E%20%u0412%u044B%u0439%u0442%u0438%20%u0438%u0437%20Mozilla%20FireFox%22%3B%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%0A%20%20var%20appStartup%20%3D%20Components.classes%5B%22@mozilla.org/toolkit/app-startup%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.getService%28Components.interfaces.nsIAppStartup%29%3B%0A%20%20appStartup.quit%28appStartup.eForceQuit%20%7C%20appStartup.eRestart%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%0A//%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C/%u0441%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043C%u0435%u043D%u044E%0Aconst%20tbId%20%3D%20%22toolbar-menubar%22%3B%0Avar%20tb%20%3D%20document.getElementById%28tbId%29%3B%0Avar%20tb_hideAttr%20%3D%20tb.getAttribute%28%22type%22%29%20%3D%3D%20%22menubar%22%20%3F%20%22autohide%22%20%3A%20%22collapsed%22%3B%0Atb.setAttribute%28tb_hideAttr%2C%20tb.getAttribute%28tb_hideAttr%29%20%21%3D%20%22true%22%29%3B%0Adocument.persist%28tbId%2C%20tb_hideAttr%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0AgoQuitApplication%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация Выделить код Код:/*Initialization Code*/ this.tooltipText = "Left => Перезагрузить Mozilla FireFox \nMiddle => В разработке (Показать/скрыть панель меню) \nRight => Выйти из Mozilla FireFox"; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"] .getService(Components.interfaces.nsIAppStartup); appStartup.quit(appStartup.eForceQuit | appStartup.eRestart); } else if(event.button == 1) { // Действие при клике СКМ // Показать/скрыть панель меню } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов goQuitApplication(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; |
Indomito > 07-08-2010 21:14:54 |
Заменена на Page Navigation с большим функционалом и упрощена. |
luitzen > 06-09-2010 00:00:54 |
Подключиться к Интернету (только Windows) (Firefox, Thunderbird) скрытый текст Ссылка: Выделить код Код: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%0A%20%20%3Cname/%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20credentials%20%3D%20%5B%22ConnectionName%22%2C%20%22Login%22%2C%20%22Password%22%5D%3B%0A%0Avar%20vbs%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D%0A%09%09%09%09%09.getService%28Components.interfaces.nsIProperties%29%0A%09%09%09%09%09.get%28%22TmpD%22%2C%20Components.interfaces.nsIFile%29%3B%0A%0Avbs.append%28%22rasdial.vbs%22%29%3B%0A%0Alet%20stream%20%3D%20Components.classes%5B%22@mozilla.org/network/file-output-stream%3B1%22%5D%0A%09%09%09%09%09.createInstance%28Components.interfaces.nsIFileOutputStream%29%3B%0Astream.init%28vbs%2C%20-1%2C%20-1%2C%200%29%3B%0Alet%20converter%20%3D%20Components.classes%5B%22@mozilla.org/intl/converter-output-stream%3B1%22%5D%0A%09%09%09%09%09.createInstance%28Components.interfaces.nsIConverterOutputStream%29%3B%0Aconverter.init%28stream%2C%20%22UTF-8%22%2C%200%2C%200%29%3B%0Aconverter.writeString%0A%09%28%0A%09%22CreateObject%28%5C%22Wscript.Shell%5C%22%29.Run%20%5C%22rasdial%20%22%20+%0A%09credentials.join%28%22%20%22%29%20+%0A%09%22%5C%22%20%2C%200%2C%20True%22%0A%09%29%3B%20%0Aconverter.close%28%29%3B%0A%0Avar%20wcscript%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%09%09%09%09%09.createInstance%28Components.interfaces.nsILocalFile%29%3B%0Awcscript.initWithPath%28%22C%3A%5C%5CWINDOWS%5C%5Csystem32%5C%5Cwscript.exe%22%29%3B%20%0A%0Avar%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%09%09%09%09%09.createInstance%28Components.interfaces.nsIProcess%29%3B%0Aprocess.init%28wcscript%29%3B%20%0Aprocess.run%28false%2C%20%5Bvbs.path%5D%2C%201%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Собственно код: Выделить код Код:var credentials = ["ConnectionName", "Login", "Password"]; var vbs = Components.classes["@mozilla.org/file/directory_service;1"] .getService(Components.interfaces.nsIProperties) .get("TmpD", Components.interfaces.nsIFile); vbs.append("rasdial.vbs"); let stream = Components.classes["@mozilla.org/network/file-output-stream;1"] .createInstance(Components.interfaces.nsIFileOutputStream); stream.init(vbs, -1, -1, 0); let converter = Components.classes["@mozilla.org/intl/converter-output-stream;1"] .createInstance(Components.interfaces.nsIConverterOutputStream); converter.init(stream, "UTF-8", 0, 0); converter.writeString ( "CreateObject(\"Wscript.Shell\").Run \"rasdial " + credentials.join(" ") + "\" , 0, True" ); converter.close(); var wcscript = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); wcscript.initWithPath("C:\\WINDOWS\\system32\\wscript.exe"); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(wcscript); process.run(false, [vbs.path], 1); В первой строке кода кнопки нужно указать название подключения, логин и пароль. |
luitzen > 18-09-2010 23:34:21 |
Не более десяти вкладок! (Firefox) скрытый текст Ссылка: Выделить код Код: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%0A%20%20%3Cname/%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5BtabLimiter%20%3D%20new%20function%28%29%20%7B%0A%0A%20%20%20%20this.boolean%20%3D%20true%3B%0A%0A%20%20%20%20this.extIEvents%20%3D%20Application.activeWindow.events%3B%0A%0A%20%20%20%20this.extIEventListener%20%3D%20function%28event%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28event.data.index%20%3E%209%29%20event.data.close%28%29%3B%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20this.addORremoveListener%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28this.boolean%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%20this.extIEvents.addListener%28%22TabOpen%22%2C%20this.extIEventListener%29%3B%20%7D%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%20this.extIEvents.removeListener%28%22TabOpen%22%2C%20this.extIEventListener%29%3B%20%7D%0A%20%20%20%20%20%20%20%20this.boolean%20%3D%20%21this.boolean%3B%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20this.addORremoveListener%28%29%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BtabLimiter.addORremoveListener%28%29%3B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код инициализации: Выделить код Код:tabLimiter = new function() { this.boolean = true; this.extIEvents = Application.activeWindow.events; this.extIEventListener = function(event) { if (event.data.index > 9) event.data.close(); }; this.addORremoveListener = function () { if (this.boolean) { this.extIEvents.addListener("TabOpen", this.extIEventListener); } else { this.extIEvents.removeListener("TabOpen", this.extIEventListener); } this.boolean = !this.boolean; }; this.addORremoveListener(); } Собственно код (выключающий и обратно включающий ограничение): Кнопочка в основном для самодисциплины, для борьбы с другими подвластными пользователями нужно использовать иные средства. |
bunda1 > 23-09-2010 18:25:06 |
Открыть страницу в Internet Explorer ( Firefox, Pale Moon ) ЛКМ => открыть текущую страницу в Internet Explorer. Код кнопки и код для вкладки Код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20Internet%20Explorer%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAgDAgAPAgECFwAAAQ8AAAAQBgEAIRUJADAVCAAxBgEAIwAAABIAAAERAgECGAMCABAAAAAJAAAABQAAAAIAAAABAAAABAIBAAwAAAINBgEAC0QrCVCScT6nxKFt1de2g+fXtoPnw6Ft1pJxPqhEKwlSBgEADQAAAg8CAQAOAAAABgAAAAIAAAAAAgEAAQAAAQBDJQANuIc7mfjSlvz+3q3/99en//PToP/z06D/99en//7erf/40pb8uIc7mUMlAA0AAAEAAgEAAQAAAAACAgABAAABAFQwABLpq03H8s6Y/+W8gf3itnX74rZ2+uK3evzit3r84rZ2+uO2dfvlvIH98s6Y/+mrTcdUMAASAAABAAICAAEAAAIBFAoAAM2QM6zovHv/3Kle+t+sYP3frmf+6rZp/+61Yv/utWL/6rZp/9+uZ/7fq2D83Kle+ei7e//NjzKsEwkAAAAAAgEAAAAAeUwJUuyvVf/Xnkn72qBJ/t2kTv/lo0DypG0ajnxPCU58TwlOpG0ajuWjQPLepU//26JK/tigS/3tsVf/e08LWAAAAAAfEQAAwYEZt9ubMv/VlCn71pcu/9eRIt9hOgEkAAAAAAIBAAICAQACAAAAAGA5ASbQjB/N05Eo5dGPJN3blyvvrHEUlwUBAABgOgAh35QZ7dKRIP/Vkh/81pMf/8aAD8OGVwt8i1sOkZBdDY6QXQ2Oi1sOj4NVDYK4dQqVzIIMpMd/DaHLgQymu3cKjjwlABJbOQVL4Z84/9abPP/Ymzr/2Js7/9udPv/npkD/56ZB/+emQf/npkH/56ZB/+imP//dnz7/2Zw9/9mcPP/XnD7/56M5/2I+BExdPQlV565Y/9yoW/7fql3/36xg/+CtYf3bqmL42qli+NqpYvjaqWL42qli+NqpYfjfrGH836tf/d6pXP3cp1r85q1X/1w8ClVfOwQ87Lpv++O5e//luHb+5bh3/+W5ef/yw3//+MV9//bEff/2xH3/+MV9//LDf//luXn/5bh3/+W4dv7juXv/7Lpu+187BDxOLAAM6rhr2uvJl//owIX87cmT/9WfT9V6Tg5WYkYfXWxMH2VsTB9lYkYfXXpODlbVn0/V7cmT/+jAhfzryZf/6rhr2k4sAAwAAAAArIA+j/3juP/ry5j679Gh//LQm/+qeS1/HA0ABAAAAQAAAAEAHA0AA6p4LX7y0Jv/79Gh/+vLmPr+47f/rIA9jwAAAAAAAAAATi4AIvvXnvD04sH/89ip/fXdtv//5rv/8ciH6dinWrjYp1q48ciH6f/mu//13bb/89ip/fXiwf/51p7wTi4AIwAAAAACAgIDAAAAAJhoIWP/8cr/9+nQ/ffhufv34778++vM///v0P//79D/++vM//fjvvz34bn79+nQ/f/wyv+mcCFjAAAAAAECAgMBAQAAAAACAhgKAAC2fShs/+3C/P//6//98dn+++zO/Prqyvr66sr6++zO/P3x2f7//+v//+3C/LZ9KGwYCgAAAAACAgEBAAAAAAAAAQEAAAEBAgMIAQAAWDgLNMqmbbT+58H3//fd///85P///OT///fd//7nwffKpm20WDgLNAgBAAAAAQIDAQAAAAAAAAAAAAAAAAAAAAEBAAACAQIDAAABAAYBAAByRQYrpnYqZqeCSYengkmHpnYqZnJFBisGAQAAAAABAAIBAgMBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20path%20%3D%20%22C%3A%5C%5CProgram%20Files%5C%5CInternet%20Explorer%5C%5Ciexplore.exe%22%3B%0A%0Avar%20uri%20%3D%20gBrowser.currentURI.spec%3B%0Avar%20uri%20%3D%20/.%u0440%u0444/.test%28uri%29%20%3F%20Services.io.newURI%28uri%2C%20null%2C%20null%29.asciiSpec%20%3A%20uri%3B%20%20%0Avar%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0Afile.initWithPath%28path%29%3B%0A%21file.exists%28%29%20%26%26%20custombuttons.alertSlide%28self.label%2C%20%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%22%29%3B%0Avar%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0Aprocess.init%28file%29%3B%0Aprocess.run%28false%2C%20%5Buri%5D%2C%201%29%3B%0A%0A%0A%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var path = "C:\\Program Files\\Internet Explorer\\iexplore.exe"; var uri = gBrowser.currentURI.spec; var uri = /.рф/.test(uri) ? Services.io.newURI(uri, null, null).asciiSpec : uri; var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath(path); !file.exists() && custombuttons.alertSlide(self.label, "Файл не существует"); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.run(false, [uri], 1); |
bunda1 > 29-09-2010 17:42:39 |
Hide scrollbar ( Firefox 3.6+ ) от 26.05.2013. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EHide%20scrollbar%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAQAMAAAAAAAAAAAAAAAAAAAAAAAAI0OAI0OAI0OAJ0OAJ0OAJ0OAI0OAI0OAI0OAI0OAI0OEJ0OAJ0OAJ0OEI0OAI0OAI0OAI0OAIz+AIzt8Izt8Hz98I0OAI0OAI0OAI0OAIz+AIzt8Izt8Iz98I0OAI0OAI0OAAz9842uaq7/So7/Rv4+wAzt8J0OAP0eEAzd5D2+if7vOv8PVo4uwEz+AIz+AJ0OAAzd9X3+r///////+18fUAzd4J0OAT0uEAy9xw4+34/v7///+m7/QIzt8J0OAJ0OAAzd9S3+r///////+m7vQAzd4J0OAS0uEAzN1m4ezu/P3///+c7fMHzt8J0OAI0OABz98n1uRy5O1w4u1K2+gCz98J0OAM0eAAzt8u1+Rr4ux35O5G2+cGz98I0eAI0OAJ0OAEzuAAy90Ay90Czd4H0OAI0OAH0OAK0OADzt8Ay9wAy9wAzd4J0OAI0OAI0OAI0OAL0OAS0uET0uEP0eEI0OAI0OAI0OAH0OAM0eES0uET0uEP0uEI0OAI0OAI0OAI0OAI0OAJ0OAJ0OAJ0OAI0OAI0OAI0OAI0OAJ0OAJ0OAJ0OAJ0OAI0OAI0OAI0OAI0OAE0N8Azd4Azd4Czt8J0OAJ0OAI0OAJ0OADz98Azd4Azd4Azt8H0OAI0OAI0OAAzt882ua48fa08PV15e4Azt4J0OAP0uEAzd5J3Oit7/S+8vdv5OwHz98I0OEJ0OAAzd9X3+r///////+08fUAzd4J0OAT0uEAy9xw4+34/v7///+m7/QIzt8J0OAJ0OAAzd9X3+r///////+28fUAzd4J0OAT0uEAy9xx4+34/v7///+m7/QIzt8J0OAI0OAE0OAg1eNa4OpY4Os82ucDz98I0OAL0OABzt8m1uRU3upb4Oo52uYGz+AJ0OAI0OAI0OAF0OAAzd8Azd8Czt8I0OAI0OAI0OAK0OAD0N8Azd8Azd8Bz98I0OAI0OAI0OAI0OAI0OAJ0OAJ0OAJ0OAI0OAI0OAI0OAI0OAI0OAJ0OAJ0OAI0OAI0OAI0OAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20................................%0Avar%20css%20%3D%20%22html%20%3E%20scrollbar%5Borient%3Dvertical%5D%20%7B%20visibility%3Acollapse%20%21important%7D%5Cn%22%3B%0Acss%20%3D%20css%20+%20%22html%20%3E%20scrollbar%5Borient%3Dhorizontal%5D%20%7B%20visibility%3Acollapse%20%21important%20%7D%22%3B%0Aconst%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%20%20%0A%0Aconst%20icon%20%3D%20this.ownerDocument.getAnonymousElementByAttribute%28this%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20enabled%20%3D%20sss.sheetRegistered%28%20uri%2C%20sss.AGENT_SHEET%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20enabled%20%3F%20sss.unregisterSheet%28%20uri%2C%20sss.AGENT_SHEET%20%29%20%3A%20sss.loadAndRegisterSheet%28%20uri%2C%20sss.AGENT_SHEET%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20this.style.filter%20%3D%20enabled%20%3F%20%22%22%20%3A%20%27url%28%22chrome%3A//mozapps/skin/extensions/extensions.svg%23greyscale%22%29%27%3B%0A%20%20%20%20%20%20%20%20%20%20icon.style.opacity%20%3D%20enabled%20%3F%20%22%22%20%3A%200.65%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20BrowserReload%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%20%20%20%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Объявляем переменные для этой вкладки ................................ var css = "html > scrollbar[orient=vertical] { visibility:collapse !important}\n"; css = css + "html > scrollbar[orient=horizontal] { visibility:collapse !important }"; const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); const icon = this.ownerDocument.getAnonymousElementByAttribute(this, "class", "toolbarbutton-icon"); // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { if ( e.button == 0 ) { var uri = makeURI("data:text/css," + encodeURIComponent(css)); var enabled = sss.sheetRegistered( uri, sss.AGENT_SHEET ); enabled ? sss.unregisterSheet( uri, sss.AGENT_SHEET ) : sss.loadAndRegisterSheet( uri, sss.AGENT_SHEET ); this.style.filter = enabled ? "" : 'url("chrome://mozapps/skin/extensions/extensions.svg#greyscale")'; icon.style.opacity = enabled ? "" : 0.65 BrowserReload(); }; }; |
bunda1 > 30-09-2010 20:52:54 |
Search and open( Firefox ) ЛКМ => искать выделенный текст или текст из буфера обмена в текущем поисковике в новой активной вкладке, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ESearch%20and%20open%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CAAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%252BTzvb2%252B%252Fne4dFJeBw0egA%252FfAJAfAA8ewBBegAAAAD%252B%252FPtft98Mp%252BwWsfAVsvEbs%252FQeqvF8xO7%252F%252F%252F63yqkxdgM7gwE%252FggM%252BfQA%252BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%252FQvq%252Bfz%252Bf%252F%252B%252B%252FZKhR05hgBBhQI8hgBAgAI9ewD0%252B%252Fg3pswAtO8Cxf4Kw%252FsJvvYAqupKsNv%252B%252Fv7%252F%252FP5VkSU0iQA7jQA9hgBDgQU%252BfQH%252F%252Ff%252FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%252Fv%252Fg6Nc%252Fhg05kAA8jAM9iQI%252BhQA%252BgQDQu6b97uv%252F%252F%252F7V8Pqw3eiWz97q8%252Ff%252F%252F%252F%252F7%252FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%252F%252B%252F%252F39%252F%252F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%252F%252B%252Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%252BooT8%252Fv%252F7%252F%252F%252FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%252BhwGfXifWvqz%252B%252Ff%252F58u%252Fev6Dt4tr%252B%252F%252F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%252FkwBChwHt4dv%252F%252F%252F728ei1bCi7VAC5XQ7kz7n%252F%252F%252F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%252F%252F%252F9%252F%252F%252FSqYK5UwDKZAS9WALIkFn%252B%252F%252F3%252F%252BP8oKccGGcIRJrERILYFEMwAAuEAAdX%252F%252Ff7%252F%252FP%252B%252BfDvGXQLIZgLEWgLOjlf7%252F%252F%252F%252F%252F%252F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%252F%252F%252F%252F7%252B%252Fu2bCTIYwDPZgDBWQDSr4P%252F%252Fv%252F%252F%252FP5GRuABAPkAA%252FwBAfkDAPAAAesAAN%252F%252F%252B%252Fz%252F%252F%252F64g1C5VwDMYwK8Yg7y5tz8%252Fv%252FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%252F%252FPvi28ymXyChTATRrIb8%252F%252F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%20//%20%u041B%u041A%u041C%20%0A%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21%21text%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28%20text%2C%20null%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.loadOneTab%28%20submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20true%2C%20false%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20//%20%u0421%u041A%u041C%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20win%20%3D%20document.commandDispatcher.focusedWindow%2C%20doc%20%3D%20win.document%3B%0A%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20doc%2C%20winSel%20%3D%20win.getSelection%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20winSel.toString%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sel.appendChild%28%20winSel.getRangeAt%280%29.cloneContents%28%29%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20str%20%3D%20%27%27%2C%20links%20%3D%20sel.getElementsByTagName%28%27a%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20links.length%20%3E%2016%20%26%26%20%21confirm%28%27%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%27%20+%20links.length%20+%20%27%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0432%20%u043D%u043E%u0432%u044B%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%3F%27%29%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20for%28%20var%20i%20%3D%200%2C%20lnk%3B%20lnk%20%3D%20links%5Bi%5D%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20lnk.href%29%20gBrowser.addTab%28%20lnk.href%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%20%7B%20//%20%u041F%u041A%u041C%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20url%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21%21url%20%29%20gBrowser.loadOneTab%28%20url%2C%20null%2C%20null%2C%20null%2C%20false%2C%20false%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%20%20%20%20%20%20%20%0A%7D%3B%0A%0A%0A%0A//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20..................................................................................................%0Avar%20_this%20%3D%20this%3B%0Avar%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%0A%0A%0A/*%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u0434%u0430%u0441%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%2C%20%0A%20%20%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20..............%20*/%0Afunction%20getSelect%28%29%20%7B%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20....%0A%20%20window.content.focus%28%29%3B%0A%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20%7B%0A%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20var%20selection%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%0A%20%20//%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20//%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%u0441%20%u043E%u0431%u043E%u0438%u0445%20%u043A%u043E%u043D%u0446%u043E%u0432%20%u0442%u0435%u043A%u0441%u0442%u0430%20....%0A%20%20if%20%28%20selection%20%21%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20selection.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%20%20%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%29%20%7B%20%0A%20%20%20%20%20%20%20var%20str%20%3D%20%22%u0412%u044B%u0434%u0435%u043B%u0438%u0442%u0435%20%u0438%u043B%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u0443%u0439%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%21%22%0A%20%20%20%20%20%20%20alertsService.showAlertNotification%28_this.image%2C%20_this.label%2C%20str%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%0A%20%20return%20%28%20selection%20%3D%3D%20%27%27%29%3F%20false%3A%20selection%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20%u043E%u0442%u0441%u0442%u0443%u043F%20%u0441%u043F%u0440%u0430%u0432%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................................%0Athis.tooltipText%20%3D%20%22Search%20and%20open%20%5Cn%u041B%3A%20%u0418%u0441%u043A%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20/%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%5Cn%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20/%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%22%3B%0A//this.setAttribute%28%22style%22%2C%20%22margin-right%3A%2010px%3B%22%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bnull%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ............................................... this.onclick = function(e) { if ( e.button == 0 ) { // ЛКМ var text = getSelect(); if ( !!text) var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission( text, null ); gBrowser.loadOneTab( submission.uri.spec, null, null, submission.postData, true, false ); }; if ( e.button == 1 ) { // СКМ var win = document.commandDispatcher.focusedWindow, doc = win.document; var sel = doc, winSel = win.getSelection(); if ( winSel.toString() ) { var sel = doc.createElement('div'); sel.appendChild( winSel.getRangeAt(0).cloneContents() ); } var str = '', links = sel.getElementsByTagName('a'); if ( links.length > 16 && !confirm('Открыть ' + links.length + ' ссылки в новых вкладках?') ) return; for( var i = 0, lnk; lnk = links[i]; i++ ) { if ( lnk.href) gBrowser.addTab( lnk.href ); } }; if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { // ПКМ e.preventDefault(); var url = getSelect(); if ( !!url ) gBrowser.loadOneTab( url, null, null, null, false, false ); }; }; // Объявляем переменные для этой вкладки .................................................................................................. var _this = this; var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService); /* Функция отдаст выделенный текст из страницы или текстового поля, или из буфера обмена если текст не выделен, если нет текста отдаст 'false' .............. */ function getSelect() { // выделенный текст из страницы .... window.content.focus(); var selection = document.commandDispatcher.focusedWindow.getSelection().toString(); // выделенный текст из текстового поля .... if ( selection == '' ) { var theBox = document.commandDispatcher.focusedElement; if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selection = theBox.value.substring(startPos, endPos); } }; // текст из буфера обмена .... if ( selection == '' ) var selection = gClipboard.read(); // убираем пробелы с обоих концов текста .... if ( selection !== '' ) var selection = selection.toString().replace(/^\s+|\s+$/g,""); if ( selection == '') { var str = "Выделите или скопируйте текст!" alertsService.showAlertNotification(_this.image, _this.label, str, false, "", null, ""); }; return ( selection == '')? false: selection; }; // Подсказка кнопки и отступ справа у кнопки ................................................ this.tooltipText = "Search and open \nЛ: Искать текст из буфера обмена / выделенный \nМ: Открыть все выделенные ссылки \nП: Открыть адрес из буфера обмена / выделенный"; //this.setAttribute("style", "margin-right: 10px;"); |
bunda1 > 17-10-2010 21:36:36 |
Zoom( Firefox24 ) от 07.06.2016. Скриншот: ЛКМ => Увеличить масштаб, СКМ => Менять масштаб страницы или только текста на странице, соответственно меняется иконка копки, ПКМ => Уменьшить масштаб, Ctrl+ПКМ => Контекстное меню кнопки, Колёсиком мыши => Менять масштаб. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EZoom%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAwElEQVQ4jd3RMWpCQRSF4S/iBtyCELHW1sIV6ALiRnQH4hJ0ByF2Ym8aG1Ml8Ji3ArXRDZhUA+bx3qCWHjgw3Jn57+XcF1fq0JXQF7vUvYxw4bfKGWHO4mFA9AfLJCAjdOhG9+jPWVxDmrSSgLIGGz4jYMwEaslQCtqyLdbuAgwYxvOJM9SrHscRoUFjwLDFKwTy97Igb93CG6P4p3KCQF6sHdhPma1YJwGBvF22phLdFeKTAv6F+MP3gf2R462AP7hdbq8C1bDsAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%20....%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20FullZoom.enlarge%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%3B%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20FullZoom.reduce%28%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%0A%20%20%20%20%20showTooltip%28%29%3B%20%20%20%20%20%20%20%20%20%0A%7D%3B%0Athis.setAttribute%28%22ondblclick%22%2C%20%22event.preventDefault%28%29%22%29%3B%0A%0A%0A//%20%u041C%u0435%u043D%u044F%u0442%u044C%20%u043C%u0430%u0441%u0448%u0442%u0430%u0431%20%u043A%u043E%u043B%u0435%u0441%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0435%20..............%0Athis.onwheel%20%3De%3D%3E%20%7B%0A%20%20%20e.deltaY%20%3E%200%20%3F%20FullZoom.reduce%28%29%20%3A%20FullZoom.enlarge%28%29%3B%0A%20%20%20showTooltip%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0443%20%u0438%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0432%u044B%u0437%u043E%u0432%u0435%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20..............%0Afunction%20showTooltip%28%29%20%7B%0A%20%20%20var%20tooltip%20%3D%20self.lastChild%3B%0A%20%20%20if%20%28%20%21tooltip%20%29%20%7B%0A%20%20%20%20%20%20%20%20tooltip%20%3D%20self.appendChild%28document.createElement%28%22tooltip%22%29%29%3B%0A%20%20%20%20%20%20%20%20tooltip.style.cssText%20%3D%20%22font-weight%3A%20bold%20%21important%3B%20color%3A%20red%20%21important%3B%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20self.tooltipText%20%3D%20%22%22%20%20%20%20%20%0A%20%20%20tooltip.label%20%3D%20Math.floor%28%28ZoomManager.zoom%20+%200.005%29%20*%20100%29%20+%20%22%25%22%3B%0A%20%20%20tooltip.showPopup%28self%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22topleft%22%2C%20%22topright%22%29%3B%0A%20%20%20self.onmouseleave%20%3D%28%29%3D%3E%20%7B%20tooltip.hidePopup%28self.onmouseleave%20%3D%20null%29%3B%20self.tooltipText%20%3D%20self.label%20%7D%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%27about%3Aconfig%27%20..............%0Avar%20s%20%3D%20%22browser.zoom.full%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.image%20%3D%20cbu.getPrefs%28s%29%0A%20%20%20%3F%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACQklEQVQ4jaWSzUtUYRTGf+97rzM6V22YVBQJa1GbPjCiIMJFzaJNYosiiSAooV0ryWW7Nv0DiYXRJnAVtgqMaBEEFShJovmRM43jfDsfd+aO9973bWVIjBZ0ls/znIdzznPgP0vsRYxPvt/KFUqVRHLLS6RE36sXtxpqZSPwZP/A1aagdSBkRXqlGe7bTJcxgkev/LPB9ZsPxoslh0zOJpkqkUiWsLoHXzfSmo3AuhfsysYKxBNFFpezlIoFlG8DdADZfScYvv1oJpO1WVjK8PHTUj6+vpJWfhmUS0vn0Nu/rnDoyOmoXd0mnamQXH1+w9l69xAMhNGMGew5ta9B/5nLI0ppao6HXd0GJzbjVuafSLMVabQjDItg+OLTPQ0Gr41O2NVtsjmbjdiX6R3crS5PC9mMkEECbSfuNjTo7Dzc79Q98oUqyXSZaurl0A5XTU0NmaaJECZCGBjNx0Z2uN/PcX9sKleuycjc/CbLqzHUdg7QCCOENCyQAdAK7dsor0xl45mAXTEWSkS+LiRZWVnEq62h3C0QAmm0Icx2pBFCyABaK7SuA1Y/2LMC4PylsZlivScaj33HrXzDKX2+gxZ9SImUzSADKF/9DIXPTiAkWnto38k7+TcHTYB0qTOaSf/ArS5Ttxen8cuTAChQuw7m1rqGjUBHFHzQKgIgWiIXRptazz32amu4tTXcylwPsPln3jsVDA9orV3QPtqrfRBW772KcuIVt570lJtvVfX18F7NAKZ1fBbtd2vtOdKw+n4B6skL1gRzZQAAAAAASUVORK5CYII%3D%27%0A%20%20%20%3A%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAwElEQVQ4jd3RMWpCQRSF4S/iBtyCELHW1sIV6ALiRnQH4hJ0ByF2Ym8aG1Ml8Ji3ArXRDZhUA+bx3qCWHjgw3Jn57+XcF1fq0JXQF7vUvYxw4bfKGWHO4mFA9AfLJCAjdOhG9+jPWVxDmrSSgLIGGz4jYMwEaslQCtqyLdbuAgwYxvOJM9SrHscRoUFjwLDFKwTy97Igb93CG6P4p3KCQF6sHdhPma1YJwGBvF22phLdFeKTAv6F+MP3gf2R462AP7hdbq8C1bDsAAAAAElFTkSuQmCC%27%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%0A%20%20%20var%20value%20%3D%20Math.floor%28%28ZoomManager.zoom%20+%200.005%29%20*%20100%29%20+%20%22%25%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20this.tooltipText%20%3D%20%22Zoom%3A%20%22%20+%20value%20+%20%22%5Cn%u041B%3A%20%u0443%u0432%u0435%u043B%u0438%u0447%u0438%u0442%u044C%20%u043C%u0430%u0441%u0448%u0442%u0430%u0431%20%5Cn%u0421%3A%20%u043C%u0435%u043D%u044F%u0442%u044C%20%u043C%u0430%u0441%u0448%u0442%u0430%u0431%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%5Cn%u041F%3A%20%u0443%u043C%u0435%u043D%u044C%u0448%u0438%u0442%u044C%20%u043C%u0430%u0441%u0448%u0442%u0430%u0431%20%5Cn%u041C%u043E%u0436%u043D%u043E%20%u043C%u0435%u043D%u044F%u0442%u044C%20%u043C%u0430%u0441%u0448%u0442%u0430%u0431%20%u043A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%u043C%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0435%22%3B%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%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%7D%3B%20%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки .............. this.onclick =e=> { // действие при клике ЛКМ .... if ( e.button == 0 ) FullZoom.enlarge(); // действие при клике СКМ .... if ( e.button == 1 ) cbu.setPrefs(s, !cbu.getPrefs(s)); // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); FullZoom.reduce(); } showTooltip(); }; this.setAttribute("ondblclick", "event.preventDefault()"); // Менять масштаб колесиком мыши на кнопке .............. this.onwheel =e=> { e.deltaY > 0 ? FullZoom.reduce() : FullZoom.enlarge(); showTooltip(); }; // Создать подсказку и показывать у кнопки при вызове функции .............. function showTooltip() { var tooltip = self.lastChild; if ( !tooltip ) { tooltip = self.appendChild(document.createElement("tooltip")); tooltip.style.cssText = "font-weight: bold !important; color: red !important;"; } self.tooltipText = "" tooltip.label = Math.floor((ZoomManager.zoom + 0.005) * 100) + "%"; tooltip.showPopup(self, -1, -1, "popup", "topleft", "topright"); self.onmouseleave =()=> { tooltip.hidePopup(self.onmouseleave = null); self.tooltipText = self.label }; }; // Установить нужную иконку кнопки при старте браузера или при изменениях настроек 'about:config' .............. var s = "browser.zoom.full"; function toggleImage() { self.image = cbu.getPrefs(s) ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACQklEQVQ4jaWSzUtUYRTGf+97rzM6V22YVBQJa1GbPjCiIMJFzaJNYosiiSAooV0ryWW7Nv0DiYXRJnAVtgqMaBEEFShJovmRM43jfDsfd+aO9973bWVIjBZ0ls/znIdzznPgP0vsRYxPvt/KFUqVRHLLS6RE36sXtxpqZSPwZP/A1aagdSBkRXqlGe7bTJcxgkev/LPB9ZsPxoslh0zOJpkqkUiWsLoHXzfSmo3AuhfsysYKxBNFFpezlIoFlG8DdADZfScYvv1oJpO1WVjK8PHTUj6+vpJWfhmUS0vn0Nu/rnDoyOmoXd0mnamQXH1+w9l69xAMhNGMGew5ta9B/5nLI0ppao6HXd0GJzbjVuafSLMVabQjDItg+OLTPQ0Gr41O2NVtsjmbjdiX6R3crS5PC9mMkEECbSfuNjTo7Dzc79Q98oUqyXSZaurl0A5XTU0NmaaJECZCGBjNx0Z2uN/PcX9sKleuycjc/CbLqzHUdg7QCCOENCyQAdAK7dsor0xl45mAXTEWSkS+LiRZWVnEq62h3C0QAmm0Icx2pBFCyABaK7SuA1Y/2LMC4PylsZlivScaj33HrXzDKX2+gxZ9SImUzSADKF/9DIXPTiAkWnto38k7+TcHTYB0qTOaSf/ArS5Ttxen8cuTAChQuw7m1rqGjUBHFHzQKgIgWiIXRptazz32amu4tTXcylwPsPln3jsVDA9orV3QPtqrfRBW772KcuIVt570lJtvVfX18F7NAKZ1fBbtd2vtOdKw+n4B6skL1gRzZQAAAAAASUVORK5CYII=' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAwElEQVQ4jd3RMWpCQRSF4S/iBtyCELHW1sIV6ALiRnQH4hJ0ByF2Ym8aG1Ml8Ji3ArXRDZhUA+bx3qCWHjgw3Jn57+XcF1fq0JXQF7vUvYxw4bfKGWHO4mFA9AfLJCAjdOhG9+jPWVxDmrSSgLIGGz4jYMwEaslQCtqyLdbuAgwYxvOJM9SrHscRoUFjwLDFKwTy97Igb93CG6P4p3KCQF6sHdhPma1YJwGBvF22phLdFeKTAv6F+MP3gf2R462AP7hdbq8C1bDsAAAAAElFTkSuQmCC'; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage) ); // Подсказка для кнопки .............. this.onmouseover =()=> { var value = Math.floor((ZoomManager.zoom + 0.005) * 100) + "%"; this.tooltipText = "Zoom: " + value + "\nЛ: увеличить масштаб \nС: менять масштаб страницы или только текста на странице \nП: уменьшить масштаб \nМожно менять масштаб колёсиком на кнопке"; }; |
bunda1 > 22-10-2010 00:35:51 |
Search and open +( Firefox ) ЛКМ => искать выделенный текст или текст из буфера обмена в текущем поисковике в новой активной вкладке, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ESearch%20and%20open+%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CAAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%252BTzvb2%252B%252Fne4dFJeBw0egA%252FfAJAfAA8ewBBegAAAAD%252B%252FPtft98Mp%252BwWsfAVsvEbs%252FQeqvF8xO7%252F%252F%252F63yqkxdgM7gwE%252FggM%252BfQA%252BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%252FQvq%252Bfz%252Bf%252F%252B%252B%252FZKhR05hgBBhQI8hgBAgAI9ewD0%252B%252Fg3pswAtO8Cxf4Kw%252FsJvvYAqupKsNv%252B%252Fv7%252F%252FP5VkSU0iQA7jQA9hgBDgQU%252BfQH%252F%252Ff%252FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%252Fv%252Fg6Nc%252Fhg05kAA8jAM9iQI%252BhQA%252BgQDQu6b97uv%252F%252F%252F7V8Pqw3eiWz97q8%252Ff%252F%252F%252F%252F7%252FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%252F%252B%252F%252F39%252F%252F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%252F%252B%252Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%252BooT8%252Fv%252F7%252F%252F%252FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%252BhwGfXifWvqz%252B%252Ff%252F58u%252Fev6Dt4tr%252B%252F%252F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%252FkwBChwHt4dv%252F%252F%252F728ei1bCi7VAC5XQ7kz7n%252F%252F%252F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%252F%252F%252F9%252F%252F%252FSqYK5UwDKZAS9WALIkFn%252B%252F%252F3%252F%252BP8oKccGGcIRJrERILYFEMwAAuEAAdX%252F%252Ff7%252F%252FP%252B%252BfDvGXQLIZgLEWgLOjlf7%252F%252F%252F%252F%252F%252F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%252F%252F%252F%252F7%252B%252Fu2bCTIYwDPZgDBWQDSr4P%252F%252Fv%252F%252F%252FP5GRuABAPkAA%252FwBAfkDAPAAAesAAN%252F%252F%252B%252Fz%252F%252F%252F64g1C5VwDMYwK8Yg7y5tz8%252Fv%252FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%252F%252FPvi28ymXyChTATRrIb8%252F%252F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%20//%20%u041B%u041A%u041C%20%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20e.originalTarget.nodeName%20%21%3D%20%22xul%3Atoolbarbutton%22%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20%21%21text%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28text%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.loadOneTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20true%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20//%20%u0421%u041A%u041C%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20win%20%3D%20document.commandDispatcher.focusedWindow%2C%20doc%20%3D%20win.document%3B%0A%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20doc%2C%20winSel%20%3D%20win.getSelection%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20winSel.toString%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sel.appendChild%28%20winSel.getRangeAt%280%29.cloneContents%28%29%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20str%20%3D%20%27%27%2C%20links%20%3D%20sel.getElementsByTagName%28%27a%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20links.length%20%3E%2016%20%26%26%20%21confirm%28%27%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%27%20+%20links.length%20+%20%27%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0432%20%u043D%u043E%u0432%u044B%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%3F%27%29%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20for%28%20var%20i%20%3D%200%2C%20lnk%3B%20lnk%20%3D%20links%5Bi%5D%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20lnk.href%29%20gBrowser.addTab%28%20lnk.href%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%20%7B%20//%20%u041F%u041A%u041C%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20url%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21%21url%20%29%20gBrowser.loadOneTab%28%20url%2C%20null%2C%20null%2C%20null%2C%20false%2C%20false%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%20%20%20%20%20%20%20%0A%7D%3B%0A%0A%0A%0A//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20..................................................................................................%0Avar%20_this%20%3D%20this%3B%0Avar%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u0441%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0430%u043C%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.........................................%0Afunction%20searchService%28%29%20%7B%0A%20%20%20return%20Components.classes%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Components.interfaces.nsIBrowserSearchService%29%3B%0A%7D%0A%0Athis.selectEngine%20%3D%20function%28aNode%2C%20aEvent%29%20%7B%0A%20%20%20var%20engine%20%3D%20aEvent.target.engine%3B%0A%20%20%20var%20ss%20%3D%20searchService%28%29%3B%0A%20%20%20ss.currentEngine%20%3D%20ss.getEngineByName%28engine.name%29%3B%0A%20%20%20aNode.engine%20%3D%20engine%3B%0A%20%20%20aNode.image%20%3D%20aEvent.target.getAttribute%28%22src%22%29%3B%0A%7D%0A%0Athis.populateMenu%20%3D%20function%28aNode%29%20%7B%0A%20%20%20var%20ss%20%3D%20searchService%28%29%3B%0A%20%20%20var%20engines%20%3D%20ss.getVisibleEngines%28%7B%20%7D%29%3B%0A%20%20%20const%20kXULNS%20%3D%20%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3B%0A%0A%20%20%20while%28%20aNode.firstChild%20%26%26%20aNode.firstChild.localName%20%21%3D%20%22menuseparator%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20aNode.removeChild%28%20aNode.firstChild%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20for%20%28%20var%20i%20%3D%20engines.length%20-%201%3B%20i%20%3E%3D%200%3B%20i--%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20mi%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20mi.id%20%3D%20%22cb-search-%22%20+%20engines%5Bi%5D.name%3B%0A%20%20%20%20%20%20%20%20%20mi.className%20%3D%20%22menuitem-iconic%20searchbar-engine-menuitem%22%3B%0A%20%20%20%20%20%20%20%20%20mi.setAttribute%28%22label%22%2C%20engines%5Bi%5D.name%29%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20engines%5Bi%5D.iconURI%20%29%20%20mi.setAttribute%28%22src%22%2C%20engines%5Bi%5D.iconURI.spec%20%29%3B%0A%20%20%20%20%20%20%20%20%20mi.engine%20%3D%20engines%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20mi.engine%20%3D%3D%20ss.currentEngine%20%29%0A%20%20%20%20%20%20%20%20%20mi.style.fontWeight%20%3D%20%22bold%22%3B%0A%20%20%20%20%20%20%20%20%20mi.setAttribute%28%22onclick%22%2C%20%22event.preventDefault%28%29%3Bevent.stopPropagation%28%29%3BparentNode.parentNode.selectEngine%28parentNode.parentNode%2C%20event%29%22%29%3B%0A%20%20%20%20%20%20%20%20%20aNode.insertBefore%28mi%2C%20aNode.firstChild%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0Athis.currentEngine%20%3D%20searchService%28%29.currentEngine%3B%0Avar%20ss%20%3D%20searchService%28%29%3B%0Athis.engine%20%3D%20ss.currentEngine%3B%0Athis.image%20%3D%20this.engine.iconURI.spec%3B%0A%0Avar%20mp%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Amp.setAttribute%28%22onpopupshowing%22%2C%20%22parentNode.populateMenu%28this%29%22%29%3B%0Amp.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0Avar%20managerSeparator%20%3D%20mp.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0AmanagerSeparator.id%20%3D%20%22cb-searchbutton-separator%22%0Avar%20managerItem%20%3D%20mp.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0AmanagerItem.setAttribute%28%22label%22%2C%20%22Manage%20Search%20Engines...%22%29%3B%0AmanagerItem.setAttribute%28%22oncommand%22%2C%20%22openDialog%28%27chrome%3A//browser/content/search/engineManager.xul%27%2C%20%22%20+%20%22%27engineManager%27%2C%20%27chrome%2C%20dialog%3Dno%27%29%22%29%3B%0Athis.type%20%3D%20%22menu-button%22%3B%0A%0A%0A%0A/*%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u0434%u0430%u0441%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%2C%20%0A%20%20%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20..............%20*/%0Afunction%20getSelect%28%29%20%7B%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20....%0A%20%20window.content.focus%28%29%3B%0A%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20%7B%0A%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20var%20selection%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%0A%20%20//%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20//%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%u0441%20%u043E%u0431%u043E%u0438%u0445%20%u043A%u043E%u043D%u0446%u043E%u0432%20%u0442%u0435%u043A%u0441%u0442%u0430%20....%0A%20%20if%20%28%20selection%20%21%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20selection.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%20%20%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%29%20%7B%20%0A%20%20%20%20%20%20%20var%20str%20%3D%20%22%u0412%u044B%u0434%u0435%u043B%u0438%u0442%u0435%20%u0438%u043B%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u0443%u0439%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%21%22%0A%20%20%20%20%20%20%20alertsService.showAlertNotification%28_this.image%2C%20_this.label%2C%20str%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%0A%20%20return%20%28%20selection%20%3D%3D%20%27%27%29%3F%20false%3A%20selection%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20%u043E%u0442%u0441%u0442%u0443%u043F%20%u0441%u043F%u0440%u0430%u0432%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................................%0Athis.tooltipText%20%3D%20%22Search%20and%20open%20%5Cn%u041B%3A%20%u0418%u0441%u043A%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430/%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%5Cn%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430/%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%22%3B%0A//this.setAttribute%28%22style%22%2C%20%22margin-right%3A%2010px%3B%22%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bnull%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ............................................... this.onclick = function(e) { if ( e.button == 0 ) { // ЛКМ if ( e.originalTarget.nodeName != "xul:toolbarbutton") return; var text = getSelect(); if ( !!text) var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission(text, null); gBrowser.loadOneTab(submission.uri.spec, null, null, submission.postData, true, false); }; if ( e.button == 1 ) { // СКМ var win = document.commandDispatcher.focusedWindow, doc = win.document; var sel = doc, winSel = win.getSelection(); if ( winSel.toString() ) { var sel = doc.createElement('div'); sel.appendChild( winSel.getRangeAt(0).cloneContents() ); } var str = '', links = sel.getElementsByTagName('a'); if ( links.length > 16 && !confirm('Открыть ' + links.length + ' ссылки в новых вкладках?') ) return; for( var i = 0, lnk; lnk = links[i]; i++ ) { if ( lnk.href) gBrowser.addTab( lnk.href ); } }; if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { // ПКМ e.preventDefault(); var url = getSelect(); if ( !!url ) gBrowser.loadOneTab( url, null, null, null, false, false ); }; }; // Объявляем переменные для этой вкладки .................................................................................................. var _this = this; var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService); // Добавить контекстное меню с поисковиками для кнопки ......................................... function searchService() { return Components.classes["@mozilla.org/browser/search-service;1"].getService(Components.interfaces.nsIBrowserSearchService); } this.selectEngine = function(aNode, aEvent) { var engine = aEvent.target.engine; var ss = searchService(); ss.currentEngine = ss.getEngineByName(engine.name); aNode.engine = engine; aNode.image = aEvent.target.getAttribute("src"); } this.populateMenu = function(aNode) { var ss = searchService(); var engines = ss.getVisibleEngines({ }); const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; while( aNode.firstChild && aNode.firstChild.localName != "menuseparator") { aNode.removeChild( aNode.firstChild ); } for ( var i = engines.length - 1; i >= 0; i-- ) { var mi = document.createElementNS(kXULNS, "menuitem"); mi.id = "cb-search-" + engines[i].name; mi.className = "menuitem-iconic searchbar-engine-menuitem"; mi.setAttribute("label", engines[i].name); if ( engines[i].iconURI ) mi.setAttribute("src", engines[i].iconURI.spec ); mi.engine = engines[i]; if ( mi.engine == ss.currentEngine ) mi.style.fontWeight = "bold"; mi.setAttribute("onclick", "event.preventDefault();event.stopPropagation();parentNode.parentNode.selectEngine(parentNode.parentNode, event)"); aNode.insertBefore(mi, aNode.firstChild); } }; this.currentEngine = searchService().currentEngine; var ss = searchService(); this.engine = ss.currentEngine; this.image = this.engine.iconURI.spec; var mp = this.appendChild(document.createElement("menupopup")); mp.setAttribute("onpopupshowing", "parentNode.populateMenu(this)"); mp.setAttribute("oncommand", "event.stopPropagation()"); var managerSeparator = mp.appendChild(document.createElement("menuseparator")); managerSeparator.id = "cb-searchbutton-separator" var managerItem = mp.appendChild(document.createElement("menuitem")); managerItem.setAttribute("label", "Manage Search Engines..."); managerItem.setAttribute("oncommand", "openDialog('chrome://browser/content/search/engineManager.xul', " + "'engineManager', 'chrome, dialog=no')"); this.type = "menu-button"; /* Функция отдаст выделенный текст из страницы или текстового поля, или из буфера обмена если текст не выделен, если нет текста отдаст 'false' .............. */ function getSelect() { // выделенный текст из страницы .... window.content.focus(); var selection = document.commandDispatcher.focusedWindow.getSelection().toString(); // выделенный текст из текстового поля .... if ( selection == '' ) { var theBox = document.commandDispatcher.focusedElement; if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selection = theBox.value.substring(startPos, endPos); } }; // текст из буфера обмена .... if ( selection == '' ) var selection = gClipboard.read(); // убираем пробелы с обоих концов текста .... if ( selection !== '' ) var selection = selection.toString().replace(/^\s+|\s+$/g,""); if ( selection == '') { var str = "Выделите или скопируйте текст!" alertsService.showAlertNotification(_this.image, _this.label, str, false, "", null, ""); }; return ( selection == '')? false: selection; }; // Подсказка кнопки и отступ справа у кнопки ................................................ this.tooltipText = "Search and open \nЛ: Искать текст из буфера обмена/выделенный \nМ: Открыть все выделенные ссылки \nП: Открыть адрес из буфера обмена/выделенный"; //this.setAttribute("style", "margin-right: 10px;"); |
bunda1 > 27-10-2010 19:29:39 |
Green style( Firefox ) ЛКМ => включить и отключить зеленый фон страниц. Код кнопки и код для вкладки Код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EGreen%20style%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Eykp/xgyMv8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDIy/xMpKf8AAAD/AAAA/1Cop/9Nrqv/SKKf/0mkof9JpKH/SaSh/0mkof9JpKH/SaSh/0mkof9JpKH/SKKf/02uq/9QqKf/AAAA/wAAAP9OoqH/PpSQ/zWFgf83iIT/N4iE/zeIhP83iIT/N4iE/zeIhP83iIT/N4iE/zWFgf8+lJD/TqKh/wAAAP8AAAD/U6in/0WgnP88ko3/PpWQ/z6VkP8+lZD/PpWQ/z6VkP8+lZD/PpWQ/z6VkP88ko3/RaCc/1Oop/8AAAD/AAAA/1asrP9HpKD/PpaR/0CZlP9AmZT/QJmU/0CZlP9AmZT/QJmU/0CZlP9AmZT/PpaR/0ekoP9WrKz/AAAA/wAAAP9ZsLH/SKmj/0Calf9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0Calf9IqaP/WbCx/wAAAP8AAAD/XLW1/0uuqP9Cn5n/RKKc/0SinP9Eopz/RKKc/0SinP9Eopz/RKKc/0SinP9Cn5n/S66o/1y1tf8AAAD/AwMD/2C4uv9OtK//RKWf/0aoov9GqKL/Rqii/0aoov9GqKL/Rqii/0aoov9GqKL/RKWf/060r/9guLr/AwMD/1NSUv9qw8T/V8XE/1O+u/9Uv73/VL+9/1S/vf9Uv73/VL+9/1S/vf9Uv73/VL+9/1O+u/9XxcT/asPE/1NSUv9XVlb/bcfI/1vLyv9XxML/WMXE/1jFxP9YxcT/WMXE/1jFxP9YxcT/WMXE/1jFxP9XxML/W8vK/23HyP9XVlb/VlVU/3DMzf9f0ND/WsnH/1vKyf9bysn/W8rJ/1vKyf9bysn/W8rJ/1vKyf9bysn/WsnH/1/Q0P9wzM3/VlVU/1ZUVP9zz9H/YtfV/13Qzf9e0c7/XtHO/17Rzv9e0c7/XtHO/17Rzv9e0c7/XtHO/13Qzf9i19X/c8/R/1ZUVP9WVFT/d9PW/2Xc2/9f1dP/YdbU/2HW1P9h1tT/YdbU/2HW1P9h1tT/YdbU/2HW1P9f1dP/Zdzb/3fT1v9WVFT/VlRU/3nV2P9j39z/XdjU/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/XdjU/2Pf3P951dj/VlRU/1ZUVP9/4+f/ePX2/3Xu7/927/D/du/w/3bv8P927/D/du/w/3bv8P927/D/du/w/3Xu7/949fb/f+Pn/1ZUVP9XVlb/YXt8/2aBg/9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoGD/2F7fP9XVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.checked%20%3D%20%21this.checked%3B%0A%0Aif%20%28%20this.%20checked%20%29%20%0A%20%20%20%20%20this.image%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/GicS/yI1GP8hNRf/ITQW/yE0Fv8hNBb/ITQW/yE0Fv8hNBb/ITQW/yE0Fv8hNRf/IjUY/xonEv8AAAD/AAAA/3GpUP94uU//ca9K/3OwS/9zsEv/c7BL/3OwS/9zsEv/c7BL/3OwS/9zsEv/ca9K/3i5T/9xqVD/AAAA/wAAAP9rok3/XY47/1J/Mf9UgTT/VIE0/1SBNP9UgTT/VIE0/1SBNP9UgTT/VIE0/1J/Mf9djjv/a6JN/wAAAP8AAAD/calU/2qhRv9glD3/YpY//2KWP/9ilj//YpY//2KWP/9ilj//YpY//2KWP/9glD3/aqFG/3GpVP8AAAD/AAAA/3WtVv9so0f/YpU//2SYQf9kmEH/ZJhB/2SYQf9kmEH/ZJhB/2SYQf9kmEH/YpU//2yjR/91rVb/AAAA/wICAv93sVn/cKpJ/2edQf9poEP/aaBD/2mgQ/9poEP/aaBD/2mgQ/9poEP/aaBD/2edQf9wqkn/d7FZ/wICAv8AAAD/e7Vc/3SvTf9qoEP/bKRF/2ykRf9spEX/bKRF/2ykRf9spEX/bKRF/2ykRf9qoEP/dK9N/3u1XP8AAAD/Dg4O/3+6Yf95tlH/b6lI/3GsSv9xrEr/caxK/3GsSv9xrEr/caxK/3GsSv9xrEr/b6lI/3m2Uf9/umH/Dg4O/0xLTP+Hw2n/fsNX/3m8Uf96vlP/er5T/3q+U/96vlP/er5T/3q+U/96vlP/er5T/3m8Uf9+w1f/h8Np/0xLTP9cW1z/jMlu/4TMWv9/xVf/gMZX/4DGV/+Axlf/gMZX/4DGV/+Axlf/gMZX/4DGV/9/xVf/hMxa/4zJbv9cW1z/VFJU/5DNcP+I0V3/gslY/4PKWf+Dyln/g8pZ/4PKWf+Dyln/g8pZ/4PKWf+Dyln/gslY/4jRXf+QzXD/VFJU/1ZUVv+S0XP/jNZh/4bPXP+H0F3/h9Bd/4fQXf+H0F3/h9Bd/4fQXf+H0F3/h9Bd/4bPXP+M1mH/ktFz/1ZUVv9WVFb/ltZ3/5HdZv+N1WD/jtZi/47WYv+O1mL/jtZi/47WYv+O1mL/jtZi/47WYv+N1WD/kd1m/5bWd/9WVFb/VlRW/5fYef+R3mL/i9Zc/4zXXv+M117/jNde/4zXXv+M117/jNde/4zXXv+M117/i9Zc/5HeYv+X2Hn/VlRW/1ZUVv+h6X//pfl5/5/wdf+g8Xb/oPF2/6Dxdv+g8Xb/oPF2/6Dxdv+g8Xb/oPF2/5/wdf+l+Xn/oel//1ZUVv9XVlf/aXpi/2uAZf9rfWX/a35k/2t+ZP9rfmT/a35k/2t+ZP9rfmT/a35k/2t+ZP9rfWX/a4Bl/2l6Yv9XVlf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%22%3B%0Aelse%20%0A%20%20%20%20%20this.image%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Eykp/xgyMv8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDIy/xMpKf8AAAD/AAAA/1Cop/9Nrqv/SKKf/0mkof9JpKH/SaSh/0mkof9JpKH/SaSh/0mkof9JpKH/SKKf/02uq/9QqKf/AAAA/wAAAP9OoqH/PpSQ/zWFgf83iIT/N4iE/zeIhP83iIT/N4iE/zeIhP83iIT/N4iE/zWFgf8+lJD/TqKh/wAAAP8AAAD/U6in/0WgnP88ko3/PpWQ/z6VkP8+lZD/PpWQ/z6VkP8+lZD/PpWQ/z6VkP88ko3/RaCc/1Oop/8AAAD/AAAA/1asrP9HpKD/PpaR/0CZlP9AmZT/QJmU/0CZlP9AmZT/QJmU/0CZlP9AmZT/PpaR/0ekoP9WrKz/AAAA/wAAAP9ZsLH/SKmj/0Calf9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0Calf9IqaP/WbCx/wAAAP8AAAD/XLW1/0uuqP9Cn5n/RKKc/0SinP9Eopz/RKKc/0SinP9Eopz/RKKc/0SinP9Cn5n/S66o/1y1tf8AAAD/AwMD/2C4uv9OtK//RKWf/0aoov9GqKL/Rqii/0aoov9GqKL/Rqii/0aoov9GqKL/RKWf/060r/9guLr/AwMD/1NSUv9qw8T/V8XE/1O+u/9Uv73/VL+9/1S/vf9Uv73/VL+9/1S/vf9Uv73/VL+9/1O+u/9XxcT/asPE/1NSUv9XVlb/bcfI/1vLyv9XxML/WMXE/1jFxP9YxcT/WMXE/1jFxP9YxcT/WMXE/1jFxP9XxML/W8vK/23HyP9XVlb/VlVU/3DMzf9f0ND/WsnH/1vKyf9bysn/W8rJ/1vKyf9bysn/W8rJ/1vKyf9bysn/WsnH/1/Q0P9wzM3/VlVU/1ZUVP9zz9H/YtfV/13Qzf9e0c7/XtHO/17Rzv9e0c7/XtHO/17Rzv9e0c7/XtHO/13Qzf9i19X/c8/R/1ZUVP9WVFT/d9PW/2Xc2/9f1dP/YdbU/2HW1P9h1tT/YdbU/2HW1P9h1tT/YdbU/2HW1P9f1dP/Zdzb/3fT1v9WVFT/VlRU/3nV2P9j39z/XdjU/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/XdjU/2Pf3P951dj/VlRU/1ZUVP9/4+f/ePX2/3Xu7/927/D/du/w/3bv8P927/D/du/w/3bv8P927/D/du/w/3Xu7/949fb/f+Pn/1ZUVP9XVlb/YXt8/2aBg/9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoGD/2F7fP9XVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%22%3B%0A%0A%0Avar%20css%20%3D%20%27%5C%0A@-moz-document%20url-prefix%28%22http%22%29%2C%20url-prefix%28%22https%22%29%2C%20url-prefix%28%22ftp%22%29%2C%20url-prefix%28%22file%22%29%20%7B%5C%0Ahtml%20*%2C%20html%20%7B%5C%0Abackground%3A%20%23BADBAD%20%21important%3B%20text-shadow%3A%20none%20%21important%3B%5C%0A-moz-border-top-colors%3A%20%238FBC8F%20%21important%3B%20-moz-border-bottom-colors%3A%20%238FBC8F%21important%3B%5C%0A-moz-border-left-colors%3A%20%238FBC8F%20%21important%3B%20-moz-border-right-colors%3A%20%238FBC8F%20%21important%3B%5C%0A%7D%5C%0Acode%2C%20pre%2C%20input%2C%20samp%2C%20kbd%2C%20var%2C%20dfn%2C.postright%20%7B%5C%0A-moz-appearance%3A%20none%20%21important%3B%5C%0Abackground-color%3A%20%23BADBAD%20%21important%3B%5C%0A%7D%5C%0Ainput%2C%20select%2C%20textarea%2C%20button%20%7B%5C%0A-moz-appearance%3A%20none%20%21important%3B%5C%0Aborder%3A%201px%20solid%20%23BADBAD%20%21important%3B%5C%0Abackground-color%3A%20%23BADBAD%20%21important%3B%5C%0A%7D%5C%0A.codebox%2C%20BLOCKQUOTE%2C%20TEXTAREA%2C%20.spoiler%20%7B%20-moz-border-top-colors%3A%20%23444%20%20%21important%3B%20-moz-border-bottom-colors%3A%20%23444%20%21important%3B%5C%0A-moz-border-left-colors%3A%20%23444%20%21important%3B%20-moz-border-right-colors%3A%20%23444%20%21important%3B%5C%0A%7D%5C%0Aa%3Alink%20%7B%20font-weight%3A%20bold%20%21important%3B%20text-decoration%3A%20underline%20%21important%3B%20%7D%5C%0Aa%3Avisited%20%7B%20color%3A%20%23FFB720%20%21important%3B%20%7D%5C%0Aa%3Aactive%20%7B%20color%3A%20%23ff2424%20%21important%3B%20%7D%5C%0Aa%3Ahover%20%7B%20color%3A%20red%21%20important%3B%20%7D%5C%0A%7D%27%3B%0A%0Aconst%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%20%20%0Avar%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%29%3B%0A%0Aif%20%28%20sss.sheetRegistered%28uri%2C%20sss.AGENT_SHEET%29%20%29%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0Aelse%20%0A%20%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:this.checked = !this.checked; if ( this. checked ) this.image = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/GicS/yI1GP8hNRf/ITQW/yE0Fv8hNBb/ITQW/yE0Fv8hNBb/ITQW/yE0Fv8hNRf/IjUY/xonEv8AAAD/AAAA/3GpUP94uU//ca9K/3OwS/9zsEv/c7BL/3OwS/9zsEv/c7BL/3OwS/9zsEv/ca9K/3i5T/9xqVD/AAAA/wAAAP9rok3/XY47/1J/Mf9UgTT/VIE0/1SBNP9UgTT/VIE0/1SBNP9UgTT/VIE0/1J/Mf9djjv/a6JN/wAAAP8AAAD/calU/2qhRv9glD3/YpY//2KWP/9ilj//YpY//2KWP/9ilj//YpY//2KWP/9glD3/aqFG/3GpVP8AAAD/AAAA/3WtVv9so0f/YpU//2SYQf9kmEH/ZJhB/2SYQf9kmEH/ZJhB/2SYQf9kmEH/YpU//2yjR/91rVb/AAAA/wICAv93sVn/cKpJ/2edQf9poEP/aaBD/2mgQ/9poEP/aaBD/2mgQ/9poEP/aaBD/2edQf9wqkn/d7FZ/wICAv8AAAD/e7Vc/3SvTf9qoEP/bKRF/2ykRf9spEX/bKRF/2ykRf9spEX/bKRF/2ykRf9qoEP/dK9N/3u1XP8AAAD/Dg4O/3+6Yf95tlH/b6lI/3GsSv9xrEr/caxK/3GsSv9xrEr/caxK/3GsSv9xrEr/b6lI/3m2Uf9/umH/Dg4O/0xLTP+Hw2n/fsNX/3m8Uf96vlP/er5T/3q+U/96vlP/er5T/3q+U/96vlP/er5T/3m8Uf9+w1f/h8Np/0xLTP9cW1z/jMlu/4TMWv9/xVf/gMZX/4DGV/+Axlf/gMZX/4DGV/+Axlf/gMZX/4DGV/9/xVf/hMxa/4zJbv9cW1z/VFJU/5DNcP+I0V3/gslY/4PKWf+Dyln/g8pZ/4PKWf+Dyln/g8pZ/4PKWf+Dyln/gslY/4jRXf+QzXD/VFJU/1ZUVv+S0XP/jNZh/4bPXP+H0F3/h9Bd/4fQXf+H0F3/h9Bd/4fQXf+H0F3/h9Bd/4bPXP+M1mH/ktFz/1ZUVv9WVFb/ltZ3/5HdZv+N1WD/jtZi/47WYv+O1mL/jtZi/47WYv+O1mL/jtZi/47WYv+N1WD/kd1m/5bWd/9WVFb/VlRW/5fYef+R3mL/i9Zc/4zXXv+M117/jNde/4zXXv+M117/jNde/4zXXv+M117/i9Zc/5HeYv+X2Hn/VlRW/1ZUVv+h6X//pfl5/5/wdf+g8Xb/oPF2/6Dxdv+g8Xb/oPF2/6Dxdv+g8Xb/oPF2/5/wdf+l+Xn/oel//1ZUVv9XVlf/aXpi/2uAZf9rfWX/a35k/2t+ZP9rfmT/a35k/2t+ZP9rfmT/a35k/2t+ZP9rfWX/a4Bl/2l6Yv9XVlf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; else this.image = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Eykp/xgyMv8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDIy/xMpKf8AAAD/AAAA/1Cop/9Nrqv/SKKf/0mkof9JpKH/SaSh/0mkof9JpKH/SaSh/0mkof9JpKH/SKKf/02uq/9QqKf/AAAA/wAAAP9OoqH/PpSQ/zWFgf83iIT/N4iE/zeIhP83iIT/N4iE/zeIhP83iIT/N4iE/zWFgf8+lJD/TqKh/wAAAP8AAAD/U6in/0WgnP88ko3/PpWQ/z6VkP8+lZD/PpWQ/z6VkP8+lZD/PpWQ/z6VkP88ko3/RaCc/1Oop/8AAAD/AAAA/1asrP9HpKD/PpaR/0CZlP9AmZT/QJmU/0CZlP9AmZT/QJmU/0CZlP9AmZT/PpaR/0ekoP9WrKz/AAAA/wAAAP9ZsLH/SKmj/0Calf9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0Calf9IqaP/WbCx/wAAAP8AAAD/XLW1/0uuqP9Cn5n/RKKc/0SinP9Eopz/RKKc/0SinP9Eopz/RKKc/0SinP9Cn5n/S66o/1y1tf8AAAD/AwMD/2C4uv9OtK//RKWf/0aoov9GqKL/Rqii/0aoov9GqKL/Rqii/0aoov9GqKL/RKWf/060r/9guLr/AwMD/1NSUv9qw8T/V8XE/1O+u/9Uv73/VL+9/1S/vf9Uv73/VL+9/1S/vf9Uv73/VL+9/1O+u/9XxcT/asPE/1NSUv9XVlb/bcfI/1vLyv9XxML/WMXE/1jFxP9YxcT/WMXE/1jFxP9YxcT/WMXE/1jFxP9XxML/W8vK/23HyP9XVlb/VlVU/3DMzf9f0ND/WsnH/1vKyf9bysn/W8rJ/1vKyf9bysn/W8rJ/1vKyf9bysn/WsnH/1/Q0P9wzM3/VlVU/1ZUVP9zz9H/YtfV/13Qzf9e0c7/XtHO/17Rzv9e0c7/XtHO/17Rzv9e0c7/XtHO/13Qzf9i19X/c8/R/1ZUVP9WVFT/d9PW/2Xc2/9f1dP/YdbU/2HW1P9h1tT/YdbU/2HW1P9h1tT/YdbU/2HW1P9f1dP/Zdzb/3fT1v9WVFT/VlRU/3nV2P9j39z/XdjU/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/XdjU/2Pf3P951dj/VlRU/1ZUVP9/4+f/ePX2/3Xu7/927/D/du/w/3bv8P927/D/du/w/3bv8P927/D/du/w/3Xu7/949fb/f+Pn/1ZUVP9XVlb/YXt8/2aBg/9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoGD/2F7fP9XVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; var css = '\ @-moz-document url-prefix("http"), url-prefix("https"), url-prefix("ftp"), url-prefix("file") {\ html *, html {\ background: #BADBAD !important; text-shadow: none !important;\ -moz-border-top-colors: #8FBC8F !important; -moz-border-bottom-colors: #8FBC8F!important;\ -moz-border-left-colors: #8FBC8F !important; -moz-border-right-colors: #8FBC8F !important;\ }\ code, pre, input, samp, kbd, var, dfn,.postright {\ -moz-appearance: none !important;\ background-color: #BADBAD !important;\ }\ input, select, textarea, button {\ -moz-appearance: none !important;\ border: 1px solid #BADBAD !important;\ background-color: #BADBAD !important;\ }\ .codebox, BLOCKQUOTE, TEXTAREA, .spoiler { -moz-border-top-colors: #444 !important; -moz-border-bottom-colors: #444 !important;\ -moz-border-left-colors: #444 !important; -moz-border-right-colors: #444 !important;\ }\ a:link { font-weight: bold !important; text-decoration: underline !important; }\ a:visited { color: #FFB720 !important; }\ a:active { color: #ff2424 !important; }\ a:hover { color: red! important; }\ }'; const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var uri = makeURI("data:text/css," + encodeURIComponent(css)); if ( sss.sheetRegistered(uri, sss.AGENT_SHEET) ) sss.unregisterSheet(uri, sss.AGENT_SHEET); else sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); Global dark style( Firefox 17+ ) от 08.11.2013. меняет фон страниц на чёрный, своеобразный ночной режим. Css код создающий чёрный стиль находится в вкладке Справка, его можно легко редактировать или полностью поменять. Кнопку можно использовать для быстрого запуска любых других Css стилей. ЛКМ => включить и отключить черный фон страниц. Код кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0423%u043C%u0435%u043D%u044C%u0448%u0438%u0442%u044C%20%u044F%u0440%u043A%u043E%u0441%u0442%u044C%20%u0441%u0430%u0439%u0442%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Eykp/xgyMv8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDEx/xgxMf8YMTH/GDIy/xMpKf8AAAD/AAAA/1Cop/9Nrqv/SKKf/0mkof9JpKH/SaSh/0mkof9JpKH/SaSh/0mkof9JpKH/SKKf/02uq/9QqKf/AAAA/wAAAP9OoqH/PpSQ/zWFgf83iIT/N4iE/zeIhP83iIT/N4iE/zeIhP83iIT/N4iE/zWFgf8+lJD/TqKh/wAAAP8AAAD/U6in/0WgnP88ko3/PpWQ/z6VkP8+lZD/PpWQ/z6VkP8+lZD/PpWQ/z6VkP88ko3/RaCc/1Oop/8AAAD/AAAA/1asrP9HpKD/PpaR/0CZlP9AmZT/QJmU/0CZlP9AmZT/QJmU/0CZlP9AmZT/PpaR/0ekoP9WrKz/AAAA/wAAAP9ZsLH/SKmj/0Calf9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0KdmP9CnZj/Qp2Y/0Calf9IqaP/WbCx/wAAAP8AAAD/XLW1/0uuqP9Cn5n/RKKc/0SinP9Eopz/RKKc/0SinP9Eopz/RKKc/0SinP9Cn5n/S66o/1y1tf8AAAD/AwMD/2C4uv9OtK//RKWf/0aoov9GqKL/Rqii/0aoov9GqKL/Rqii/0aoov9GqKL/RKWf/060r/9guLr/AwMD/1NSUv9qw8T/V8XE/1O+u/9Uv73/VL+9/1S/vf9Uv73/VL+9/1S/vf9Uv73/VL+9/1O+u/9XxcT/asPE/1NSUv9XVlb/bcfI/1vLyv9XxML/WMXE/1jFxP9YxcT/WMXE/1jFxP9YxcT/WMXE/1jFxP9XxML/W8vK/23HyP9XVlb/VlVU/3DMzf9f0ND/WsnH/1vKyf9bysn/W8rJ/1vKyf9bysn/W8rJ/1vKyf9bysn/WsnH/1/Q0P9wzM3/VlVU/1ZUVP9zz9H/YtfV/13Qzf9e0c7/XtHO/17Rzv9e0c7/XtHO/17Rzv9e0c7/XtHO/13Qzf9i19X/c8/R/1ZUVP9WVFT/d9PW/2Xc2/9f1dP/YdbU/2HW1P9h1tT/YdbU/2HW1P9h1tT/YdbU/2HW1P9f1dP/Zdzb/3fT1v9WVFT/VlRU/3nV2P9j39z/XdjU/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/X9nV/1/Z1f9f2dX/XdjU/2Pf3P951dj/VlRU/1ZUVP9/4+f/ePX2/3Xu7/927/D/du/w/3bv8P927/D/du/w/3bv8P927/D/du/w/3Xu7/949fb/f+Pn/1ZUVP9XVlb/YXt8/2aBg/9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoCC/2aAgv9mgIL/ZoGD/2F7fP9XVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20setStyleForPages%28%29%3B%20//%20%u041B%u041A%u041C%0A%7D%3B%0A%0A%0Avar%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28%20self.Help%20%29%29%3B%0Aconst%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%0Avar%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28%20self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0Avar%20styleImage%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAD/NTU1/z8/P/89PT3/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv8+Pj7/Pj4+/z4+Pv89PT3/Pz8//zU1Nf8AAAD/AAAA/6Ghof+YmJj/ioqK/42Njf+NjY3/jY2N/42Njf+NjY3/jY2N/42Njf+NjY3/ioqK/5iYmP+hoaH/AAAA/wAAAP+dnZ3/hISE/3R0dP94eHj/eHh4/3h4eP94eHj/eHh4/3h4eP94eHj/eHh4/3R0dP+EhIT/nZ2d/wAAAP8AAAD/qKio/5OTk/+CgoL/hoaG/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4aGhv+CgoL/k5OT/6ioqP8AAAD/AAAA/6+vr/+ampr/iYmJ/42Njf+NjY3/jY2N/42Njf+NjY3/jY2N/42Njf+NjY3/iYmJ/5qamv+vr6//AAAA/wAAAP+1tbX/oqKi/5GRkf+VlZX/lZWV/5WVlf+VlZX/lZWV/5WVlf+VlZX/lZWV/5GRkf+ioqL/tbW1/wAAAP8CAgL/vb29/6mpqf+Xl5f/m5ub/5ubm/+bm5v/m5ub/5ubm/+bm5v/m5ub/5ubm/+Xl5f/qamp/729vf8CAgL/AAAA/8PDw/+xsbH/n5+f/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/n5+f/7Gxsf/Dw8P/AAAA/zo6Ov/Pz8//xMTE/7a2tv+5ubn/ubm5/7m5uf+5ubn/ubm5/7m5uf+5ubn/ubm5/7a2tv/ExMT/z8/P/zo6Ov9aWlr/2dnZ/9PT0//Jycn/ysrK/8rKyv/Kysr/ysrK/8rKyv/Kysr/ysrK/8rKyv/Jycn/09PT/9nZ2f9aWlr/U1NT/9/f3//a2tr/z8/P/9HR0f/R0dH/0dHR/9HR0f/R0dH/0dHR/9HR0f/R0dH/z8/P/9ra2v/f39//U1NT/1RUVP/m5ub/4+Pj/9jY2P/a2tr/2tra/9ra2v/a2tr/2tra/9ra2v/a2tr/2tra/9jY2P/j4+P/5ubm/1RUVP9UVFT/7u7u/+3t7f/i4uL/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/k5OT/5OTk/+Tk5P/i4uL/7e3t/+7u7v9UVFT/VFRU/+/v7//y8vL/5+fn/+np6f/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/5+fn//Ly8v/v7+//VFRU/1RUVP/8/Pz//////////////////////////////////////////////////////////////////Pz8/1RUVP9WVlb/kJCQ/5WVlf+VlZX/lpaW/5aWlv+Wlpb/lpaW/5aWlv+Wlpb/lpaW/5aWlv+VlZX/lZWV/5CQkP9WVlb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%22%3B%0A%0A%0Afunction%20setStyleForPages%28%20reason%20%29%20%7B%20%0A%20%20%20%0A%20%20%20var%20style%20%3D%20sss.sheetRegistered%28uri%2C%20sss.AGENT_SHEET%29%3B%20%20%0A%0A%20%20%20if%20%28%20style%20%29%20%7B%20%20%20%0A%20%20%20%20%20%20%20%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20%20%20icon.src%20%3D%20self.image%3B%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%0A%20%20%20%0A%20%20%20if%20%28%20%28%21style%20%26%26%20reason%20%21%3D%3D%20%27update%27%29%20%7C%7C%20%28style%20%26%26%20reason%20%3D%3D%20%27update%27%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20%20%20%20%20icon.src%20%3D%20styleImage%3B%20%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0AaddDestructor%28function%28reason%29%20%7B%20if%20%28/update%7Cdelete/.test%28%20reason%20%29%20%29%20setStyleForPages%28reason%29%20%7D%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B@-moz-document%20url-prefix%28http%3A//%29%2C%20url-prefix%28https%3A//%29%2C%20url-prefix%28about%3Ablank%29%20%7B%0A%20%20%20body%2C%20html%20%7B%20min-height%3A%20100%25%20%21important%3B%20%7D%0A%20%20%20html%2C%20body%20%7B%20background-color%3A%20%23111%20%21important%3B%20%7D%0A%20%20%20body%3E*%3Anot%28%3Aempty%29%20%7B%20background-color%3A%20%23222%20%21important%3B%20%7D%0A%20%20%20body%3E*%3E*%3Anot%28%3Aempty%29%20%7B%20background-color%3A%20%23222%20%21important%3B%20%7D%0A%20%20%20body%3E*%3E*%3E*%3Anot%28%3Aempty%29%20%7B%20background-color%3A%20%23282828%20%21important%3B%20%7D%0A%20%20%20body%3E*%3E*%3E*%3E*%3Anot%28%3Aempty%29%20%7B%20background-color%3A%20%23282828%20%21important%3B%20%7D%0A%20%20%20body%3E*%3E*%3E*%3E*%3E*%3Anot%28%3Aempty%29%20%7B%20background-color%3A%20%23383838%20%21important%3B%20%7D%0A%20%20%20body%3E*%3E*%3E*%3E*%3E*%20*%20%7B%20background-color%3A%20%23383838%20%21important%3B%20%7D%0A%20%20%20body%20table%5Bborder%3D%220%22%5D%20td%20%7B%20background-color%3A%20%23111%20%21important%3B%20%7D%0A%20%20%20body%20table%20table%5Bborder%3D%220%22%5D%20td%20%7B%20background-color%3A%20%23333%20%21important%3B%20%7D%0A%20%20%20body%20table%20table%20table%5Bborder%3D%220%22%5D%20td%20%7B%20background-color%3A%20%23222%20%21important%3B%20%7D%0A%20%20%20body%20table%20table%20table%20table%5Bborder%3D%220%22%5D%20td%20%7B%20background-color%3A%20%23444%20%21important%3B%20%7D%0A%20%20%20body%20*%3Aempty%20%7B%20background-color%3A%20%23252525%20%21important%3B%20%7D%0A%0A%20%20%20body%20p%3Anot%28%3Aempty%29%2C%20body%20p%20*%2C%20body%20h1%2C%20body%20h1%20*%2C%20body%20h2%2C%20body%20h2%20*%2C%20body%20h3%2C%20body%20h3%20*%2C%20body%20h4%2C%20body%20h4%20*%2C%20body%20h5%2C%20body%20h5%20*%2C%20body%20strong%3E*%2C%20body%20b%3E*%2C%20body%20em%3E*%2C%20body%20i%3E*%2C%20%20body%20span%3E*%3Anot%28img%29%20%7B%20background%3A%20transparent%20none%20%21important%3B%20%7D%0A%20%20%20body%20h1%2C%20body%20h1%20*%2C%20body%20h2%2C%20body%20h2%20*%2C%20p%3Estrong%3Aonly-of-type%2C%20%20p%3Eb%3Aonly-of-type%20%7B%20color%3A%20%23a98%20%21important%3B%20%7D%0A%20%20%20body%20h3%2C%20body%20h3%20*%2C%20body%20h4%2C%20body%20h4%20*%7B%20color%3A%20%23aaa%20%21important%3B%20%7D%0A%0A%20%20%20*%3Anot%28%5Bonclick%5D%29%3Anot%28input%29%3Anot%28a%29%3Anot%28img%29%3Anot%28%5Bclass%5E%3D%22UI%22%5D%29%2C%20body%20a%3Anot%28%3Aempty%29%2C%20div%3Anot%28%5Bonclick%5D%29%20%7B%20background-image%3A%20none%20%21important%3B%20text-indent%3A%200%20%21important%20%7D%0A%20%20%20*%5Bonclick%5D%20%7B%20color%3A%20%2379a%20%21important%3B%20%7D%0A%20%20%20*%5Bonclick%5D%3Ahover%20%7B%20color%3A%20%2399a8aa%20%21important%3B%20%7D%0A%20%20%20body%20hr%20%7B%20background%3A%20%23666%20none%20%21important%3B%20color%3A%20%23666%20%21important%3B%20border%3A%201px%20solid%20%23666%20%21important%3B%20height%3A%201px%20%21important%3B%20overflow%3A%20hidden%20%21important%3B%20display%3A%20block%20%21important%3B%20%7D%0A%20%20%20*%20%7B%20color%3A%20%23c0c0c0%20%21important%3B%20border-color%3A%20%23666%20%21important%3B%20%7D%0A%20%20%20*%20body%20a%2C%20body%20a%20*%7B%20color%3A%20%23B6AA7B%20%21important%3B%20%7D%0A%20%20%20body%20a%3Ahover%2C%20body%20a%3Ahover%20*%7B%20color%3A%20%23D9C077%20%21important%3B%20text-decoration%3A%20underline%20%21important%3B%20%7D%0A%20%20%20body%20img%2Ca%5Bhref%5D%20img%2C%20a%5Bhref%5D%20button%2C%20input%5Btype%3D%22image%22%5D%2C*%5Bonclick%5D%3Aempty%2C%20body%20a%3Aempty%20%7B%20opacity%3A%20.5%20%21important%3B%20%7D%0A%20%20%20body%20img%3Ahover%2Ca%5Bhref%5D%3Ahover%20img%2C%20a%5Bhref%5D%3Ahover%20button%2C%20*%5Bonclick%5D%3Aempty%3Ahover%2C%20body%20a%3Aempty%3Ahover%20%7B%20opacity%3A%201%20%21important%3B%20%7D%0A%0A%20%20%20body%20input%5Btype%5D%2C%20body%20textarea%5Bname%5D%2C%20body%20input%5Bname%5D%2C%20body%20input%5Bid%5D%2C%20body%20select%5Bname%5D%20%7B%20-moz-appearance%3A%20none%20%21important%3B%20color%3A%20%23bbb%21important%3B%20border-radius%3A%204px%20%21important%3B%20border-width%3A%201px%20%21important%3B%20border-color%3A%20%23778%20%21important%3B%20border-style%3A%20solid%20%21important%3B%20background%3A%20%23555%20none%20%21important%3B%20%7D%0A%0A%20%20%20body%20select%5Bname%5D%20%7B%20-moz-appearance%3Anone%21important%3B%20color%3A%20%23bbb%20%21important%3B%20border-radius%3A%204px%20%21important%3B%20border-width%3A%201px%20%21important%3B%20border-color%3A%20%23778%21important%3B%20border-style%3A%20solid%20%21important%3B%20background-color%3A%20%23555%20%21important%3B%20%7D%0A%0A%20%20%20body%20input%3E*%2C%20body%20textarea%3E*%20%7B%20background%3Atransparent%20none%20%21important%3B%20color%3A%20%23bbb%21important%3B%20border-style%3A%20solid%20%21important%3B%20border-width%3A%200px%21important%3B%20%7D%0A%20%20%20body%20select%20*%20%7B%20background-color%3A%20transparent%20%21important%3B%20color%3A%20%23bbb%20%21important%3B%20border-style%3A%20solid%20%21important%3B%20border-width%3A%200px%20%21important%3B%20%7D%0A%7D%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
bunda1 > 01-12-2010 20:10:16 |
Autocopy( Pale Moon, SeaMonkey ) от 23.04.2018. Настройки кнопки в меню кнопки: ЛКМ => Включить или отключить автокопирование. ПКМ => Mеню кнопки с настройками, Двойной ПКМ => Стандартное меню кнопки. Код кнопки и код для инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EAutocopy%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMBAAQIAAcEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAcACAMEAQEAAAAAAAAAAAAAAAACAwADAAAAABUnAB9cqgC3a7wB4Gq5Ad1qugHearoB3mq6Ad5qugHearoB3mi4AN1qugHgYrMAxR43AC8AAAAAAAEAAAECAAQAAAQAV6AAprP9Vv/W/qn80/+f/9T/ov/U/6L/1P+i/9T/ov/U/6L/1/+n/9X+pfy3/WL/Y7QAvwEAAQAAAAAAFSgAH1ehAKlyzwD1htgf/YzcJ/2K2yP9i9sk/YvbJf2L2yX9i9sm/YnaIv2b4kP92/21/Nf+qv9quwHdBQkACAAAAQBeqwCzr/tR/8X0j/u+8X//vvJ//77ygP++8oD/vvKA/77yf/+98n7/wvSH/4zcKv+e4kv93v+0/2i5AN0DBwAIBQkACGu8AdzV/af/4v/B/d//u//h/7//4f+//+H/v//h/7//4f+//9/+u//n/8n/w/GK/4zaK/3g/7r/aroC3gMHAAgEBwAIarkC3dX/pf/g/sD93v67/9/+vv/g/r//4P6//+D+v//f/r7/3f66/+T/xv/B8Yb/j9st/eT/w/9qugPeAwcACAQHAAhqugLe2v+w/+j/z/3l/8r/5//N/+f/zv/n/87/5//O/+f/zf/l/sj/7P/W/8Xyj/+Q2y/96f/N/2q6A94DBwAIBAcACGq6At7f/7n/7v/c/ev/1v/t/9n/7f/a/+3/2v/t/9r/7f/Z/+r+1f/y/+P/yPKW/5DbMf3s/9X/aroE3gMHAAgEBwAIaroC3uP/wf/z/+j98P/h//L/5P/z/+X/8//l//P/5f/y/+T/8P7g//j/7v/L8p3/kdsy/fD/3P9rugTeAwcACAQHAAhqugLe5v/J//j/8v31/+r/9v/t//f/7v/3/+//9//u//b/7f/0/un//f/4/87yo/+R2zL98f/f/2q5Bd0DBwAIBAcACGq6At7p/8///P/6/fj/8f/6//T/+v/1//r/9f/6//X/+v/0//f+8P//////0fGo/5PbNf30/+f/a7wE3AQJAAgEBwAIabkC3er/0f/+//79+v/0//v/9//8//j//P/4//z/+P/7//f/+f70///////T8qz/i9go+8P9ef9dqwCzAAACAAUJAAhquwHd7f7a//////z+//39/////f////3////9/////f////39/vz9/////dzzvv5v0AD1VqECqRUnAB8AAAAAAQACAGK0AL/J/Yf/8v7k/O3/1//u/9n/7v/Z/+7/2f/u/9n/7v/Z/+3/1//x/eP8vfxu/1WgAKYAAAUAAQIABAABAAAAAAAAHjcALmGzAMVquwLgarkC3Wq6At5qugLearoC3mq6At5qugLearkC3Wu8AeBbqgC3FScAHwAAAAACAwADAAAAAAAAAAAAAAAAAwQCAQQIAAgEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAgABwMDAgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.................%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20cbu.setPrefs%28%22CB.Autocopy%22%2C%20%21cbu.getPrefs%28%22CB.Autocopy%22%29%29%3B%20%0A%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%7D%3B%20%0Athis.oncontextmenu%20%3D%20e%20%3D%3E%20e.detail%20%3D%3D%202%20%26%26%20%21menuPopup.hidePopup%28%29%0A%20%20%20%20%20%7C%7C%20e.ctrlKey%20%7C%7C%20%21%21menuPopup.openPopup%28this%2C%20%22after_start%22%29%3B%0A%20%20%20%20%20%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20.................%0Avar%20array%20%3D%20%5B%0A%20%20%20%20%7B%20label%3A%20%27%u0412%u044B%u0434%u0435%u043B%u044F%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0441%20%u043F%u0440%u043E%u0431%u0435%u043B%u043E%u043C%20%u0441%u043F%u0440%u0430%u0432%u0430%27%2C%20value%3A%20%27layout.word_select.eat_space_to_next_word%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0412%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u043C%u0438%u0433%u0430%u0435%u0442%20%u043F%u0440%u0438%20%u0430%u0432%u0442%u043E%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0438%27%2C%20value%3A%20%27CB.Autocopy.selectingTextBlink%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0414%u043E%u043F%u043E%u043B%u043D%u0438%u0442%u0435%u043B%u044C%u043D%u044B%u0435%20%u0432%u043E%u0437%u043C%u043E%u0436%u043D%u043E%u0441%u0442%u0438%20%u0434%u043B%u044F%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%27%2C%20value%3A%20%27CB.Autocopy.addToAddressBar%27%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0412%u044B%u043A%u043B%u044E%u0447%u0430%u0442%u044C%20%u0430%u0432%u0442%u043E%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0440%u0438%20%u0432%u044B%u0445%u043E%u0434%u0435%20%u0438%u0437%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%27%2C%20value%3A%20%27CB.Autocopy.reset%27%20%7D%2C%0A%20%20%20%20%7B%20separator%3A%20%27%27%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0414%u0432%u043E%u0439%u043D%u043E%u0439%20%u043F%u0440%u0430%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%20%u043C%u044B%u0448%u0438%20%u043A%u043E%u043F%u0438%u0440%u0443%u0435%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%27%2C%20value%3A%20%27CB.Autocopy.copyWithDoubleClick%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0414%u0432%u043E%u0439%u043D%u043E%u0439%20%u043F%u0440%u0430%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%20%u043C%u044B%u0448%u0438%20%u0441%u043E%u0445%u0440%u0430%u043D%u044F%u0435%u0442%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%27%2C%20value%3A%20%27CB.Autocopy.saveWithDoubleClick%27%20%7D%2C%20%0A%20%20%20%20%7B%20label%3A%20%27%u0421%u0440%u0435%u0434%u043D%u0438%u043C%20%u043A%u043B%u0438%u043A%u043E%u043C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u0442%u044A%20%u0442%u0435%u043A%u0441%u0442%20%u0441%20%u0437%u0430%u043C%u0435%u043D%u043E%u0439%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%27%2C%20value%3A%20%27middlemouse.paste%27%20%7D%2C%0A%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28m%3D%3E%20%7B%0A%20%20%20if%20%28%20%22separator%22%20in%20m%20%29%20%7B%20menuPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20var%20mItem%20%3D%20menuPopup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%20%20%20mItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0A%20%20%20mItem.setAttribute%28%27checked%27%2C%20cbu.getPrefs%28m.value%29%29%3B%0A%20%20%20mItem.onclick%20%3De%3D%3E%20cbu.setPrefs%28m.value%2C%20%21cbu.getPrefs%28m.value%29%29%3B%20%20%0A%7D%29%3B%0AmenuPopup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0A//%20%u0411%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u043A%u0430%20%u0434%u0432%u043E%u0439%u043D%u043E%u0439%20%u0438%u043D%u0438%u0446%u0438%u0430%u043B%u0438%u0437%u0430%u0446%u0438%u0438%20%u043E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%u043E%u0432%20%u0434%u043B%u044F%20SeaMonkey%20...............%0Aif%20%28%20this.hasAttribute%28%22initialized%22%29%20%29%20return%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u0432%20%27about%3Aconfig%27%20.................%0Aconst%20s%20%3D%20%22CB.Autocopy%22%3B%0Afunction%20toggleImage%28%29%20%7B%20%20%0A%20%20%20document.getAnonymousNodes%28self%29%5B1%5D.src%20%3D%20cbu.getPrefs%28s%29%0A%20%20%20%3F%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMBAAQIAAcEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAcACAMEAQEAAAAAAAAAAAAAAAACAwADAAAAABUnAB9cqgC3a7wB4Gq5Ad1qugHearoB3mq6Ad5qugHearoB3mi4AN1qugHgYrMAxR43AC8AAAAAAAEAAAECAAQAAAQAV6AAprP9Vv/W/qn80/+f/9T/ov/U/6L/1P+i/9T/ov/U/6L/1/+n/9X+pfy3/WL/Y7QAvwEAAQAAAAAAFSgAH1ehAKlyzwD1htgf/YzcJ/2K2yP9i9sk/YvbJf2L2yX9i9sm/YnaIv2b4kP92/21/Nf+qv9quwHdBQkACAAAAQBeqwCzr/tR/8X0j/u+8X//vvJ//77ygP++8oD/vvKA/77yf/+98n7/wvSH/4zcKv+e4kv93v+0/2i5AN0DBwAIBQkACGu8AdzV/af/4v/B/d//u//h/7//4f+//+H/v//h/7//4f+//9/+u//n/8n/w/GK/4zaK/3g/7r/aroC3gMHAAgEBwAIarkC3dX/pf/g/sD93v67/9/+vv/g/r//4P6//+D+v//f/r7/3f66/+T/xv/B8Yb/j9st/eT/w/9qugPeAwcACAQHAAhqugLe2v+w/+j/z/3l/8r/5//N/+f/zv/n/87/5//O/+f/zf/l/sj/7P/W/8Xyj/+Q2y/96f/N/2q6A94DBwAIBAcACGq6At7f/7n/7v/c/ev/1v/t/9n/7f/a/+3/2v/t/9r/7f/Z/+r+1f/y/+P/yPKW/5DbMf3s/9X/aroE3gMHAAgEBwAIaroC3uP/wf/z/+j98P/h//L/5P/z/+X/8//l//P/5f/y/+T/8P7g//j/7v/L8p3/kdsy/fD/3P9rugTeAwcACAQHAAhqugLe5v/J//j/8v31/+r/9v/t//f/7v/3/+//9//u//b/7f/0/un//f/4/87yo/+R2zL98f/f/2q5Bd0DBwAIBAcACGq6At7p/8///P/6/fj/8f/6//T/+v/1//r/9f/6//X/+v/0//f+8P//////0fGo/5PbNf30/+f/a7wE3AQJAAgEBwAIabkC3er/0f/+//79+v/0//v/9//8//j//P/4//z/+P/7//f/+f70///////T8qz/i9go+8P9ef9dqwCzAAACAAUJAAhquwHd7f7a//////z+//39/////f////3////9/////f////39/vz9/////dzzvv5v0AD1VqECqRUnAB8AAAAAAQACAGK0AL/J/Yf/8v7k/O3/1//u/9n/7v/Z/+7/2f/u/9n/7v/Z/+3/1//x/eP8vfxu/1WgAKYAAAUAAQIABAABAAAAAAAAHjcALmGzAMVquwLgarkC3Wq6At5qugLearoC3mq6At5qugLearkC3Wu8AeBbqgC3FScAHwAAAAACAwADAAAAAAAAAAAAAAAAAwQCAQQIAAgEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAgABwMDAgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgEDAAQACAcEAAcIBAAHCAQABwgEAAcIBAAHCAQABwgEAAcIBAAHCAMBBAEAAAAAAAAAAAAAAAACAAMDAAAAABUAJx9cAKq3awG84GoBud1qAbreagG63moBut5qAbreagG63mgAuN1qAbrgYgCzxR4ANy8AAAAAAAABAAEAAgQABAAAVwCgprNW/f/Wqf7805///9Si///Uov//1KL//9Si///Uov//16f//9Wl/vy3Yv3/YwC0vwEBAAAAAAAAFQAoH1cAoalyAM/1hh/Y/Ywn3P2KI9v9iyTb/Ysl2/2LJdv9iybb/Yki2v2bQ+L927X9/Neq/v9qAbvdBQAJCAABAABeAKuzr1H7/8WP9Pu+f/H/vn/y/76A8v++gPL/voDy/75/8v+9fvL/wof0/4wq3P+eS+L93rT//2gAud0DAAcIBQAJCGsBvNzVp/3/4sH//d+7///hv///4b///+G////hv///4b///9+7/v/nyf//w4rx/4wr2v3guv//agK63gMABwgEAAcIagK53dWl///gwP793rv+/9++/v/gv/7/4L/+/+C//v/fvv7/3br+/+TG///BhvH/jy3b/eTD//9qA7reAwAHCAQABwhqArre2rD//+jP//3lyv//583//+fO///nzv//587//+fN///lyP7/7Nb//8WP8v+QL9v96c3//2oDut4DAAcIBAAHCGoCut7fuf//7tz//evW///t2f//7dr//+3a///t2v//7dn//+rV/v/y4///yJby/5Ax2/3s1f//agS63gMABwgEAAcIagK63uPB///z6P/98OH///Lk///z5f//8+X///Pl///y5P//8OD+//ju///LnfL/kTLb/fDc//9rBLreAwAHCAQABwhqArre5sn///jy//316v//9u3///fu///37///9+7///bt///06f7//fj//86j8v+RMtv98d///2oFud0DAAcIBAAHCGoCut7pz////Pr//fjx///69P//+vX///r1///69f//+vT///fw/v//////0ajx/5M12/305///awS83AQACQgEAAcIaQK53erR///+/v/9+vT///v3///8+P///Pj///z4///79///+fT+///////TrPL/iyjY+8N5/f9dAKuzAAIAAAUACQhqAbvd7dr+//////z+/f/9/////f////3////9/////f////39/P79/////dy+8/5vAND1VgKhqRUAJx8AAAAAAQIAAGIAtL/Jh/3/8uT+/O3X///u2f//7tn//+7Z///u2f//7tn//+3X///x4/38vW78/1UAoKYABQAAAQACBAAAAQAAAAAAHgA3LmEAs8VqArvgagK53WoCut5qArreagK63moCut5qArreagK53WsBvOBbAKq3FQAnHwAAAAACAAMDAAAAAAAAAAAAAAAAAwIEAQQACAgEAAcIBAAHCAQABwgEAAcIBAAHCAQABwgEAAcIBAAIBwMCAwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%3B%0A%7D%3B%20%20%0AtoggleImage%28%29%3B%0AServices.prefs.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.prefs.removeObserver%28s%2C%20toggleImage%29%29%3B%20%20%0A%0A%20%0A//%20%u0412%u044B%u043A%u043B%u044E%u0447%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043F%u0440%u0438%20%u0437%u0430%u043A%u0440%u044B%u0442%u0438%u0438%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u0440%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u043E%20%u0432%20%27about%3Aconfig%27%20.................%0Avar%20toggleButton%20%3D%20%7B%0A%20%20%20observe%3A%28subject%2C%20topic%2C%20data%29%3D%3E%20%7B%0A%20%20%20%20%20%20cbu.getPrefs%28%22CB.Autocopy.reset%22%29%20%26%26%20data%20%3D%3D%20%22shutdown%22%20%26%26%20cbu.setPrefs%28%22CB.Autocopy%22%2C%20false%29%3B%20%20%0A%20%20%20%7D%0A%7D%3B%0AServices.obs.addObserver%28toggleButton%2C%20%22quit-application%22%2C%20false%29%3B%0A%0A%20%20%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u0438%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u043A%u043E%u043F%u0438%u0440%u0443%u0435%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%2C%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u0440%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u043E%20%u0432%20%27about%3Aconfig%27%20...............%0Afunction%20autocopy%28e%29%20%7B%0A%20%20%20if%20%28%0A%20%20%20%20%20%20%20e.button%0A%20%20%20%20%20%20%20%7C%7C%20%21cbu.getPrefs%28%22CB.Autocopy%22%29%0A%20%20%20%20%20%20%20%7C%7C%20document.commandDispatcher.focusedWindow.getSelection%28%29.isCollapsed%0A%20%20%20%20%20%20%29%20return%3B%0A%20%20%20%0A%20%20%20goDoCommand%28%27cmd_copy%27%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u043C%u0438%u0433%u0430%u0435%u0442%20....%0A%20%20%20if%20%28%20%21cbu.getPrefs%28%22CB.Autocopy.selectingTextBlink%22%29%20%29%20return%3B%0A%20%20%20document.activeElement.blur%28%29%3B%20%20%0A%20%20%20setTimeout%28%28%29%3D%3E%20window.content.focus%28%29%2C%20300%29%3B%0A%7D%3B%0AaddEventListener%28%27mouseup%27%2C%20autocopy%2C%20false%2C%20gBrowser%29%3B%0A%0A%0A//%20C%u0440%u0435%u0434%u043D%u0435%u0439%20%u043A%u043D%u043E%u043F%u043A%u043E%u0439%20%u043C%u044B%u0448%u0438%20%u0432%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0435%20%u043F%u043E%u043B%u044F%20%u0441%20%u0437%u0430%u043C%u0435%u043D%u043E%u0439%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20...............%0Afunction%20middleMousePaste%28e%2C%20doc%20%3D%20this.document%20%7C%7C%20document%29%20%7B%20%0A%20%20%20if%20%28%0A%20%20%20%20%20%20%20e.button%20%21%3D%3D%201%0A%20%20%20%20%20%20%20%7C%7C%20%21cbu.getPrefs%28%27middlemouse.paste%27%29%0A%20%20%20%20%20%20%20%7C%7C%20%21/input%7Cpassword%7Ctextarea%7Ctextbox%7Csearchbar%7Cfindbar%7Ccbeditor/.test%28e.target.localName%29%0A%20%20%20%20%20%20%29%20return%3B%0A%0A%20%20%20e.preventDefault%28%29%3B%0A%20%20%20e.stopPropagation%28%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20//%20%u0432%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20....%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20commandDispatcher%20%3D%20doc.commandDispatcher%3B%0A%20%20%20var%20controller%20%3D%20commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Ci.nsICommandController%29%3B%0A%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20params.setStringValue%28%22state_data%22%2C%20gClipboard.read%28%29%29%3B%0A%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%0A%7D%3B%0AaddEventListener%28%22click%22%2C%20middleMousePaste%2C%20true%2C%20document.documentElement%29%3B%0A%0A%0A//%20%u0414%u043E%u043F%u043E%u043B%u043D%u0438%u0442%u0435%u043B%u044C%u043D%u044B%u0435%20%u0432%u043E%u0437%u043C%u043E%u0436%u043D%u043E%u0441%u0442%u0438%20%u0434%u043B%u044F%20%u0437%u043D%u0430%u0447%u043A%u0430%20%u0438%u0434%u0435%u043D%u0442%u0438%u0444%u0438%u043A%u0430%u0446%u0438%u0438%20%u0441%u0430%u0439%u0442%u0430%20%u0432%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0430%u0434%u0440%u0435%u0441%u0430%20...............%0AaddEventListener%28%22click%22%2C%20e%3D%3E%20%7B%0A%20%20%20if%20%28%0A%20%20%20%20%20%20%20e.button%20%3D%3D%201%0A%20%20%20%20%20%20%20%7C%7C%20%21/page-proxy-favicon%7Cpage-proxy-button/.test%28e.target.id%29%0A%20%20%20%20%20%20%20%7C%7C%20%21cbu.getPrefs%28%22CB.Autocopy.addToAddressBar%22%29%0A%20%20%20%20%20%20%29%20return%3B%0A%0A%20%20%20e.preventDefault%28%29%3B%0A%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20e.target.setAttribute%28%22context%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%20%20%20%0A%20%20%20//%20%u041B%u041A%u041C%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u0438%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044E%20%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%27%u0420%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u0438%u044F%27%20....%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%0A%20%20%20%20%20%20%20%20BrowserPageInfo%28content.document%2C%20%28gURLBar.value.startsWith%28%22http%22%29%20%3F%20%22permTab%22%20%3A%20%22generalTab%22%29%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20//%20%u041F%u041A%u041C%20%u043A%u043E%u043F%u0438%u0440%u0443%u0435%u0442%20%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u0430%u0434%u0440%u0435%u0441%20....%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%21%3D%3D%202%20%29%20return%3B%0A%20%20%20gClipboard.write%28content.location%29%3B%0A%0A%20%20%20//%20%u0437%u043D%u0430%u0447%u043E%u043A%20%u0438%u0434%u0435%u043D%u0442%u0438%u0444%u0438%u043A%u0430%u0446%u0438%u0438%20%u0441%u0430%u0439%u0442%u0430%20%u043C%u0438%u0433%u0430%u0435%u0442%20%u043A%u0440%u0430%u0441%u043D%u044B%u043C%20....%0A%20%20%20var%20id%20%3D%20%28Services.appinfo.name%20%3D%3D%20%22SeaMonkey%22%29%20%3F%20%22page-proxy-deck%22%20%3A%20%22identity-box%22%3B%0A%20%20%20document.getElementById%28id%29.style.background%20%3D%20%22red%22%3B%0A%20%20%20setTimeout%28%28%29%3D%3E%20document.getElementById%28id%29.style.background%20%3D%20%22%22%2C%20300%29%3B%0A%20%20%20%0A%7D%2C%20true%2C%20gURLBar%29%3B%0A%0A%20%20%20%0A//%20%u0414%u043E%u043F%u043E%u043B%u043D%u0438%u0442%u0435%u043B%u044C%u043D%u044B%u0435%20%u0432%u043E%u0437%u043C%u043E%u0436%u043D%u043E%u0441%u0442%u0438%20%u0434%u043B%u044F%20%u0434%u0432%u043E%u0439%u043D%u043E%u0433%u043E%20%u043A%u043B%u0438%u043A%u0430%20%u043C%u044B%u0448%u0438%20...............%0Afunction%20handleDblClick%28e%29%20%7B%0A%20%20%20var%20node%20%3D%20e.target%3B%0A%20%20%20var%20editor%20%3D%20node.editor%3B%0A%0A%20%20%20//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20....%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20cbu.getPrefs%28%22CB.Autocopy.saveWithDoubleClick%22%29%20%26%26%20node.localName%20%3D%3D%20%27img%27%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20run%20%3D%20cbu.getPrefs%28%22browser.download.folderList%22%29%3B%0A%20%20%20%20%20%20%20%20var%20use%20%3D%20cbu.getPrefs%28%22browser.download.useDownloadDir%22%29%3B%0A%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.download.folderList%22%2C%202%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.download.useDownloadDir%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20function%20save%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20eval%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20gContextMenu.saveMedia.toSource%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%28/%28false%2C%5Cs+%29false%2C/%2C%20%22%241true%2C%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.replace%28/%5Es/%2C%20%220%2Cfunction%20s%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%28save%20%3D%28%29%3D%3E%20func.call%28gContextMenu%29%29%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20/Pale%20Moon%7CSeaMonkey/.test%28Services.appinfo.name%29%0A%20%20%20%20%20%20%20%20%3F%20saveImageURL%28gContextMenu.imageURL%2C%200%2C%200%2C%200%2C%201%2C%20null%2C%20content.document%29%0A%20%20%20%20%20%20%20%20%3A%20save%28%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20document.getElementById%28%22contentAreaContextMenu%22%29.hidePopup%28%29%2C%2020%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.download.folderList%22%2C%20run%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.download.useDownloadDir%22%2C%20use%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%0A%20%20%20//%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20....%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20cbu.getPrefs%28%22CB.Autocopy.copyWithDoubleClick%22%29%20%26%26%20%21/findbar%7Ctabbrowser/.test%28node.localName%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20editor%20%3F%20editor.copy%28%29%20%3A%20goDoCommand%28%22cmd_copy%22%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20try%20%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20box%20%3D%20%28node.textbox%20%7C%7C%20node%29.inputField.parentNode%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20popup%20%3D%20box.ownerDocument.getAnonymousElementByAttribute%28box%2C%20%22anonid%22%2C%20%22input-box-contextmenu%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20popup.hidePopup%28%29%2C%2050%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20setTimeout%28%28%29%3D%3E%20document.getElementById%28%22contentAreaContextMenu%22%29.hidePopup%28%29%2C%2050%29%20%7D%3B%20%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%0A%7D%3B%0AaddEventListener%28%22dblclick%22%2C%20handleDblClick%2C%20false%2C%20gBrowser%29%3B%0A%0A%0A//%20%u041D%u0430%u0431%u043B%u044E%u0434%u0430%u0442%u0435%u043B%u044C%20%u0441%u043B%u0435%u0434%u0438%u0442%20%u0437%u0430%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0435%u043C%20%u043D%u043E%u0432%u044B%u0445%20%u043E%u043A%u043E%u043D%20...............%0Afunction%20observer%28subject%29%20%7B%0A%20%20%20subject.addEventListener%28%22load%22%2C%20e%3D%3E%20%7B%0A%20%20%20%20%20%20var%20doc%20%3D%20e.target%3B%0A%20%20%20%20%20%20var%20view%20%3D%20doc.defaultView%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0442%u044C%20%u043E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%u0438%20%u043A%u043B%u0438%u043A%u0430%20%u0434%u043B%u044F%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u043E%u0432%20CB%20%u043A%u043D%u043E%u043F%u043E%u043A%20....%0A%20%20%20%20%20%20if%20%28%20/custombuttons/.test%28doc.URL%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20view.addEventListener%28%22dblclick%22%2C%20handleDblClick%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20view.addEventListener%28%22click%22%2C%20middleMousePaste.bind%28view%29%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0442%u044C%20%u043E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%u0438%20%u043A%u043B%u0438%u043A%u0430%20%u0434%u043B%u044F%20%27%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044E%20%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%27%20%u0438%20%27%u0411%u0438%u0431%u043B%u0438%u043E%u0442%u0435%u043A%u0438%27%20....%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20if%20%28%20/pageInfo.xul%7Cplaces.xul/.test%28doc.URL%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20view.addEventListener%28%22dblclick%22%2C%20function%20close%28%29%20%7B%20this.close%28%29%20%7D%2C%20true%29%3B%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%0A%20%20%20%20%20%20%20%20%20%20%20view.addEventListener%28%22unload%22%2C%20e%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20view.removeEventListener%28e.type%2C%20arguments.callee%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20view.removeEventListener%28%22dblclick%22%2C%20close%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20false%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%7D%29%3B%0A%7D%3B%0AServices.ww.registerNotification%28observer%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.ww.unregisterNotification%28observer%29%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.tooltipText%20%3D%20%22Autocopy%20%5Cn%u041B%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u043E%u0435%20%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%5Cn%u041F%3A%20%u041C%u0435%u043D%u044E%20%5Cn%u0414%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ................. this.onclick =e=> { if ( e.button == 0 ) cbu.setPrefs("CB.Autocopy", !cbu.getPrefs("CB.Autocopy")); if ( e.button == 2 ) { e.preventDefault(); menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); } }; this.oncontextmenu = e => e.detail == 2 && !menuPopup.hidePopup() || e.ctrlKey || !!menuPopup.openPopup(this, "after_start"); // Создать меню ................. var array = [ { label: 'Выделять текст с пробелом справа', value: 'layout.word_select.eat_space_to_next_word' }, { label: 'Выделенный текст мигает при автокопировании', value: 'CB.Autocopy.selectingTextBlink' }, { label: 'Дополнительные возможности для адресной строки', value: 'CB.Autocopy.addToAddressBar'}, { label: 'Выключать автокопирование при выходе из браузера', value: 'CB.Autocopy.reset' }, { separator: ''}, { label: 'Двойной правый клик мыши копирует выделенный текст', value: 'CB.Autocopy.copyWithDoubleClick' }, { label: 'Двойной правый клик мыши сохраняет изображение без запроса', value: 'CB.Autocopy.saveWithDoubleClick' }, { label: 'Средним кликом вставлятъ текст с заменой выделенного текста', value: 'middlemouse.paste' }, ]; var menuPopup = self.appendChild(document.createElement("menupopup")); array.forEach(m=> { if ( "separator" in m ) { menuPopup.appendChild(document.createElement("menuseparator")); return }; var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m.label); mItem.setAttribute('type', 'checkbox'); mItem.setAttribute('checked', cbu.getPrefs(m.value)); mItem.onclick =e=> cbu.setPrefs(m.value, !cbu.getPrefs(m.value)); }); menuPopup.setAttribute("onclick", "event.stopPropagation()"); // Блокировка двойной инициализации обработчиков для SeaMonkey ............... if ( this.hasAttribute("initialized") ) return; // Установить нужную иконку кнопки при старте браузера или при изменениях настроек в 'about:config' ................. const s = "CB.Autocopy"; function toggleImage() { document.getAnonymousNodes(self)[1].src = cbu.getPrefs(s) ? "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgMBAAQIAAcEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAcACAMEAQEAAAAAAAAAAAAAAAACAwADAAAAABUnAB9cqgC3a7wB4Gq5Ad1qugHearoB3mq6Ad5qugHearoB3mi4AN1qugHgYrMAxR43AC8AAAAAAAEAAAECAAQAAAQAV6AAprP9Vv/W/qn80/+f/9T/ov/U/6L/1P+i/9T/ov/U/6L/1/+n/9X+pfy3/WL/Y7QAvwEAAQAAAAAAFSgAH1ehAKlyzwD1htgf/YzcJ/2K2yP9i9sk/YvbJf2L2yX9i9sm/YnaIv2b4kP92/21/Nf+qv9quwHdBQkACAAAAQBeqwCzr/tR/8X0j/u+8X//vvJ//77ygP++8oD/vvKA/77yf/+98n7/wvSH/4zcKv+e4kv93v+0/2i5AN0DBwAIBQkACGu8AdzV/af/4v/B/d//u//h/7//4f+//+H/v//h/7//4f+//9/+u//n/8n/w/GK/4zaK/3g/7r/aroC3gMHAAgEBwAIarkC3dX/pf/g/sD93v67/9/+vv/g/r//4P6//+D+v//f/r7/3f66/+T/xv/B8Yb/j9st/eT/w/9qugPeAwcACAQHAAhqugLe2v+w/+j/z/3l/8r/5//N/+f/zv/n/87/5//O/+f/zf/l/sj/7P/W/8Xyj/+Q2y/96f/N/2q6A94DBwAIBAcACGq6At7f/7n/7v/c/ev/1v/t/9n/7f/a/+3/2v/t/9r/7f/Z/+r+1f/y/+P/yPKW/5DbMf3s/9X/aroE3gMHAAgEBwAIaroC3uP/wf/z/+j98P/h//L/5P/z/+X/8//l//P/5f/y/+T/8P7g//j/7v/L8p3/kdsy/fD/3P9rugTeAwcACAQHAAhqugLe5v/J//j/8v31/+r/9v/t//f/7v/3/+//9//u//b/7f/0/un//f/4/87yo/+R2zL98f/f/2q5Bd0DBwAIBAcACGq6At7p/8///P/6/fj/8f/6//T/+v/1//r/9f/6//X/+v/0//f+8P//////0fGo/5PbNf30/+f/a7wE3AQJAAgEBwAIabkC3er/0f/+//79+v/0//v/9//8//j//P/4//z/+P/7//f/+f70///////T8qz/i9go+8P9ef9dqwCzAAACAAUJAAhquwHd7f7a//////z+//39/////f////3////9/////f////39/vz9/////dzzvv5v0AD1VqECqRUnAB8AAAAAAQACAGK0AL/J/Yf/8v7k/O3/1//u/9n/7v/Z/+7/2f/u/9n/7v/Z/+3/1//x/eP8vfxu/1WgAKYAAAUAAQIABAABAAAAAAAAHjcALmGzAMVquwLgarkC3Wq6At5qugLearoC3mq6At5qugLearkC3Wu8AeBbqgC3FScAHwAAAAACAwADAAAAAAAAAAAAAAAAAwQCAQQIAAgEBwAIBAcACAQHAAgEBwAIBAcACAQHAAgEBwAIBAgABwMDAgAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" : "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgEDAAQACAcEAAcIBAAHCAQABwgEAAcIBAAHCAQABwgEAAcIBAAHCAMBBAEAAAAAAAAAAAAAAAACAAMDAAAAABUAJx9cAKq3awG84GoBud1qAbreagG63moBut5qAbreagG63mgAuN1qAbrgYgCzxR4ANy8AAAAAAAABAAEAAgQABAAAVwCgprNW/f/Wqf7805///9Si///Uov//1KL//9Si///Uov//16f//9Wl/vy3Yv3/YwC0vwEBAAAAAAAAFQAoH1cAoalyAM/1hh/Y/Ywn3P2KI9v9iyTb/Ysl2/2LJdv9iybb/Yki2v2bQ+L927X9/Neq/v9qAbvdBQAJCAABAABeAKuzr1H7/8WP9Pu+f/H/vn/y/76A8v++gPL/voDy/75/8v+9fvL/wof0/4wq3P+eS+L93rT//2gAud0DAAcIBQAJCGsBvNzVp/3/4sH//d+7///hv///4b///+G////hv///4b///9+7/v/nyf//w4rx/4wr2v3guv//agK63gMABwgEAAcIagK53dWl///gwP793rv+/9++/v/gv/7/4L/+/+C//v/fvv7/3br+/+TG///BhvH/jy3b/eTD//9qA7reAwAHCAQABwhqArre2rD//+jP//3lyv//583//+fO///nzv//587//+fN///lyP7/7Nb//8WP8v+QL9v96c3//2oDut4DAAcIBAAHCGoCut7fuf//7tz//evW///t2f//7dr//+3a///t2v//7dn//+rV/v/y4///yJby/5Ax2/3s1f//agS63gMABwgEAAcIagK63uPB///z6P/98OH///Lk///z5f//8+X///Pl///y5P//8OD+//ju///LnfL/kTLb/fDc//9rBLreAwAHCAQABwhqArre5sn///jy//316v//9u3///fu///37///9+7///bt///06f7//fj//86j8v+RMtv98d///2oFud0DAAcIBAAHCGoCut7pz////Pr//fjx///69P//+vX///r1///69f//+vT///fw/v//////0ajx/5M12/305///awS83AQACQgEAAcIaQK53erR///+/v/9+vT///v3///8+P///Pj///z4///79///+fT+///////TrPL/iyjY+8N5/f9dAKuzAAIAAAUACQhqAbvd7dr+//////z+/f/9/////f////3////9/////f////39/P79/////dy+8/5vAND1VgKhqRUAJx8AAAAAAQIAAGIAtL/Jh/3/8uT+/O3X///u2f//7tn//+7Z///u2f//7tn//+3X///x4/38vW78/1UAoKYABQAAAQACBAAAAQAAAAAAHgA3LmEAs8VqArvgagK53WoCut5qArreagK63moCut5qArreagK53WsBvOBbAKq3FQAnHwAAAAACAAMDAAAAAAAAAAAAAAAAAwIEAQQACAgEAAcIBAAHCAQABwgEAAcIBAAHCAQABwgEAAcIBAAIBwMCAwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; }; toggleImage(); Services.prefs.addObserver(s, toggleImage, false); addDestructor(()=> Services.prefs.removeObserver(s, toggleImage)); // Выключать кнопку при закрытии браузера если это разрешено в 'about:config' ................. var toggleButton = { observe:(subject, topic, data)=> { cbu.getPrefs("CB.Autocopy.reset") && data == "shutdown" && cbu.setPrefs("CB.Autocopy", false); } }; Services.obs.addObserver(toggleButton, "quit-application", false); // Функции автоматически копирует выделенный текст на странице, если это разрешено в 'about:config' ............... function autocopy(e) { if ( e.button || !cbu.getPrefs("CB.Autocopy") || document.commandDispatcher.focusedWindow.getSelection().isCollapsed ) return; goDoCommand('cmd_copy'); // выделенный текст мигает .... if ( !cbu.getPrefs("CB.Autocopy.selectingTextBlink") ) return; document.activeElement.blur(); setTimeout(()=> window.content.focus(), 300); }; addEventListener('mouseup', autocopy, false, gBrowser); // Cредней кнопкой мыши вставить текст из буфера обмена в текстовые поля с заменой выделенного текста ............... function middleMousePaste(e, doc = this.document || document) { if ( e.button !== 1 || !cbu.getPrefs('middlemouse.paste') || !/input|password|textarea|textbox|searchbar|findbar|cbeditor/.test(e.target.localName) ) return; e.preventDefault(); e.stopPropagation(); // вставить текст .... var cmd = "cmd_insertText"; var commandDispatcher = doc.commandDispatcher; var controller = commandDispatcher.getControllerForCommand(cmd); var controller = controller.QueryInterface(Ci.nsICommandController); var params = Cc["@mozilla.org/embedcomp/command-params;1"].createInstance(Ci.nsICommandParams); params.setStringValue("state_data", gClipboard.read()); controller.doCommandWithParams(cmd, params); }; addEventListener("click", middleMousePaste, true, document.documentElement); // Дополнительные возможности для значка идентификации сайта в строке адреса ............... addEventListener("click", e=> { if ( e.button == 1 || !/page-proxy-favicon|page-proxy-button/.test(e.target.id) || !cbu.getPrefs("CB.Autocopy.addToAddressBar") ) return; e.preventDefault(); e.stopPropagation(); e.target.setAttribute("context", "event.stopPropagation()"); // ЛКМ без запроса открывает информацию о странице в вкладке 'Разрешения' .... if ( e.button == 0 ) BrowserPageInfo(content.document, (gURLBar.value.startsWith("http") ? "permTab" : "generalTab")); // ПКМ копирует текущий адрес .... if ( e.button !== 2 ) return; gClipboard.write(content.location); // значок идентификации сайта мигает красным .... var id = (Services.appinfo.name == "SeaMonkey") ? "page-proxy-deck" : "identity-box"; document.getElementById(id).style.background = "red"; setTimeout(()=> document.getElementById(id).style.background = "", 300); }, true, gURLBar); // Дополнительные возможности для двойного клика мыши ............... function handleDblClick(e) { var node = e.target; var editor = node.editor; // Сохранить изображение в папку загрузки .... if ( e.button == 2 && cbu.getPrefs("CB.Autocopy.saveWithDoubleClick") && node.localName == 'img' ) { var run = cbu.getPrefs("browser.download.folderList"); var use = cbu.getPrefs("browser.download.useDownloadDir"); cbu.setPrefs("browser.download.folderList", 2); cbu.setPrefs("browser.download.useDownloadDir", true); function save() { var func = eval( gContextMenu.saveMedia.toSource() .replace(/(false,\s+)false,/, "$1true,") .replace(/^s/, "0,function s") ); (save =()=> func.call(gContextMenu))(); } /Pale Moon|SeaMonkey/.test(Services.appinfo.name) ? saveImageURL(gContextMenu.imageURL, 0, 0, 0, 1, null, content.document) : save(); setTimeout(()=> document.getElementById("contentAreaContextMenu").hidePopup(), 20); cbu.setPrefs("browser.download.folderList", run); cbu.setPrefs("browser.download.useDownloadDir", use); }; // скопировать выделенный текст .... if ( e.button == 2 && cbu.getPrefs("CB.Autocopy.copyWithDoubleClick") && !/findbar|tabbrowser/.test(node.localName) ) { e.preventDefault(); editor ? editor.copy() : goDoCommand("cmd_copy"); try { var box = (node.textbox || node).inputField.parentNode; var popup = box.ownerDocument.getAnonymousElementByAttribute(box, "anonid", "input-box-contextmenu"); setTimeout(()=> popup.hidePopup(), 50); } catch(e) { setTimeout(()=> document.getElementById("contentAreaContextMenu").hidePopup(), 50) }; } }; addEventListener("dblclick", handleDblClick, false, gBrowser); // Наблюдатель следит за открытием новых окон ............... function observer(subject) { subject.addEventListener("load", e=> { var doc = e.target; var view = doc.defaultView; // добавлять обработчики клика для редакторов CB кнопок .... if ( /custombuttons/.test(doc.URL) ) { view.addEventListener("dblclick", handleDblClick, false); view.addEventListener("click", middleMousePaste.bind(view), true); }; // добавлять обработчики клика для 'Информацию о странице' и 'Библиотеки' .... if ( /pageInfo.xul|places.xul/.test(doc.URL) ) { view.addEventListener("dblclick", function close() { this.close() }, true); view.addEventListener("unload", e=> { view.removeEventListener(e.type, arguments.callee, false); view.removeEventListener("dblclick", close, true); }, false); }; }); }; Services.ww.registerNotification(observer); addDestructor(()=> Services.ww.unregisterNotification(observer)); // Подсказка для кнопки ................................ this.tooltipText = "Autocopy \nЛ: Переключить автоматическое копирование \nП: Меню \nДП: CB меню"; |
imyax > 09-01-2011 13:17:32 |
Вкладки сверху & Вставить и перейти Firefox3.6 не требует нажатия,после установки возможно потребуется перезапуск браузера скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0412%u043A%u043B%u0430%u0434%u043A%u0438%20%u0441%u0432%u0435%u0440%u0445%u0443%20%26amp%3B%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0438%20%u043F%u0435%u0440%u0435%u0439%u0442%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAn5JREFUeJx9U01IVFEYPfe9eW/GcoZSg6b3pME0UzIErWiVFSVEkC7bSQRBq2oTmKUGboJI0I07nwRSG2ch2aLIRX/mjGaSMFmNyow5QaM5M877ue/eFoPjPCY6u++e853v5/IRzjkKcenbzWOlwq5eGVKzBFG1GEWKZmJpeyu0yTLdUw0jnwv1pNDgSvTumAypbSozj6i5CpNbAACJuOAXylElKNCZEXzfqLU7DL7qK56HCW0xoq+ob9Kz+B+qiYK9zBs7aR2pGTjVpQsA0P1zaPRfyS3eJrR4mxxv33gcCb6uvhTCowBArkZ7j1POPo4kx4uqvT48BNgcZ2avAT6Xg6s1VFBGT7g27HTfl+z3ouSAfCBfPfBnH5Z86w5+TUyilHn6XGWirz5qruZbbiypRcDtx+U9p3c6OTcMbWMcG8jgUzaCyVQYKTEL31ZJvYsxpmxv+6Dsx+PK28XdeBV0e68DADrmuoBNCuZzgdpUESxG80Lt9zg65u8VGWyj49UdaG+fAWbu6y1GIRi2GZfIzoI0cwL9y0+KkvvnhqFFxoBDJUCFBMIJLGbFhV80ueAXyh3ixrK64jF8KrBfBiokAIBkEBgiXRA8XO6sEhSn2O0HAPRMD6B/bji/BxgsrxHTgG3RTmHi6GBIZ0awmuyYTKbCCDw9i97pAdxafoTAiwtYSsUBIze7nCKwQIPmxZkQ4ZyjZ3bQ89z+sJjg6+qKkMi5/MgCihtwC7nYYMCyDtm/G3zLjtGlTA27EdEdx1Q31T7Gbd62JiaRErNgJMcRTiAZBGIasECDVuuM85gKUfmutQE2HnCbNTPKVItRmDBjJuwQJfZ963x4vlD/F6u3LbVAOWEsAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E/*%u0412%u043A%u043B%u0430%u0434%u043A%u0438%20%u0441%u0432%u0435%u0440%u0445%u0443*/%0A%20var%20cssStr%20%3D%20%26lt%3B%21%5BCDATA%5B%0A@-moz-document%20url%28%22chrome%3A//browser/content/browser.xul%22%29%0A%7B.tabbrowser-strip%7Bposition%3Afixed%3Btop%3A0px%3Bwidth%3A100%25%21important%3Bz-index%3A0%3B%7D%0Atab%7B-moz-user-select%3A-moz-none%21important%3Bz-index%3A0%21important%3B-moz-border-radius-bottomleft%3A%200px%21important%3B%7D%0A.tabbrowser-strip%20.tabbrowser-tabs%7Bwidth%3A100%25%21important%3B%7D%0A.tab-drop-indicator-bar%7Bposition%3Afixed%21important%3B%0Atop%3A0px%3Bleft%3A0px%3Bwidth%3A100%25%21important%3Bz-index%3A1%3B%7Dwindow%20%7Bpadding-top%3A20px%3B%7D%7D%0A%5D%5D%26gt%3B%0A%20%20%20%20.toString%28%29%0A%20%20%20%20.replace%28/%25button%25/g%2C%20%22%23%22%20+%20this.id%29%3B%0Avar%20cssURI%20%3D%20this._cssURI%20%3D%20makeURI%28%20//%20chrome%3A//global/content/contentAreaUtils.js%0A%20%20%20%20%22data%3Atext/css%2C%22%0A%20%20%20%20+%20encodeURIComponent%28cssStr%29%0A%29%3B%0Athis.setSheet%20%3D%20function%28cssURI%2C%20addFlag%29%20%7B%0A%20%20%20%20var%20sss%20%3D%20Components.classes%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIStyleSheetService%29%3B%0A%20%20%20%20if%28sss.sheetRegistered%28cssURI%2C%20sss.AGENT_SHEET%29%20%26amp%3B%26amp%3B%20%21addFlag%29%0A%20%20%20%20%20%20%20%20sss.unregisterSheet%28cssURI%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20if%28addFlag%29%0A%20%20%20%20%20%20%20%20sss.loadAndRegisterSheet%28cssURI%2C%20sss.AGENT_SHEET%29%3B%7D%0Athis.setSheet%28cssURI%2C%20true%29%3B%0Athis.onDestroy%20%3D%20function%28%29%20%7Bthis.setSheet%28this._cssURI%2C%20true%29%3B%7D%0A%0A/*%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0438%20%u043F%u0435%u0440%u0435%u0439%u0442%u0438*/%0Adocument.getElementById%28%22urlbar%22%29.addEventListener%28%22popupshowing%22%2C%20function%28event%29%20%7B%0A%09const%20eltID%20%3D%20%22pasteandgo-menuitem%22%3B%0A%09var%20menupopup%20%3D%20event.originalTarget%3B%0A%09var%20refChild%20%3D%20menupopup.getElementsByAttribute%28%22cmd%22%2C%20%22cmd_paste%22%29%5B0%5D%3B%0A%09var%20canPaste%20%3D%20refChild.getAttribute%28%22disabled%22%29%20%3D%3D%20%22true%22%3B%0A%09var%20menuitem%20%3D%20document.getElementById%28eltID%29%3B%0A%09if%20%28%21menuitem%29%20%7B%0A%09%09var%20pasteAndGo%20%3D%20function%28event%29%20%7B%0A%09%09%09goDoCommand%28%22cmd_paste%22%29%3B%0A%09%09%09if%20%28%22handleURLBarCommand%22%20in%20window%29%0A%09%09%09%09//%20%5BFirefox3.0%5D%0A%09%09%09%09handleURLBarCommand%28event%29%3B%0A%09%09%09else%0A%09%09%09%09//%20%5BFirefox3.5%5D%0A%09%09%09%09gURLBar.handleCommand%28event%29%3B%0A%09%09%09menupopup.hidePopup%28%29%3B%0A%09%09%7D%3B%0A%09%09menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%09%09menuitem.id%20%3D%20eltID%3B%0A%09%09menuitem.setAttribute%28%22label%22%2C%20%22%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0438%20%u043F%u0435%u0440%u0435%u0439%u0442%u0438%22%29%3B%0A%09%09menuitem.setAttribute%28%22accesskey%22%2C%20%22G%22%29%3B%0A%09%09menuitem.addEventListener%28%22command%22%2C%20pasteAndGo%2C%20false%29%3B%0A%09%09menupopup.insertBefore%28menuitem%2C%20refChild.nextSibling%29%3B%0A%09%7D%0A%09menuitem.setAttribute%28%22disabled%22%2C%20canPaste.toString%28%29%29%3B%0A%7D%2C%20false%29%3B%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%3Clabel%3E%20%0Aid%20%3D%20%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:/*Вкладки сверху*/ var cssStr = <![CDATA[ @-moz-document url("chrome://browser/content/browser.xul") {.tabbrowser-strip{position:fixed;top:0px;width:100%!important;z-index:0;} tab{-moz-user-select:-moz-none!important;z-index:0!important;-moz-border-radius-bottomleft: 0px!important;} .tabbrowser-strip .tabbrowser-tabs{width:100%!important;} .tab-drop-indicator-bar{position:fixed!important; top:0px;left:0px;width:100%!important;z-index:1;}window {padding-top:20px;}} ]]> .toString() .replace(/%button%/g, "#" + this.id); var cssURI = this._cssURI = makeURI( // chrome://global/content/contentAreaUtils.js "data:text/css," + encodeURIComponent(cssStr) ); this.setSheet = function(cssURI, addFlag) { var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"] .getService(Components.interfaces.nsIStyleSheetService); if(sss.sheetRegistered(cssURI, sss.AGENT_SHEET) && !addFlag) sss.unregisterSheet(cssURI, sss.AGENT_SHEET); if(addFlag) sss.loadAndRegisterSheet(cssURI, sss.AGENT_SHEET);} this.setSheet(cssURI, true); this.onDestroy = function() {this.setSheet(this._cssURI, true);} /*Вставить и перейти*/ document.getElementById("urlbar").addEventListener("popupshowing", function(event) { const eltID = "pasteandgo-menuitem"; var menupopup = event.originalTarget; var refChild = menupopup.getElementsByAttribute("cmd", "cmd_paste")[0]; var canPaste = refChild.getAttribute("disabled") == "true"; var menuitem = document.getElementById(eltID); if (!menuitem) { var pasteAndGo = function(event) { goDoCommand("cmd_paste"); if ("handleURLBarCommand" in window) // [Firefox3.0] handleURLBarCommand(event); else // [Firefox3.5] gURLBar.handleCommand(event); menupopup.hidePopup(); }; menuitem = document.createElement("menuitem"); menuitem.id = eltID; menuitem.setAttribute("label", "Вставить и перейти"); menuitem.setAttribute("accesskey", "G"); menuitem.addEventListener("command", pasteAndGo, false); menupopup.insertBefore(menuitem, refChild.nextSibling); } menuitem.setAttribute("disabled", canPaste.toString()); }, false); |
imyax > 12-01-2011 00:33:44 |
Копировать информацию вкладки & Link Tooltips & TextLink (Firefox3.6 - 4.0.1) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%26amp%3B%20Link%20Tooltips%20%26amp%3B%20TextLink%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAkVJREFUeJx9k71PU1EYxn/n3tuWUggfBkKkxhsQjUQJA+ooOpuIg4Mb8T9wJUbEhMVFRte6MNIRJ0h0IFgTIwhqNZRYVNrQNCmF2/txXofy0WuNT3KGk/f3nPO8b/IqESGkb3dGMNpmhOiYKCsp2kOCSp6gkiGoTFtXVj824ir0wNaDBYhOUF0BNwfiHlERtNmHbw4g2knHRlbuhR9wvraw+zyL8yXJ/lv+J88cxKczX2FsqHf0pWMA8Gt6/p/m9vH6aVAk+I6pC8m2YGm+nmDr4TXEX6X0qvm7i0sEGpy1WyTi4VJVX0Dr4LpFUJ7lcL3ZHLWhfRwTKLs2iXguXKZATVpnLTG7h5WbO40cH4WYDZ13T+DeG0vocgpDl+HwA1SWsYx9ql7bsCUS9KvjaUfPw7kXTWEiCRsS0/Xom5NwCIm4RgK/3xDtnZJ7KQ4+Tza3c6Sf7ybZXk/h+fW7aBdDdG0HFTmBWqspavm5JnMpO0c5l+JsD3S2g4hCxNsx8Aob2uwLwbGO0eY2Wm26O+pmANc3sQx3w9CqZco3B8J0zAag+OkppezcyRyOowNUHQPf96eM6OXFjGgn7ZmDp9XKMluvbYobMwTbjyi+sfGqOTzv2Gyh8NJnbuuMEhFKm49b4rXFrKkLyaj8qA+sCD1dELHqJs+H33vQ3WHh1IL87p4MDd8XJ7RMB+8vLYjWE1EKWMY+Cl2ftihc36TqGCi8dNe4/muZGnSw2n9Va54FWo/pQCdFuyjcvMLLKPwnHTf1WiP/B4PEHA5jCaq+AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%28function%28%29%20%7B%0A%09var%20htmlEscape%20%3D%20function%28s%29%20%7B%0A%09%09s%20%3D%20s.replace%28/%26/g%2C%20%22%26amp%3B%22%29%3B%0A%09%09s%20%3D%20s.replace%28/%3E/g%2C%20%22%26gt%3B%22%29%3B%0A%09%09s%20%3D%20s.replace%28/%3C/g%2C%20%22%26lt%3B%22%29%3B%0A%09%09s%20%3D%20s.replace%28/%22/g%2C%20%22%26quot%3B%22%29%3B%0A%09%09return%20s%3B%0A%09%7D%3B%0A%09var%20copyTabInfo%20%3D%20function%20%28aAsHTML%29%20%7B%0A%09%09var%20tab%20%3D%20document.popupNode%3B%0A%09%09var%20title%20%3D%20tab.label%3B%0A%09%09var%20url%20%3D%20gBrowser.getBrowserForTab%28tab%29.contentWindow.location.href%3B%0A%09%09var%20txt%20%3D%20aAsHTML%20%3F%0A%09%09%20%20%20%20%20%20%20%20%20%20%27%3Ca%20href%3D%22%27%20+%20htmlEscape%28url%29%20+%20%27%22%3E%27%20+%20htmlEscape%28title%29%20+%20%27%3C/a%3E%27%20%3A%0A%09%09%20%20%20%20%20%20%20%20%20%20title%20+%20%22%5Cn%22%20+%20url%3B%0A%09%09Cc%5B%22@mozilla.org/widget/clipboardhelper%3B1%22%5D%0A%09%09.getService%28Ci.nsIClipboardHelper%29%0A%09%09.copyString%28txt%29%3B%0A%09%7D%3B%0A%09var%20copyTabBBC%20%3D%20function%20%28aAsBBC%29%20%7B%0A%20%20%20%20%20%20%20%20var%20tab%20%3D%20document.popupNode%3B%0A%20%20%20%20%20%20%20%20var%20title%20%3D%20tab.label%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20gBrowser.getBrowserForTab%28tab%29.contentWindow.location.href%3B%0A%20%20%20%20%20%20%20%20var%20txt%20%3D%20aAsBBC%20%3F%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%5Burl%3D%27%20+%20htmlEscape%28url%29%20+%20%27%5D%27%20+%20htmlEscape%28title%29%20+%20%27%5B/url%5D%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%20+%20%22%5Cn%22%20+%20url%3B%0A%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/widget/clipboardhelper%3B1%22%5D%0A%20%20%20%20%20%20%20%20.getService%28Ci.nsIClipboardHelper%29%0A%20%20%20%20%20%20%20%20.copyString%28txt%29%3B%0A%20%20%20%20%7D%3B%0A%09var%20menuitem1%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%09menuitem1.setAttribute%28%22label%22%2C%20%22%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20+%20URL%22%29%3B%0A%09menuitem1.addEventListener%28%22command%22%2C%20function%28%29%20%7B%20copyTabInfo%28false%29%3B%20%7D%2C%20false%29%3B%0A%09var%20menuitem2%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%09menuitem2.setAttribute%28%22label%22%2C%20%22%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20+%20URL%20%28HTML%29%22%29%3B%0A%09menuitem2.addEventListener%28%22command%22%2C%20function%28%29%20%7B%20copyTabInfo%28true%29%3B%20%7D%2C%20false%29%3B%0A%09var%20menuitem3%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20menuitem3.setAttribute%28%22label%22%2C%20%22%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20+%20URL%20%28BBCode%29%22%29%3B%0A%20%20%20%20menuitem3.addEventListener%28%22command%22%2C%20function%28%29%20%7B%20copyTabBBC%28true%29%3B%20%7D%2C%20false%29%3B%0A%09setTimeout%28function%28%29%20%7B%0A%09%09gBrowser.mStrip.childNodes%5B1%5D.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%09%09gBrowser.mStrip.childNodes%5B1%5D.appendChild%28menuitem1%29%3B%0A%09%09gBrowser.mStrip.childNodes%5B1%5D.appendChild%28menuitem2%29%3B%0A%09%09gBrowser.mStrip.childNodes%5B1%5D.appendChild%28menuitem3%29%3B%0A%09%7D%2C%200%29%3B%0A%7D%29%28%29%3B%0A%0A/*%20%3A%3A%3A%3A%3A%3A%3A%3A%20Link%20Tooltips%20%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%3A%20*/%0A%0AgetBrowser%28%29.addEventListener%28%22DOMContentLoaded%22%2C%20function%28aEvent%29%20%7B%0A%09var%20doc%20%3D%20new%20XPCNativeWrapper%28aEvent.originalTarget%29%3B%0A%09var%20links%20%3D%20doc.evaluate%28%22//a%5B@href%20and%20@href%21%3D%27%27%5D%22%2C%20doc%2C%20null%2C%20XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE%2C%20null%29%3B%0A%09%0A%09for%20%28var%20link%2C%20i%20%3D%200%3B%20%28link%20%3D%20links.snapshotItem%28i%29%29%3B%20i++%29%0A%09%7B%0A%09%09link.title%20%3D%20link.title%20%3F%20link.title%20+%20%22%20%3C%22%20+%20link.href%20+%20%22%3E%22%20%3A%20link.href%3B%0A%09%7D%0A%7D%2C%20true%29%3B%0A%0Afunction%20ucjs_textlink%28event%29%7B%0A%0A%20%20if%28event.button%20%21%3D%200%20%26%26%20event.keyCode%20%21%3D%2013%29%20return%3B%0A%0A%0A%0A%20%20var%20Start%20%3D%20new%20Date%28%29.getTime%28%29%3B%0A%0A%0A%0A%20%20const%20relative%20%3D%20true%3B%20//%u76F8%u5BFEurl%u3092%u89E3%u6C7A%u3059%u308B%u304B%u3069%u3046%u304B%0A%0A%0A%0A%20%20const%20ioService%20%3D%20Components.classes%5B%27@mozilla.org/network/io-service%3B1%27%5D%0A%0A%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.nsIIOService%29%3B%0A%0A%0A%0A%20%20const%20urlRegex%20%3D%20/%28%28%28h%3Ft%29%3Ftps%3F%7Ch..ps%3F%7Cftp%7C%28%28%5Cuff48%29%3F%5Cuff54%29%3F%5Cuff54%5Cuff50%28%5Cuff53%29%3F%7C%5Cuff48..%5Cuff50%28%5Cuff53%29%3F%7C%5Cuff46%5Cuff54%5Cuff50%29%28%3A%5C/%5C/%7C%5Cuff1a%5C/%5C/%7C%3A%5Cuff0f%5Cuff0f%7C%5Cuff1a%5Cuff0f%5Cuff0f%29%5B-_.%21%7E*%27%28%29%7Ca-zA-Z0-9%3B%3A%5C/%3F%2C@%26%3D+%24%25%23%5C%5B%5C%5D%5Cuff0d%5Cuff3f%5Cu301c%5Cuffe3%5Cuff0e%5Cuff01%5Cuff5e%5Cuff0a%5Cu2019%5Cuff08%5Cuff09%5Cuff5c%5Cuff41-%5Cuff5a%5Cuff21-%5Cuff3a%5Cuff10-%5Cuff19%5Cuff1b%5Cuff1a%5Cuff0f%5Cuff1f%5Cuff1a%5Cuff20%5Cuff06%5Cuff1d%5Cuff0b%5Cuff04%5Cuff0c%5Cuff05%5Cuff03%5Cuff5c%5Cuff3b%5Cuff3d%5D*%5B-_.%21%7E*%29%7Ca-zA-Z0-9%3B%3A%5C/%3F@%26%3D+%24%25%23%5C%5B%5C%5D%5Cuff0d%5Cuff3f%5Cu301c%5Cuffe3%5Cuff0e%5Cuff01%5Cuff5e%5Cuff0a%5Cu2019%5Cuff5c%5Cuff41-%5Cuff5a%5Cuff21-%5Cuff3a%5Cuff10-%5Cuff19%5Cuff1b%5Cuff1a%5Cuff0f%5Cuff1f%5Cuff20%5Cuff06%5Cuff1d%5Cuff0b%5Cuff04%5Cuff0c%5Cuff05%5Cuff03%5Cuff5c%5Cuff3b%5Cuff3d%5D+%29/ig%3B%0A%0A%20%20const%20urlRegex1%20%3D%20/%28%5B-_.%21%7E*%27%28%29%7Ca-zA-Z0-9%3B%3A%5C/%3F%2C@%26%3D+%24%25%23%5C%5B%5C%5D%5Cuff0d%5Cuff3f%5Cu301c%5Cuffe3%5Cuff0e%5Cuff01%5Cuff5e%5Cuff0a%5Cu2019%5Cuff08%5Cuff09%5Cuff5c%5Cuff41-%5Cuff5a%5Cuff21-%5Cuff3a%5Cuff10-%5Cuff19%5Cuff1b%5Cuff1a%5Cuff0f%5Cuff1f%5Cuff20%5Cuff06%5Cuff1d%5Cuff0b%5Cuff04%5Cuff0c%5Cuff05%5Cuff03%5Cuff5c%5Cuff3b%5Cuff3d%5D*%5B.%5Cuff0e%5D+%5B-_.%21%7E*%27%7Ca-zA-Z0-9%3B%3A%5C/%3F@%26%3D+%24%25%23%5Cuff0d%5Cuff3f%5Cu301c%5Cuffe3%5Cuff0e%5Cuff01%5Cuff5e%5Cuff0a%5Cu2019%5Cuff08%5Cuff09%5Cuff5c%5Cuff41-%5Cuff5a%5Cuff21-%5Cuff3a%5Cuff10-%5Cuff19%5Cuff1b%5Cuff1a%5Cuff0f%5Cuff1f%5Cuff1a%5Cuff20%5Cuff06%5Cuff1d%5Cuff0b%5Cuff04%5Cuff0c%5Cuff05%5Cuff03%5Cuff5c%5D+%5B.%5Cuff0e/%5Cuff0f%5D*%5B-_.%21%7E*%7Ca-zA-Z0-9%3B%3A%5C/%3F@%26%3D+%24%25%23%5Cuff0d%5Cuff3f%5Cu301c%5Cuffe3%5Cuff0e%5Cuff01%5Cuff5e%5Cuff0a%5Cu2019%5Cuff5c%5Cuff41-%5Cuff5a%5Cuff21-%5Cuff3a%5Cuff10-%5Cuff19%5Cuff1b%5Cuff1a%5Cuff0f%5Cuff1f%5Cuff1a%5Cuff20%5Cuff06%5Cuff1d%5Cuff0b%5Cuff04%5Cuff0c%5Cuff05%5Cuff03%5Cuff5c%5D+%29/ig%3B%0A%0A%20%20const%20urlRx%20%3D%20/%5E%28ttp%7Ctp%7Ch..p%7C%5Cuff54%5Cuff54%5Cuff50%7C%5Cuff54%5Cuff50%7C%5Cuff48..%5Cuff50%29/i%3B%0A%0A%20%20const%20urlRx1%20%3D%20/%28%3A%5C/%5C/%7C%5Cuff1a%5C/%5C/%7C%3A%5Cuff0f%5Cuff0f%7C%5Cuff1a%5Cuff0f%5Cuff0f%29/i%3B%0A%0A%20%20const%20mailRx%20%3D%20/%28%5E%28mailto%3A%7C%5Cuff4d%5Cuff41%5Cuff49%5Cuff4c%5Cuff54%5Cuff4f%5Cuff1a%29%28%3F%3A%28%3F%3A%28%3F%3A%28%3F%3A%5Ba-zA-Z0-9_%21%23%5C%24%5C%25%26%27*+/%3D%3F%5C%5E%60%7B%7D%7E%7C%5C-%5D+%29%28%3F%3A%5C.%28%3F%3A%5Ba-zA-Z0-9_%21%23%5C%24%5C%25%26%27*+/%3D%3F%5C%5E%60%7B%7D%7E%7C%5C-%5D+%29%29*%29%7C%28%3F%3A%22%28%3F%3A%5C%5C%5B%5E%5Cr%5Cn%5D%7C%5B%5E%5C%5C%22%5D%29*%22%29%29%29%5C@%28%3F%3A%28%3F%3A%28%3F%3A%28%3F%3A%5Ba-zA-Z0-9_%21%23%5C%24%5C%25%26%27*+/%3D%3F%5C%5E%60%7B%7D%7E%7C%5C-%5D+%29%28%3F%3A%5C.%28%3F%3A%5Ba-zA-Z0-9_%21%23%5C%24%5C%25%26%27*+/%3D%3F%5C%5E%60%7B%7D%7E%7C%5C-%5D+%29%29*%29%7C%28%3F%3A%5C%5B%28%3F%3A%5C%5C%5CS%7C%5B%5Cx21-%5Cx5a%5Cx5e-%5Cx7e%5D%29*%5C%5D%29%29%29%24%29/%3B%0A%0A%20%20const%20mailRx1%20%3D%20/%28%5E%28%3F%3A%28%3F%3A%28%3F%3A%28%3F%3A%5Ba-zA-Z0-9_%21%23%5C%24%5C%25%26%27*+/%3D%3F%5C%5E%60%7B%7D%7E%7C%5C-%5D+%29%28%3F%3A%5C.%28%3F%3A%5Ba-zA-Z0-9_%21%23%5C%24%5C%25%26%27*+/%3D%3F%5C%5E%60%7B%7D%7E%7C%5C-%5D+%29%29*%29%7C%28%3F%3A%22%28%3F%3A%5C%5C%5B%5E%5Cr%5Cn%5D%7C%5B%5E%5C%5C%22%5D%29*%22%29%29%29%5C@%28%3F%3A%28%3F%3A%28%3F%3A%28%3F%3A%5Ba-zA-Z0-9_%21%23%5C%24%5C%25%26%27*+/%3D%3F%5C%5E%60%7B%7D%7E%7C%5C-%5D+%29%28%3F%3A%5C.%28%3F%3A%5Ba-zA-Z0-9_%21%23%5C%24%5C%25%26%27*+/%3D%3F%5C%5E%60%7B%7D%7E%7C%5C-%5D+%29%29*%29%7C%28%3F%3A%5C%5B%28%3F%3A%5C%5C%5CS%7C%5B%5Cx21-%5Cx5a%5Cx5e-%5Cx7e%5D%29*%5C%5D%29%29%29%24%29/%3B%0A%0A%0A%0A//%u30C9%u30AD%u30E5%u30E1%u30F3%u30C8%u3068%u30B3%u30F3%u30C6%u30F3%u30C8%u30BF%u30A4%u30D7%0A%0A%20%20var%20doc%20%3D%20event.originalTarget.ownerDocument%3B%0A%0A%20%20if%28doc.contentType%20%21%3D%20%27text/plain%27%0A%0A%20%20%20%20%20%26%26%20doc.contentType%20%21%3D%20%27text/html%27%0A%0A%20%20%20%20%20%26%26%20doc.contentType%20%21%3D%20%27application/xml%27%0A%0A%20%20%20%20%20%26%26%20doc.contentType%20%21%3D%20%27application/xhtml+xml%27%29%20return%3B%0A%0A%0A%0A%20%20//designMode%u306A%u3089%u4F55%u3082%u3057%u306A%u3044%0A%0A%20%20if%20%28Components.lookupMethod%28doc%2C%20%27designMode%27%29.call%28doc%29%20%3D%3D%20%27on%27%29%20return%3B%0A%0A%0A%0A%20%20var%20win%20%3D%20doc.defaultView%3B%0A%0A%20%20if%28%21win%29return%3B%0A%0A%0A%0A%20%20var%20str1%2C%20text%2C%20str2%3B%0A%0A%0A%0A%20%20//textarea%20%u304B%u3069%u3046%u304B%0A%0A%20%20var%20node%20%3D%20isParentEditableNode%28document.commandDispatcher.focusedElement%29%3B%0A%0A%20%20if%20%28%21node%29%20%7B%0A%0A%20%20//%20%u3053%u306Eif%20%u30D6%u30ED%u30C3%u30AF%u306F%20textarea%u7B49%u4EE5%u5916%u306E%u51E6%u7406%0A%0A%20%20//%u30C0%u30D6%u30EB%u30AF%u30EA%u30C3%u30AF%u3067%u9078%u629E%u3055%u308C%u305F%u9078%u629E%u6587%u5B57%u5217%u306E%u30EC%u30F3%u30B8%u3092%u5F97%u308B%0A%0A%20%20%20%20var%20selection%20%3D%20win.getSelection%28%29%3B%0A%0A%20%20%20%20var%20selRange%3B%0A%0A%20%20%20%20try%7B%0A%0A%20%20%20%20%20%20selRange%20%3D%20selection.getRangeAt%280%29%3B%0A%0A%20%20%20%20%7Dcatch%28e%29%7B%0A%0A%20%20%20%20%20%20selRange%20%3D%20selection%3B%0A%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%28%21selRange%29return%3B%0A%0A%20%20//%u30EC%u30F3%u30B8%u306E%u30CE%u30FC%u30C9%u306A%u3069%0A%0A%20%20%20%20text%20%3D%20selection.toString%28%29%3B%0A%0A%20%20%20%20if%28text%20%3D%3D%20%27%27%29%20return%3B%0A%0A%20%20//debug%28text%29%3B%0A%0A%20%20%20%20var%20sNode%20%3D%20selRange.startContainer%3B%20//debug%28sNode.nodeName%29%3B%0A%0A%20%20%20%20var%20soffset%20%3D%20selRange.startOffset%3B%0A%0A%20%20%20%20var%20eNode%20%3D%20selRange.endContainer%3B%20//debug%28eNode.nodeName%29%3B%0A%0A%20%20%20%20var%20eoffset%20%3D%20selRange.endOffset%3B%0A%0A%20%20%20%20if%20%28sNode%20%21%3D%20eNode%29%7B%0A%0A%20%20%20%20%20%20eNode%20%3D%20sNode%3B%0A%0A%20%20%20%20%20%20eoffset%20%3D%20soffset%20+%20text.length%20-%201%3B%0A%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20sOyaNode%20%3D%20oyaNode%28sNode%29%3B%0A%0A%20%20%20%20var%20eOyaNode%20%3D%20oyaNode%28eNode%29%3B%0A%0A%20%20%20%20var%20root%3B%0A%0A%20%20%20%20if%28sOyaNode%20%3D%3D%20eOyaNode%29%0A%0A%20%20%20%20%20%20root%20%3D%20sOyaNode%3B%0A%0A%20%20%20%20else%0A%0A%20%20%20%20%20%20root%20%3D%20doc%3B%0A%0A%20%20%20%20if%20%28%21root%29%0A%0A%20%20%20%20%20%20return%3B%0A%0A//debug%28%22eOyaNode%20%22%20+%20eOyaNode.nodeName%29%3B%0A%0A%0A%0A%20%20//%u89AA%u30D6%u30ED%u30C3%u30AF%u8981%u7D20%u306E%u6587%u5B57%u5217%u3092%u3059%u3079%u3066%u5F97%u308B%0A%0A%20%20%20%20const%20allowedParents%20%3D%20%5B%0A%0A%20%20%20%20%20%20%20%20/*%22a%22%2C*/%22abbr%22%2C%20%22acronym%22%2C%20%22address%22%2C%20%22applet%22%2C%20%22b%22%2C%20%22bdo%22%2C%20%22big%22%2C%20%22blockquote%22%2C%20%22body%22%2C%0A%0A%20%20%20%20%20%20%20%20%22caption%22%2C%20%22center%22%2C%20%22cite%22%2C%20%22code%22%2C%20%22dd%22%2C%20%22del%22%2C%20%22dir%22%2C%20%22div%22%2C%20%22dfn%22%2C%20%22dl%22%2C%20%22dt%22%2C%20%22em%22%2C%0A%0A%20%20%20%20%20%20%20%20%22fieldset%22%2C%20%22font%22%2C%20%22form%22%2C%20%22h1%22%2C%20%22h2%22%2C%20%22h3%22%2C%20%22h4%22%2C%20%22h5%22%2C%20%22h6%22%2C%20%22i%22%2C%20%22iframe%22%2C%0A%0A%20%20%20%20%20%20%20%20%22ins%22%2C%20%22kdb%22%2C%20%22li%22%2C%20%22menu%22%2C%20%22noframes%22%2C%20%22noscript%22%2C%20%22object%22%2C%20%22ol%22%2C%20%22p%22%2C%20%22pre%22%2C%20%22q%22%2C%20%22samp%22%2C%20%22small%22%2C%20%22span%22%2C%20%22strike%22%2C%0A%0A%20%20%20%20%20%20%20%20%22s%22%2C%20%22strong%22%2C%20%22sub%22%2C%20%22sup%22%2C%20%22table%22%2C%20%22td%22%2C%20%22th%22%2C%20%22thead%22%2C%20%22tt%22%2C%20%22u%22%2C%20%22var%22%0A%0A%20%20%20%20%20%20%20%20%5D%3B%0A%0A%20%20%20%20var%20xpath%20%3D%20%22.//text%28%29%5B%28parent%3A%3A%22%20+%20allowedParents.join%28%22%20or%20parent%3A%3A%22%29%20+%20%22%29%5D%22%3B%0A%0A%0A%0A%20%20%20%20var%20candidates%20%3D%20doc.evaluate%28xpath%2C%20root%2C%20null%2C%20XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE%2C%20null%29%3B%0A%0A//debug%28%22candidates.snapshotLength%20%22%20+%20candidates.snapshotLength%29%3B%0A%0A%20%20//%u30EC%u30F3%u30B8%u3088%u308A%u524D%u306B%u3042%u308B%u6587%u5B57%u5217%0A%0A%20%20%20%20var%20i1%20%3D%20-%201%3B%0A%0A%20%20%20%20for%20%28var%20i%20%3D%20i1%20+%201%2C%20len%20%3D%20candidates.snapshotLength%3B%20i%20%3C%20len%3B%20i++%29%20%7B%0A%0A%20%20%20%20%20%20if%28candidates.snapshotItem%28i%29%20%21%3D%20sNode%29%20continue%3B%0A%0A%20%20%20%20%20%20i1%20%3D%20i%20-%201%3B%0A%0A%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%7D%0A%0A%20%20%20%20str1%20%3D%22%22%3B%0A%0A%20%20%20%20if%20%28i%20%3E%3D%200%29%20%7B%0A%0A%20%20%20%20%20%20for%20%28var%20i%20%3D%20i1%3B%20i%20%3E%3D%200%20%3B%20i--%29%7B%0A%0A%20%20%20%20%20%20%20%20if%28sOyaNode%20%3D%3D%20oyaNode%28candidates.snapshotItem%28i%29%29%29%7B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28candidates.snapshotItem%28i%29.nextSibling%20%26%26%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20/%5Ebr%24/i.test%28candidates.snapshotItem%28i%29.nextSibling.nodeName%29%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20//debug%28candidates.snapshotItem%28i%29.nodeValue%20+%20%22%20%20%22%20+%20candidates.snapshotItem%28i%29.nextSibling.nodeName%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20str1%20%3D%20candidates.snapshotItem%28i%29.nodeValue%20+%20str1%3B%0A%0A//debug%28%22str1%20%22+str1%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28/%5B%20%u3000%5D/.test%28str1%29%29%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7D%0A%0A%20%20%20%20str2%20%3D%20str1%3B%0A%0A%20%20%20%20if%28sNode.nodeValue%20%26%26%20soffset%20%3E%200%29%20str1%20%3D%20str1%20+%20sNode.nodeValue.substr%280%2Csoffset%29%3B%0A%0A%0A%0A%20%20//%u30EC%u30F3%u30B8%u3088%u308A%u5F8C%u308D%u306B%u3042%u308B%u6587%u5B57%u5217%0A%0A%20%20%20%20for%28var%20i%20%3D%20i1%20+%201%2C%20len%20%3D%20candidates.snapshotLength%3B%20i%20%3C%20len%3B%20i++%29%7B%0A%0A%20%20%20%20%20%20if%28sOyaNode%20%3D%3D%20oyaNode%28candidates.snapshotItem%28i%29%29%29%7B%0A%0A%20%20%20%20%20%20%20%20str2%20%3D%20str2%20+%20candidates.snapshotItem%28i%29.nodeValue%3B%0A%0A//debug%28%22str2%20%22+str2%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28i%20%3E%20i1%20+%201%20%26%26%20/%5B%20%u3000%5D/.test%28candidates.snapshotItem%28i%29.nodeValue%29%29%0A%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%0A%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28candidates.snapshotItem%28i%29.nextSibling%20%26%26%0A%0A%20%20%20%20%20%20%20%20%20%20/%5Ebr%24/i.test%28candidates.snapshotItem%28i%29.nextSibling.nodeName%29%29%20%7B%0A%0A%20%20%20%20%20%20%20%20break%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7D%0A%0A%0A%0A%20%20%20%20str2%20%3D%20str2.substr%28str1.length%20+%20text.length%29%3B%0A%0A%20%20%7D%20else%20%7B%0A%0A%20%20%20%20//%20%u3053%u306E%20else%u30D6%u30ED%u30C3%u30AF%u306F%20textarea%u7B49%u306E%u51E6%u7406%0A%0A%20%20%20%20//%20readonly%u3067%u306A%u3044%u306A%u3089%u4F55%u3082%u3057%u306A%u3044%0A%0A%20%20%20if%20%28%21node.hasAttribute%28%22readonly%22%29%29%0A%0A%20%20%20%20%20return%3B%0A%0A%20%20%20if%20%28node%20%26%26%0A%0A%20%20%20%20%20%20%28node.type%20%3D%3D%20%22text%22%20%7C%7C%20node.type%20%3D%3D%20%22textarea%22%29%20%26%26%0A%0A%20%20%20%20%20%20%27selectionStart%27%20in%20node%20%26%26%0A%0A%20%20%20%20%20%20node.selectionStart%20%21%3D%20node.selectionEnd%29%20%7B%0A%0A%20%20%20%20%20%20var%20offsetStart%20%3D%20Math.min%28node.selectionStart%2C%20node.selectionEnd%29%3B%0A%0A%20%20%20%20%20%20var%20offsetEnd%20%20%20%3D%20Math.max%28node.selectionStart%2C%20node.selectionEnd%29%3B%0A%0A%20%20%20%20%20%20str1%20%3D%20node.value.substr%280%2C%20offsetStart%29%3B%0A%0A%20%20%20%20%20%20text%20%3D%20node.value.substr%28offsetStart%2C%20offsetEnd-offsetStart%29%3B%0A%0A%20%20%20%20%20%20str2%20%3D%20node.value.substr%28offsetEnd%29%3B%0A%0A%20%20%20%20%7D%20else%20%7B%0A%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%7D%0A%0A%20%20%7D%0A%0A//%u3059%u3079%u3066%u306E%u6587%u5B57%u5217%u306E%u4E2D%u3067%u306E%u30EC%u30F3%u30B8%u306E%u4F4D%u7F6E%u3092%u5F97%u308B%0A%0A%20%20var%20allStr%20%3D%20str1%20+%20text%20+%20str2%3B%0A%0A%20%20var%20si%20%3D%20str1.length%0A%0A%20%20var%20ei%20%3D%20si%20+%20text.length%3B%0A%0A//%u5168%u89D2%u62EC%u5F27%u8ABF%u6574%0A%0A%20%20while%28text.match%28/%5E%5B%5Cu3001%5Cu3002%5Cuff08%5Cuff5b%5Cuff3b%5Cu300c%5Cu3014%5Cu3008%5Cu300a%5Cu300e%5Cu3010%5Cu2018%5Cu201c%5Cu201d%5Cu2019%5Cu226a%5Cuff1c%5Cuff09%5Cuff5d%5Cuff3d%5Cu300d%5Cu3015%5Cu3009%5Cu300b%5Cu300f%5Cu3011%5Cu2018%5Cu201c%5Cu201d%5Cu2019%5Cu226b%5Cuff1e%5D/%29%29%7B%0A%0A%20%20%20%20si%20%3D%20si%20+%201%3B%0A%0A%20%20%20%20text%20%3D%20text.substr%281%29%3B%0A%0A%20%20%7D%0A%0A%20%20while%28text.match%28/%5B%5Cs%5Cu3001%5Cu3002%5Cuff08%5Cuff5b%5Cuff3b%5Cu300c%5Cu3014%5Cu3008%5Cu300a%5Cu300e%5Cu3010%5Cu2018%5Cu201c%5Cu201d%5Cu2019%5Cu226a%5Cuff1c%5Cuff09%5Cuff5d%5Cuff3d%5Cu300d%5Cu3015%5Cu3009%5Cu300b%5Cu300f%5Cu3011%5Cu2018%5Cu201c%5Cu201d%5Cu2019%5Cu226b%5Cuff1e%5D%24/%29%29%7B%0A%0A%20%20%20%20ei%20%3D%20ei%20-%201%3B%0A%0A%20%20%20%20text%20%3D%20text.substr%280%2Ctext.length%20-1%29%3B%0A%0A%20%20%7D%0A%0A%20%20//%u6587%u672B%u306E.%u306F%u7121%u3044%u3053%u3068%u306B%0A%0A%20%20allStr%20%3D%20allStr.replace%28/%5C.%24/%20%2C%27%27%29%3B%0A%0A%0A%0A//debug%28%222%20%22%20+%20str2%29%3B%0A%0A//debug%28%22Str%20%22%20+%20text%29%3B%0A%0A//debug%28%221%20%22%20+%20str1%29%3B%0A%0A//debug%28%22all%20%22%20+%20allStr%29%3B%0A%0A%0A%0A//%u3059%u3079%u3066%u306E%u6587%u5B57%u5217%u306E%u4E2D%u3067URL%u3068%u601D%u3057%u304D%u6587%u5B57%u5217%u3092%u914D%u5217%u3068%u3057%u3066%u5F97%u308B%0A%0A%20%20var%20i1%2C%20i2%3B%0A%0A%20%20var%20arrUrl%20%3D%20allStr.match%28urlRegex%29%3B%0A%0A%20%20if%28arrUrl%29%7B%0A%0A//%u898B%u3064%u304B%u3063%u305FURL%u3068%u601D%u3057%u304D%u6587%u5B57%u5217%u306E%u4E2D%u306B%u30EC%u30F3%u30B8%u304C%u542B%u307E%u308C%u3066%u3044%u308B%u304B%u3069%u3046%u304B%0A%0A%20%20%20%20i2%3D0%0A%0A%20%20%20%20for%28var%20i%20%3D0%2Clen%20%3D%20arrUrl.length%3B%20i%20%3C%20len%3B%20i++%29%7B%0A%0A//debug%28i%20+%20%22%5D%20%22%20+%20arrUrl%5Bi%5D%29%3B%0A%0A%20%20%20%20%20%20i1%20%3D%20allStr.indexOf%28arrUrl%5Bi%5D%2Ci2%29%3B%0A%0A%20%20%20%20%20%20i2%20%3D%20i1%20+%20arrUrl%5Bi%5D.length%3B%0A%0A//debug%28i1%20%3C%3D%20si%20%26%26%20ei%20%3C%3D%20i2%29%3B%0A%0A%20%20%20%20%20%20if%28i1%20%3C%3D%20si%20%26%26%20ei%20%3C%3D%20i2%29%7B%0A%0A%20%20%20%20%20%20%20%20//%u3053%u306EURL%u3068%u601D%u3057%u304D%u6587%u5B57%u5217%u306E%u4E2D%u306B%u30EC%u30F3%u30B8%u304C%u542B%u307E%u308C%u3066%u3044%u305F%u306E%u3067%2C%u3053%u308C%u3092URL%u3068%u3057%u3066%u65B0%u3057%u3044%u30BF%u30D6%u3067%u958B%u304D%u307E%u3057%u3087%u3046%0A%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20arrUrl%5Bi%5D%3B%0A%0A%20%20%20%20%20%20%20%20//%20%7E%u7B49%20%u3092%u534A%u89D2%u306B%0A%0A%20%20%20%20%20%20%20%20url%20%3D%20url.replace%28/%5Cu301c/g%2C%27%5Cuff5e%27%29%3B%0A%0A%20%20%20%20%20%20%20%20url%20%3D%20url.replace%28/%5Cuffe3/g%2C%27%5Cuff5e%27%29%3B%0A%0A%20%20%20%20%20%20%20%20//%20%u672B%u5C3E%u306E%20%29%u3084%5D%20%u306E%u8ABF%u6574%0A%0A%20%20%20%20%20%20%20%20if%20%28/%5C%29%24/.test%28url%29%29%7B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28url.indexOf%28%22%28%22%29%20%3D%3D%20-1%29%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20url%20%3D%20url.replace%28/%5C%29%24/%2C%27%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28/%5C%5D%24/.test%28url%29%29%7B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28url.indexOf%28%22%5B%22%29%20%3D%3D%20-1%29%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20url%20%3D%20url.replace%28/%5C%5D%24/%2C%27%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28/%5B.%2C%5D%24/.test%28url%29%29%7B%0A%0A%20%20%20%20%20%20%20%20%20%20url%20%3D%20url.replace%28/%5B.%2C%5D%24/%2C%27%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20//%20ttp%u7B49%u3092%20http%u7B49%u306B%20%u304A%u3088%u3073%20%20%3A//%20%u3092%20%u534A%u89D2%u306B%0A%0A%20%20%20%20%20%20%20%20url%20%3D%20/%5E%28ftp%7C%5Cuff46%5Cuff54%5Cuff50%29/i.test%28url%29%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20url.replace%28urlRx1%2C%27%3A//%27%29%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20url.replace%28urlRx%2C%27http%27%29.replace%28urlRx1%2C%27%3A//%27%29%3B%0A%0A%20%20%20%20%20%20%20%20var%20URIFixup%20%3D%20Components.classes%5B%27@mozilla.org/docshell/urifixup%3B1%27%5D%0A%0A%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.nsIURIFixup%29%3B%0A%0A%20%20%20%20%20%20%20%20var%20uri%20%3D%20URIFixup.createFixupURI%28%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20url%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20URIFixup.FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP%20%29%3B%0A%0A%20%20%20%20%20%20%20%20if%28%21uri%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%21isValidTld%28uri%29%29%0A%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20%20%20uri%20%3D%20ioService.newURI%28uri.spec%2C%20null%2C%20null%29%3B%0A%0A%20%20%20%20%20%20%20%20debug%28%27Parsing%20ucjs_textlink%3A%20%27+%28%28new%20Date%28%29%29.getTime%28%29-Start%29%20+%27msec%5Cn%27%29%3B%0A%0A%20%20%20%20%20%20%20%20try%7B%0A%0A%20%20%20%20%20%20%20%20%20%20if%28event.shiftKey%29%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20saveAsURL%28uri%2Cdoc%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20else%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20openNewTab%28uri%29%3B%0A%0A%20%20%20%20%20%20%20%20%7Dcatch%28e%29%7B%7D%0A%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7D%0A%0A%20%20%7D%0A%0A%20%20if%28%20%21relative%20%29%20return%3B%0A%0A//%u3059%u3079%u3066%u306E%u6587%u5B57%u5217%u306E%u4E2D%u3067%u76F8%u5BFEURL%u3068%u601D%u3057%u304D%u6587%u5B57%u5217%u3092%u914D%u5217%u3068%u3057%u3066%u5F97%u308B%0A%0A%20%20arrUrl%20%3D%20allStr.match%28urlRegex1%29%3B%0A%0A%20%20if%28%21arrUrl%29%20return%3B%0A%0A%20%20i2%3D0%0A%0A%20%20for%28var%20i%20%3D0%2Clen%20%3D%20arrUrl.length%3B%20i%20%3C%20len%3B%20i++%29%7B%0A%0A//debug%28%22Relative%20%22%20+%20arrUrl%5Bi%5D%29%3B%0A%0A%20%20%20%20i1%20%3D%20allStr.indexOf%28arrUrl%5Bi%5D%2Ci2%29%3B%0A%0A%20%20%20%20i2%20%3D%20i1%20+%20arrUrl%5Bi%5D.length%3B%0A%0A%0A%0A//debug%28i1%20+%22%20%22+%20si%20+%22%20%22+%20ei%20+%22%20%22+%20i2%29%3B%0A%0A%20%20%20%20if%28i1%20%3C%3D%20si%20%26%26%20ei%20%3C%3D%20i2%29%7B%0A%0A//debug%28arrUrl%5Bi%5D%29%3B%0A%0A%20%20%20%20%20%20//%u3053%u306EURL%u3068%u601D%u3057%u304D%u6587%u5B57%u5217%u306E%u4E2D%u306B%u30EC%u30F3%u30B8%u304C%u542B%u307E%u308C%u3066%u3044%u305F%u306E%u3067%2C%u3053%u308C%u3092URL%u3068%u3057%u3066%u65B0%u3057%u3044%u30BF%u30D6%u3067%u958B%u304D%u307E%u3057%u3087%u3046%0A%0A%20%20%20%20%20%20var%20url%20%3D%20arrUrl%5Bi%5D%3B%0A%0A%20%20%20%20%20%20//%20%7E%u7B49%20%u3092%u534A%u89D2%u306B%0A%0A%20%20%20%20%20%20url%20%3D%20url.replace%28/%5Cu301c/g%2C%27%5Cuff5e%27%29%3B%0A%0A%20%20%20%20%20%20url%20%3D%20url.replace%28/%5Cuffe3/g%2C%27%5Cuff5e%27%29%3B%0A%0A%20%20%20%20%20%20//%20%u672B%u5C3E%u306E%20%29%u3084%5D%20%u306E%u8ABF%u6574%0A%0A%20%20%20%20%20%20if%20%28/%5C%29%24/.test%28url%29%29%7B%0A%0A%20%20%20%20%20%20%20%20if%20%28url.indexOf%28%22%28%22%29%20%3D%3D%20-1%29%0A%0A%20%20%20%20%20%20%20%20%20%20url%20%3D%20url.replace%28/%5C%29%24/%2C%27%27%29%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28/%5C%5D%24/.test%28url%29%29%7B%0A%0A%20%20%20%20%20%20%20%20if%20%28url.indexOf%28%22%5B%22%29%20%3D%3D%20-1%29%0A%0A%20%20%20%20%20%20%20%20%20%20url%20%3D%20url.replace%28/%5C%5D%24/%2C%27%27%29%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28/%5B.%2C%5D%24/.test%28url%29%29%7B%0A%0A%20%20%20%20%20%20%20%20url%20%3D%20url.replace%28/%5B.%2C%5D%24/%2C%27%27%29%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%20host%u540D%u304C%20ftp%20%u3067%u59CB%u307E%u308B%u306A%u3089%20ftp%3A//%u306B%0A%0A%20%20%20%20%20%20if%20%28/%5Eftp/.test%28url%29%29%7B%0A%0A%20%20%20%20%20%20%20%20url%20%3D%20%22ftp%3A//%22%20+%20url%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%20host%u540D%u304C%20irc%20%u3067%u59CB%u307E%u308B%u306A%u3089%20irc%3A%u306B%0A%0A%20%20%20%20%20%20if%20%28/%5Eirc/.test%28url%29%29%7B%0A%0A%20%20%20%20%20%20%20%20url%20%3D%20%22irc%3A//%22%20+%20url%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%u30E1%u30FC%u30EB%3F%0A%0A%20%20%20%20%20%20if%20%28mailRx1.test%28url%29%29%20%7B%0A%0A%20%20%20%20%20%20%20%20url%20%3D%20%22mailto%3A%22%20+%20url%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20//%u76F8%u5BFE%u30D1%u30B9%u306E%u51E6%u7406%0A%0A%20%20%20%20%20%20if%28url.match%28/%5E%5C.%7B1%2C%7D/%29%29%7B%0A%0A%20%20%20%20%20%20%20%20var%20baseURI%20%3D%20ioService.newURI%28win.document.documentURI%2C%20null%2C%20null%29%3B%0A%0A%20%20%20%20%20%20%20%20url%20%3D%20ioService.newURI%28url%2C%20null%2C%20baseURI%29.spec%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A//debug%28url.indexOf%28url.match%28urlRegex%29%29%29%3B%0A%0A%20%20%20%20%20%20if%20%28%21mailRx.test%28url%29%20%26%26%20url.indexOf%28url.match%28urlRegex%29%29%20%3E%201%29%20return%3B%0A%0A%20%20%20%20%20%20var%20URIFixup%20%3D%20Components.classes%5B%27@mozilla.org/docshell/urifixup%3B1%27%5D%0A%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.nsIURIFixup%29%3B%0A%0A%20%20%20%20%20%20try%7B%0A%0A//debug%28url%29%3B%0A%0A%20%20%20%20%20%20%20%20var%20uri%20%3D%20URIFixup.createFixupURI%28%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20url%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20URIFixup.FIXUP_FLAG_NONE%20%29%3B%20//FIXUP_FLAG_ALLOW_KEYWORD_LOOKUP%u2192FIXUP_FLAG_NONE%0A%0A%20%20%20%20%20%20%7Dcatch%28e%29%7Breturn%3B%7D%0A%0A%20%20%20%20%20%20if%28%21uri%29%20return%3B%0A%0A%0A%0A%20%20%20%20%20%20if%20%28%21isValidTld%28uri%29%29%20%7B%0A%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20%7D%0A%0Adebug%28url%29%3B%0A%0A%20%20%20%20%20%20uri%20%3D%20ioService.newURI%28uri.spec%2C%20null%2C%20null%29%3B%0A%0A%20%20%20%20%20%20debug%28%27Parsing%20ucjs_textlink%3A%20%27+%28%28new%20Date%28%29%29.getTime%28%29-Start%29%20+%27msec%5Cn%27+uri.spec%29%3B%0A%0A%20%20%20%20%20%20try%7B%0A%0A%20%20%20%20%20%20%20%20if%28event.shiftKey%29%0A%0A%20%20%20%20%20%20%20%20%20%20saveAsURL%28uri%2Cdoc%29%3B%0A%0A%20%20%20%20%20%20%20%20else%0A%0A%20%20%20%20%20%20%20%20%20%20openNewTab%28uri%29%3B%0A%0A%20%20%20%20%20%20%20%20%7Dcatch%28e%29%7B%7D%0A%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%7D%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20activeBrowser%28%29%20%7B%0A%0A%20%20%20%20return%20%28%27SplitBrowser%27%20in%20window%20%3F%20SplitBrowser.activeBrowser%20%3A%20null%20%29%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%20gBrowser%3B%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20_getFocusedWindow%28%29%7B%20//%u73FE%u5728%u306E%u30A6%u30A4%u30F3%u30C9%u30A6%u3092%u5F97%u308B%0A%0A%20%20%20%20var%20focusedWindow%20%3D%20document.commandDispatcher.focusedWindow%3B%0A%0A%20%20%20%20if%20%28%21focusedWindow%20%7C%7C%20focusedWindow%20%3D%3D%20window%29%0A%0A%20%20%20%20%20%20%20%20return%20window._content%3B%0A%0A%20%20%20%20else%0A%0A%20%20%20%20%20%20%20%20return%20focusedWindow%3B%0A%0A%20%20%7D%0A%0A%0A%0A//%u30EC%u30F3%u30B8%u306E%u8981%u7D20%u304C%u6240%u5C5E%u3059%u308B%u89AA%u30D6%u30ED%u30C3%u30AF%u8981%u7D20%u3092%u5F97%u308B%0A%0A%20%20function%20oyaNode%28aNode%29%7B%0A%0A%20%20%20%20var%20pNode%20%3D%20aNode.parentNode%3B%0A%0A%20%20%20%20while%28pNode%20%26%26%20/%5E%28a%7Cabbr%7Cacronym%7Cb%7Cbdo%7Cbig%7Cbody%7Ccode%7Cdfn%7Cem%7Cfont%7Ci%7Ckbd%7Clabel%7Cpre%7Cq%7Csamp%7Csmall%7Cspan%7Cstrong%7Csub%7Csup%7Ctt%7Cvar%7Cwbr%29%24/i.test%28pNode.nodeName%29%20%29%7B%0A%0A%20%20%20%20%20%20pNode%20%3D%20pNode.parentNode%3B%0A%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20pNode%3B%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20isParentEditableNode%28node%29%7B%0A%0A%20%20%20%20//if%20%28Components.lookupMethod%28node.ownerDocument%2C%20%27designMode%27%29.call%28node.ownerDocument%29%20%3D%3D%20%27on%27%29%0A%0A%20%20%20%20//%20%20return%20node%3B%0A%0A%20%20%20%20while%20%28node%20%26%26%20node.parentNode%29%20%7B%0A%0A%20%20%20%20%20%20try%20%7B%0A%0A%20%20%20%20%20%20%20%20node.QueryInterface%28Ci.nsIDOMNSEditableElement%29%3B%0A%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20catch%28e%29%20%7B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28/input%7Ctextarea/.test%28node.localName%29%29%0A%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%0A%20%20%20%20%20%20if%20%28node.isContentEditable%20%7C%7C%20node.contentEditable%3D%3D%27true%27%29%0A%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%0A%20%20%20%20%20%20node%20%3D%20node.parentNode%3B%0A%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20null%3B%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20isValidTld%28aURI%29%7B%0A%0A%20%20%20%20const%20regexpTLD%20%3D%20new%20RegExp%28%22%5C%5C.%28arpa%7Cint%7Cnato%7Ccom%7Cnet%7Corg%7Cinfo%7Cbiz%7Cname%7Cpro%7Cmuseum%7Ccoop%7Caero%7Cedu%7Cgov%7Cmil%7Cac%7Cad%7Cae%7Caf%7Cag%7Cai%7Cal%7Cam%7Can%7Cao%7Caq%7Car%7Cas%7Cat%7Cau%7Caw%7Cax%7Caz%7Cba%7Cbb%7Cbd%7Cbe%7Cbf%7Cbg%7Cbh%7Cbi%7Cbj%7Cbm%7Cbn%7Cbo%7Cbr%7Cbs%7Cbt%7Cbu%7Cbv%7Cbw%7Cby%7Cbz%7Cca%7Ccc%7Ccd%7Ccf%7Ccg%7Cch%7Cci%7Cck%7Ccl%7Ccm%7Ccn%7Cco%7Ccp%7Ccr%7Ccs%7Csk%7Ccu%7Ccv%7Ccx%7Ccy%7Ccz%7Cdd%7Cde%7Cdg%7Cdj%7Cdk%7Cdm%7Cdo%7Cdz%7Cea%7Cec%7Cee%7Ceg%7Ceh%7Cer%7Ces%7Cet%7Cfi%7Cfj%7Cfk%7Cfm%7Cfo%7Cfr%7Cfx%7Cga%7Cgb%7Cgd%7Cge%7Cgf%7Cgg%7Cgh%7Cgi%7Cgl%7Cgm%7Cgn%7Cgp%7Cgq%7Cgr%7Cgs%7Cgt%7Cgu%7Cgw%7Cgy%7Chk%7Chm%7Chn%7Chr%7Cht%7Chu%7Cic%7Cid%7Cie%7Cil%7Cim%7Cin%7Cio%7Ciq%7Cir%7Cis%7Cit%7Cje%7Cjm%7Cjo%7Cjp%7Cke%7Ckg%7Ckh%7Cki%7Ckm%7Ckn%7Ckp%7Ckr%7Ckw%7Cky%7Ckz%7Cla%7Clb%7Clc%7Cli%7Clk%7Clr%7Cls%7Clt%7Clu%7Clv%7Cly%7Cma%7Cmc%7Cmd%7Cmg%7Cmh%7Cmk%7Cml%7Cmm%7Cmn%7Cmo%7Cmp%7Cmq%7Cmr%7Cms%7Cmt%7Cmu%7Cmv%7Cmw%7Cmx%7Cmy%7Cmz%7Cna%7Cnc%7Cne%7Cnf%7Cng%7Cni%7Cnl%7Cno%7Cnp%7Cnr%7Cnt%7Cnu%7Cnz%7Com%7Cpa%7Cpc%7Cpe%7Cpf%7Cpg%7Cph%7Cpk%7Cpl%7Cpm%7Cpn%7Cpr%7Cps%7Cpt%7Cpw%7Cpy%7Cqa%7Cre%7Cro%7Cru%7Crw%7Csa%7Csb%7Csc%7Csd%7Cse%7Csg%7Csh%7Csi%7Csj%7Csk%7Csl%7Csm%7Csn%7Cso%7Csr%7Cst%7Csu%7Csv%7Csy%7Csz%7Cta%7Ctc%7Ctd%7Ctf%7Ctg%7Cth%7Ctj%7Ctk%7Ctm%7Ctn%7Cto%7Ctp%7Ctr%7Ctt%7Ctv%7Ctw%7Ctz%7Cua%7Cug%7Cuk%7Cum%7Cus%7Cuy%7Cuz%7Cva%7Cvc%7Cve%7Cvg%7Cvi%7Cvn%7Cvu%7Cwf%7Cwg%7Cws%7Cyd%7Cye%7Cyt%7Cyu%7Cza%7Czm%7Czr%7Czw%29%5C%5C.%3F%24%22%2C%22%22%29%3B%0A%0A%20%20%20%20const%20regexpIP%20%3D%20new%20RegExp%28%22%5E%5B1-2%5D%3F%5B0-9%5D%3F%5B0-9%5D%5C%5C.%5B1-2%5D%3F%5B0-9%5D%3F%5B0-9%5D%5C%5C.%5B1-2%5D%3F%5B0-9%5D%3F%5B0-9%5D%5C%5C.%5B1-2%5D%3F%5B0-9%5D%3F%5B0-9%5D%24%22%2C%22%22%29%3B%0A%0A%20%20%20%20var%20host%2C%20tlds%3B%0A%0A%20%20%20%20try%20%7B%0A%0A%20%20%20%20%20%20host%20%3D%20aURI.host.split%28%27/%27%29%5B0%5D%3B%0A%0A%20%20%20%20%7D%20catch%28e%29%20%7B%0A%0A%20%20%20%20%20%20if%20%28aURI.spec.match%28/%5E%28.+%3F%5C/%5C/%28%3F%3A%5B%5E%5C/%5D+@%29%3F%29%28%5B%5E%5C/%5D+%29%28%3A%5Cd+%29%3F%28%3F%3A.*%29%24/%29%29%20%7B%0A%0A%20%20%20%20%20%20%20%20host%20%3D%20RegExp.%242%3B%0A%0A%20%20%20%20%20%20%7D%20else%20if%20%28aURI.spec.match%28/%5E%28mailto%3A%28%3F%3A%5B%5E%5C/%5D+@%29%3F%29%28%5B%5E%5C/%5D+%29%28%3A%5Cd+%29%3F%28%3F%3A.*%29%24/%29%29%7B%0A%0A%20%20%20%20%20%20%20%20host%20%3D%20RegExp.%242%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7D%0A%0A//debug%28%22host%20%20%22%20+%20host%29%3B%0A%0A%20%20%20%20if%20%28%21host%29%0A%0A%20%20%20%20%20%20return%20false%3B%0A%0A%20%20%20%20if%20%28getVer%28%29%20%3C%203.0%29%7B%0A%0A%20%20%20%20%20%20if%20%28regexpTLD.test%28host%29%29%0A%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%0A%20%20%20%20%20%20else%0A%0A%20%20%20%20%20%20%20%20return%20%28regexpIP.test%28host%29%29%3B%0A%0A%20%20%20%20%7D%20else%20%7B%0A%0A%20%20%20%20%20%20var%20eTLDService%20%3D%20Components.classes%5B%22@mozilla.org/network/effective-tld-service%3B1%22%5D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIEffectiveTLDService%29%3B%0A%0A%20%20%20%20%20%20try%20%7B%0A%0A%20%20%20%20%20%20%20%20var%20tld%20%3D%20eTLDService.getPublicSuffixFromHost%28host%29%3B%0A%0A%20%20%20%20%20%20%20%20return%20regexpTLD.test%28%27.%27+tld%29%3B%0A%0A%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%0A%20%20%20%20%20%20%20%20return%20%28regexpIP.test%28host%29%29%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7D%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20saveAsURL%28uri%2Cdoc%29%7B%0A%0A%20%20%20%20var%20linkText%20%3D%20uri.spec%3B%0A%0A%20%20%20%20//Thunderbird%0A%0A%20%20%20%20if%20%28/%5Echrome%3A%5C/%5C/messenger%5C/content%5C//.test%28window.location.href%29%29%20%7B%0A%0A%20%20%20%20%20%20//%20URL%20Loading%20Security%20Check%0A%0A%20%20%20%20%20%20var%20focusedWindow%20%3D%20document.commandDispatcher.focusedWindow%3B%0A%0A%20%20%20%20%20%20var%20sourceURL%20%3D%20getContentFrameURI%28focusedWindow%29%3B%0A%0A%20%20%20%20%20%20const%20nsIScriptSecurityManager%20%3D%20Components.interfaces.nsIScriptSecurityManager%3B%0A%0A%20%20%20%20%20%20var%20secMan%20%3D%20Components.classes%5B%22@mozilla.org/scriptsecuritymanager%3B1%22%5D%0A%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.getService%28nsIScriptSecurityManager%29%3B%0A%0A%20%20%20%20%20%20try%20%7B%0A%0A%20%20%20%20%20%20%20%20secMan.checkLoadURIStr%28sourceURL%2C%20uri.spec%2C%20nsIScriptSecurityManager.STANDARD%29%3B%0A%0A%20%20%20%20%20%20%7D%20catch%20%28e%29%20%7B%0A%0A%20%20%20%20%20%20%20%20throw%20%22Load%20of%20%22%20+%20url%20+%20%22%20denied.%22%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20saveURL%28%20uri.spec%2C%20linkText%2C%20null%2C%20true%20%29%3B%0A%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%7D%0A%0A%0A%0A%20%20%20%20//%20urlSecurityCheck%20wanted%20a%20URL-as-string%20for%20Fx%202.0%2C%20but%20an%20nsIPrincipal%20on%20trunk%0A%0A%20%20%20%20if%28activeBrowser%28%29.contentPrincipal%29%0A%0A%20%20%20%20%20%20urlSecurityCheck%28uri.spec%2C%20activeBrowser%28%29.contentPrincipal%2CCi.nsIScriptSecurityManager.DISALLOW_INHERIT_PRINCIPAL%29%3B%0A%0A%20%20%20%20else%0A%0A%20%20%20%20%20%20urlSecurityCheck%28uri.spec%2C%20activeBrowser%28%29.currentURI.spec%2CCi.nsIScriptSecurityManager.DISALLOW_SCRIPT%29%3B%0A%0A%0A%0A%20%20%20%20saveURL%28%20uri.spec%2C%20linkText%2C%20null%2C%20true%2C%20false%2C%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20makeURI%28doc.location.href%2C%20doc.characterSet%29%20%29%3B%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20openNewTab%28uri%29%7B%0A%0A%20%20%20%20//Thunderbird%0A%0A%20%20%20%20if%20%28/%5Echrome%3A%5C/%5C/messenger%5C/content%5C//.test%28window.location.href%29%29%20%7B%0A%0A%20%20%20%20%20%20//%20Make%20sure%20we%20are%20allowed%20to%20open%20this%20URL%0A%0A%20%20%20%20%20%20//%20URL%20Loading%20Security%20Check%0A%0A%20%20%20%20%20%20var%20focusedWindow%20%3D%20document.commandDispatcher.focusedWindow%3B%0A%0A%20%20%20%20%20%20var%20sourceURL%20%3D%20getContentFrameURI%28focusedWindow%29%3B%0A%0A%20%20%20%20%20%20const%20nsIScriptSecurityManager%20%3D%20Components.interfaces.nsIScriptSecurityManager%3B%0A%0A%20%20%20%20%20%20var%20secMan%20%3D%20Components.classes%5B%22@mozilla.org/scriptsecuritymanager%3B1%22%5D%0A%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.getService%28nsIScriptSecurityManager%29%3B%0A%0A%20%20%20%20%20%20try%20%7B%0A%0A%20%20%20%20%20%20%20%20secMan.checkLoadURIStr%28sourceURL%2C%20uri.spec%2C%20nsIScriptSecurityManager.STANDARD%29%3B%0A%0A%20%20%20%20%20%20%7D%20catch%20%28e%29%20%7B%0A%0A%20%20%20%20%20%20%20%20throw%20%22Load%20of%20%22%20+%20url%20+%20%22%20denied.%22%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20var%20protocolSvc%20%3D%20Components.classes%5B%22@mozilla.org/uriloader/external-protocol-service%3B1%22%5D%0A%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.nsIExternalProtocolService%29%3B%0A%0A%20%20%20%20%20%20protocolSvc.loadUrl%28uri%29%3B%0A%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%7D%0A%0A%0A%0A%20%20%20%20//%20urlSecurityCheck%20wanted%20a%20URL-as-string%20for%20Fx%202.0%2C%20but%20an%20nsIPrincipal%20on%20trunk%0A%0A%20%20%20%20if%28activeBrowser%28%29.contentPrincipal%29%0A%0A%20%20%20%20%20%20urlSecurityCheck%28uri.spec%2C%20activeBrowser%28%29.contentPrincipal%2CCi.nsIScriptSecurityManager.DISALLOW_INHERIT_PRINCIPAL%29%3B%0A%0A%20%20%20%20else%0A%0A%20%20%20%20%20%20urlSecurityCheck%28uri.spec%2C%20activeBrowser%28%29.currentURI.spec%2CCi.nsIScriptSecurityManager.DISALLOW_SCRIPT%29%3B%0A%0A%20%20%20%20if%28%20%28event.ctrlKey%29%20%29%7B%0A%0A%20%20%20%20%20%20%20%20loadURI%28uri.spec%2C%20null%2C%20null%2C%20false%29%3B%0A%0A%20%20%20%20%7Delse%7B%0A%0A%20%20%20%20%20%20if%20%28%27TreeStyleTabService%27%20in%20window%29%0A%0A%20%20%20%20%20%20%20%20TreeStyleTabService.readyToOpenChildTab%28activeBrowser%28%29.selectedTab%29%3B%0A%0A%20%20%20%20%20%20openNewTabWith%28uri.spec%2C%20null%2C%20%20null%2C%20null%2C%20false%29%0A%0A%20%20%20%20%20%20//activeBrowser%28%29.loadOneTab%28uri.spec%2C%20null%2C%20null%2C%20null%2C%20getPref%28%22browser.tabs.loadInBackground%22%2C%20%22bool%22%2C%20false%29%2C%20false%29%3B%0A%0A%0A%0A%20%20%20%20%20%20//activeBrowser%28%29.selectedTab%20%3D%20activeBrowser%28%29.addTab%28uri.spec%29%3B%0A%0A%20%20%20%20%7D%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20getVer%28%29%7B%0A%0A%20%20%20%20const%20Cc%20%3D%20Components.classes%3B%0A%0A%20%20%20%20const%20Ci%20%3D%20Components.interfaces%3B%0A%0A%20%20%20%20var%20info%20%3D%20Cc%5B%22@mozilla.org/xre/app-info%3B1%22%5D.getService%28Ci.nsIXULAppInfo%29%3B%0A%0A%20%20%20%20//%20%u3053%u306E%u30B3%u30FC%u30C9%u3092%u5B9F%u884C%u3057%u3066%u3044%u308B%u30A2%u30D7%u30EA%u30B1%u30FC%u30B7%u30E7%u30F3%u306E%u540D%u524D%u3092%u53D6%u5F97%u3059%u308B%0A%0A%20%20%20%20var%20ver%20%3D%20parseInt%28info.version.substr%280%2C3%29%20*%2010%2C10%29%20/%2010%3B%0A%0A%20%20%20%20return%20ver%3B%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20getPref%28aPrefString%2C%20aPrefType%2C%20aDefault%29%7B%0A%0A%20%20%20%20var%20xpPref%20%3D%20Components.classes%5B%22@mozilla.org/preferences-service%3B1%22%5D%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIPrefBranch2%29%3B%0A%0A%20%20%20%20try%7B%0A%0A%20%20%20%20%20%20switch%20%28aPrefType%29%7B%0A%0A%20%20%20%20%20%20%20%20case%20%22str%22%3A%0A%0A%20%20%20%20%20%20%20%20%20%20return%20xpPref.getCharPref%28aPrefString%29.toString%28%29%3B%20break%3B%0A%0A%20%20%20%20%20%20%20%20case%20%22int%22%3A%0A%0A%20%20%20%20%20%20%20%20%20%20return%20xpPref.getIntPref%28aPrefString%29%3B%20break%3B%0A%0A%20%20%20%20%20%20%20%20case%20%22bool%22%3A%0A%0A%20%20%20%20%20%20%20%20default%3A%0A%0A%20%20%20%20%20%20%20%20%20%20return%20xpPref.getBoolPref%28aPrefString%29%3B%20break%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7Dcatch%28e%29%7B%0A%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20aDefault%3B%0A%0A%20%20%7D%0A%0A%0A%0A%20%20function%20debug%28aMsg%29%7B%0A%0A%20%20%20%20const%20Cc%20%3D%20Components.classes%3B%0A%0A%20%20%20%20const%20Ci%20%3D%20Components.interfaces%3B%0A%0A%20%20%20%20Cc%5B%22@mozilla.org/consoleservice%3B1%22%5D%0A%0A%20%20%20%20%20%20.getService%28Ci.nsIConsoleService%29%0A%0A%20%20%20%20%20%20.logStringMessage%28aMsg%29%3B%0A%0A%20%20%7D%0A%0A%7D%0A%0Avar%20textLinkForSidebar%20%3D%20%7B%0A%0A%20%20init%3A%20function%28event%29%7B%0A%0A%20%20%20%20try%7B%0A%0A%20%20%20%20%20%20var%20doc%20%3D%20event.originalTarget%3B%0A%0A%20%20%20%20%20%20if%20%28%21doc.location%29%20return%3B%0A%0A%20%20%20%20%20%20if%28doc.location.href%20%3D%3D%20%22chrome%3A//browser/content/web-panels.xul%22%29%7B%0A%0A%20%20%20%20%20%20%20%20doc.addEventListener%28%27dblclick%27%2Cfunction%28event%29%7BsetTimeout%28ucjs_textlink%2C100%2Cevent%29%3B%7D%2Cfalse%29%3B%0A%0A%20%20%20%20%20%20%20%20doc.addEventListener%28%27keypress%27%2Cfunction%28event%29%7Bucjs_textlink%28event%29%3B%7D%2Cfalse%29%3B%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7Dcatch%28e%29%7B%7D%0A%0A%20%20%7D%2C%0A%0A%20%20uninit%3A%20function%28event%29%7B%0A%0A%20%20%20%20try%7B%0A%0A%20%20%20%20%20%20var%20doc%20%3D%20event.originalTarget%3B%0A%0A%20%20%20%20%20%20if%20%28%21doc.location%29%20return%3B%0A%0A%20%20%20%20%20%20if%28doc.location.href%20%3D%3D%20%22chrome%3A//browser/content/web-panels.xul%22%29%7B%0A%0A%20%20%20%20%20%20%20%20doc.removeEventListener%28%27dblclick%27%2Cfunction%28event%29%7BsetTimeout%28ucjs_textlink%2C100%2Cevent%29%3B%7D%2Cfalse%29%3B%0A%0A%20%20%20%20%20%20%20%20doc.removeEventListener%28%27keypress%27%2Cfunction%28event%29%7Bucjs_textlink%28event%29%3B%7D%2Cfalse%29%3B%0A%0A%0A%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7Dcatch%28e%29%7B%7D%0A%0A%20%20%7D%0A%0A%7D%0A%0A//for%20contents%20area%0A%0Aif%20%28/%5Echrome%3A%5C/%5C/messenger%5C/content%5C//.test%28window.location.href%29%29%20%7B%0A%0A%20%20var%20target%20%3D%20document.getElementById%28%22messagepane%22%29%3B%0A%0A%7D%20else%20%7B%0A%0A%20%20var%20target%20%3D%20document.getElementById%28%22appcontent%22%29%3B%0A%0A%7D%0A%0Atarget.addEventListener%28%27dblclick%27%2Cfunction%28event%29%7BsetTimeout%28ucjs_textlink%2C100%2Cevent%29%3B%7D%2Cfalse%29%3B%0A%0Atarget.addEventListener%28%27keypress%27%2Cfunction%28event%29%7Bucjs_textlink%28event%29%3B%7D%2Cfalse%29%3B%0A%0A//for%20already%20loaded%20chrome%3A//browser/content/web-panels.xul%0A%0Aif%20%28%21/%5Echrome%3A%5C/%5C/messenger%5C/content%5C//.test%28window.location.href%29%29%20%7B%0A%0A%20%20setTimeout%28function%28%29%7B%0A%0A%20%20%20%20try%7B%0A%0A%20%20%20%20%20%20var%20doc%20%3D%20document.getElementById%28%27sidebar%27%29.contentDocument%3B%0A%0A%20%20%20%20%20%20if%28doc%20%26%26%20doc.location%20%26%26%20doc.location.href%20%3D%3D%20%22chrome%3A//browser/content/web-panels.xul%22%29%0A%0A%20%20%20%20%20%20%20%20doc.addEventListener%28%27dblclick%27%2Cfunction%28event%29%7BsetTimeout%28ucjs_textlink%2C100%2Cevent%29%3B%7D%2Cfalse%29%3B%0A%0A%20%20%20%20%20%20%20%20doc.addEventListener%28%27keypress%27%2Cfunction%28event%29%7Bucjs_textlink%28event%29%3B%7D%2Cfalse%29%3B%0A%0A%20%20%20%20%7Dcatch%28e%29%7B%7D%0A%0A%20%20%7D%2C1000%29%3B%0A%0A%7D%0A%0A//for%20sidebar%20document%20onload%20event%20Listener%0A%0Awindow.document.addEventListener%28%27load%27%2C%20textLinkForSidebar.init%2C%20true%29%3B%0A%0Awindow.document.addEventListener%28%27unload%27%2C%20textLinkForSidebar.uninit%2C%20true%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%3Clabel%3E%0AID%20%3D%20%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код кнопки:Custom Buttons | Форум Mozilla Россия из-за ограничения на размер сообщения. |
MySh > 17-01-2011 00:34:33 |
Fit to Width (Подогнать по ширине) (Firefox) скрытый текст Код кнопки: Выделить код Код: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%3Efit%20to%20width%3C/name%3E%0D%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAFVBMVEX///8AzP8AAAAAzP8Amf8AAMwAAACWs84cAAAAB3RSTlMAd3f/////1grLHQAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADA1LzI4LzA2GvIWfQAAAEpJREFUeJxjYMAErKGhgRCGi0uIAJjhbBxiCGO4AIUUgIzQ0AAmhiQgw9gkQI0hTRXECEpDiChAGExgXUAGxEAXlwCIFUDtWOwGAHj3ENTzyS3QAAAAAElFTkSuQmCC%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%5D%5D%3E%3C/initcode%3E%0D%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20s%3Dcontent.document.styleSheets%5B0%5D%3B%0As.insertRule%28%27*%20%7Bmin-width%3A0%21important%3B%20white-space%3Anormal%21important%3B%20margin%3A0%21important%3B%20padding%3A0%21important%3B%20float%3Anone%3B%7D%27%2C0%29%3B%0As.insertRule%28%27div%2Ctable%2Ctbody%2Ctr%2Ctd%2Cp%2Col%2Cul%2Ch1%2Ch2%2Ch3%2Chr%20%7Bmax-width%3A99%25%21important%3B%7D%27%2C0%29%3B%0As.insertRule%28%27table%2Ctbody%2Ctr%2Ctd%20%7Bdisplay%3Ablock%21important%7D%27%2C0%29%3B%0A%0Avar%20i%3D%20content.document.images%3B%0Afor%20%28var%20j%3D0%3B%20j%3Ci.length%3B%20j++%29%20%7B%0A%20%20var%20k%3D%20content.window.innerWidth/i%5Bj%5D.width*.95%3B%0A%20%20if%20%28k%3C1%29%20%7Bi%5Bj%5D.width*%3Dk%3B%20i%5Bj%5D.height*%3Dk%3B%7D%3B%0A%7D%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%5B%5D%5D%3E%3C/help%3E%0D%0A%20%20%3Cattributes/%3E%0D%0A%3C/custombutton%3E Пиктограмма: Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAFVBMVEX///8AzP8AAAAAzP8Amf8AAMwAAACWs84cAAAAB3RSTlMAd3f/////1grLHQAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADA1LzI4LzA2GvIWfQAAAEpJREFUeJxjYMAErKGhgRCGi0uIAJjhbBxiCGO4AIUUgIzQ0AAmhiQgw9gkQI0hTRXECEpDiChAGExgXUAGxEAXlwCIFUDtWOwGAHj3ENTzyS3QAAAAAElFTkSuQmCC Код: Выделить код Код:var s=content.document.styleSheets[0]; s.insertRule('* {min-width:0!important; white-space:normal!important; margin:0!important; padding:0!important; float:none;}',0); s.insertRule('div,table,tbody,tr,td,p,ol,ul,h1,h2,h3,hr {max-width:99%!important;}',0); s.insertRule('table,tbody,tr,td {display:block!important}',0); var i= content.document.images; for (var j=0; j<i.length; j++) { var k= content.window.innerWidth/i[j].width*.95; if (k<1) {i[j].width*=k; i[j].height*=k;}; } |
iDev.Pi > 17-01-2011 14:58:56 |
Cookies Permissions (Firefox) У кнопки есть теперь своя тема, там же вы найдёте и ссылки на установку стабильной и тестовой версий кнопки и сможете почитать её changelog. |
Indomito > 18-01-2011 13:48:48 |
Открыть SAVE.HTML (Mozilla Thunderbird) Данная кнопка удалена и заменена на TB Exp Imp CB как на более универсальную. |
Indomito > 18-01-2011 16:04:22 |
Tools(Mozilla Thunderbird) скрытый текст Код кнопки Выделить код Код: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%0A%20%20%3Cname%3Econfig%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAIFQTFRF////u7uImZmZMzMzRERE7u7ud3d3qqqqzMzMVVVVZmZm3d3d////iIiIu7u7zMyZ7u7dIiIizMy73d27u7uZ3d3MzMyqmZlmiIhmqqqIu8yZIiIzqqp3///dd3dmd3dVmZl3qqqZMzNEzN277v/u7u7/mapmd4hEu7uq7u7MmZmIMf7U/gAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH0QwDBykHHZ47CAAAAWVJREFUeJydk1tvwyAMhRMDBptCozRN2qnqTXva//+BM9Asl7aTNt6s88X4HJOq+sMx3jnzmx4BOcS3ureAWmmyhXbRL/XWAitFGCAJHhjdXG7am+h3dMaYrBNZs9Cl/12FsWvEpV45SPeff5pappjHMmUeJ/drfah3E6BlBAPssw4QZL5ztx0JB4GEsJyBGEIgpfD2sa0L4ZLhu2bS+YrIlHS/q9PZPXSltKbsWAJkKYMkkYm+6ATWjrkLoTgNnYnjVw7UznM0EcsGetEROenLmI1/NOuPKKMpDas9TIEFJAEO7Rvd58D0Zdg2r78v/i4n8fKKKLo+nJKZdQ8frYXir+3qZ0LeB3HA4q95Joy8D07jF/9Nn4luIhxzdLLAFHgm1j0kSVN5JAXjlYWo92Od1+JYj0AmTsPQfc4GNZZo+in2XT1cru1maQRmD3VfD9c4qzcRcbFi6dEuHrZxfvVfruv/nm+NxhAKW3jK0QAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%u041F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u044B%20%u0443%u0447%u0451%u0442%u043D%u043E%u0439%20%u0437%u0430%u043F%u0438%u0441%u0438%0Afunction%20lbMouse%28%29%7B%0AMsgAccountManager%28null%29%3B%0A%7D%3B%0A%0A//%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%0Afunction%20rbMouse%28%29%7B%0AopenOptionsDialog%28%29%3B%0A%7D%3B%0A%0A//about%3Aconfig%0Afunction%20mbMouse%28%29%7B%0Avar%20inBackground%20%3D%20false%3B%0Avar%20cnConf%20%3D%20%22chrome%3A//global/content/config.xul%22%0Avar%20tabmail%20%3D%20document.%20getElementById%20%28%22tabmail%22%29%3B%0Atabmail.%20openTab%0A%28%0A%09%22contentTab%22%2C%0A%09%7B%0A%09%09background%3A%20inBackground%2C%0A%09%09contentPage%3A%20cnConf%0A%09%7D%0A%29%3B%0A%7D%3B%0A%0Athis.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u041F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u044B%20%u0443%u0447%u0451%u0442%u043D%u043E%u0439%20%u0437%u0430%u043F%u0438%u0441%u0438%20%5CnMiddle%20%3D%3E%20about%3Aconfig%20%5CnRight%20%20%20%3D%3E%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%22%3B%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%0AlbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%0AmbMouse%28%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0ArbMouse%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A/*%0AMsgAccountManager%28null%29%3B%0AopenOptionsDialog%28%29%3B%0Avar%20inBackground%20%3D%20false%3B%0Avar%20cnConf%20%3D%20%22chrome%3A//global/content/config.xul%22%0Avar%20tabmail%20%3D%20document.%20getElementById%20%28%22tabmail%22%29%3B%0Atabmail.%20openTab%0A%28%0A%09%22contentTab%22%2C%0A%09%7B%0A%09%09background%3A%20inBackground%2C%0A%09%09contentPage%3A%20cnConf%0A%09%7D%0A%29%3B%0A//window.content.focus%28%29%3B%0A*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код (секция Инициализация) Выделить код Код:/*Initialization Code*/ //Параметры учётной записи function lbMouse(){ MsgAccountManager(null); }; //Настройки function rbMouse(){ openOptionsDialog(); }; //about:config function mbMouse(){ var inBackground = false; var cnConf = "chrome://global/content/config.xul" var tabmail = document. getElementById ("tabmail"); tabmail. openTab ( "contentTab", { background: inBackground, contentPage: cnConf } ); }; this.tooltipText = "Left => Параметры учётной записи \nMiddle => about:config \nRight => Настройки"; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ lbMouse(); } else if(event.button == 1) { // Действие при клике СКМ mbMouse(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов rbMouse(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; |
Indomito > 19-01-2011 02:40:56 |
AddonsChekUpDate(Mozilla Thunderbird) скрытый текст Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EAddonsChekUpDate%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%2CR0lGODlhJQAaAPcAAAAAAAA7KAA/ND0+ACM5LAA5UjFSBztEJwpXQwxVWwVJZBRTfiFPXzdLVj5+W38dEnooB3oxAE5aBlpmFEdkKmhWAmdAI2Z2N3h4MkNCSEFbQkRXaExhdlptZ1N/cnNYR3FdXHlqSXB/VmZiYWZ2dnRyYypugTh7pUFvkVh1iFR8lmF7kj+1K1WTM06oMWmCGnqbJmy3NVKWR12Dbk6kQGSDRX+XQWyBcG+edGSxWH6nb367bXu7dUnKNmPENlnORWrRUnbDZ3TkXXrmZUmKl1aHi1yImk+Ot0uTokiQtleMoVyOs1WWrFictmODgmeOnXeHgnCLlH2RiGWVpGKas3iXpWq/hG2yn3Osg3OivVuaw12oymaqxmy41XapyHmxy3iz0XDBh3jDmH/K6pUWCoooE4A3AIk1GpYlAIQxLqkVAaktBJBTJ5ZQNpt7FoV2NZF2J71MHKZSLrNXJrhXNq5rFLRiKLloML13Ibt2PZNbUoxpSY1uXJ50W4l0YZ1qZ6l2SaJ+Xrt2RbN6cMQ6FstHCM1XFttXDNdaG99dI9xpFsllI8dmO8hxK8lyNddpJNVyJONZKOFlGOFmIOJ9Ncx6QNV/QoOcCouUJ5aNKJmKNauCKLykILGqNru6Lo+GQ42SXJqMTYWDboKDfpWNZp6PcpS6S4mvdqaMRKqTTaqVVrabS6GNdbqMar6TcbS0VLupebSwaY7fX4nJc47vdarKTaHkfdCpKNSsM+G7Ks2DS8mPX9CAQcyefdWyTtG0VsmuZ8ygfeGffOnGPOXSLv7XMd7KacPueubPRe3EW/bXRvvSU+7Ua+jwd4KYm5iKgYSds421iI2npo6zuaGhlaGxvre7xJDEhY3ri5LjhpronJv8i5jzlLb+mq7ioo7CzY7M24TG4I7W7o/U85jM4pDR5Zvf9KTY7dubgMCwjMS3lNa0m8yzqOqyieizo9LDnN3MrtfFtd3RuOjGvcXO08ndwdXOxN3cytvb29Tj0OXHxeHYyeXZ1fLMwwAAAAAAACH5BAEAAP8ALAAAAAAlABoAAAj/AP8JHEiwoMGDCBMehJZiRYoq1egpnHgQxRIv5M6ByZKiwSh7FBPGi2eNgwovX76UMzduY5QSIdSFPNirT4YNzpxJqwJO3BguVJyQAvZr1UyC8QQJ4vOMVSlRUr412dIlXJEDb5gxU5Xu6L91dihZquQozx5q0750WcuFAQEMxnytkkcRn8BgjRTpVbSIjR8oU7hsGaxlighNuJK9qytwF6S9eu+4gmKkSZITC44oufHp1jJY/Gbqerz3ka5AJKYQUaCggIkiGmINW6ZqX8h2vCA/ctSqxBMmSBIICIDAAYVXypShinfbkV5JhtBA+EDCiBIiV8SEscLDRidlw1DB/wspbNFeNGjOgEjB3gMWbdyw2cLEqViuVHQpopvzSBGiNWvQoccIHcyAgwxAbLONC7V4QgwyodwTkjtyLCKJJIUUYggjgFywQxBB0CIiLUDEcEkzoEhIUT9txHGhJIccsoYZEnTTzTYiDiEEELTEcEwN9cw0yBqJvOhfBAPM0kI2tAwxBBA/COFDDEFcM9M8Z8SByIWKPNIIHBMY0EKTQED5Q5lAzHLUIGWsEQkiiEyiCB6bZPICiVD2oCcLaXqlRxlkELKGhnW4kQkMspT5g54/nKmmnw+QoYYaaFRgSgtoxhBDo0DkkIOVXv0zSBpkkAGBBLOU6YILLbTgAhBBeDATTagC8cPOH2lYYICZrJ5yzas80FoQP/qwU4MMNNAggw75RCODDLMKG1I+0labUEAAOw%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043D%u044B%u0435%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%0Afunction%20lbMouse%28%29%7B%0AopenAddonsMgr%28%29%3B%0A%7D%3B%0A%0A//%u041F%u0440%u043E%u0432%u0435%u0440%u0438%u0442%u044C%20%u043E%u0431%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u0435%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%0Afunction%20mbMouse%28%29%7B%0Avar%20win%20%3D%20BrowserOpenAddonsMgr%20%28%29%3B%0A%0Avar%20doc%20%3D%20win.%20document%3B%0Acmd%20%3D%20doc.%20getElementById%20%28%22extensions-view%22%29%3B%0Aif%20%28%21cmd%29%0A%20%20%20%20win.%20addEventListener%20%28%22load%22%2C%20function%20%28event%29%20%7B%20setTimeout%20%28function%20%28%29%20%7B%20win.%20document.%20getElementById%20%28%22extensions-view%22%29.%20doCommand%20%28%29%3B%20%7D%2C%20200%29%3B%20%7D%2C%20false%29%3B%0Aelse%0A%20%20%20%20cmd.%20doCommand%20%28%29%3B%0A%09cmd2%20%3D%20doc.%20getElementById%20%28%22cmd_checkUpdatesAll%22%29%3B%0Aif%20%28%21cmd2%29%0A%20%20%20%20win.%20addEventListener%20%28%22load%22%2C%20function%20%28event%29%20%7B%20setTimeout%20%28function%20%28%29%20%7B%20win.%20document.%20getElementById%20%28%22cmd_checkUpdatesAll%22%29.%20doCommand%20%28%29%3B%20%7D%2C%20500%29%3B%20%7D%2C%20false%29%3B%0Aelse%0A%20%20%20%20cmd2.%20doCommand%20%28%29%3B%0AcheckForUpdates%28%29%3B%20%20%20%20%0A%7D%3B%0A%0A//%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0431%u0430%u0437%u0443%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%20%u0432%20%u0438%u043D%u0442%u0435%u0440%u043D%u0435%u0442%u0435%0Afunction%20rbMouse%28%29%7B%0Avar%20url%20%3D%20%22https%3A//addons.mozilla.org/ru/thunderbird/%22%3B%0Avar%20inBackground%20%3D%20false%3B%0Avar%20tabmail%20%3D%20document.%20getElementById%20%28%22tabmail%22%29%3B%0Atabmail.%20openTab%0A%28%0A%09%22contentTab%22%2C%0A%09%7B%0A%09%09background%3A%20inBackground%2C%0A%09%09contentPage%3A%20url%0A%09%7D%0A%29%3B%0A%7D%3B%0A%0Afunction%20BrowserOpenAddonsMgr%28aPane%29%0A%7B%0A%20%20const%20EMTYPE%20%3D%20%22Extension%3AManager%22%3B%0A%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%20var%20theEM%20%3D%20wm.getMostRecentWindow%28EMTYPE%29%3B%0A%20%20if%20%28theEM%29%20%7B%0A%20%20%20%20theEM.focus%28%29%3B%0A%20%20%20%20return%20theEM%3B%0A%20%20%7D%0A%0A%20%20const%20EMURL%20%3D%20%22chrome%3A//mozapps/content/extensions/extensions.xul%22%3B%0A%20%20const%20EMFEATURES%20%3D%20%22chrome%2Cmenubar%2Cextra-chrome%2Ctoolbar%2Cdialog%3Dno%2Cresizable%22%3B%0A%20%20return%20window.openDialog%28EMURL%2C%20%22%22%2C%20EMFEATURES%29%3B%0A%7D%3B%0A%0Athis.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043D%u044B%u0435%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%20%5CnMiddle%20%3D%3E%20%u041F%u0440%u043E%u0432%u0435%u0440%u0438%u0442%u044C%20%u043E%u0431%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u0435%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%20%5CnRight%20%20%20%3D%3E%20%u0414%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u044F%20%u0432%20%u0438%u043D%u0442%u0435%u0440%u043D%u0435%u0442%u0435%22%3B%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%0AlbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%0AmbMouse%28%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0ArbMouse%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код (секция Инициализация) Выделить код Код:/*Initialization Code*/ //Открыть установленные дополнения function lbMouse(){ openAddonsMgr(); }; //Проверить обновление дополнений function mbMouse(){ var win = BrowserOpenAddonsMgr (); var doc = win. document; cmd = doc. getElementById ("extensions-view"); if (!cmd) win. addEventListener ("load", function (event) { setTimeout (function () { win. document. getElementById ("extensions-view"). doCommand (); }, 200); }, false); else cmd. doCommand (); cmd2 = doc. getElementById ("cmd_checkUpdatesAll"); if (!cmd2) win. addEventListener ("load", function (event) { setTimeout (function () { win. document. getElementById ("cmd_checkUpdatesAll"). doCommand (); }, 500); }, false); else cmd2. doCommand (); checkForUpdates(); }; //Открыть базу дополнений в интернете function rbMouse(){ var url = "https://addons.mozilla.org/ru/thunderbird/"; var inBackground = false; var tabmail = document. getElementById ("tabmail"); tabmail. openTab ( "contentTab", { background: inBackground, contentPage: url } ); }; function BrowserOpenAddonsMgr(aPane) { const EMTYPE = "Extension:Manager"; var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var theEM = wm.getMostRecentWindow(EMTYPE); if (theEM) { theEM.focus(); return theEM; } const EMURL = "chrome://mozapps/content/extensions/extensions.xul"; const EMFEATURES = "chrome,menubar,extra-chrome,toolbar,dialog=no,resizable"; return window.openDialog(EMURL, "", EMFEATURES); }; this.tooltipText = "Left => Открыть установленные дополнения \nMiddle => Проверить обновление дополнений \nRight => Дополнения в интернете"; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ lbMouse(); } else if(event.button == 1) { // Действие при клике СКМ mbMouse(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов rbMouse(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; |
Indomito > 20-01-2011 03:18:56 |
Min&Quit&Restart(Mozilla Thunderbird) скрытый текст Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EMin%26amp%3BQuit%26amp%3BRestart%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0Athis.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u0421%u0432%u0435%u0440%u043D%u0443%u0442%u044C%20Mozilla%20Thunderbird%20%5CnMiddle%20%3D%3E%20%u0412%u044B%u0439%u0442%u0438%20%u0438%u0437%20Mozilla%20Thunderbird%20%5CnRight%20%20%20%3D%3E%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20Mozilla%20Thunderbird%22%3B%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%0Awindow.minimize%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%0AgoQuitApplication%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20var%20appStartup%20%3D%20Components.classes%5B%22@mozilla.org/toolkit/app-startup%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.getService%28Components.interfaces.nsIAppStartup%29%3B%0A%20%20appStartup.quit%28appStartup.eForceQuit%20%7C%20appStartup.eRestart%29%3B%0A%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код (секция Инициализация) Выделить код Код:/*Initialization Code*/ this.tooltipText = "Left => Свернуть Mozilla Thunderbird \nMiddle => Выйти из Mozilla Thunderbird \nRight => Перезагрузить Mozilla Thunderbird"; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ window.minimize(); } else if(event.button == 1) { // Действие при клике СКМ goQuitApplication(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"] .getService(Components.interfaces.nsIAppStartup); appStartup.quit(appStartup.eForceQuit | appStartup.eRestart); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; |
Infocatcher > 07-02-2011 05:29:28 |
Attributes Inspector (для разработчиков) (все приложения на движке gecko: Firefox, SeaMonkey, Thunderbird etc.) У кнопки теперь есть отдельная тема. |
Indomito > 13-02-2011 23:44:09 |
Tools(Firefox) Прим. пост с начальной версией удалён с форума Версия от 12.02.2011 Left => Настройки Mozilla FireFox Переустанавливает plugin.expose_full_path в true, что позволяет увидеть пути расположения плагинов. Скачать кнопку в HTML формате Tools._html. Для установки исправить расширение файла с _html на html скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ETools%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAABGdBTUEAALGPC/xhBQAAAIFQTFRF////u7uImZmZMzMzRERE7u7ud3d3qqqqzMzMVVVVZmZm3d3d////iIiIu7u7zMyZ7u7dIiIizMy73d27u7uZ3d3MzMyqmZlmiIhmqqqIu8yZIiIzqqp3///dd3dmd3dVmZl3qqqZMzNEzN277v/u7u7/mapmd4hEu7uq7u7MmZmIMf7U/gAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH0QwDBykHHZ47CAAAAWVJREFUeJydk1tvwyAMhRMDBptCozRN2qnqTXva//+BM9Asl7aTNt6s88X4HJOq+sMx3jnzmx4BOcS3ureAWmmyhXbRL/XWAitFGCAJHhjdXG7am+h3dMaYrBNZs9Cl/12FsWvEpV45SPeff5pappjHMmUeJ/drfah3E6BlBAPssw4QZL5ztx0JB4GEsJyBGEIgpfD2sa0L4ZLhu2bS+YrIlHS/q9PZPXSltKbsWAJkKYMkkYm+6ATWjrkLoTgNnYnjVw7UznM0EcsGetEROenLmI1/NOuPKKMpDas9TIEFJAEO7Rvd58D0Zdg2r78v/i4n8fKKKLo+nJKZdQ8frYXir+3qZ0LeB3HA4q95Joy8D07jF/9Nn4luIhxzdLLAFHgm1j0kSVN5JAXjlYWo92Od1+JYj0AmTsPQfc4GNZZo+in2XT1cru1maQRmD3VfD9c4qzcRcbFi6dEuHrZxfvVfruv/nm+NxhAKW3jK0QAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A//%20%u0412%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2012.02.2011%0A//%20%28c%29%20Indomito%0A%0Athis.tooltipText%20%3D%20%22Left%20%20%20%20%20%20%20%20%20%3D%3E%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20Mozilla%20FireFox%5Cn%22+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Middle%20%20%20%20%20%20%3D%3E%20Vacuum%20%u043E%u0447%u0438%u0441%u0442%u043A%u0430%20%u0431%u0430%u0437%20places.sqlite%20%u0438%20Brief%5Cn%22+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Ctrl+Right%20%3D%3E%20%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u0434%u043B%u044F%20%u0440%u0435%u0448%u0435%u043D%u0438%u044F%20%u043F%u0440%u043E%u0431%u043B%u0435%u043C%20%u0438%20%u043F%u043B%u0430%u0433%u0438%u043D%u044B%5Cn%22+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Right%20%20%20%20%20%20%20%20%3D%3E%20About%3AConfig%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20Mozilla%20FireFox%0Afunction%20lbMouse%28%29%7B%0Atry%7B%20openPreferences%28%29%3B%20%7D%20catch%28e%29%20%7B%20openOptionsDialog%28%29%3B%20%7D%0A%7D%3B%0A%0A//Quick%20About%3AConfig%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u043C%20%u0442%u0430%u0431%u0435%0Afunction%20rbMouse%28%29%7B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28%22about%3Aconfig%22%29%0A%7D%3B%0A%0A//Vacuum%20%u043E%u0447%u0438%u0441%u0442%u043A%u0430%20%u0431%u0430%u0437%20places.sqlite%20%u0438%20Brief%0Afunction%20mbMouse%28%29%7B%0Avar%20dBF%20%3D%20%22%20%u0438%20Brief%22%3B%0Aif%20%28typeof%20gBrief%20%3D%3D%20%27undefined%27%29%20dBF%20%3D%20%22%22%3B%0Avar%20res%3Dcustombuttons.%20confirmBox%20%28%22Vacuum%20%u043E%u0447%u0438%u0441%u0442%u043A%u0430%20places.sqlite%22%20+%20dBF%2C%20%22%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u0431%u0430%u0437%u044B%3F%22%2C%20%22%u0414%u0430%22%2C%20%22%u041D%u0435%u0442%22%29%3B%0Aif%20%28res%29%7B%0A%20%20%20%20%20Components.classes%5B%22@mozilla.org/browser/nav-history-service%3B1%22%5D.getService%28Components.interfaces.nsPIPlacesDatabase%29.DBConnection.executeSimpleSQL%28%22VACUUM%22%29%3B%0A%20%20%20%20%20if%20%28%21dBF.length%29%20window.openDialog%28%27chrome%3A//brief/content/compacting-progress.xul%27%2C%20%27Brief%27%2C%27chrome%2Ctitlebar%2Ccenterscreen%27%29%3B%0A%20%20%20%20%20custombuttons.%20alertBox%20%28%22Vacuum%20%u043E%u0447%u0438%u0441%u0442%u043A%u0430%20places.sqlite%22%20+%20dBF%2C%20%22%u0411%u0430%u0437%u044B%20%u043E%u0447%u0438%u0449%u0435%u043D%u044B%22%29%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A//%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u0434%u043B%u044F%20%u0440%u0435%u0448%u0435%u043D%u0438%u044F%20%u043F%u0440%u043E%u0431%u043B%u0435%u043C%20%u0438%20%u043F%u043B%u0430%u0433%u0438%u043D%u044B%0Afunction%20cKeyrbMouse%28%29%7B%0A//%u0412%u043A%u043B%u044E%u0447%u0430%u0435%u043C%20%u0432%u0438%u0434%u0438%u043C%u043E%u0441%u0442%u044C%20%u043F%u0443%u0442%u0435%u0439%20%u0434%u043B%u044F%20%u043F%u043B%u0430%u0433%u0438%u043D%u043E%u0432%2C%20%u0442%u0435%20about%3Aplugins%0AApplication.prefs.setValue%28%22plugin.expose_full_path%22%2C%20true%29%3B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28%22about%3Aplugins%22%29%3B%0AgetBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28%22about%3Asupport%22%29%3B%0A%7D%3B%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%0AlbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%0AmbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0ArbMouse%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20event.ctrlKey%29%20%7B%0A//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20ctrl+%u041F%u041A%u041C%0AcKeyrbMouse%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код (секция Инициализация) Выделить код Код:/*Initialization Code*/ // Версия от 12.02.2011 // (c) Indomito this.tooltipText = "Left => Настройки Mozilla FireFox\n"+ "Middle => Vacuum очистка баз places.sqlite и Brief\n"+ "Ctrl+Right => Информация для решения проблем и плагины\n"+ "Right => About:Config"; //Настройки Mozilla FireFox function lbMouse(){ try{ openPreferences(); } catch(e) { openOptionsDialog(); } }; //Quick About:Config открытие в новом табе function rbMouse(){ getBrowser (). selectedTab = getBrowser (). addTab ("about:config") }; //Vacuum очистка баз places.sqlite и Brief function mbMouse(){ var dBF = " и Brief"; if (typeof gBrief == 'undefined') dBF = ""; var res=custombuttons. confirmBox ("Vacuum очистка places.sqlite" + dBF, "Очистить базы?", "Да", "Нет"); if (res){ Components.classes["@mozilla.org/browser/nav-history-service;1"].getService(Components.interfaces.nsPIPlacesDatabase).DBConnection.executeSimpleSQL("VACUUM"); if (!dBF.length) window.openDialog('chrome://brief/content/compacting-progress.xul', 'Brief','chrome,titlebar,centerscreen'); custombuttons. alertBox ("Vacuum очистка places.sqlite" + dBF, "Базы очищены") } }; //Информация для решения проблем и плагины function cKeyrbMouse(){ //Включаем видимость путей для плагинов, те about:plugins Application.prefs.setValue("plugin.expose_full_path", true); getBrowser (). selectedTab = getBrowser (). addTab ("about:plugins"); getBrowser (). selectedTab = getBrowser (). addTab ("about:support"); }; this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ lbMouse(); } else if(event.button == 1) { // Действие при клике СКМ mbMouse(); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов rbMouse(); } else if(event.button == 2 && event.ctrlKey) { // Действие при клике ctrl+ПКМ cKeyrbMouse(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; |
bunda1 > 07-03-2011 20:15:45 |
Highlight( Firefox 3.6 ) ЛКМ => выделить одинаковые слова или фразы на открытой странице. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EHighlight%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAACXBIWXMAAAsSAAALEgHS3X78AAACZ0lEQVQokQXBW2/TSBQA4HPmYjtOnNiJoTHKaitUVMEDSLzww9H+DPZhhQQtW7Uh3ZKbXYfEl5nMnLPfh+Vfn7kq1eUU/LMq8uiyYR4hLAHoC32s0Sq43otZzkQoYiZFZUmbtcgA3R6mUsoD0VnACsAf+W2NRiFtpZQEJIRjUOAM2A6lQ+0YwZ1GjAMIYwDW3GtoItum/hihbDhkZOVvvvof3/Xlexw/cQ9uO2atVLED8Ae+3fH2ZXPhDtQHycoFU8WKrWHTM50ZLJAnzyAY0AOQQKFBIRF6z0TOMwlWp3hsJ5mkoT4lmGkpLQhnqwEAhWKgvHRWN1Iqi+6nd0NQ5WrZ3t4O3yWSHzhKZHZmuMDyAYAqGf7bfMn0pzuRXjT++9+8mIHSs1zPC5zkDB0PMic8iNTJHJhCmqb8RyLCmRCpgnwMWQLqqesPp04bI9HEJ+PvjI7jZfvM7G+i5fL35ipbuaaxtKjv0mGDqi/LZrs5N8+EO9cdHLeoolO3B/YHDMp+d2FOh24QkqtrPY5ZcbHgpj0PCts7yS+MNf48c7Zgpkk4z50Zu9BZG4ujDm6lCtSmqjabbbYuz9WvLJyfwIym+rFaE/ttpp5265nbllswAfzzbdf1iWIAL5AQvEAGIAJi9AREyB7AA3tyBMwskASyaqP4GCdtFLeDUYhRVQMFQV0HRAQ6wENkRuffdTOcTNMBJCGox/X6/ufq1f7FsXrk4fzXQ9tbdf/fisgJK++XyxBe3zzs3Tx6XPEwtOr6w4c0Tf+8vuqO02z+Jh6ZST7rspaYRD5PJ7NFcT1JimJ6qQwvXqX/A9G+ibxhNxZGAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.%20clickHandler%20%3D%20function%20%28event%29%0A%7B%0A%09if%20%28%28event.%20button%20%3D%3D%202%29%20%26%26%20event.%20ctrlKey%29%0A%09%09this.%20mObj.%20setPri%20%28%29%3B%0A%09else%0A%09%09this.%20mObj.%20setSub%20%28%29%3B%0A%09if%20%28event.%20ctrlKey%29%0A%09%7B%0A%09%09this.%20showPopup%20%28this%29%3B%0A%09%09return%3B%0A%09%7D%0A%09if%20%28event.%20button%20%3D%3D%200%29%0A%09%7B%0A%09this.%20innerHTML%20%3D%20this.%20innerHTML%20%7C%7C%20content.%20document.%20body.%20innerHTML%3B%0A%09this.%20searchPrompt%28%27%27%2Cfalse%29%3B%09%09%0A%09%7D%0A%09else%20if%20%28event.%20button%20%3D%3D%201%29%0A%09%7B%0A%09this.%20showPopup%20%28this%29%3B%09%0A%09%7D%0A%09else%0A%09%7B%0A%09%09content.%20document.%20body.%20innerHTML%20%3D%20this.%20innerHTML%20%7C%7C%20content.%20document.%20body.%20innerHTML%3B%0A%09%09this.%20innerHTML%20%3D%20%22%22%3B%0A%09%7D%0A%7D%3B%0Athis.showPopup%20%3D%20function%28node%29%0A%7B%0A%09var%20popup%20%3D%20document.getElementById%28%22custombuttons-contextpopup%22%29%3B%0A%09var%20x%20%3D%20node.boxObject.x%3B%0A%09var%20y%20%3D%20node.boxObject.y%20+%20node.boxObject.height%3B%0A%09document.popupNode%20%3D%20node%3B%0A%09popup.showPopup%28node%2C%20x%2C%20y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%7D%3B%0Athis.%20doHighlight%20%3D%20function%20%28bodyText%2C%20searchTerm%2C%20highlightStartTag%2C%20highlightEndTag%29%20%0A%7B%0A%09if%20%28%28%21highlightStartTag%29%20%7C%7C%20%28%21highlightEndTag%29%29%0A%09%7B%0A%09%09highlightStartTag%20%3D%20%22%3Cfont%20style%3D%27background-color%3A%22%20+%20this.%20highlightColor%20+%20%22%3B%27%3E%22%3B%0A%09%09highlightEndTag%20%3D%20%22%3C/font%3E%22%3B%0A%09%7D%0A%09var%20newText%20%3D%20%22%22%3B%0A%09var%20i%20%3D%20-1%3B%0A%09var%20lcSearchTerm%20%3D%20searchTerm.toLowerCase%28%29%3B%0A%09var%20lcBodyText%20%3D%20bodyText.toLowerCase%28%29%3B%0A%09while%20%28bodyText.length%20%3E%200%29%0A%09%7B%0A%09%09i%20%3D%20lcBodyText.indexOf%28lcSearchTerm%2C%20i+1%29%3B%0A%09%09if%20%28i%20%3C%200%29%0A%09%09%7B%0A%09%09%09newText%20+%3D%20bodyText%3B%0A%09%09%09bodyText%20%3D%20%22%22%3B%0A%09%09%7D%0A%09%09else%0A%09%09%7B%0A%09%09%09if%20%28bodyText.lastIndexOf%28%22%3E%22%2C%20i%29%20%3E%3D%20bodyText.lastIndexOf%28%22%3C%22%2C%20i%29%29%0A%09%09%09%7B%0A%09%09%09%09if%20%28lcBodyText.lastIndexOf%28%22/script%3E%22%2C%20i%29%20%3E%3D%20lcBodyText.lastIndexOf%28%22%3Cscript%22%2C%20i%29%29%0A%09%09%09%09%7B%0A%09%09%09%09%09newText%20+%3D%20bodyText.substring%280%2C%20i%29%20+%20highlightStartTag%20+%20bodyText.substr%28i%2C%20searchTerm.length%29%20+%20highlightEndTag%3B%0A%09%09%09%09%09bodyText%20%3D%20bodyText.substr%28i%20+%20searchTerm.length%29%3B%0A%09%09%09%09%09lcBodyText%20%3D%20bodyText.toLowerCase%28%29%3B%0A%09%09%09%09%09i%20%3D%20-1%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A%09return%20newText%3B%0A%7D%0Athis.%20highlightSearchTerms%20%3D%20function%20%28searchText%2C%20treatAsPhrase%2C%20warnOnFailure%2C%20highlightStartTag%2C%20highlightEndTag%29%0A%7B%0A%09if%20%28treatAsPhrase%29%0A%09%7B%0A%09%09searchArray%20%3D%20%5BsearchText%5D%3B%0A%09%7D%0A%09else%0A%09%7B%0A%09%09searchArray%20%3D%20searchText.split%28%22%20%22%29%3B%0A%09%7D%0A%09if%20%28%21content.document.body%20%7C%7C%20typeof%28content.document.body.innerHTML%29%20%3D%3D%20%22undefined%22%29%0A%09%7B%0A%09%09if%20%28warnOnFailure%29%0A%09%09%7B%0A%09%09%09alert%28%22The%20text%20of%20this%20page%20is%20not%20available.%20Highlighting%20will%20not%20work.%22%29%3B%0A%09%09%7D%0A%09%09return%20false%3B%0A%09%7D%0A%09var%20bodyText%20%3D%20content.document.body.innerHTML%3B%0A%09for%20%28var%20i%20%3D%200%3B%20i%20%3C%20searchArray.length%3B%20i++%29%0A%09%7B%0A%09%09bodyText%20%3D%20this.%20doHighlight%28bodyText%2C%20searchArray%5Bi%5D%2C%20highlightStartTag%2C%20highlightEndTag%29%3B%0A%09%7D%0A%09content.document.body.innerHTML%20%3D%20bodyText%3B%0A%09return%20true%3B%0A%7D%0Athis.%20searchPrompt%20%3D%20function%20%28%29%0A%7B%0A%20%20%20%20var%20searchText%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%20%7C%7C%20prompt%28%27Highlight%3A%27%2C%27%27%29%3B%0A%20%20%20%20searchText%20%26%26%20this.%20highlightSearchTerms%28searchText%2C%20true%29%3B%0A%7D%0A%0Athis.%20changeColor%20%3D%20function%20%28menuitem%2C%20event%29%0A%7B%0A%09var%20topmenuitem%20%3D%20document.%20getElementById%20%28document.%20popupNode.%20firstId%29%3B%0A%09topmenuitem.%20setAttribute%20%28%22label%22%2C%20%22*%20%22%20+%20menuitem.%20getAttribute%20%28%22label%22%29%29%3B%0A%09document.%20popupNode.%20highlightColor%20%3D%20menuitem.%20getAttribute%20%28%22value%22%29%3B%0A%7D%3B%0A%0Avar%20colors%20%3D%0A%7B%0A%09%22Yellow%22%3A%20%22yellow%22%2C%20%22Green%22%3A%20%22green%22%2C%20%22Blue%22%3A%20%22blue%22%2C%20%22Red%22%3A%20%22red%22%0A%7D%3B%0Avar%20mItem%20%3D%20%7B%7D%3B%0Adocument.%20getElementById%20%28CB2const.%20sCBCtxtMenu%29.%20setAttribute%20%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0Avar%20mObj%20%3D%20custombuttons.%20getCbContextObj%20%28this%29%3B%0Athis.%20mObj%20%3D%20mObj%3B%0AmObj.%20setSub%20%28%29%3B%0Avar%20mItem%20%3D%20new%20mObj.%20getItem%20%28%29%3B%0AmItem.%20id%20%3D%20%22topmenuitem%22%3B%0AmItem.%20label%20%3D%20%22*%20Yellow%22%3B%0AmItem.%20value%20%3D%20%22yellow%22%3B%0AmItem%20%3D%20mObj.%20insertBefore%20%28mItem%2C%20mObj.%20oMenu.%20lastChild%29%3B%0Athis.%20firstId%20%3D%20mItem.%20id%3B%0AmItem%20%3D%20new%20mObj.%20getItem%20%28%29%3B%0AmItem%20%3D%20mObj.%20insertBefore%20%28mItem%2C%20mObj.%20oMenu.%20lastChild%29%3B%0Afor%20%28var%20i%20in%20colors%29%0A%7B%0A%09var%20mItem%20%3D%20new%20mObj.%20getItem%20%28%29%3B%0A%09mItem.%20id%20%3D%20i%3B%0A%09mItem.%20label%20%3D%20i%3B%0A%09mItem.%20value%20%3D%20colors%20%5Bi%5D%3B%0A%09mItem.%20oncommand%20%3D%20%22document.%20popupNode.%20changeColor%20%28this%2C%20event%29%3B%22%0A%09mItem%20%3D%20mObj.%20insertBefore%20%28mItem%2C%20mObj.%20oMenu.%20lastChild%29%3B%0A%7D%0AmItem%20%3D%20new%20mObj.%20getItem%20%28%29%3B%0AmObj.%20insertBefore%20%28mItem%2C%20mObj.%20oMenu.%20lastChild%29%3B%0A%0Athis.%20innerHTML%20%3D%20%22%22%3B%0Athis.%20highlightColor%20%3D%20%22yellow%22%3B%0Athis.%20setAttribute%20%28%27onclick%27%2C%20%27this.clickHandler%28event%29%27%29%3B%0Athis.setAttribute%28%22context%22%2C%20%22%22%29%3B%0A%0Athis.tooltipText%20%3D%20%22L%3DHighlight%5CnM%3DSelect%20color%20+%20CB%20menu%20%5CnR%3DRemove%20highlight%20%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this. clickHandler = function (event) { if ((event. button == 2) && event. ctrlKey) this. mObj. setPri (); else this. mObj. setSub (); if (event. ctrlKey) { this. showPopup (this); return; } if (event. button == 0) { this. innerHTML = this. innerHTML || content. document. body. innerHTML; this. searchPrompt('',false); } else if (event. button == 1) { this. showPopup (this); } else { content. document. body. innerHTML = this. innerHTML || content. document. body. innerHTML; this. innerHTML = ""; } }; this.showPopup = function(node) { var popup = document.getElementById("custombuttons-contextpopup"); var x = node.boxObject.x; var y = node.boxObject.y + node.boxObject.height; document.popupNode = node; popup.showPopup(node, x, y, "popup", null, null); }; this. doHighlight = function (bodyText, searchTerm, highlightStartTag, highlightEndTag) { if ((!highlightStartTag) || (!highlightEndTag)) { highlightStartTag = "<font style='background-color:" + this. highlightColor + ";'>"; highlightEndTag = "</font>"; } var newText = ""; var i = -1; var lcSearchTerm = searchTerm.toLowerCase(); var lcBodyText = bodyText.toLowerCase(); while (bodyText.length > 0) { i = lcBodyText.indexOf(lcSearchTerm, i+1); if (i < 0) { newText += bodyText; bodyText = ""; } else { if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) { if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<script", i)) { newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag; bodyText = bodyText.substr(i + searchTerm.length); lcBodyText = bodyText.toLowerCase(); i = -1; } } } } return newText; } this. highlightSearchTerms = function (searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag) { if (treatAsPhrase) { searchArray = [searchText]; } else { searchArray = searchText.split(" "); } if (!content.document.body || typeof(content.document.body.innerHTML) == "undefined") { if (warnOnFailure) { alert("The text of this page is not available. Highlighting will not work."); } return false; } var bodyText = content.document.body.innerHTML; for (var i = 0; i < searchArray.length; i++) { bodyText = this. doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag); } content.document.body.innerHTML = bodyText; return true; } this. searchPrompt = function () { var searchText = document.commandDispatcher.focusedWindow.getSelection().toString() || prompt('Highlight:',''); searchText && this. highlightSearchTerms(searchText, true); } this. changeColor = function (menuitem, event) { var topmenuitem = document. getElementById (document. popupNode. firstId); topmenuitem. setAttribute ("label", "* " + menuitem. getAttribute ("label")); document. popupNode. highlightColor = menuitem. getAttribute ("value"); }; var colors = { "Yellow": "yellow", "Green": "green", "Blue": "blue", "Red": "red" }; var mItem = {}; document. getElementById (CB2const. sCBCtxtMenu). setAttribute ("oncommand", "event.stopPropagation()"); var mObj = custombuttons. getCbContextObj (this); this. mObj = mObj; mObj. setSub (); var mItem = new mObj. getItem (); mItem. id = "topmenuitem"; mItem. label = "* Yellow"; mItem. value = "yellow"; mItem = mObj. insertBefore (mItem, mObj. oMenu. lastChild); this. firstId = mItem. id; mItem = new mObj. getItem (); mItem = mObj. insertBefore (mItem, mObj. oMenu. lastChild); for (var i in colors) { var mItem = new mObj. getItem (); mItem. id = i; mItem. label = i; mItem. value = colors [i]; mItem. oncommand = "document. popupNode. changeColor (this, event);" mItem = mObj. insertBefore (mItem, mObj. oMenu. lastChild); } mItem = new mObj. getItem (); mObj. insertBefore (mItem, mObj. oMenu. lastChild); this. innerHTML = ""; this. highlightColor = "yellow"; this. setAttribute ('onclick', 'this.clickHandler(event)'); this.setAttribute("context", ""); this.tooltipText = "L=Highlight\nM=Select color + CB menu \nR=Remove highlight "; |
bunda1 > 11-03-2011 22:23:28 |
Compact Menu( Firefox 4 + ) от 06.04.2016. ЛКМ => показать меню. Код кнопки Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ECompact%20Menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBEAAAEAIACsBAAAFgAAACgAAAAQAAAAIgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAMSAAcROg8hOGEvQV1hL0JdOQ4iOBIABxH7+/uBqKioqv7+/oAAAAAAAAAAAAAAAAAAAAAAAAAAAREABhB6PEx23HZ32+uLe/7rfGv/63tr/+uKev7vv7/tp52g10BAQP6vr6+z////fwAAAAAAAAAAAAAAAR0CEB3AaHK/629j/+FbVP/bUU7/10xK/9ZLSv/sp6X/26mm/0BAQP9AQED/QEBA/9jY2KH///9/AAAAAA8ABQ+6X22+1UpK/8Y2P/+8KDX/tB0v/6sZKf+uGCz/1pae/0BAQP9AQED/QEBA/0BAQP9AQED+8fHxkQAAAAJ0M0hzxz1G/7AYLv+lDCX/ng0b/5APD/+FFgL/1Zid/3BfYf9AQED/QEBA/0BAQP9AQED/QEBA/25ubtgPAAUPt0dc2KULJf+pFCb/tygu/7w1L/+FGAH/nSsW/8OSjf+gf3//qIKB/9aTlf/Vi5P/0YSR/9yosuzw7/CHMAobMLw2Sf60Iyz/xD41/9NSPv/cYUT/0188/+VwSf/IWzj/WhID/0kFAP9zGhT/yEM4/7grL/+9Okn+Nw0fNFYoOVLAOT3/zEg6/9xhRP/qdUv/64RR/+uNVf/rk1f/65NX/9t1Q/9mGQD/YhcE/9NeP//RTz3/xEA//1wsPVlWKDhR01dI/+BnRv/rf0//65JX/+ugXP/rqV7/661g/+utYf/McDH/gS4C/4UyD//CXjX/5G5I/9hdSf9dLD5YMAoaMOp+Zf7rgE//65dZ/+upX//rtGP/671n/+vBaP/rslz/rk4K/51CBf/rjUf/64RI/+uBTf/rhGf+NQweNA4ABg7Tdm3X65NY/+uqX//rumX/68Rq/+vMbf/r0G//68pn/+u+X//cgTD/67hi/+uuYf/rmlr/2Hxv2REABhAAAAACdTlIceudYP/rrV7/66xW/+vMbf/r03D/69Zw/+vVcP/r1HD/68tr/9x+Pv/rkUz/66xo/3Y7SXMAAAACAAAAAA8ABQ+2Z2O70WIX/+uEIf/rvVb/68JY/+vPbf/rsUn/68FX/+uVRf+dNBL/zGw0/8h7dL0PAAUPAAAAAAAAAAAAAAABHAEPHL5qWrzrr0r/69CA/+vQgf/r3qv/696r/+vNgP/rrnb/rEgo/6VXW70dAg8cAAAAAQAAAAAAAAAAAAAAAAAAAAEPAAUPdztFceiUcNjrz47+69yw/+vUmf/ryIT+03pe2XIzRHMPAAUPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIPAAUPMgscMlcpOlNYKTlUMwscMg8ABQ8AAAACAAAAAAAAAAAAAAAAAAAAAP//rEHwA6xBwAGsQYAArEGAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEGAAaxBgAGsQcADrEHwD6xB%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bif%20%28gBrowser.currentURI.spec%20%3D%3D%20%22about%3Acustomizing%22%29%20return%3B%0A%0Avar%20mmb%20%3D%20document.getElementById%28%22main-menubar%22%29%3B%0Ammb.collapsed%20%3D%20true%3B%0AaddDestructor%28%28%29%20%3D%3E%20mmb.collapsed%20%3D%20false%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bif%20%28event.target%20%26%26%20event.target%20%21%3D%20this%29%20return%3B%0Aif%20%28%21event.target%20%26%26%20this.lastChild%20%26%26%20this.lastChild.state%20%3D%3D%20%22open%22%29%20%7B%0A%09this.lastChild.hidePopup%28%29%3B%20return%3B%0A%7D%0Avar%20ids%20%3D%20%5B%0A%09%22file-menu%22%2C%0A%09%22edit-menu%22%2C%0A%09%22view-menu%22%2C%0A%09%22bookmarksMenu%22%2C%0A%09%22history-menu%22%2C%0A%09%22tools-menu%22%2C%0A%09%22helpMenu%22%0A%5D%3B%0Avar%20menus%20%3D%20ids.map%28id%20%3D%3E%20document.getElementById%28id%29%29.filter%28id%3D%3E%20%7Breturn%20%28id%20%21%3D%3D%20null%29%7D%29%3B%0Avar%20menubar%20%3D%20menus%5B0%5D.parentNode%3B%0Avar%20order%20%3D%20Array.slice%28menubar.childNodes%29%3B%0A%0Afunction%20appendMenus%28parent%29%20%7B%0A%09var%20nodes%20%3D%20parent%20%3D%3D%20menubar%20%3F%20order%20%3A%20menus%3B%0A%09for%28var%20node%20of%20nodes%29%20parent.appendChild%28node%29%3B%0A%09if%20%28ids.indexOf%28%22bookmarksMenu%22%29%20%3D%3D%20-1%29%20return%3B%0A%09for%28var%20menu%20of%20parent.getElementsByTagName%28%22menu%22%29%29%20%7B%0A%09%09if%20%28%21menu._placesView%29%20continue%3B%0A%09%09menu._placesView.uninit%28%29%3B%0A%09%09delete%20menu._placesView%3B%0A%09%7D%0A%7D%0Athis.textContent%20%3D%20%22%22%3B%0Avar%20popup%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Apopup.position%20%3D%20%22after_start%22%3B%0Apopup.id%20%3D%20%22cb-compact-menu-menupopup%22%3B%0Apopup.setAttribute%28%22context%22%2C%20%22toolbar-context-menu%22%29%3B%0Apopup.__defineGetter__%28%22parentNode%22%2C%20%28%29%20%3D%3E%20null%29%3B%0A%0Apopup.addEventListener%28%22popuphidden%22%2C%20function%20onPH%28e%29%20%7B%0A%09if%20%28e.originalTarget%20%21%3D%20this%29%20return%3B%0A%09popup.removeEventListener%28%22popuphidden%22%2C%20onPH%2C%20false%29%3B%0A%09appendMenus%28menubar%29%3B%0A%7D%2C%20false%29%3B%0A%0AappendMenus%28popup%29%3B%0Apopup.openPopup%28this%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Автор кнопки: Dumby |
bunda1 > 12-03-2011 14:47:28 |
Stf( Firefox, SeaMonkey ) ЛКМ => Сохранить выделенный текст или весь текст на странице как txt файл. Код кнопки и инициализация: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EStf%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAWgAAAFoAAABaAAAAWgAAAFoAAABaAAAAWgAAAFoAAABaAAAAWgAAAFoAAABaAAAAWgAAAFsAAABYAAAAFwAAAACISi/ml2RK9ZdjSfWUYEX1jlpA9ZdjSfWXY0r1l2NL9ZdjS/WXY0v1l2NL9ZdjS/WXY0v1lWFI9J5mSvljMR7lAAAAPgIBAQDBhmP/6cOL/+Kxcf/Fo3L/kHdV/7GNXf/esHL/3q5t/9ysbP/drWz/3a1t/92tbf/erm7/3bBz/vLKlP+FUTrtAAAAPwMCAgC4f1791qtt/tOkZv7e1Mn+jIiE/lZMPv6djHX+4860/uvWu/7p1Ln+6tS4/uvVuv7nz7L+yphV/eK1fv9/TTjsAAAAPwMCAgC5gF//3LR6/9ixff//////29nU/5CRlP9SU1X/paGd//Xr4P//8OP/+uzc//zs2v/57uH/0aRm/ue+iv+ATTftAAAAPwMCAgC5gF//4LiC/9myfv///v3/8eXW/9LPy/+Li4z/RkI7/5OIef/l077/9N/I//Texv/36dn/06Zs/urBkP9/TDbtAAAAPwMCAgC5gGD/5sab/9u1hP////7/+vPp//Pp3f/Iwbr/foCE/0VERP+Lg3r/4NG///rm0P/369v/1Klx/uvFlv9/TDXtAAAAPwMCAgC7gmP/7dS1/926jf/+/Pv/9uzg//jt4P/06dv/u7m3/5l2QP90ShH/fXVv/+DPvP/57d3/1ax0/u7JnP9/SzTtAAAAPwMCAgC8hWj/8Nu//967j////////////////v//////9vTz/9+8gP/GgRL/ckwc/4eBff/n3tH/2bB5/u/Opf9/TDbtAAAAPwMCAgC9hmr/9OPM/9qzgv/p07T/6tO2/+rTtf/p0rT/7de7/97GqP/SoVH/x4IT/2xMJP+Admr/zKRw/vXUrf9/TTjtAAAAPwMCAgC+iW7/9ufT/+rRtP/lyKX/5Mim/+THpv/kx6T/4sWh/+rLp/+9pIf/vZJP/8WCGf9iPhH/fW9c/unNrP+CTzrtAAAAPwMCAgC/inD/+OrX//Ddyv/559X//OrV//ro0//659L/+ufS//zo0v/m1cL/lod4/7iPT//Ihx//Y0ck/pSLg/95STPtAAAAPwICAgC/i3L/+Ova//fk0P/Ct6v/o52W/6uknP+qo5v/q6Sc/6qjm/+1raT/rqij/2ZhX/+wj1n/w4EZ/m1QLv89JB/zAAAASgEBAQDAjnb9+O3e//rn1P+jnpn/lZib/6eoqf+rrK7/srK0/7y9vv+0trj/oaGi/6Cho/9eXF7/w59n/8qFF/9KKgP9AAAAhQIBAAW+h2z/+PLk/P/15fusqKP+oaKi/7Kysf+3trb/vby8/8nJyf+3t7f/cnFx/6Wlpf+fmpL+dXVx+66UYfyuhUP/Ligj1QAAAFqBPSKJ2KWK//PNt/+klo78oKKk+7Cvr/u1tLX7vLu7+8jIyPu3t7b7dHNz+52ho/vHrJz+y6WP/51vX/61jVvuxo0s/z0nCsERBgMDKw8ERh4AAEFjWFS9sLKz/62srfyzs7T/urm5/8HCwv/AwMD/sbGx/cDDw/9GNC7SKgsAaSgNAkMwKSQtq4VIsks0EmcBAQACAQEBAgAAAAAjIyNKOjo6fjU1NXM2NjZ1NjY2dTY2NnU3Nzd1Ozs7czw8PH0UFBQ4AAAAAAEBAQEAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20saveSelectionToTxt%28%29%3B%20//%20%u041B%u041A%u041C%0A%7D%3B%0A%0A%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u043B%u0438%20%u0432%u0435%u0441%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u043A%u0430%u043A%20txt%20%u0444%u0430%u0439%u043B%20.....................%0Afunction%20saveSelectionToTxt%28%29%20%7B%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0438%u0442%u044C%20%u0432%u0441%u0451%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%20....%0A%20%20%20%20%20var%20all%20%3D%20%21getSelect%28%29%3B%0A%20%20%20%20%20if%20%28%20all%20%29%20document.getElementById%28%22cmd_selectAll%22%29.doCommand%28%29%3B%20%0A%0A%20%20%20%20%20var%20sel%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20var%20docTite%20%3D%20getDocTitle%28%29%3B%0A%0A%20%20%20%20%20if%20%28%20%21sel%20%7C%7C%20%21docTite%29%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0434%u043B%u044F%20%u0444%u0430%u0439%u043B%u0430%20...%0A%20%20%20%20%20var%20time%20%3D%20new%20Date%28%29.toLocaleFormat%28%22%25H%3A%25M%3A%25S%22%29%3B%0A%20%20%20%20%20var%20fileTitle%20%3D%20docTite%20+%20%27%20%20%27%20+%20time.replace%28/%3A/g%2C%20%22%u05C3%22%29%3B%0A%0A%20%20%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20....%0A%20%20%20%20%20saveURL%28%22data%3Atext/plain%2C%22%20+%20encodeURIComponent%28%20content.location.href%20+%20%28%22%5Cr%5Cn%5Cr%5Cn%22%20+%20getSelect%28%29%20%29%29%2C%20fileTitle%20+%20%22.txt%22%2C%20null%2C%20false%2C%20false%2C%20null%2C%20content.document%29%3B%0A%20%20%20%20%20if%20%28%20all%20%29%20goDoCommand%28%22cmd_selectNone%22%29%3B%20%0A%7D%3B%0A%0A%0A%0A/*%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0434%u043E%u043C%u0435%u043D%u0430%20%u0435%u0441%u043B%u0438%20%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043A%u0430%20%u0443%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0435%u0442%0A%20%20%20%u0438%u043B%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0435%u0441%u043B%u0438%20%u0434%u043E%u043C%u0435%u043D%u0430%20%u043D%u0435%u0442%20...................................................%20*/%0Afunction%20getDocTitle%28%29%20%7B%0A%20%20%20%20%20var%20protocol%20%3D%20content.location.protocol%3B%0A%20%20%20%20%20if%20%28%20%5B%22about%3A%22%2C%20%22chrome%3A%22%2C%20%22jar%3A%22%2C%20%22data%3A%22%5D.indexOf%28%20protocol%20%29%20%21%3D%20-1%20%29%20return%20false%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20docTitle%20%3D%20content.document.title%20%7C%7C%20content.document.domain%20%7C%7C%20gBrowser.mCurrentTab.label%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20%u0437%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0435%u0434%u043E%u043F%u0443%u0441%u0442%u0438%u043C%u044B%u0435%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043B%u0438%u0448%u043D%u0438%u0435%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%0A%20%20%20%20%20%20%20%20%20%20var%20docTitle%20%3D%20docTitle.replace%28/%5B%3A.%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%22%20%22%29%0A%20%20%20%20%20%20%20%20%20%20var%20docTitle%20%3D%20docTitle.replace%28/%5Cs%5Cs+/g%2C%20%22%20%22%29%3B%20%0A%0A%20%20%20%20%20%20%20%20%20%20return%20docTitle.substring%280%2C%2050%29%3B%0A%7D%3B%0A%0A%0A%0A/*%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%2C%0A%20%20%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%20%20%u0444%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20..........................................*/%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20....%0A%20%20%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29%3B%0A%20%20%20%20var%20anchor%20%3D%20%28selection.anchorNode%20%21%3D%3D%20null%29%3F%20selection.anchorNode%3A%20false%3B%0A%0A%20%20%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%27PRE%27%20....%0A%20%20%20%20if%20%28%20anchor%20%26%26%20anchor.parentNode.tagName%20%3D%3D%20%27PRE%27%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20var%20node%20%3D%20selection.focusNode%3B%0A%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20selection.anchorOffset%3B%0A%20%20%20%20%20%20%20%20%20var%20endPos%20%3D%20selection.focusOffset%3B%0A%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20node.data.substring%28startPos%2C%20endPos%29%3B%20%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%20....%0A%20%20%20%20if%20%28%20selection.toString%28%29.length%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20%20%20var%20selection%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20//%20%u0438%u0441%u043F%u0440%u0430%u0432%u043B%u044F%u0435%u043C%20%u043F%u0440%u043E%u0431%u043B%u0435%u043C%u0443%20%u0441%20%u043F%u0435%u0440%u0435%u043D%u043E%u0441%u043E%u043C%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043D%u043E%u0432%u0443%u044E%20%u0441%u0442%u0440%u043E%u043A%u0443%20%u0432%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u043C%20win%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%u0435%20....%0A%20%20%20%20if%20%28%20selection.toString%28%29.length%20%21%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20selection.toString%28%29%3B%0A%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20selection.replace%28/%5Cu000A/g%2C%20%22%5Cu000D%5Cu000A%22%29%3B%0A%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20selection.replace%28/%5Cu000D%5Cu000D%5Cu000A/g%2C%20%22%5Cu000D%5Cu000A%22%29%3B%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20return%20%28%20selection%20%3D%3D%20%27%27%29%3F%20false%3A%20selection%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0435%u0435%20%u0432%u0440%u0435%u043C%u044F%20.................................................................%0Afunction%20getTime%28%29%20%7B%0A%20%20%20var%20now%20%3D%20new%20Date%28%29%3B%0A%20%20%20return%20now.toLocaleFormat%28%22%25H%3A%25M%3A%25S%22%29%3B%0A%7D%3B%0A%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20............................................................................%0Athis.tooltipText%20%3D%20%22Stf%20%5Cn%u041B%3A%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u043B%u0438%20%u0432%u0435%u0441%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u043A%u0430%u043A%20txt%20%u0444%u0430%u0439%u043B%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ............................................... this.onclick = function(e) { if ( e.button == 0 ) saveSelectionToTxt(); // ЛКМ }; // Сохранить выделенный текст или весь текст на странице как txt файл ..................... function saveSelectionToTxt() { // выделить всё если текст не выделен .... var all = !getSelect(); if ( all ) document.getElementById("cmd_selectAll").doCommand(); var sel = getSelect(); var docTite = getDocTitle(); if ( !sel || !docTite) return; // создать название для файла ... var time = new Date().toLocaleFormat("%H:%M:%S"); var fileTitle = docTite + ' ' + time.replace(/:/g, "׃"); // сохранить .... saveURL("data:text/plain," + encodeURIComponent( content.location.href + ("\r\n\r\n" + getSelect() )), fileTitle + ".txt", null, false, false, null, content.document); if ( all ) goDoCommand("cmd_selectNone"); }; /* Получить заголовк страницы или название домена если заголовка у страницы нет или название вкладки если домена нет ................................................... */ function getDocTitle() { var protocol = content.location.protocol; if ( ["about:", "chrome:", "jar:", "data:"].indexOf( protocol ) != -1 ) return false; var docTitle = content.document.title || content.document.domain || gBrowser.mCurrentTab.label; // заменить недопустимые символы и удалить лишние пробелы var docTitle = docTitle.replace(/[:.\\\/<>?*|"]+/g, " ") var docTitle = docTitle.replace(/\s\s+/g, " "); return docTitle.substring(0, 50); }; /* Получить выделенный текст из страницы или текстового поля, если текст не выделен функция отдаст 'false' ..........................................*/ function getSelect() { // выделенный текст из страницы .... var selection = document.commandDispatcher.focusedWindow.getSelection(); var anchor = (selection.anchorNode !== null)? selection.anchorNode: false; // выделенный текст из 'PRE' .... if ( anchor && anchor.parentNode.tagName == 'PRE' ) { var node = selection.focusNode; var startPos = selection.anchorOffset; var endPos = selection.focusOffset; var selection = node.data.substring(startPos, endPos); } // выделенный текст из текстового поля .... if ( selection.toString().length == 0 ) { var theBox = document.commandDispatcher.focusedElement; if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selection = theBox.value.substring(startPos, endPos); } } // исправляем проблему с переносом текста новую строку в стандартном win блокноте .... if ( selection.toString().length !== 0 ) { var selection = selection.toString(); var selection = selection.replace(/\u000A/g, "\u000D\u000A"); var selection = selection.replace(/\u000D\u000D\u000A/g, "\u000D\u000A"); } return ( selection == '')? false: selection; }; // Получить текущее время ................................................................. function getTime() { var now = new Date(); return now.toLocaleFormat("%H:%M:%S"); }; // Подсказка кнопки ............................................................................ this.tooltipText = "Stf \nЛ: Сохранить выделенный текст или весь текст на странице как txt файл"; Спасибо Dumby и Infocatcher за помощь в исправление ошибок в кнопке. |
humnmind > 27-03-2011 19:47:07 |
Управление отсылкой Referer'ов(Firefox) скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EToggle%20Referer%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANkDQtZPoQAAACBjSFJNAAB6JQAAgIMAAPQkAACEzwAAbV8AAOhqAAA8iwAAG1ep7YEWAAAAfklEQVR4nGL4z0AZBAgg4hQxgAk4RpYDCCCiDYABdEMAAohsA2CGAAQQyQYgGwSSAwgggn4kZABAAOH1I4qhOAwACCCCfiTkAoAAIqiAkDxAAFFsAEAAEW0ANgySAwggogzABwECiGIDAAKIYgMAAoigHwlBgAAiQgl+CBBgACTrMes8De/4AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.pref%3D%27network.http.sendRefererHeader%27%3B%0Athis.setState%3Dfunction%28%29%7B%0A%09switch%28this.PS.getIntPref%28this.pref%29%29%0A%09%7B%0A%09case%200%3A%20%0A%09%09this.image%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANkDQtZPoQAAACBjSFJNAAB6JQAAgIMAAPQkAACEzwAAbV8AAOhqAAA8iwAAG1ep7YEWAAAAwUlEQVR4nGL4z0AZBAggOAXBOBQxgAk4RlYPEEBoBmA3BKwJBtDUAgQQimNwGQI3AEkNA1QdQABh+AibIajOZoCaBVEDEEBgBQ0NDf9hGLshqJqRDQAIILgBMIBpCKZmZAMAAgirAVgNQQMwAwACCMMA7KGN2wCAAMJuAAleAAggTAMIBCJqgvrPABBAqAYgKYSEA+EoBggghAFoTsU0ALshAAGEM56xG4BpCEAAoQgiJyjcBqBmPoAAwqmEWAgQYADCy0D6wdEYNwAAAABJRU5ErkJggg%3D%3D%27%3B%0A%09%09this.tooltipText%3D%20%27%u041D%u0438%u043A%u043E%u0433%u0434%u0430%20%u043D%u0435%20%u043F%u043E%u0441%u044B%u043B%u0430%u0442%u044C%20Referer%27%3B%0A%09%09break%3B%0A%09case%201%3A%0A%09%09this.image%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANkDQtZPoQAAACBjSFJNAAB6JQAAgIMAAPQkAACEzwAAbV8AAOhqAAA8iwAAG1ep7YEWAAAAj0lEQVR4nGL4z0AZBAgg4hQxgAk4RpYDCCCiDYABdEMAAohsA2CGAAQQyQYgGwSSAwggsIKGhob/yJgUAwACCG4ADCAbguJcHAYABBBOA5Bdgs8AgADCMADZIGIMAAggig0ACCCiDcCGQXIAAUSUAfggQABRbABAAFFsAEAAYU1IuBIUNggQQEQowQ8BAgwAGfZda0OWZtsAAAAASUVORK5CYII%3D%27%3B%0A%09%09this.tooltipText%3D%20%27%u041F%u043E%u0441%u044B%u043B%u0430%u0442%u044C%20Referer%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u043D%u0430%20%u0441%u0441%u044B%u043B%u043A%u0435%27%3B%0A%09%09break%3B%0A%09case%202%3A%0A%09%09this.image%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANkDQtZPoQAAACBjSFJNAAB6JQAAgIMAAPQkAACEzwAAbV8AAOhqAAA8iwAAG1ep7YEWAAAAfklEQVR4nGL4z0AZBAgg4hQxgAk4RpYDCCCiDYABdEMAAohsA2CGAAQQyQYgGwSSAwgggn4kZABAAOH1I4qhOAwACCCCfiTkAoAAIqiAkDxAAFFsAEAAEW0ANgySAwggogzABwECiGIDAAKIYgMAAoigHwlBgAAiQgl+CBBgACTrMes8De/4AAAAAElFTkSuQmCC%27%3B%0A%09%09this.tooltipText%3D%20%27%u041F%u043E%u0441%u044B%u043B%u0430%u0442%u044C%20Referer%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u043D%u0430%20%u0441%u0441%u044B%u043B%u043A%u0435%20%u0438%u043B%u0438%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0435%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0439%27%3B%0A%09%20%09break%3B%0A%09%7D%0A%7D%0A%0Athis.PS%3D%0A%20Components.classes%5B%27@mozilla.org/preferences-service%3B1%27%5D%0A%20.getService%28Components.interfaces.nsIPrefBranch%29%3B%0Athis.ob%3D%7B%7D%3B%0Athis.ob.observe%3Dthis.setState.bind%28this%29%3B%0Athis.PS.addObserver%28this.pref%2Cthis.ob%2Cfalse%29%3B%0Athis.setState%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bswitch%28this.PS.getIntPref%28this.pref%29%29%7B%0A%09case%200%3A%20this.PS.setIntPref%28this.pref%2C2%29%3Bbreak%3B%0A%09case%201%3A%20this.PS.setIntPref%28this.pref%2C0%29%3Bbreak%3B%0A%09case%202%3A%20this.PS.setIntPref%28this.pref%2C1%29%3Bbreak%3B%0A%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:switch(this.PS.getIntPref(this.pref)){ case 0: this.PS.setIntPref(this.pref,2);break; case 1: this.PS.setIntPref(this.pref,0);break; case 2: this.PS.setIntPref(this.pref,1);break; } Инициализация: Выделить код Код:this.pref='network.http.sendRefererHeader'; this.setState=function(){ switch(this.PS.getIntPref(this.pref)) { case 0: this.image= 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANkDQtZPoQAAACBjSFJNAAB6JQAAgIMAAPQkAACEzwAAbV8AAOhqAAA8iwAAG1ep7YEWAAAAwUlEQVR4nGL4z0AZBAggOAXBOBQxgAk4RlYPEEBoBmA3BKwJBtDUAgQQimNwGQI3AEkNA1QdQABh+AibIajOZoCaBVEDEEBgBQ0NDf9hGLshqJqRDQAIILgBMIBpCKZmZAMAAgirAVgNQQMwAwACCMMA7KGN2wCAAMJuAAleAAggTAMIBCJqgvrPABBAqAYgKYSEA+EoBggghAFoTsU0ALshAAGEM56xG4BpCEAAoQgiJyjcBqBmPoAAwqmEWAgQYADCy0D6wdEYNwAAAABJRU5ErkJggg=='; this.tooltipText= 'Никогда не посылать Referer'; break; case 1: this.image= 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANkDQtZPoQAAACBjSFJNAAB6JQAAgIMAAPQkAACEzwAAbV8AAOhqAAA8iwAAG1ep7YEWAAAAj0lEQVR4nGL4z0AZBAgg4hQxgAk4RpYDCCCiDYABdEMAAohsA2CGAAQQyQYgGwSSAwggsIKGhob/yJgUAwACCG4ADCAbguJcHAYABBBOA5Bdgs8AgADCMADZIGIMAAggig0ACCCiDcCGQXIAAUSUAfggQABRbABAAFFsAEAAYU1IuBIUNggQQEQowQ8BAgwAGfZda0OWZtsAAAAASUVORK5CYII='; this.tooltipText= 'Посылать Referer при клике на ссылке'; break; case 2: this.image= 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAANkDQtZPoQAAACBjSFJNAAB6JQAAgIMAAPQkAACEzwAAbV8AAOhqAAA8iwAAG1ep7YEWAAAAfklEQVR4nGL4z0AZBAgg4hQxgAk4RpYDCCCiDYABdEMAAohsA2CGAAQQyQYgGwSSAwgggn4kZABAAOH1I4qhOAwACCCCfiTkAoAAIqiAkDxAAFFsAEAAEW0ANgySAwggogzABwECiGIDAAKIYgMAAoigHwlBgAAiQgl+CBBgACTrMes8De/4AAAAAElFTkSuQmCC'; this.tooltipText= 'Посылать Referer при клике на ссылке или загрузке изображений'; break; } } this.PS= Components.classes['@mozilla.org/preferences-service;1'] .getService(Components.interfaces.nsIPrefBranch); this.ob={}; this.ob.observe=this.setState.bind(this); this.PS.addObserver(this.pref,this.ob,false); this.setState(); |
MySh > 02-04-2011 22:29:28 |
Add-on's (Дополнения) (Firefox 4 — Firefox 19) Для более новых версий подойдёт альтернативный вариант.
скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EAdd-on%27s%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACV0lEQVR4Xi3OT2ibZQDH8c/7msT1pZqOtlQ32ulaGJVuB0UvMiyRCbZCT14MHUIzcaCCFcZAGOiKIB3UkyCeBBU86EGYiPZanTIZwnTWScdqbdM/U/vHN1mS5jGHHD637w9+TOM1vKrTtPe8419z7njflrmWt2yb9ocpE0p4CaW2KTjVdtKgkqsnloZCMYyHQjgeHguD4YndoeBDwagZpzCKsfbmNIzjZZxF0aiS+Qd/TUJvRRjYzQcf2DPhotP6TOBJTOE5FIlVPG/NZEvRpq6Wpcp/dR1RXlcmz5pUasWOUalJDQ+3AOC83aGb/SF7TfCdMHCzJ5zYHwjKghXhwC1NXwvmBbOCgheVMI4iGSOas0MXXfWTdWU/WnBjc5kKUqpZkUGibkIFC1IdetSdwZXInB3HJS7bUNR3aCQbr67VaeAuKthGNxbxhVcccNiw8275LbZgw+dm/OUFn/h5falODjVUUUeEHfQKjrhg0OueEunUH3nGfY7akwjWvWnSjEdxG3U0UEOKCAnu4l58605Gzq4EOWRsqLWDFI22/bY6AlJ0ATHOCR6XlcgogCruRx6dgDo6BGvYQQY1cazfu3p9atUlxxT0YxnXcQ2/o4I8yvjSx+ZdsYI9ucjbNj2rx3UMY9O+ryy67bKGX3R42hEnjXnIIr4xJvE3LuH7WCqSw1HUsOAfq96QdU63j+SdUTbrBhLUHJTzg7Ki4ELsHhlNVJHBiIMOOatTnwSRYYeVHEMT2n3WMqoZizZ8pmm/BWKxLQXbHlCxjkfUDGs98yeqUluoAf8DkrzrAnZsWyMAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.url2xul%20%3D%20%27chrome%3A//mozapps/content/extensions/extensions.xul%27%3B%0Athis.onClick%20%3D%20function%20%28e%29%20%7B%0A%20%20%20%20switch%20%28e.button%29%20%7B%0A%20%20%20%20case%200%3A%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20BrowserOpenAddonsMgr%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20BrowserOpenExtensions%28%27extensions%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.ctrlKey%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20t%20%3D%20gBrowser.mTabs%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20current%20%3D%20content.document.location.href%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20i%20%3D%20t.length%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28current%20%3D%3D%20this.url2xul%29%20gBrowser.removeCurrentTab%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20while%20%28true%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28--i%20%3C%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28current%20%3D%3D%20%27about%3Ablank%27%29%20//%20replace%20blank%20tab%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20loadURI%28this.url2xul%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20//%20add%20new%20tab%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28this.url2xul%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28t%5Bi%5D.linkedBrowser.currentURI.spec%20%3D%3D%20this.url2xul%29%20//%20popup%20loaded%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.tabContainer.childNodes%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20openWebPanel%28this.tooltipText%2C%20this.url2xul%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%3B%0A%7D%3B%0Athis.setAttribute%28%27onclick%27%2C%20%27this.onClick%28event%29%3B%27%29%3B%0A%20%0Aconst%20Cb%20%3D%20custombuttons%3B%0A%20%0Afunction%20prop%28aElement%2C%20aString%29%20%7B%0A%20%20%20%20var%20emRDF%20%3D%20%22http%3A//www.mozilla.org/2004/em-rdf%23%22%3B%0A%20%20%20%20var%20arc%20%3D%20RDFService.GetResource%28emRDF%20+%20aString%29%3B%0A%20%20%20%20var%20target%20%3D%20extensionDS.GetTarget%28aElement%2C%20arc%2C%20true%29%3B%0A%20%20%20%20if%20%28target%20instanceof%20Ci.nsIRDFLiteral%29%20return%20target.Value%3B%0A%20%20%20%20if%20%28target%20instanceof%20Ci.nsIRDFInt%29%20return%20target.Value%3B%0A%20%20%20%20return%20null%3B%0A%7D%0A%20%0Avar%20cloneCBcontext%20%3D%20%7B%0A%20%20%20%20cloneItems%3A%20function%20%28aNode%2C%20aID%2C%20aSeparate%29%20%7B%0A%20%20%20%20%20%20%20%20var%20menupopup%20%3D%20document.getElementById%28aID%29.cloneNode%28true%29%3B%0A%20%20%20%20%20%20%20%20var%20menuitems%20%3D%20menupopup.childNodes.length%3B%0A%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20menuitems%3B%20i++%29%0A%20%20%20%20%20%20%20%20aNode.appendChild%28menupopup.firstChild%29%3B%0A%20%20%20%20%20%20%20%20if%20%28aSeparate%29%20aNode.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20makeMenu%3A%20function%20%28aNode%29%20%7B%0A%20%20%20%20%20%20%20%20var%20m%20%3D%20aNode.appendChild%28document.createElement%28%22menu%22%29%29%3B%0A%20%20%20%20%20%20%20%20m.setAttribute%28%22label%22%2C%20%22Custom%20Button%22%29%3B%0A%20%20%20%20%20%20%20%20m.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%20%20%20%20%20%20%20%20var%20mp%20%3D%20m.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20%20%20cloneCBcontext.cloneItems%28mp%2C%20%22custombuttons-contextpopup%22%29%3B%0A%20%20%20%20%20%20%20%20aNode.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20m%29%3B%0A%20%20%20%20%7D%0A%7D%0A%20%0Aconst%20popupID%20%3D%20%22cbContext-extensionsButton%22%3B%0A%20%0Avar%20test%20%3D%20document.getElementById%28popupID%29%3B%0Aif%20%28test%29%20test.parentNode.removeChild%28test%29%3B%0A%20%0Avar%20main%20%3D%20document.getElementById%28%22mainPopupSet%22%29%3B%0Avar%20cPopup%20%3D%20main.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0AcPopup.id%20%3D%20popupID%3B%0AcPopup.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%3B%20document.popupNode.openPrefs%28event%29%3B%22%29%0A%20%0Avar%20app%20%3D%20Cc%20%5B%22@mozilla.org/fuel/application%3B1%22%5D.%20getService%20%28Ci.%20fuelIApplication%29%3B%0Avar%20am%20%3D%20%7B%7D%3B%0ACu.%20import%20%28%22resource%3A//gre/modules/AddonManager.jsm%22%2C%20am%29%3B%0Aam.%20AddonManager.%20getAddonsByTypes%0A%28%0A%20%20%20%20%20%20%20%20%5B%22extension%22%5D%2C%0A%20%20%20%20%20%20%20%20function%20%28extensions%29%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20e%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20extensions.%20length%3B%20i++%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e%20%3D%20extensions%20%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mi%20%3D%20%3Cmenuitem%20xmlns%3D%7Bxulns%7D%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%20%20%20%20%20%20%20%20%20%20%20%20%20label%3D%7Be.%20name%20+%20%22%20%22%20+%20e.%20version%7D/%3E%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.%20iconURL%29%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%7B%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%20%20mi%20%5B%22@class%22%5D%20%3D%20%22menuitem-iconic%20bookmark-item%22%3B%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%20%20mi%20%5B%22@image%22%5D%20%3D%20e.%20iconURL%3B%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%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.%20userDisabled%29%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%20%20mi%20%5B%22@disabled%22%5D%20%3D%20%22true%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.%20optionsURL%29%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%20%20mi%20%5B%22@oncommand%22%5D%20%3D%20%22window.%20openDialog%20%28%27%22%20+%20e.%20optionsURL%20+%20%22%27%2C%20%27%27%2C%20%27chrome%2Cdialog%3D0%2Cresizable%2Ctitlebar%2Ctoolbar%2Ccenterscreen%27%29%3B%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cPopup.%20appendChild%20%28cbu.%20makeXML%20%28mi%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20arr%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20%09for%20%28var%20j%20%3D%200%3B%20j%20%3C%20cPopup.%20childNodes.%20length%3B%20j++%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09arr%20%5Bj%5D%20%3D%20cPopup.%20childNodes%20%5Bj%5D%3B%0A%20%20%20%20%20%20%20%20%09arr.%20sort%0A%20%20%20%20%20%20%20%20%09%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%09%09function%20%28a%2C%20b%2C%20c%2C%20d%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09%09%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09if%20%28a.%20nodeName%20%3D%3D%20%22menu%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09return%20-1%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09else%20if%20%28b.%20nodeName%20%3D%3D%20%22menu%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09return%201%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%09%09return%20a.%20getAttribute%20%28%22label%22%29.%20toLowerCase%20%28%29%20%3E%20b.%20getAttribute%20%28%22label%22%29.%20toLowerCase%20%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%09%09%7D%0A%20%20%20%20%20%20%20%20%09%29%3B%0A%20%20%20%20%20%20%20%20%09for%20%28var%20j%20%3D%200%3B%20j%20%3C%20arr.%20length%3B%20j++%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%09cPopup.%20appendChild%20%28arr%20%5Bj%5D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%29%3B%0A%20%0AcloneCBcontext.makeMenu%28cPopup%29%3B%0Athis.setAttribute%28%22context%22%2C%20popupID%29%3B%0A%20%0Aif%20%28typeof%20Local_Install%20%21%3D%20%22object%22%29%20return%3B%0A%20%0Avar%20test%20%3D%20document.getElementById%28%22cbContext-extensions%22%29%3B%0Aif%20%28test%29%20test.parentNode.removeChild%28test%29%3B%0A%20%0Avar%20cbPopup%20%3D%20document.getElementById%28%22custombuttons-contextpopup-subCall%22%29.cloneNode%28true%29%3B%20//%20Cb%20context%0Avar%20subMenu%20%3D%20document.createElement%28%22menu%22%29%3B%0AsubMenu.setAttribute%28%22label%22%2C%20%22Custom%20Button%22%29%3B%0AsubMenu.appendChild%28cbPopup.lastChild%29%3B%0A%20%0Avar%20extensionsPopup%20%3D%20document.getElementById%28%22emb-context%22%29%3B%0Avar%20popup%20%3D%20extensionsPopup.cloneNode%28true%29%3B%0Apopup.id%20%3D%20%22cbContext-extensions%22%3B%0Apopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0Apopup.appendChild%28subMenu%29%3B%0AextensionsPopup.parentNode.appendChild%28popup%29%3B%0A%20%0Athis.setAttribute%28%22context%22%2C%20popup.id%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Пиктограмма: Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACV0lEQVR4Xi3OT2ibZQDH8c/7msT1pZqOtlQ32ulaGJVuB0UvMiyRCbZCT14MHUIzcaCCFcZAGOiKIB3UkyCeBBU86EGYiPZanTIZwnTWScdqbdM/U/vHN1mS5jGHHD637w9+TOM1vKrTtPe8419z7njflrmWt2yb9ocpE0p4CaW2KTjVdtKgkqsnloZCMYyHQjgeHguD4YndoeBDwagZpzCKsfbmNIzjZZxF0aiS+Qd/TUJvRRjYzQcf2DPhotP6TOBJTOE5FIlVPG/NZEvRpq6Wpcp/dR1RXlcmz5pUasWOUalJDQ+3AOC83aGb/SF7TfCdMHCzJ5zYHwjKghXhwC1NXwvmBbOCgheVMI4iGSOas0MXXfWTdWU/WnBjc5kKUqpZkUGibkIFC1IdetSdwZXInB3HJS7bUNR3aCQbr67VaeAuKthGNxbxhVcccNiw8275LbZgw+dm/OUFn/h5falODjVUUUeEHfQKjrhg0OueEunUH3nGfY7akwjWvWnSjEdxG3U0UEOKCAnu4l58605Gzq4EOWRsqLWDFI22/bY6AlJ0ATHOCR6XlcgogCruRx6dgDo6BGvYQQY1cazfu3p9atUlxxT0YxnXcQ2/o4I8yvjSx+ZdsYI9ucjbNj2rx3UMY9O+ryy67bKGX3R42hEnjXnIIr4xJvE3LuH7WCqSw1HUsOAfq96QdU63j+SdUTbrBhLUHJTzg7Ki4ELsHhlNVJHBiIMOOatTnwSRYYeVHEMT2n3WMqoZizZ8pmm/BWKxLQXbHlCxjkfUDGs98yeqUluoAf8DkrzrAnZsWyMAAAAASUVORK5CYII= Инициализация: Выделить код Код:this.url2xul = 'chrome://mozapps/content/extensions/extensions.xul'; this.onClick = function (e) { switch (e.button) { case 0: try { BrowserOpenAddonsMgr(); } catch(e) { BrowserOpenExtensions('extensions'); } break; case 1: { if (e.ctrlKey) { var t = gBrowser.mTabs; var current = content.document.location.href; var i = t.length; if (current == this.url2xul) gBrowser.removeCurrentTab(); else while (true) { if (--i < 0) { if (current == 'about:blank') // replace blank tab loadURI(this.url2xul); else // add new tab gBrowser.selectedTab = gBrowser.addTab(this.url2xul); break; }; if (t[i].linkedBrowser.currentURI.spec == this.url2xul) // popup loaded { gBrowser.selectedTab = gBrowser.tabContainer.childNodes[i]; break; }; }; } else openWebPanel(this.tooltipText, this.url2xul); }; break; }; }; this.setAttribute('onclick', 'this.onClick(event);'); const Cb = custombuttons; function prop(aElement, aString) { var emRDF = "http://www.mozilla.org/2004/em-rdf#"; var arc = RDFService.GetResource(emRDF + aString); var target = extensionDS.GetTarget(aElement, arc, true); if (target instanceof Ci.nsIRDFLiteral) return target.Value; if (target instanceof Ci.nsIRDFInt) return target.Value; return null; } var cloneCBcontext = { cloneItems: function (aNode, aID, aSeparate) { var menupopup = document.getElementById(aID).cloneNode(true); var menuitems = menupopup.childNodes.length; for (var i = 0; i < menuitems; i++) aNode.appendChild(menupopup.firstChild); if (aSeparate) aNode.appendChild(document.createElement("menuseparator")); }, makeMenu: function (aNode) { var m = aNode.appendChild(document.createElement("menu")); m.setAttribute("label", "Custom Button"); m.setAttribute("oncommand", "event.stopPropagation()"); var mp = m.appendChild(document.createElement("menupopup")); cloneCBcontext.cloneItems(mp, "custombuttons-contextpopup"); aNode.insertBefore(document.createElement("menuseparator"), m); } } const popupID = "cbContext-extensionsButton"; var test = document.getElementById(popupID); if (test) test.parentNode.removeChild(test); var main = document.getElementById("mainPopupSet"); var cPopup = main.appendChild(document.createElement("menupopup")); cPopup.id = popupID; cPopup.setAttribute("oncommand", "event.stopPropagation(); document.popupNode.openPrefs(event);") var app = Cc ["@mozilla.org/fuel/application;1"]. getService (Ci. fuelIApplication); var am = {}; Cu. import ("resource://gre/modules/AddonManager.jsm", am); am. AddonManager. getAddonsByTypes ( ["extension"], function (extensions) { var e; for (var i = 0; i < extensions. length; i++) { e = extensions [i]; var mi = <menuitem xmlns={xulns} label={e. name + " " + e. version}/>; if (e. iconURL) { mi ["@class"] = "menuitem-iconic bookmark-item"; mi ["@image"] = e. iconURL; } if (e. userDisabled) mi ["@disabled"] = "true"; if (e. optionsURL) mi ["@oncommand"] = "window. openDialog ('" + e. optionsURL + "', '', 'chrome,dialog=0,resizable,titlebar,toolbar,centerscreen');"; cPopup. appendChild (cbu. makeXML (mi)); } var arr = []; for (var j = 0; j < cPopup. childNodes. length; j++) arr [j] = cPopup. childNodes [j]; arr. sort ( function (a, b, c, d) { if (a. nodeName == "menu") return -1; else if (b. nodeName == "menu") return 1; return a. getAttribute ("label"). toLowerCase () > b. getAttribute ("label"). toLowerCase (); } ); for (var j = 0; j < arr. length; j++) cPopup. appendChild (arr [j]); } ); cloneCBcontext.makeMenu(cPopup); this.setAttribute("context", popupID); if (typeof Local_Install != "object") return; var test = document.getElementById("cbContext-extensions"); if (test) test.parentNode.removeChild(test); var cbPopup = document.getElementById("custombuttons-contextpopup-subCall").cloneNode(true); // Cb context var subMenu = document.createElement("menu"); subMenu.setAttribute("label", "Custom Button"); subMenu.appendChild(cbPopup.lastChild); var extensionsPopup = document.getElementById("emb-context"); var popup = extensionsPopup.cloneNode(true); popup.id = "cbContext-extensions"; popup.appendChild(document.createElement("menuseparator")); popup.appendChild(subMenu); extensionsPopup.parentNode.appendChild(popup); this.setAttribute("context", popup.id); 02-04-2011 22:39:48 FFolders (Папки Firefox) (Firefox 1 — Firefox 19). Более новая версия кнопки — здесь. Автор: Anton. Кнопка содержит выпадающее меню, через которое можно открыть папку с текущим профилем и папку установки Firefox. скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EFFolders%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20onclick%3D%22this.%20parentNode.%20handleClick%20%28event%29%3B%22%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22ProfD%22/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20Firefox%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22CurProcD%22/%3E%0A%20%20%20%20%20%20%3C/menupopup%3E%3B%0Athis.%20appendChild%20%28custombuttonsUtils.%20makeXML%20%28menu%29%29%3B%0Athis.%20type%20%3D%20%22menu%22%3B%0Athis.%20orient%20%3D%20%22horizontal%22%3B%0A%20%0Athis.%20handleClick%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20menuitem%20%3D%20event.%20target%3B%0A%20%20%20%20var%20value%20%3D%20menuitem.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20file%20%3D%20Cc%20%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%20getService%20%28Ci.%20nsIProperties%29%3B%0A%20%20%20%20%20%20%20%20file%20%3D%20file.%20get%20%28value%2C%20Ci.%20nsIFile%29.%20QueryInterface%20%28Ci.%20nsILocalFile%29%3B%0A%20%20%20%20%20%20%20%20file.%20launch%20%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20this.%20open%20%3D%20false%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Пиктограмма: Выделить код Код:data:image/png;base64,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 Инициализация: Выделить код Код:var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onclick="this. parentNode. handleClick (event);"> <menuitem label="Открыть папку текущего профиля" value="ProfD"/> <menuitem label="Открыть папку установки Firefox" value="CurProcD"/> </menupopup>; this. appendChild (custombuttonsUtils. makeXML (menu)); this. type = "menu"; this. orient = "horizontal"; this. handleClick = function (event) { var menuitem = event. target; var value = menuitem. getAttribute ("value"); if (event. button == 0) { var file = Cc ["@mozilla.org/file/directory_service;1"]. getService (Ci. nsIProperties); file = file. get (value, Ci. nsIFile). QueryInterface (Ci. nsILocalFile); file. launch (); } this. open = false; }; |
bunda1 > 04-04-2011 19:01:18 |
Quick bookmarks( Firefox 3.6 + ) ЛКМ => добавить все открытие вкладки в папку закладок, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EQuick%20bookmarks%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAAAAAEFBwcD5TTywYtQTQHAAAAAAECAgAAAAABAgEDAAAAACZKJaoakiP/K4A0ywIAAAIBAQAAAAAAAAAAAAAAAQEBAQAAAAwaIj8ZrvD9GLr382eet7eKfnt7SkI9PBgQCg4CAAUAJGYouiDSL/87r0DbCgMABwAAAQACAgICAAAAAQMDBAAXFRYjGh8mahGR2O8fx///Ic3//obh/P+s2PD/W7HZ6CKe4NcvmWr7Ercb/0+6P++PTBBXCwUAAwAAAQAAAAAABQYHAxodHzcaFBdLDHrD3ifN//8oxvf6Hsb/+xeLff0FjED/DqRQ/x+hM/8KkhX/Qb1J+nS3UOtUoUjRNHg9vw0NDgEjIiUUIBMRHBstN0sep9/pLNH//y/O+v430v//E3pB/xClAP440zf9Ps1I/zekQv9EpE7/S79j/2jQeP9dpmL/DQ0OAR4jJxAfZoJ2I73u7i/T//8y0Pz+NdT8/zrX//8yp4r/O7ps/2jXlP9/5Iz/YdRr/2KoZf51mWP/Y4JY6ERbR70AAAAAGmV6ckbo//9D5v7+ONf+/jbV/P482f3/P9z9/0Df//9x4/7/fuP//2rTm/903Hj/Zp1f++q7jP+XelyoAAAAAAEBAQEAAQEBECQkITR8h3tJx+DZTN///0Hd/P5D4P3/YOf8/670/P+l8///asiV/3fKev9xnG7778qc/5yDY6gAAAAAAAAAAAAAAAAAAQEBAAAAAAAGBwA0oMfGTOn//4fs/PzN+P//l/D8/7T8//96u5//ZZVl/4Ocfvv84Lz/nIRkqAAAAAAAAAAAAAAAAAECAgIBBgcIAAAAAESAm6Jv5///1vv9++38///u+Pr/3PDz/+Di2v/j1rr/6Ne8+//v0P+ei3KoAAAAAAAAAAAAAAAAAAAAAAIDAwMAAAAAiJiho2zT///L9/z7+f3+//77+v/u7O7/7+Ta///qzP/35Mn7//PX/6KUgagAAAAAAAAAAAAAAAAAAAAAAwMDBAAAAACuqKWijdv//87t+Pv/////+fv7/+zu8P/t5dz//OrQ//np0fv/+d//o5eGqAAAAAAAAAAAAAAAAAAAAAADAwMEAAAAAKampaL/////+vr6+////v/8/Pv/7e7v/+/n3v//79f//O3Y+//+6P+kmoqoAAAAAAAAAAAAAAAAAAAAAAMDAwQAAAAApKSkoP/////4+fj5/f39/v39/f7z9Pb/8Oni///z4P/88eD7///y/6SdkKgAAAAAAAAAAAAAAAAAAAAAAwMDBAAAAACrq6ui//////v7+/v///////////7///728ez8+vHi/Prz5fn///n/pJ6VpwAAAAAAAAAAAAAAAAAAAAACAgIDAAAAAF5eXlrGxsXE0tLS0erq6un6+vr5////////////////+/v4+/////+opZ2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwICExMTEisrKylHR0dFaGdnZYmKi4inpqam19TP2pGOiI8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20................................%0Avar%20button%20%3D%20this%3B%0Avar%20folderName%20%3D%20%22%u041D%u043E%u0432%u0430%u044F%20%u043F%u0430%u043F%u043A%u0430%22%3B%0Avar%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%0A%20%20%20%20%20var%20bmsvc%20%3D%20Components.classes%20%5B%22@mozilla.org/browser/nav-bookmarks-service%3B1%22%5D.getService%28Components.interfaces.nsINavBookmarksService%29%3B%0A%20%20%20%20%20var%20rootFolder%20%3D%20bmsvc.toolbarFolder%3B%0A%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%20....%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20f%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21f%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bmsvc.createFolder%28%20rootFolder%2C%20folderName%2C%20bmsvc.%20DEFAULT_INDEX%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20uris%20%3D%20getTabsURIs%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20ios%20%3D%20Components.%20classes%20%5B%22@mozilla.org/network/io-service%3B1%22%5D.getService%20%28Components.%20interfaces.%20nsIIOService%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20uri%3B%0A%20%20%20%20%20%20%20%20%20%20bmsvc.runInBatchMode%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20runBatched%3A%20function%28%20data%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20uris.%20length%3B%20i++%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bmsvc.insertBookmark%28%20f%2C%20uris%5Bi%5D.uri%2C%20bmsvc.DEFAULT_INDEX%2C%20uris%5Bi%5D.label%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%20button.image%2C%20button.label%2C%20%27%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%3A%20%27%20+%20folderName%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20null%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20var%20f%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21f%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bmsvc.createFolder%28%20rootFolder%2C%20folderName%2C%20bmsvc.DEFAULT_INDEX%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20f%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20br%20%3D%20gBrowser.%20getBrowserForTab%20%28gBrowser.%20mCurrentTab%29%3B%0A%20%20%20%20%20%20%20%20%20%20bmsvc.insertBookmark%28%20f%2C%20br.webNavigation.currentURI%2C%20bmsvc.DEFAULT_INDEX%2C%20gBrowser.mCurrentTab.label%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20/*%0A%20%20%20%20%20%20%20%20%20%20var%20sebp%20%3D%20StarUI.showEditBookmarkPopup%3B%0A%20%20%20%20%20%20%20%20%20%20StarUI.showEditBookmarkPopup%20%3D%20function%28%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20PlacesCommandHook.bookmarkCurrentPage%28%20false%2C%20f%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20StarUI.showEditBookmarkPopup%20%3D%20sebp%3B%0A%20%20%20%20%20%20%20%20%20%20*/%0A%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%20button.image%2C%20button.label%2C%20%27%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%3A%20%27%20+%20folderName%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20bmsvc%20%3D%20Components.classes%5B%22@mozilla.org/browser/nav-bookmarks-service%3B1%22%5D.getService%28Components.interfaces.nsINavBookmarksService%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20f%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20f%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bmsvc.removeItem%28%20f%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%20button.image%2C%20button.label%2C%20%27%u0423%u0434%u0430%u043B%u0438%u043B%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%3A%20%27%20+%20folderName%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u0441%20%u0430%u0434%u0440%u0435%u0441%u0430%u043C%u0438%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%u043C%u0438%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20................................%20%0Afunction%20getTabsURIs%28%29%20%7B%0A%20%20%20var%20tabList%20%3D%20%5B%5D%3B%0A%20%20%20var%20seenURIs%20%3D%20%5B%5D%3B%20%20%20%20%20%20%20%20%0A%20%20%20var%20br%2C%20webNav%2C%20uri%3B%0A%20%20%20%0A%20%20%20var%20tabs%20%3D%20getBrowser%28%29.mTabs%3B%0A%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20tabs.%20length%3B%20++i%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20br%20%3D%20gBrowser.getBrowserForTab%28%20tabs%5Bi%5D%20%29%3B%0A%20%20%20%20%20%20%20%20%20var%20webNav%20%3D%20br.webNavigation%3B%0A%20%20%20%20%20%20%20%20%20uri%20%3D%20webNav.currentURI%3B%0A%20%20%20%20%20%20%20%20%20if%20%28%20uri.spec%20in%20seenURIs%20%29%20continue%3B%0A%20%20%20%20%20%20%20%20%20seenURIs%5Buri.spec%5D%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20tabList.push%20%28%7B%20uri%3A%20uri%2C%20label%3A%20tabs%5Bi%5D.label%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%0A%20%20%20return%20tabList%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20................................%20%0Afunction%20getChildFolder%28%20parentId%2C%20title%20%29%20%7B%0A%20%20%20var%20res%20%3D%20null%3B%0A%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20var%20hs%20%3D%20Cc%20%5B%22@mozilla.org/browser/nav-history-service%3B1%22%5D.getService%28Ci.nsINavHistoryService%29%3B%0A%20%20%20%20%20%20%20%20var%20options%20%3D%20hs.getNewQueryOptions%28%29%3B%0A%20%20%20%20%20%20%20%20options.excludeItems%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20var%20query%20%3D%20hs.getNewQuery%28%29%3B%0A%20%20%20%20%20%20%20%20query.setFolders%28%20%5BparentId%5D%2C%201%20%29%3B%0A%20%20%20%20%20%20%20%20var%20result%20%3D%20hs.executeQuery%28%20query%2C%20options%20%29%3B%0A%20%20%20%20%20%20%20%20var%20rn%20%3D%20result.root%3B%0A%20%20%20%20%20%20%20%20rn.containerOpen%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20var%20i%2C%20node%3B%0A%20%20%20%20%20%20%20%20for%20%28%20i%20%3D%200%3B%20i%20%3C%20rn.childCount%3B%20i++%20%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20node%20%3D%20rn.getChild%28i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20node.title%20%3D%3D%20title%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20res%20%3D%20node.itemId%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20rn.containerOpen%20%3D%20false%3B%0A%20%20%20%20%20%20%20%7D%20%0A%20%20%20catch%28e%29%20%7B%7D%0A%20%20%20%0A%20%20%20return%20res%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20............................%0Athis.tooltipText%20%3D%20%22Quick%20bookmarks%5Cn%u041B%u041A%u041C%20%3D%3E%20%u0434%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%5Cn%u0421%u041A%u041C%20%3D%3E%20%u0434%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%5Cn%u041F%u041A%u041C%20%3D%3E%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%5CnCtrl+%u041F%u041A%u041C%20%3D%3E%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Объявляем переменные для этой вкладки ................................ var button = this; var folderName = "Новая папка"; var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService); // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { var bmsvc = Components.classes ["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService); var rootFolder = bmsvc.toolbarFolder; // действие при клике ЛКМ .... if ( e.button == 0 ) { var f = getChildFolder( rootFolder, folderName ); if ( !f ) { bmsvc.createFolder( rootFolder, folderName, bmsvc. DEFAULT_INDEX ); f = getChildFolder( rootFolder, folderName ); } var uris = getTabsURIs(); var ios = Components. classes ["@mozilla.org/network/io-service;1"].getService (Components. interfaces. nsIIOService); var uri; bmsvc.runInBatchMode({ runBatched: function( data ) { for ( var i = 0; i < uris. length; i++ ) bmsvc.insertBookmark( f, uris[i].uri, bmsvc.DEFAULT_INDEX, uris[i].label ); alertsService.showAlertNotification( button.image, button.label, 'Добавил все вкладки в папку закладок: ' + folderName, false, "", null, ""); } }, null ); }; // действие при клике СКМ .... if ( e.button == 1 ) { var f = getChildFolder( rootFolder, folderName ); if ( !f ) { bmsvc.createFolder( rootFolder, folderName, bmsvc.DEFAULT_INDEX ); f = getChildFolder( rootFolder, folderName ); } var br = gBrowser. getBrowserForTab (gBrowser. mCurrentTab); bmsvc.insertBookmark( f, br.webNavigation.currentURI, bmsvc.DEFAULT_INDEX, gBrowser.mCurrentTab.label ); /* var sebp = StarUI.showEditBookmarkPopup; StarUI.showEditBookmarkPopup = function() {}; PlacesCommandHook.bookmarkCurrentPage( false, f ); StarUI.showEditBookmarkPopup = sebp; */ alertsService.showAlertNotification( button.image, button.label, 'Добавил вкладку в папку закладок: ' + folderName, false, "", null, ""); }; // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); var bmsvc = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService); var f = getChildFolder( rootFolder, folderName ); if ( f ) { bmsvc.removeItem( f ); alertsService.showAlertNotification( button.image, button.label, 'Удалил папку закладок: ' + folderName, false, "", null, ""); } }; }; // Получить массив с адресами и названиями вкладок ................................ function getTabsURIs() { var tabList = []; var seenURIs = []; var br, webNav, uri; var tabs = getBrowser().mTabs; for ( var i = 0; i < tabs. length; ++i ) { br = gBrowser.getBrowserForTab( tabs[i] ); var webNav = br.webNavigation; uri = webNav.currentURI; if ( uri.spec in seenURIs ) continue; seenURIs[uri.spec] = true; tabList.push ({ uri: uri, label: tabs[i].label }); } return tabList; }; // Получить нужную папку закладок ................................ function getChildFolder( parentId, title ) { var res = null; try { var hs = Cc ["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsINavHistoryService); var options = hs.getNewQueryOptions(); options.excludeItems = true; var query = hs.getNewQuery(); query.setFolders( [parentId], 1 ); var result = hs.executeQuery( query, options ); var rn = result.root; rn.containerOpen = true; var i, node; for ( i = 0; i < rn.childCount; i++ ){ var node = rn.getChild(i); if ( node.title == title ) { res = node.itemId; break; } } rn.containerOpen = false; } catch(e) {} return res; }; // Подсказка для кнопки ............................ this.tooltipText = "Quick bookmarks\nЛКМ => добавить все открытие вкладки в папку закладок\nСКМ => добавить текущую вкладку в папку закладок\nПКМ => удалить папку закладок\nCtrl+ПКМ => открыть контекстное меню кнопки"; Автор кода: Anton |
bunda1 > 07-04-2011 20:10:18 |
Очистить кэш и удалить флэш куки( Firefox 17-45 ) Скриншот подсказки у кнопки: Left => очистить кэш Firefox и удалить Flash cookie. Код кнопки для Firefox 17-26: Выделить код Код: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%0A%20%20%3Cname%3EClear%20Cache%20/%20Delete%20flash%20cookies%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAExEAAAEAIAB4BQAAFgAAACgAAAATAAAAIgAAAAEAIAAAAAAAUAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwAAAAAAAQEBCxMTEyElJSU/KywrWC4sLWUzMzNrPDs8a0NEQ2MsLCxKDg0PKgABAA8AAAAAAgICAAAAAAAAAAAAAAAAAQAAAAIZGhoHQ0NDUGJiYqZxcXHVcXFx6XNzc/STlJT2t7e2+NDP0Pjb3dz11tbY67GwsNtsbWy0JyYnYQICAg8CAgICAAAAAgICAgUAAAAAJykpJ5CRkM64t7f/q6ut/7m5uf/Lx8b/19bW/9nY2P7a2dz+4d/g/+rq6P/r7Or/1NTU/3V1ddkKCwo+AQEBAQEBAQQCAgIDAAABARMTEhdubmy/rq6w/snIyfbj4+H94uXn/d/l7f3W2+X9xc3R/a20u/2oqKr9paWi96Wmpf5ubW3NFRMTNgAAAA4BAQEJAQIBAQICAgUAAQUBhY6UpuDi5f7b2Nj609ng/rfB1v+ssc3/wcja/6qyx/99hqL/iZOr/rW4vfrZ2Nf+io2VuQQHDiICAgETAQEBBgIDBAIDAgEDAQoSAau8wq3/////4Oft+tzm7v7d4On/q6zJ/0tLoP9cXKb/tbXM/9Hb5v7f5/H6/////7K6wrYBDRkNAwEABQICAQECAwQCAQIBAggNEQest7+4+v7+/8rY6Pnf5u7++/r6/6OmzP9kZa//aGmu/8rN4//7+vv/3Obr+Pn9/f+/wsK7ChIWDAIBAQECAwMDAwQEBAEBAQINFhgPprXAvPb////K1OT5vcDX/6SlzP+Bg7z/5ebu/7S11P9+gbv/l5jE/7G60fj1/P7/w8TIwBYYIRcAAQEBBAQEBAQEBQQCAAAAESIsGbTGzMH5////5u70+dTW6P+Dg7//gIC//8PD3f+gocr/OTyf/3J0t/+/xd349P7//73EzsYgIy8hAAAAAAQEBAQEBAUEAAAAABoiLSLAyszH+f///9/q9vj0+Pz/2Nfp/7e32P+9vtz/ubvX/25vtP+/weD/5/D1+Pb////AytHLJSw3KwAAAAAEBAUFBAQFBQAAAAAgKzQrvsvOyvb+/v/I2e/42ef3//L19v/p6Ov//vv7//Hy8v/Jydv/1ODu/97r9Pj9/v//zdHY0C44RjgAAAAABAUFBQQFBQUAAAAAKzpJN8TV2dD4/v7/1Oj++NDq///Q6P7/4PH//+Pw/v/U5fb/xt3z/8Tc9f/X5/f4//7//9PX29c3QktFAAAAAAUFBQUEBQUFAAAAADE5Rj7G09rT8Pr7/8PV6fi60eX/q8ff/63G4P+uxt//s8vl/7PN6//F2fD/0N/r+Pr8/P/W3+TaP09aSwAAAAAFBQUFBAUFBQAAAAA4PUhRqrW/3bK6wP57gIn2cXeD/nh+gv2Rlpf9rrKz/crNz/3c4eT94uft/tDU2/bX2dr+tL3F4kJNWl0AAAAABAUGBgMDAwYAAAAAX15jfq+vsvqjpqb/mJ2f/qmyt/+vvMP+u8nT/8jT3f/R3Ob/2OTs/97l7P/N0dX+wsLE/62usP5WV1uLAAAAAAIDBAUDAwMEAAAAAEdGRkqJiYi6mZma57CztO/Q1tr20tni98PL1vettb/3maGs94uSnfeIjpL3iY2M8ZycnOmZmJfDTUtMVgAAAAACAgIDAAAAAAAAAAAEBAUBDxEQEickJCtAODtEVlFTW2RjZGljYl9yXVxadVdWVHNRUFNqR0RHXT03NkcpJyctFBUWEwgHCAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%29%20return%3B%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u0435%u0448%20....%0A%20%20%20%20%20var%20cacheService%20%3D%20Cc%5B%22@mozilla.org/network/cache-service%3B1%22%5D.getService%28Ci.nsICacheService%29%3B%0A%20%20%20%20%20cacheService.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20cacheService.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%0A%20%20%20%20%20//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%20....%0A%20%20%20%20%20var%20dir%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29.get%28%22Home%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20if%20%28%20dir.exists%28%29%20%29%20dir.remove%28true%29%3B%0A%20%20%20%20%20if%20%28%20%21dir.exists%28%29%20%29%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A%20%20%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20const%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%20%20%20%20%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%0A%7D%3B%0A%0A%0A//%20%u0421%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20....%0Avar%20k%20%3D%20100%2C%20mb%20%3D%201024%20*%201024%2C%20str%20%3D%20%22%22%2C%0Acs%20%3D%20Cc%5B%22@mozilla.org/network/cache-service%3B1%22%5D.getService%28Ci.nsICacheService%29%2C%0Avisitor%20%3D%20%7B%20visitDevice%3A%20addInfo%20%7D%3B%0A%0Afunction%20addInfo%28device%2C%20info%29%20%7B%0A%20%20%20//%20if%20%28device%5B0%5D%20%3D%3D%20%22o%22%29%20return%3B%0A%20%20%20str%20+%3D%20%28str%20%3F%20%22%5Cn%22%20%3A%20%22%22%29%20+%20device%5B0%5D.toUpperCase%28%29%20+%20device.slice%281%29%20+%20%22%20Cache%3A%20%20%22%20+%0A%20%20%20%5Binfo.totalSize%2C%20info.maximumSize%5D.map%28function%28num%29%20Math.round%28k%20*%20num%20/%20mb%29%20/%20k%20+%20%22%20MB%22%29.join%28%22%20/%20%22%29%3B%0A%7D%3B%0A%0Athis.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20str%20%3D%20%22%22%3B%0A%20%20%20%20cs.visitEntries%28visitor%29%3B%0A%20%20%20%20this.tooltipText%20%3D%20str%3B%0A%7D%3B%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код кнопки для Firefox 26-51: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0444%u043B%u044D%u0448%20%u043A%u0443%u043A%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAExEAAAEAIAB4BQAAFgAAACgAAAATAAAAIgAAAAEAIAAAAAAAUAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwAAAAAAAQEBCxMTEyElJSU/KywrWC4sLWUzMzNrPDs8a0NEQ2MsLCxKDg0PKgABAA8AAAAAAgICAAAAAAAAAAAAAAAAAQAAAAIZGhoHQ0NDUGJiYqZxcXHVcXFx6XNzc/STlJT2t7e2+NDP0Pjb3dz11tbY67GwsNtsbWy0JyYnYQICAg8CAgICAAAAAgICAgUAAAAAJykpJ5CRkM64t7f/q6ut/7m5uf/Lx8b/19bW/9nY2P7a2dz+4d/g/+rq6P/r7Or/1NTU/3V1ddkKCwo+AQEBAQEBAQQCAgIDAAABARMTEhdubmy/rq6w/snIyfbj4+H94uXn/d/l7f3W2+X9xc3R/a20u/2oqKr9paWi96Wmpf5ubW3NFRMTNgAAAA4BAQEJAQIBAQICAgUAAQUBhY6UpuDi5f7b2Nj609ng/rfB1v+ssc3/wcja/6qyx/99hqL/iZOr/rW4vfrZ2Nf+io2VuQQHDiICAgETAQEBBgIDBAIDAgEDAQoSAau8wq3/////4Oft+tzm7v7d4On/q6zJ/0tLoP9cXKb/tbXM/9Hb5v7f5/H6/////7K6wrYBDRkNAwEABQICAQECAwQCAQIBAggNEQest7+4+v7+/8rY6Pnf5u7++/r6/6OmzP9kZa//aGmu/8rN4//7+vv/3Obr+Pn9/f+/wsK7ChIWDAIBAQECAwMDAwQEBAEBAQINFhgPprXAvPb////K1OT5vcDX/6SlzP+Bg7z/5ebu/7S11P9+gbv/l5jE/7G60fj1/P7/w8TIwBYYIRcAAQEBBAQEBAQEBQQCAAAAESIsGbTGzMH5////5u70+dTW6P+Dg7//gIC//8PD3f+gocr/OTyf/3J0t/+/xd349P7//73EzsYgIy8hAAAAAAQEBAQEBAUEAAAAABoiLSLAyszH+f///9/q9vj0+Pz/2Nfp/7e32P+9vtz/ubvX/25vtP+/weD/5/D1+Pb////AytHLJSw3KwAAAAAEBAUFBAQFBQAAAAAgKzQrvsvOyvb+/v/I2e/42ef3//L19v/p6Ov//vv7//Hy8v/Jydv/1ODu/97r9Pj9/v//zdHY0C44RjgAAAAABAUFBQQFBQUAAAAAKzpJN8TV2dD4/v7/1Oj++NDq///Q6P7/4PH//+Pw/v/U5fb/xt3z/8Tc9f/X5/f4//7//9PX29c3QktFAAAAAAUFBQUEBQUFAAAAADE5Rj7G09rT8Pr7/8PV6fi60eX/q8ff/63G4P+uxt//s8vl/7PN6//F2fD/0N/r+Pr8/P/W3+TaP09aSwAAAAAFBQUFBAUFBQAAAAA4PUhRqrW/3bK6wP57gIn2cXeD/nh+gv2Rlpf9rrKz/crNz/3c4eT94uft/tDU2/bX2dr+tL3F4kJNWl0AAAAABAUGBgMDAwYAAAAAX15jfq+vsvqjpqb/mJ2f/qmyt/+vvMP+u8nT/8jT3f/R3Ob/2OTs/97l7P/N0dX+wsLE/62usP5WV1uLAAAAAAIDBAUDAwMEAAAAAEdGRkqJiYi6mZma57CztO/Q1tr20tni98PL1vettb/3maGs94uSnfeIjpL3iY2M8ZycnOmZmJfDTUtMVgAAAAACAgIDAAAAAAAAAAAEBAUBDxEQEickJCtAODtEVlFTW2RjZGljYl9yXVxadVdWVHNRUFNqR0RHXT03NkcpJyctFBUWEwgHCAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20//%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20....%0A%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20Services.cache.evictEntries%281%29%3B%0A%20%20%20%20%20%20%20Services.cache.evictEntries%282%29%3B%0A%20%20%20%20%20%20%20%7D%20%0A%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%3B%0A%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u044B%20....%0A%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%27Home%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20dir.exists%28%29%20%26%26%20dir.remove%28true%29%3B%0A%20%20%20%21dir.exists%28%29%20%26%26%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20.showAlertNotification%28self.image%2C%20self.label%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%27%29%3B%0A%7D%3B%0A%0A%0A//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430%20..............%0Avar%20data%20%3D%20%7B%0A%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%7D%3B%20%20%20%0Afunction%20getSize%28size%29%20%7B%0A%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%7D%0Afunction%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20self.tooltipText%20%3D%20self.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%7D%0Afunction%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0Avar%20types%20%3D%20Object.keys%28data%29%3B%0Avar%20ttt%20%3D%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%20%20%20%0Avar%20context%20%3D%20Cu.import%28%22resource%3A//gre/modules/LoadContextInfo.jsm%22%2C%20%7B%7D%29.LoadContextInfo.default%3B%0Aself.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20self.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%22%20+%20ttt%3B%0A%20%20%20try%20%7B%0A%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%20%0A%20%20%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28context%2C%20null%29%3B%0A%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Большое спасибо Dumby за помощь с кнопкой. |
iDev.Pi > 07-04-2011 20:48:02 |
Session Stacked Bookmarks ( 8.0) Т.к. код установки не влезает сюда в сообщение из-за лимита в 64кб на 1 сообщение, то просто публикую ссылки на кнопку и её обсуждение. Автор: Infocatcher. |
bunda1 > 08-04-2011 21:41:22 |
Toggle Find ( Firefox 3.6+ ) Left => показать-скрыть поиск по странице. Код кнопки и код для вкладки Код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EToggle%20%20Find%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAMQWAJmZzJlmzGZmzGZm/2aZ/5mZ/5nM/8zM/8z//5mZmWZmmf///8yZzMzMmZlmmZmZM8zMM8zMZsz/ZsyZZpmZZmZmM////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAHoAxYALAAAAAAQABAAAAVsoCUCgQCIaCoKA1G4p7q6RmEXcQoMxYEYQEMOJSAYEL+D8jC0CG6GJTKhUtiAPiSCmlK4er7FgiGzWLGIBUJRZliVCLMi0Sg7FHhq4gGJlFUNEBIQE38pExGDFIYoFIkQi4wWjhEVkiIUFQohADs%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BgFindBar.hidden%20%3F%20gFindBar.onFindCommand%28%29%20%3A%20gFindBar.close%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: |
bunda1 > 08-04-2011 23:51:18 |
Translate( Firefox 24 + ) от 27.02.2017. Как изменить фон и размер шрифта, ширина и высоту окошка перевода? Для изменения нужных параметров измените в вкладке инициализации этот кусок кода: Выделить код Код:var background = 'none', fontSize = 'medium'; // фон и размер шрифта окошка перевода var winWidth = 0.4, winHeight = 0.4; // ширина и высота окошка перевода относительно размера страницы ЛКМ => перевести страницу / выделенный текст. СКМ => перевести текст, из буфера обмена. ПКМ => Mеню кнопки с настройками, Двойной ПКМ => Стандартное меню кнопки. Код кнопки и инициализация: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ETranslate%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBKBMpTCYX4GMrH/9gMxn/YDQV/2cyG/9nLxr/YjMd/10xHv9cMRz/XjIa/2ExHP9gNRn/YDIV/2IwHf9ULSL/RCcU4EEoEylLKBfgcjUe/349IP98QRr/gEEd/39AKP+FUjv/h2NL/4lkUP+GYEv/hVQ+/35CJv9+Phz/gEIb/4c8H/96PCT/azgb/0koFOBpMyT/jD8i/4RFIf97RB3/hEUr/7GCdf/q29L/+e3e/97HuP/dwLD/6M2+/76VhP9+RSr/hUMg/5NAH/+NQCX/h0Ai/2Q1Iv9yOyf/lkYn/4xFJP+HSSn/m25Y//7y6v/bw7f/fkw2/3hBJv90QSX/hFI9/+nUxv+2k4H/i0kq/5VIJP+QRiL/lkYn/3Q5Kv9zQSn/mUkp/5tJKf+XSin/roJr//757f+0gG//l0oq/5NMI/+WTCH/i00u/8q0o//jx7j/mFU6/5JMJP+TTiL/l0wl/3Y/K/93Rif/oE4p/6ZNK/+jTSz/pGpS//rn2v/Np5b/kFEx/5BSK/+XTyv/nmFJ/+rTyP/lyrv/nlk+/5NRJv+WUib/l1Ik/3lFK/+BSyr/plQt/6ZULP+mUyv/nFIz/6d3Yf/hxrX/3b6n/7SUf/+7l4b/8NjL//7z6//BkoH/mlMz/55TLP+iUyv/olMp/4FJK/+FSzP/qVUz/61ZMf+sWSv/rFYs/59TM/+cWT//nmJJ/8OSgf/+8ub/+O/b/8ikkv+iVTb/qVgv/6pVMP+1WDT/qVY1/4ZMMf+MUTX/q1sx/7RZMf+2WjH/t1wv/7JbLf+oXDT/nVtD/8yajv/+8uf/ybGZ/5VYOP+zWDL/t1sx/7NYMv+5WjX/sFk2/49SM/+VVDn/s143/7hfNP+8WzX/v141/6xeMv/ZoYD/+9/I/+DBtP/Ss6P/7L+l/7l1Tf+1XjT/vlw0/7tdM/+6YC//tV42/5FYNP+cU0D/uGE9/75fNf/GZTb/wGI4/8OBYv//5tT/5byr/6RjSP+lXD//26eM//TNsf+3YkH/xGI3/8NjNf+7Yi//uGE3/5pZOv+hWEH/wGY9/8RlNP/KaDf/xWY3/9+ef///5tv/v4Vt/8NmOv+9ZUD/xI16//7o2v/FgGX/x2g5/8poNv/KaDb/xWU5/6ZYQv+mYUH/y2s7/8xwN//TbTf/0m46/+CYd///59X/vIJk/81tOv/Bbz//4a6b//7n2P/FiGL/yWw4/9FtN//KcDf/zG45/6dfQP+tZT//1W4//9pxPf/VbTz/1G5B/75wTf/31L7/z56C/8V5TP/TkGP/+NXC//XSv/+4cEr/0nA7/9VwO//Ubz7/1G88/61kP/+0bkj/4XNC/99wPv/gckL/321B/9VwR//Gf2D/6reX/+/DoP/82br//uHO//LSvv/mp33/3nhJ/9dwQv/bb0X/23BG/7RrSP+wb0r/4nhK/+V3Rf/qeEX/8HZE/+lzQf/adUf/yWg+/7lfO/+tYDz/qWFA/6xeOf/IaTn/5nND/+h1SP/pdkj/3ndN/7RtUP+NWTrg2oJX/+uGVf/ofkv/84FN/++ETv/qfk//6n5Q/+h+Uv/ngFP/5oFS/+d/UP/nfk//839O/+5+Tv/uhVj/3YFa/5JYPOCRVkEppFo64NN8UP/dgVT/3oRR/92DTP/ihVj/34FX/+ODVf/mg1T/5IRO/96ET//cglH/4YJT/+CCVv/Te1D/oVk44JBVQCkAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEE%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20Translate%20%u043E%u0442%2027.02.2017.%20...............%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20var%20sel%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20sel%20%3F%20translateText%28sel%29%20%3A%20translatePage%28%29%3B%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%0A%20%20%20%20%20%20%20%20translateText%28gClipboard.read%28%29%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20menu.showPopup%28self%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%0Avar%20background%20%3D%20%27white%27%2C%20fontSize%20%3D%20%27medium%27%3B%20//%20%u0444%u043E%u043D%20%u0438%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043E%u043A%u043E%u0448%u043A%u0430%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0430%0Avar%20winWidth%20%3D%200.4%2C%20winHeight%20%3D%200.4%3B%20%20%20%20%20%20%20%20%20%20//%20%u0448%u0438%u0440%u0438%u043D%u0430%20%u0438%20%u0432%u044B%u0441%u043E%u0442%u0430%20%u043E%u043A%u043E%u0448%u043A%u0430%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0430%20%u043E%u0442%u043D%u043E%u0441%u0438%u0442%u0435%u043B%u044C%u043D%u043E%20%u0440%u0430%u0437%u043C%u0435%u0440%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20...............%0Avar%20array%20%3D%20%5B%20%20%20%20%0A%20%20%20%20%7B%20label%3A%20%22%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u043C%u0430%u043B%u0435%u043D%u044C%u043A%u043E%u043C%20%u043E%u043A%u043E%u0448%u043A%u0435%22%2C%20checkbox%3A%20%27%27%2C%20value%3A%20%27Translate.textInPopup%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%22%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0434%u0432%u043E%u0439%u043D%u044B%u043C%20%u043F%u0440%u0430%u0432%u044B%u043C%20%u043A%u043B%u0438%u043A%u043E%u043C%22%2C%20checkbox%3A%20%27%27%2C%20value%3A%20%27Translate.textWithDoubleRightClick%27%20%7D%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%7B%20label%3A%20%22%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%u0441%u0440%u0430%u0437%u0443%20%u0441%u043F%u0440%u0430%u0432%u0430%22%2C%20checkbox%3A%20%27%27%2C%20value%3A%20%27Translate.nextPage%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%22%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0438%u0437%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%22%2C%20checkbox%3A%20%27%27%2C%20value%3A%20%27Translate.textFromContextMenu%27%20%7D%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%7B%20separator%3A%20%27%27%7D%2C%0A%20%20%20%20%7B%20label%3A%20%22%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0438%20%u0432%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0430%u0445%22%2C%20checkbox%3A%20%27%27%2C%20value%3A%20%27Translate.noTooltipForTranslate%27%2C%20func%3A%20%27%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%22%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0443%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u044F%20%u0432%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0435%20Googl%u0435%22%2C%20checkbox%3A%20%27%27%2C%20value%3A%20%27Translate.removeGoogleTranslatorHeader%27%2C%20func%3A%20%27%27%20%7D%2C%0A%20%20%20%20%7B%20separator%3A%20%27%27%7D%2C%0A%20%20%20%20%7B%20label%3A%20%22%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0432%20%u043E%u0431%u044B%u0447%u043D%u043E%u043C%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0435%20Google%22%2C%20radio%3A%20%27%27%2C%20value%3A%20%27google%27%20%7D%2C%20%20%20%20%0A%20%20%20%20%7B%20label%3A%20%22%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0441%20%u0437%u0430%u043C%u0435%u043D%u043E%u0439%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0435%20Google%22%2C%20radio%3A%20%27%27%2C%20value%3A%20%27googleBookmarklet%27%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0Avar%20menu%20%3D%20self.appendChild%28%20document.createElement%28%22menupopup%22%29%20%29%3B%20%20%0Aarray.forEach%28%28m%29%3D%3E%20%7B%0A%20%20%20if%20%28%20%22separator%22%20in%20m%20%29%20%7B%20menu.appendChild%28%20document.createElement%28%22menuseparator%22%29%20%29%3B%20return%20%7D%3B%0A%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%20%20%20%0A%20%20%20if%20%28%20%22radio%22%20in%20m%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%22type%22%2C%20%22radio%22%29%3B%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%27checked%27%2C%20cbu.getPrefs%28%22Translate.pageIn%22%29%20%3D%3D%20m.value%20%29%3B%0A%20%20%20%20%20%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20cbu.setPrefs%28%22Translate.pageIn%22%2C%20m.value%29%3B%20%20%0A%20%20%20%20%20%20%20%20%7D%20%20%0A%20%20%20if%20%28%20%22checkbox%22%20in%20m%20%29%20%7B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%27checked%27%2C%20cbu.getPrefs%28m.value%29%20%29%3B%0A%20%20%20%20%20%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20cbu.setPrefs%28m.value%2C%20%21cbu.getPrefs%28m.value%29%29%3B%20%20%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20if%20%28%20%22func%22%20in%20m%20%29%20mItem.addEventListener%28%22command%22%2C%20%28%29%3D%3E%20toggleGoogleTranslatorStyle%28%29%29%3B%0A%20%20%20%20%20%20%20%0A%20%20%20menu.appendChild%28mItem%29%3B%0A%7D%29%3B%0Amenu.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20false%20...............%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20var%20sel%20%3D%20gBrowser.contentDocument.defaultView.getSelection%28%29%3B%0A%20%20%20return%20%28sel%20%3D%3D%20%27%27%29%20%3F%20false%20%3A%20sel.toString%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0443%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u044F%20%u0432%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0435%20Googl%u0435%20%u0438%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0438%20%u0432%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0430%u0445%20...............%0Afunction%20toggleGoogleTranslatorStyle%28arg%29%20%7B%0A%20%20%20var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20try%20%7B%20sss.unregisterSheet%28%20self.uri%2C%200%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%0A%20%20%20if%20%28%20cbu.getPrefs%28%22Translate.removeGoogleTranslatorHeader%22%29%20%29%20%7B%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0443%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u044F%0A%20%20%20%20%20%20%20%20var%20removeHeader%20%3D%20%27%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20@-moz-document%20domain%28%22translate.google.com%22%29%20%7B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23gb%2C%20%23gt-bbar%2C%20%23gt-c%3Anot%28%5Bclass%3D%22g-section%22%5D%29%20%7B%20display%3A%20none%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23contentframe%20%7B%20top%3A%200%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%27%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%0A%20%20%20if%20%28%20cbu.getPrefs%28%22Translate.noTooltipForTranslate%22%29%20%29%20%7B%20%20//%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0438%20%u0432%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0430%u0445%0A%20%20%20%20%20%20%20%20var%20noPopup%20%3D%20%27%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20/*Microsoft*/%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20DIV%5Btranslate%3D%22no%22%5D%20%7B%20display%3A%20none%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20*%5Blang%3D%22ru%22%5D%20%7B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20color%3A%20black%20%21important%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20transparent%20%21important%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20/*Google*/%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20@-moz-document%20domain%28%22translate.google.com%22%29%20%7B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.jfk-tooltip%20%7B%20display%3A%20none%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20@-moz-document%20regexp%28%22%5Ehttps%3F%3A//translate%5C.google%5C..*%22%29%20%7B/**/%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20@-moz-document%20domain%28%22translate.googleusercontent.com%22%29%20%7B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20span%5Bonmouseout%5D%5Bonmouseover%5D%5Bstyle%5D%20%7B%20background-color%3A%20transparent%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.gmnoprint%20%7B%20display%3A%20none%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20.goog-text-highlight%20%7B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20background-color%3A%20transparent%20%21important%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20border%3A%20none%20%21important%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20box-shadow%3A%20none%20%21important%3B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20.goog-tooltip.skiptranslate%20%7B%20display%3A%20none%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%27%3B%0A%20%20%20%20%20%20%20%20%7D%20%20%20%0A%20%20%20self.css%20%3D%20removeHeader%20+%20noPopup%3B%0A%0A%20%20%20if%20%28%20%21%21self.css%20%29%20%7B%0A%20%20%20%20%20%20%20%20self.uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28self.css%29%29%3B%0A%20%20%20%20%20%20%20%20sss.loadAndRegisterSheet%28self.uri%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%20%20%20arg%20%26%26%20addDestructor%28%28%29%3D%3E%20sss.unregisterSheet%28self.uri%2C%200%29%20%29%3B%20%20%0A%7D%3B%0AtoggleGoogleTranslatorStyle%28true%29%3B%20%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20...............%20%20%20%0Afunction%20translatePage%28%29%20%7B%0A%20%20%20var%20translator%20%3D%20cbu.getPrefs%28%22Translate.pageIn%22%29%3B%0A%20%20%20%0A%20%20%20//%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0432%20%u043E%u0431%u044B%u0447%u043D%u043E%u043C%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0435%20Google%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%0A%20%20%20if%20%28%20translator%20%3D%3D%20%22google%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22http%3A//translate.google.com/translate%3Fu%3D%22%20+%20content.location%20+%20%22%26hl%3Dru%26ie%3DUTF-8%26sl%3Dauto%26tl%3Dru%22%3B%0A%20%20%20%20%20%20%20%20cbu.getPrefs%28%22Translate.nextPage%22%29%0A%20%20%20%20%20%20%20%20%3F%20gBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28url%29%2C%20gBrowser.mCurrentTab._tPos%20+%201%29%0A%20%20%20%20%20%20%20%20%3A%20loadURI%28url%29%3B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%20%0A%0A%20%20%20//%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0441%20%u0437%u0430%u043C%u0435%u043D%u043E%u0439%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0432%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0435%20Microsoft%20%u0438%u043B%u0438%20Google%20%0A%20%20%20if%20%28%20cbu.getPrefs%28%22Translate.nextPage%22%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20gBrowser.getBrowserForTab%28gBrowser.selectedTab%20%3D%20gBrowser.duplicateTab%28gBrowser.mCurrentTab%29%29%0A%20%20%20%20%20%20%20%20%20%20%20.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28e.type%2C%20c%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20runBukmarklet%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%0A%20%20%20else%20runBukmarklet%28%29%3B%0A%20%20%20%0A%20%20%20//%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0431%u0443%u043A%u043C%u0430%u0440%u043A%u043B%u0435%u0442%20%u0434%u043B%u044F%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0430%0A%20%20%20function%20runBukmarklet%28%29%20%7B%0A%20%20%20%20%20%20cbu.setPrefs%28%22security.mixed_content.block_active_content%22%2C%20false%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20content.document.location%20%3D%20%22javascript%3A%7Bvar%20d%3Ddocument%3B%20var%20b%3Dd.body%3B%20var%20o%3Dd.createElement%28%27script%27%29%3Bo.setAttribute%28%27src%27%2C%27http%3A//translate.google.com/translate_a/element.js%3Fcb%3DgoogleTranslateElementInit%26hl%3Dru%27%29%3Bo.setAttribute%28%27type%27%2C%27text/javascript%27%29%3Bb.appendChild%28o%29%3B%20var%20v%3Db.insertBefore%28d.createElement%28%27div%27%29%2Cb.firstChild%29%3Bv.id%3D%27google_translate_element%27%3Bv.style.display%3D%27none%27%3B%20var%20p%3Dd.createElement%28%27scri%27+%27pt%27%29%3Bp.text%3D%27function%2520googleTranslateElementInit%28%29%7Bvar%2520tElem%2520%3D%2520new%2520google.translate.TranslateElement%28%7BpageLanguage%3A%2522%2522%7D%2C%2522google_translate_element%2522%29%3BsetTimeout%28function%28%29%2520%7B%2520tElem.showBanner%28true%29%3B%2520%7D%2C100%29%3B%7D%27%3Bp.setAttribute%28%27type%27%2C%27text/javascript%27%29%3Bb.appendChild%28p%29%3B%7Dvoid%25200%22%3B%0A%20%20%20%7D%20%0A%7D%3B%0A%0A%0A//%20%u041E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0441%u043B%u0435%u0434%u0438%u0442%20%u0437%u0430%20%u0434%u0432%u043E%u0439%u043D%u044B%u043C%20%u043F%u0440%u0430%u0432%u044B%u043C%20%u043A%u043B%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u043A%u0430%u0435%u0442%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20...............%0AaddEventListener%28%22dblclick%22%2C%20e%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%26%26%20cbu.getPrefs%28%22Translate.textWithDoubleRightClick%22%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20document.getElementById%28%22contentAreaContextMenu%22%29.hidePopup%28%29%3B%0A%0A%20%20%20%20%20%20%20%20translateText%28getSelect%28%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%2C%20false%2C%20gBrowser%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0438%u0437%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%20...............%20%20%20%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0Avar%20mItem%20%3D%20contextMenu.insertBefore%28document.createElement%28%22menuitem%22%29%2C%20contextMenu.children%5B1%5D%29%3B%0AmItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%22%29%3B%0AmItem.onclick%20%3D%28%29%3D%3E%20translateText%28getSelect%28%29%29%3B%0AaddEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20%7B%0A%20%20%20mItem.hidden%20%3D%20%21cbu.getPrefs%28%22Translate.textFromContextMenu%22%29%20%7C%7C%20%21gContextMenu.isTextSelected%3B%20%0A%7D%2C%20false%2C%20contextMenu%29%3B%0AaddDestructor%28%28%29%3D%3E%20mItem.remove%28%29%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20Google%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%u0441%u0440%u0430%u0437%u0443%20%u0441%u043F%u0440%u0430%u0432%u0430%20%u0438%u043B%u0438%20%u0432%20%u043C%u0430%u043B%u0435%u043D%u044C%u043A%u043E%u043C%20%u043E%u043A%u043E%u0448%u043A%u0435%20...............%0Afunction%20translateText%28text%2C%20clipboard%29%20%7B%0A%20%20%20if%20%28%20text%20%3D%3D%20false%20%29%20return%3B%0A%0A%20%20%20//%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%20%u0432%20Google%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0447%u0438%u043A%u0435%20%u0442%u0435%u043A%u0441%u0442%u0430%0A%20%20%20if%20%28%20%21cbu.getPrefs%28%22Translate.textInPopup%22%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%22http%3A//translate.google.com/translate_t%3Fhl%3Dru%23auto%7Cru%7C%22%20+%20text%3B%0A%20%20%20%20%20%20%20%20gBrowser.moveTabTo%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28url%29%2C%20gBrowser.mCurrentTab._tPos%20+%201%29%3B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20var%20beg%20%3D%20%22http%3A//translate.google.com/translate_t%3Fprev%3Dhp%26hl%3Dru%26js%3Dy%26text%3D%22%3B%0A%20%20%20var%20end%20%3D%20%22%26file%3D%26sl%3Dauto%26tl%3Dru%26history_state0%3D%23%22%3B%0A%20%20%20var%20url%20%3D%20beg%20+%20text%20+%20end%3B%0A%20%20%20%20%0A%20%20%20var%20req%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20req.open%28%22GET%22%2C%20url%2C%20true%29%3B%0A%20%20%20%0A%20%20%20req.onload%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20var%20res%20%3D%20req.responseText%3B%0A%20%20%20%20%20%20%20var%20suHTML%20%3D%20Cc%5B%22@mozilla.org/feed-unescapehtml%3B1%22%5D.getService%28Ci.nsIScriptableUnescapeHTML%29%3B%0A%20%20%20%20%20%20%20var%20doc%20%3D%20document.implementation.createHTMLDocument%28%22%22%29%3B%0A%20%20%20%20%20%20%20doc.body.appendChild%28suHTML.parseFragment%28res%2C%20false%2C%20null%2C%20doc.body%29%29%3B%0A%0A%20%20%20%20%20%20%20var%20ruHTML%20%3D%20doc.getElementById%28%22result_box%22%29.innerHTML%3B%0A%20%20%20%20%20%20%20var%20dataURL%20%3D%20%27data%3Atext/html%3Bcharset%3Dutf-8%2C%20%3Chtml%20contenteditable/%3E%3Ctitle%3ETranslate%3C/title%3E%27%0A%20%20%20%20%20%20%20dataURL%20+%3D%20%27%3Cstyle%3Ebody%20%7B%20background-color%3A%20%27+%20background%20+%27%3B%20font-size%3A%20%27+%20fontSize%20+%27%20%7D%3C/style%3E%27%3B%0A%20%20%20%20%20%20%20dataURL%20+%3D%20ruHTML%20+%20%27%3C/body%3E%3C/html%3E%27%3B%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20var%20width%20%3D%20%280%29%20%7C%7C%20winWidth%20*%20gBrowser.boxObject.width%3B%20%0A%20%20%20%20%20%20%20var%20height%20%3D%20%280%29%20%7C%7C%20winHeight%20*%20gBrowser.boxObject.height%3B%0A%0A%20%20%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043A%u043E%u043E%u0440%u0434%u0438%u043D%u0430%u0442%u044B%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%u043B%u0438%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%0A%20%20%20%20%20%20%20if%20%28%20clipboard%20%26%26%20cbu.getPrefs%28%22Translate.textInPopup%22%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20bcr%20%3D%20self.getBoundingClientRect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20posX%20%3D%20bcr.left%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20posY%20%3D%20bcr.bottom%20+%205%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20bcr%20%3D%20gBrowser.contentDocument.defaultView.getSelection%28%29.getRangeAt%280%29.getBoundingClientRect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20posX%20%3D%20window.content.mozInnerScreenX%20+%20bcr.left%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20posY%20%3D%20window.content.mozInnerScreenY%20+%20bcr.bottom%20+%205%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20var%20deltaX%20%3D%20posX%20+%20width%20-%20%28fullScreen%20%3F%20screen.width%20%3A%20screen.availWidth%29%3B%0A%20%20%20%20%20%20%20if%20%28deltaX%20%3E%200%29%20posX%20-%3D%20deltaX%3B%0A%20%20%20%20%20%20%20var%20deltaY%20%3D%20posY%20+%20height%20-%20%28fullScreen%20%3F%20screen.height%20%3A%20screen.availHeight%29%3B%0A%20%20%20%20%20%20%20if%20%28deltaY%20%3E%200%29%20posY%20-%3D%20deltaY%3B%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20var%20win%20%3D%20window.openDialog%28dataURL%2C%20%22%22%2C%20%22outerWidth%3D%22+width+%22%2C%20outerHeight%3D%22+height+%22%2C%20screenX%3D%22+posX+%22%2C%20screenY%3D%22+posY+%22%2C%20status%3Dno%2C%20scrollbars%3Dyes%2C%20resizable%3Dyes%22%29%3B%0A%20%20%20%20%20%20%20win.focus%28%29%3B%0A%0A%20%20%20%20%20%20%20//%20%u0437%u0430%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u043E%u043A%u043E%u0448%u043A%u043E%20%u043F%u0435%u0440%u0435%u0432%u043E%u0434%u0430%20%u043A%u043B%u0438%u043A%u043E%u043C%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20gBrowser.addEventListener%28%22click%22%2C%20function%20c%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%22click%22%2C%20c%29%3B%0A%20%20%20%20%20%20%20%20%20%20win%20%26%26%20win.close%28%29%3B%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%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%7D%3B%0A%20%20%20req.channel.loadFlags%20%7C%3D%20req.channel.LOAD_FROM_CACHE%3B%0A%20%20%20req.send%28null%29%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............%0Athis.tooltipText%20%3D%20%22Translate%20%5Cn%u041B%3A%20%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20/%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%5Cn%u0421%3A%20%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%5Cn%u041F%3A%20%u041C%u0435%u043D%u044E%20%5Cn%u0414%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%22%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Translate от 27.02.2017. ............... // Настройка функций кликов мыши для кнопки ............... this.onclick =e=> { if ( e.button == 0 ) { var sel = getSelect(); sel ? translateText(sel) : translatePage(); } if ( e.button == 1 ) translateText(gClipboard.read(), true); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); menu.showPopup(self, -1, -1, "popup", "bottomleft", "topleft"); } }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() }; var background = 'white', fontSize = 'medium'; // фон и размер шрифта окошка перевода var winWidth = 0.4, winHeight = 0.4; // ширина и высота окошка перевода относительно размера страницы // Создать меню ............... var array = [ { label: "Перевод текста в маленьком окошке", checkbox: '', value: 'Translate.textInPopup' }, { label: "Перевод текста в двойным правым кликом", checkbox: '', value: 'Translate.textWithDoubleRightClick' }, { label: "Перевод страницы в новой вкладке сразу справа", checkbox: '', value: 'Translate.nextPage' }, { label: "Перевод выделенного текста из контекстного меню", checkbox: '', value: 'Translate.textFromContextMenu' }, { separator: ''}, { label: "Удалять подсказки в переводчиках", checkbox: '', value: 'Translate.noTooltipForTranslate', func: '' }, { label: "Удалять панель управления в переводчике Googlе", checkbox: '', value: 'Translate.removeGoogleTranslatorHeader', func: '' }, { separator: ''}, { label: "Перевод страницы в обычном переводчике Google", radio: '', value: 'google' }, { label: "Перевод страницы с заменой текста в переводчике Google", radio: '', value: 'googleBookmarklet' } ]; var menu = self.appendChild( document.createElement("menupopup") ); array.forEach((m)=> { if ( "separator" in m ) { menu.appendChild( document.createElement("menuseparator") ); return }; var mItem = document.createElement("menuitem"); mItem.setAttribute("label", m.label); if ( "radio" in m ) { mItem.setAttribute("type", "radio"); mItem.setAttribute('checked', cbu.getPrefs("Translate.pageIn") == m.value ); mItem.onclick =()=> cbu.setPrefs("Translate.pageIn", m.value); } if ( "checkbox" in m ) { mItem.setAttribute('type', 'checkbox'); mItem.setAttribute('checked', cbu.getPrefs(m.value) ); mItem.onclick =()=> cbu.setPrefs(m.value, !cbu.getPrefs(m.value)); } if ( "func" in m ) mItem.addEventListener("command", ()=> toggleGoogleTranslatorStyle()); menu.appendChild(mItem); }); menu.setAttribute("onclick", "event.stopPropagation()"); // Получить выделенный текст из страницы или false ............... function getSelect() { var sel = gBrowser.contentDocument.defaultView.getSelection(); return (sel == '') ? false : sel.toString(); }; // Удалить панель управления в переводчике Googlе и подсказки в переводчиках ............... function toggleGoogleTranslatorStyle(arg) { var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); try { sss.unregisterSheet( self.uri, 0) } catch(e) {}; if ( cbu.getPrefs("Translate.removeGoogleTranslatorHeader") ) { // панель управления var removeHeader = '\ @-moz-document domain("translate.google.com") {\ #gb, #gt-bbar, #gt-c:not([class="g-section"]) { display: none !important; }\ #contentframe { top: 0 !important; }\ }'; } if ( cbu.getPrefs("Translate.noTooltipForTranslate") ) { // подсказки в переводчиках var noPopup = '\ /*Microsoft*/\ DIV[translate="no"] { display: none !important; }\ *[lang="ru"] {\ color: black !important;\ background-color: transparent !important;\ }\ /*Google*/\ @-moz-document domain("translate.google.com") {\ .jfk-tooltip { display: none !important; }\ }\ @-moz-document regexp("^https?://translate\.google\..*") {/**/}\ @-moz-document domain("translate.googleusercontent.com") {\ span[onmouseout][onmouseover][style] { background-color: transparent !important; }\ .gmnoprint { display: none !important; }\ }\ .goog-text-highlight {\ background-color: transparent !important;\ border: none !important;\ box-shadow: none !important;\ }\ .goog-tooltip.skiptranslate { display: none !important; }\ '; } self.css = removeHeader + noPopup; if ( !!self.css ) { self.uri = makeURI("data:text/css," + encodeURIComponent(self.css)); sss.loadAndRegisterSheet(self.uri, 0); } arg && addDestructor(()=> sss.unregisterSheet(self.uri, 0) ); }; toggleGoogleTranslatorStyle(true); // Перевод страницы ............... function translatePage() { var translator = cbu.getPrefs("Translate.pageIn"); // перевод страницы в обычном переводчике Google в новой активной вкладке или текущей вкладке if ( translator == "google" ) { var url = "http://translate.google.com/translate?u=" + content.location + "&hl=ru&ie=UTF-8&sl=auto&tl=ru"; cbu.getPrefs("Translate.nextPage") ? gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), gBrowser.mCurrentTab._tPos + 1) : loadURI(url); return; } // перевод страницы с заменой текста на странице в переводчике Microsoft или Google if ( cbu.getPrefs("Translate.nextPage") ) { gBrowser.getBrowserForTab(gBrowser.selectedTab = gBrowser.duplicateTab(gBrowser.mCurrentTab)) .addEventListener("pageshow", function c(e) { this.removeEventListener(e.type, c); runBukmarklet(); }); } else runBukmarklet(); // запустить букмарклет для перевода function runBukmarklet() { cbu.setPrefs("security.mixed_content.block_active_content", false); content.document.location = "javascript:{var d=document; var b=d.body; var o=d.createElement('script');o.setAttribute('src','http://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit&hl=ru');o.setAttribute('type','text/javascript');b.appendChild(o); var v=b.insertBefore(d.createElement('div'),b.firstChild);v.id='google_translate_element';v.style.display='none'; var p=d.createElement('scri'+'pt');p.text='function%20googleTranslateElementInit(){var%20tElem%20=%20new%20google.translate.TranslateElement({pageLanguage:%22%22},%22google_translate_element%22);setTimeout(function()%20{%20tElem.showBanner(true);%20},100);}';p.setAttribute('type','text/javascript');b.appendChild(p);}void%200"; } }; // Обработчик следит за двойным правым кликом мыши на странице и запускает перевод выделенного текста ............... addEventListener("dblclick", e=> { if ( e.button && cbu.getPrefs("Translate.textWithDoubleRightClick") ) { e.preventDefault(); document.getElementById("contentAreaContextMenu").hidePopup(); translateText(getSelect()); } }, false, gBrowser); // Перевод выделенного текста из контекстного меню ............... var contextMenu = document.getElementById("contentAreaContextMenu"); var mItem = contextMenu.insertBefore(document.createElement("menuitem"), contextMenu.children[1]); mItem.setAttribute("label", "Перевод выделенного текста"); mItem.onclick =()=> translateText(getSelect()); addEventListener("popupshowing", ()=> { mItem.hidden = !cbu.getPrefs("Translate.textFromContextMenu") || !gContextMenu.isTextSelected; }, false, contextMenu); addDestructor(()=> mItem.remove()); // Перевести текст в Google переводчике в новой вкладке сразу справа или в маленьком окошке ............... function translateText(text, clipboard) { if ( text == false ) return; // перевод в Google переводчике текста if ( !cbu.getPrefs("Translate.textInPopup") ) { var url = "http://translate.google.com/translate_t?hl=ru#auto|ru|" + text; gBrowser.moveTabTo(gBrowser.selectedTab = gBrowser.addTab(url), gBrowser.mCurrentTab._tPos + 1); return; }; var beg = "http://translate.google.com/translate_t?prev=hp&hl=ru&js=y&text="; var end = "&file=&sl=auto&tl=ru&history_state0=#"; var url = beg + text + end; var req = new XMLHttpRequest(); req.open("GET", url, true); req.onload =()=> { var res = req.responseText; var suHTML = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML); var doc = document.implementation.createHTMLDocument(""); doc.body.appendChild(suHTML.parseFragment(res, false, null, doc.body)); var ruHTML = doc.getElementById("result_box").innerHTML; var dataURL = 'data:text/html;charset=utf-8, <html contenteditable/><title>Translate</title>' dataURL += '<style>body { background-color: '+ background +'; font-size: '+ fontSize +' }</style>'; dataURL += ruHTML + '</body></html>'; var width = (0) || winWidth * gBrowser.boxObject.width; var height = (0) || winHeight * gBrowser.boxObject.height; // получить координаты кнопки или выделенного текста if ( clipboard && cbu.getPrefs("Translate.textInPopup") ) { var bcr = self.getBoundingClientRect(); var posX = bcr.left; var posY = bcr.bottom + 5; } else { var bcr = gBrowser.contentDocument.defaultView.getSelection().getRangeAt(0).getBoundingClientRect(); var posX = window.content.mozInnerScreenX + bcr.left; var posY = window.content.mozInnerScreenY + bcr.bottom + 5; } var deltaX = posX + width - (fullScreen ? screen.width : screen.availWidth); if (deltaX > 0) posX -= deltaX; var deltaY = posY + height - (fullScreen ? screen.height : screen.availHeight); if (deltaY > 0) posY -= deltaY; var win = window.openDialog(dataURL, "", "outerWidth="+width+", outerHeight="+height+", screenX="+posX+", screenY="+posY+", status=no, scrollbars=yes, resizable=yes"); win.focus(); // закрывать окошко перевода кликом на странице gBrowser.addEventListener("click", function c() { this.removeEventListener("click", c); win && win.close(); }); }; req.channel.loadFlags |= req.channel.LOAD_FROM_CACHE; req.send(null) }; // Подсказка у кнопки ............... this.tooltipText = "Translate \nЛ: Перевести страницу / выделенный текст \nС: Перевести текст из буфера обмена \nП: Меню \nДП: CB меню"; За код который переводит текст в маленьком окошке спасибо okkamas_knife и Dumby За код который удаляет панель управления(заголовок) в переводчике Googlе спасибо Kamui |
Black_Sun > 14-04-2011 18:31:25 |
Greasemonkey menu(Firefox 3.6 - 4.0+) скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EGreasemonkey%20menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAyVJREFUOMt1k0toXGUAhb//n5vMjDczmUeaO3nNdMYkTCKNpKGpUWzHYsSkGrALHwiufCDuFLFIwUUVBHeiIApZVCqFIii2LqymWk0nbcWWaGxompd53HQmkzQTO6+be38XWrSlnuXhHDiL78Ad9MEg4qPHcN3uv/8o7sMp9P962u2hDweRr3yNA9gAR57AqNhszxXZcb1M1FF8Bky+/RDy0Gkcwf/o48fplZJUscJAvkxPaQufEBz3u3lNKbKvn6J0xwXv9lJf7eHVconnKoKG1QKUyqBrcJeHSMXmSdvmGLB0OIW8ZcGbCcKRNoaDRt2QY9uYi+sULTCag/hqPGSXTDb/5NBbo7xzsyMADvYxqBQHat3cfc9996Z2pPbhQjrj356UdrFI98CQkrouJs78wPhP6ZPXNjCl5Mf3znFEi0AoFIu+EfB59jg38iTvf5CG1g5HOUruPhBWtrVFbcQQ0iVU8gFHLM4t7vfH3BTKzu6952a+02qhVnj1WFWNB6VpKmw0MrOSkacuT6s9yU5haVX8fPaC6m9NCMNoVJ6wQdmyhJB2k9tHnVaAG+bqxmIum421xaPCXxtQX42Nc3RkQuSyW5SkzfcXrxDsr+aZh3dR5a0Rl6cmKDrapuViUy5AZmYuc2IzX6Al3kJVwC8C1V61ZebUNj1AQHmVyuQxQiFwV4lovBnLsrl61fz89HX+EABJ6Hz+6eiJwaeG4raloweDlLxeEvE4UrqYW1xQerkk1pZX8Ppsvjn+5canw1cG0pDWAJqg4hLKQsLSvMnyyG+qOdYolkYn8eheHNsSU79Pq/qWgOjsaURKVaqrpkjlH5AaEqzNTi/M/nrhUntf/z48fl2Ysxm2LIUSIByHpnZDJHdGmTg/xtTk3Jy3jhzL4Hq5CzE8SXG7xvzG+rW9hc18MNYWIbmrnURXlObWbTS3hfHqDr+cSXN2JL1umpWDx+YZAxAvdCM+uYgCGKqnIxDiWaPB/4gv4I+5q7WgS5PCtp3MxnreXFleO7+2ytEvTEYBXtz5N4i81CNuQToJkUZIJCDZC9190JWEpg7Xv9+5Wf4LG9k8TnFGv1sAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0A%0Athis.pref%3D%27greasemonkey.enabled%27%3B%0A%0Athis.onImage%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAyVJREFUOMt1k0toXGUAhb//n5vMjDczmUeaO3nNdMYkTCKNpKGpUWzHYsSkGrALHwiufCDuFLFIwUUVBHeiIApZVCqFIii2LqymWk0nbcWWaGxompd53HQmkzQTO6+be38XWrSlnuXhHDiL78Ad9MEg4qPHcN3uv/8o7sMp9P962u2hDweRr3yNA9gAR57AqNhszxXZcb1M1FF8Bky+/RDy0Gkcwf/o48fplZJUscJAvkxPaQufEBz3u3lNKbKvn6J0xwXv9lJf7eHVconnKoKG1QKUyqBrcJeHSMXmSdvmGLB0OIW8ZcGbCcKRNoaDRt2QY9uYi+sULTCag/hqPGSXTDb/5NBbo7xzsyMADvYxqBQHat3cfc9996Z2pPbhQjrj356UdrFI98CQkrouJs78wPhP6ZPXNjCl5Mf3znFEi0AoFIu+EfB59jg38iTvf5CG1g5HOUruPhBWtrVFbcQQ0iVU8gFHLM4t7vfH3BTKzu6952a+02qhVnj1WFWNB6VpKmw0MrOSkacuT6s9yU5haVX8fPaC6m9NCMNoVJ6wQdmyhJB2k9tHnVaAG+bqxmIum421xaPCXxtQX42Nc3RkQuSyW5SkzfcXrxDsr+aZh3dR5a0Rl6cmKDrapuViUy5AZmYuc2IzX6Al3kJVwC8C1V61ZebUNj1AQHmVyuQxQiFwV4lovBnLsrl61fz89HX+EABJ6Hz+6eiJwaeG4raloweDlLxeEvE4UrqYW1xQerkk1pZX8Ppsvjn+5canw1cG0pDWAJqg4hLKQsLSvMnyyG+qOdYolkYn8eheHNsSU79Pq/qWgOjsaURKVaqrpkjlH5AaEqzNTi/M/nrhUntf/z48fl2Ysxm2LIUSIByHpnZDJHdGmTg/xtTk3Jy3jhzL4Hq5CzE8SXG7xvzG+rW9hc18MNYWIbmrnURXlObWbTS3hfHqDr+cSXN2JL1umpWDx+YZAxAvdCM+uYgCGKqnIxDiWaPB/4gv4I+5q7WgS5PCtp3MxnreXFleO7+2ytEvTEYBXtz5N4i81CNuQToJkUZIJCDZC9190JWEpg7Xv9+5Wf4LG9k8TnFGv1sAAAAASUVORK5CYII%3D%27%3B%0Athis.offImage%3D%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAyBJREFUOMt1k8trK3Ucxc/3N888+kgmjGlu4yQqrZRW+qKlWdi0gtR4K8WFG8E/QhcKuvXfEBQUQdxpFw0S6I1Q+liUUtKmkNY0kuaGaDppemcmM7+fi8uFq9Sz/MDhnMU5Eh5QoVCgyclJqVqtipf5xsaGlk6n9aurq8ELJj9gZtvb2xxAAABbW1uvBEGQcRxnxnXdVznnPwA4W1tbY6VSiRP+R5ubm0tElB8MBu+5rrvg+/4QEf2kqupnANrFYtF5sMHKyoqpadqnrut+AmDs/v4erutCURRompYMguAjIcSPAP7M5/PsXw2mpqaMdDr9jWEYH3DOcXNzg8FggGQyiUgkglarhX6//1W5XP76hYcAIJfLFYQQH2qa9vrs7Gx+eXkZjDFeLpeZ53lYXV0VmqbRwcEBDg8Pf7Vtu8kYe7K3t/edDCA+Njb2eTQafdt1XczPzyObzXIhBCsUCsL3fSQSCSIiwTmnRqPxfiqVgud5y0dHR78xACOqqlqhUAiRSESYpimazSYrFovCcRzyfZ9KpZJotVpkmqaIxWJC13UoivJoeHg4IQPodzqdRqfTsTKZDI2MjIiTkxPs7u7S7e0tOOc4Pj6GqqpYX1+HpmlUrVbBOe/JstxjAJ42Go1f7u7uYFkWQqEQ6bouHMcR4+PjMAxDBEEAwzBARJROpxEEAer1+s+tVqsuAUC73f5raWmpkMvlYuFwGOFwmKLRKCUSCcTjcUqlUshms8QYg6IouL6+vi2Xy19yzusyACiK4jHGBpxzVCoVnJ2dCUVR6OLiArIsAwDt7OyIiYkJMk0TROREIpFn3W4XEgBkMhkEQfCOJElv6LqOoaEhmp6ehmVZMAwD8XgcsiyT53moVqs4PT097ff739q2bUszMzN0fn7+TFXVP3q93qoQImZZFkZHR0H0fGeMMUiShEqlgv39/b/b7fYXl5eXewAgq6oKAKjVak88z3vc6/U+rtVq70ajUUtV1ZgkSeT7/lPbtpudTme/2+1+X6vVfgeAhYWF5wmLi4v/PVUSwGsA3mSMzWma9haARy9/Z25ujgDgH7jkWH58xN7+AAAAAElFTkSuQmCC%27%3B%0A%0Athis.PS%3DComponents.classes%5B%27@mozilla.org/preferences-service%3B1%27%5D.getService%28Components.interfaces.nsIPrefBranch%29%3B%0A%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%20%26%26%20%21event.ctrlKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%20%0Athis.setAttribute%28%22onclick%22%2C%22if%28event.button%3D%3D0%29%7Bthis.toggleStatus%28%29%3B%7D%20else%20if%28event.button%3D%3D1%29%20%7BGM_OpenScriptsMgr%28%29%3B%7D%20else%20if%28event.button%3D%3D2%29%7Bif%28%21this.lastChild%29%7Bvar%20gm_menu%3Ddocument.getElementById%28%27gm_general_menu%27%29.getElementsByTagName%28%27menupopup%27%29%5B0%5D.cloneNode%28true%29%3Bthis.appendChild%28gm_menu%29%3B%7D%20var%20popup%3Ddocument.getBoxObjectFor%28this%29%3Bthis.lastChild.showPopup%28this%2C-1%2C-1%2C%27popup%27%2C%27bottomleft%27%2C%27topleft%27%29%3B%7D%22%29%3B%0A%0Athis.setStatus%3Dfunction%28%29%20%7B%0A%20var%20status%20%3D%20this.PS.getBoolPref%28this.pref%29%3B%0A%20if%20%28status%3D%3Dtrue%29%20%7B%0A%20%20this.image%3Dthis.onImage%3B%0A%20%20this.tooltipText%3D%22Greasemonkey%20enabled%22%0A%20%7D%20else%20%7B%0A%20%20this.image%3Dthis.offImage%3B%0A%20%20this.tooltipText%3D%22Greasemonkey%20disabled%22%0A%20%7D%0A%7D%0A%0Athis.ob%3D%7B%7D%3B%0Athis.ob.observe%3Dthis.setStatus.bind%28this%29%3B%0Athis.PS.addObserver%28this.pref%2Cthis.ob%2Cfalse%29%3B%0Athis.setStatus%28%29%3B%0A%0Athis.toggleStatus%3Dfunction%28%29%20%7B%0A%20switch%28this.PS.getBoolPref%28this.pref%29%29%20%7B%0A%20%20case%20true%3A%20this.PS.setBoolPref%28this.pref%2Cfalse%29%3B%20break%3B%0A%20%20case%20false%3A%20this.PS.setBoolPref%28this.pref%2Ctrue%29%3B%20break%3B%0A%20%7D%0A%7D%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:/*Initialization code*/ this.pref='greasemonkey.enabled'; this.onImage='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAyVJREFUOMt1k0toXGUAhb//n5vMjDczmUeaO3nNdMYkTCKNpKGpUWzHYsSkGrALHwiufCDuFLFIwUUVBHeiIApZVCqFIii2LqymWk0nbcWWaGxompd53HQmkzQTO6+be38XWrSlnuXhHDiL78Ad9MEg4qPHcN3uv/8o7sMp9P962u2hDweRr3yNA9gAR57AqNhszxXZcb1M1FF8Bky+/RDy0Gkcwf/o48fplZJUscJAvkxPaQufEBz3u3lNKbKvn6J0xwXv9lJf7eHVconnKoKG1QKUyqBrcJeHSMXmSdvmGLB0OIW8ZcGbCcKRNoaDRt2QY9uYi+sULTCag/hqPGSXTDb/5NBbo7xzsyMADvYxqBQHat3cfc9996Z2pPbhQjrj356UdrFI98CQkrouJs78wPhP6ZPXNjCl5Mf3znFEi0AoFIu+EfB59jg38iTvf5CG1g5HOUruPhBWtrVFbcQQ0iVU8gFHLM4t7vfH3BTKzu6952a+02qhVnj1WFWNB6VpKmw0MrOSkacuT6s9yU5haVX8fPaC6m9NCMNoVJ6wQdmyhJB2k9tHnVaAG+bqxmIum421xaPCXxtQX42Nc3RkQuSyW5SkzfcXrxDsr+aZh3dR5a0Rl6cmKDrapuViUy5AZmYuc2IzX6Al3kJVwC8C1V61ZebUNj1AQHmVyuQxQiFwV4lovBnLsrl61fz89HX+EABJ6Hz+6eiJwaeG4raloweDlLxeEvE4UrqYW1xQerkk1pZX8Ppsvjn+5canw1cG0pDWAJqg4hLKQsLSvMnyyG+qOdYolkYn8eheHNsSU79Pq/qWgOjsaURKVaqrpkjlH5AaEqzNTi/M/nrhUntf/z48fl2Ysxm2LIUSIByHpnZDJHdGmTg/xtTk3Jy3jhzL4Hq5CzE8SXG7xvzG+rW9hc18MNYWIbmrnURXlObWbTS3hfHqDr+cSXN2JL1umpWDx+YZAxAvdCM+uYgCGKqnIxDiWaPB/4gv4I+5q7WgS5PCtp3MxnreXFleO7+2ytEvTEYBXtz5N4i81CNuQToJkUZIJCDZC9190JWEpg7Xv9+5Wf4LG9k8TnFGv1sAAAAASUVORK5CYII='; this.offImage='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAyBJREFUOMt1k8trK3Ucxc/3N888+kgmjGlu4yQqrZRW+qKlWdi0gtR4K8WFG8E/QhcKuvXfEBQUQdxpFw0S6I1Q+liUUtKmkNY0kuaGaDppemcmM7+fi8uFq9Sz/MDhnMU5Eh5QoVCgyclJqVqtipf5xsaGlk6n9aurq8ELJj9gZtvb2xxAAABbW1uvBEGQcRxnxnXdVznnPwA4W1tbY6VSiRP+R5ubm0tElB8MBu+5rrvg+/4QEf2kqupnANrFYtF5sMHKyoqpadqnrut+AmDs/v4erutCURRompYMguAjIcSPAP7M5/PsXw2mpqaMdDr9jWEYH3DOcXNzg8FggGQyiUgkglarhX6//1W5XP76hYcAIJfLFYQQH2qa9vrs7Gx+eXkZjDFeLpeZ53lYXV0VmqbRwcEBDg8Pf7Vtu8kYe7K3t/edDCA+Njb2eTQafdt1XczPzyObzXIhBCsUCsL3fSQSCSIiwTmnRqPxfiqVgud5y0dHR78xACOqqlqhUAiRSESYpimazSYrFovCcRzyfZ9KpZJotVpkmqaIxWJC13UoivJoeHg4IQPodzqdRqfTsTKZDI2MjIiTkxPs7u7S7e0tOOc4Pj6GqqpYX1+HpmlUrVbBOe/JstxjAJ42Go1f7u7uYFkWQqEQ6bouHMcR4+PjMAxDBEEAwzBARJROpxEEAer1+s+tVqsuAUC73f5raWmpkMvlYuFwGOFwmKLRKCUSCcTjcUqlUshms8QYg6IouL6+vi2Xy19yzusyACiK4jHGBpxzVCoVnJ2dCUVR6OLiArIsAwDt7OyIiYkJMk0TROREIpFn3W4XEgBkMhkEQfCOJElv6LqOoaEhmp6ehmVZMAwD8XgcsiyT53moVqs4PT097ff739q2bUszMzN0fn7+TFXVP3q93qoQImZZFkZHR0H0fGeMMUiShEqlgv39/b/b7fYXl5eXewAgq6oKAKjVak88z3vc6/U+rtVq70ajUUtV1ZgkSeT7/lPbtpudTme/2+1+X6vVfgeAhYWF5wmLi4v/PVUSwGsA3mSMzWma9haARy9/Z25ujgDgH7jkWH58xN7+AAAAAElFTkSuQmCC'; this.PS=Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces.nsIPrefBranch); this.oncontextmenu = function(event) { if(event.button == 2 && !event.shiftKey && !event.altKey && !event.metaKey && !event.ctrlKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; this.setAttribute("onclick","if(event.button==0){this.toggleStatus();} else if(event.button==1) {GM_OpenScriptsMgr();} else if(event.button==2){if(!this.lastChild){var gm_menu=document.getElementById('gm_general_menu').getElementsByTagName('menupopup')[0].cloneNode(true);this.appendChild(gm_menu);} var popup=document.getBoxObjectFor(this);this.lastChild.showPopup(this,-1,-1,'popup','bottomleft','topleft');}"); this.setStatus=function() { var status = this.PS.getBoolPref(this.pref); if (status==true) { this.image=this.onImage; this.tooltipText="Greasemonkey enabled" } else { this.image=this.offImage; this.tooltipText="Greasemonkey disabled" } } this.ob={}; this.ob.observe=this.setStatus.bind(this); this.PS.addObserver(this.pref,this.ob,false); this.setStatus(); this.toggleStatus=function() { switch(this.PS.getBoolPref(this.pref)) { case true: this.PS.setBoolPref(this.pref,false); break; case false: this.PS.setBoolPref(this.pref,true); break; } } |
bunda1 > 15-04-2011 19:43:34 |
Extension List ( Firefox 24+ ) Скриншот: Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0421%u043F%u0438%u0441%u043E%u043A%20%u0440%u0430%u0441%u0448%u0438%u0440%u0435%u043D%u0438%u0439%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAAFHUlEQVQ4jX2UW4id1RmGv2+t9e9/H/5/9mF2Zh8m455tdMjJatpqQERIUUOhiNAWCqa1hwsvWoQ24E17a5EqlOKF0BPeKBLBeKC9EqoSo8SW0kQbO8l2MpnzzD7O/s9rre/rRWpvCn0v3xeemwdeZGYAACAitGAREQEBJQA4DGyZmRAAAYARUTIgIrBmZssAfGthECBBCgmK4Rbw3PVz/Nu//w7afot917uj5tfONivNOgqKjckkANpYJ972cOvTaTx9IaJsm4idct6z42xMD7Tux5/c/VNWDIzMzNcG19oXb3xwe7PctErKZiGXKxxbPP61Tmu+YoWmIErE8tr1zZXNleuZMXdFWTIHTMtVb0bvBLtYQMV8D4ESICCjTHh577tnTj3+y/lyMwqSMARJKQIKrQ2nlBIyiGZ1zinP+A/VCrUnr6+t3NwZbHyr6lVyIMRJP++/BwD/UgyMQkgGgb3ljavnx4PtP6UmXWw25n88W6nO9OOxidNIEhEbZQ+AMPXQjrla9haU035eOuJQvlroZgDnLNEPFQGRQARme3l5ezlwZg/9JdLx0r4Ov7HkLM1O06kN4khIRLRoWesMhmbErnRz+aL7QMZJSQFIS9wmAKkkSLRkQYJ6ZLHVebpUql5M9s1MYKLDe9MROw6gI5VFQhxMxnoUDuhgrV0Kg3R7befq8wfK9Tu04Hs7VfO2AExvSQGGUEdlRFxwCu63C9YT0XTAqU54rtpQVlqMwhSjvSRIEp1EWVqaBNNJp3jojSQJbvR2e/5X/ROhEsgKAYGIoB8OKaI4TWwYFQp5dax+xCMgDLIADGeY6BQ8zy0WSgckSgBEIU+0v+L9bfvSsUgnX56Y6ccM8JkCAJYo4WjtyJUtu/r7Gvofrk5WDu7a3afm6gfae8FQR8lUMTJq1+Q0aSVJgSpx69L44jNxIep0l1p3JkSvamueVADAQgpoePU1dzd/Yc6ZO78S9w5f3fnsjHRkO8oimkQBCYnCkIE0TYUQDETkfbK7e7rsF52y64lROF4iJkcxMFoiuNy/fN+F/rtPLZv6Y4N4WJKJ0w3XY1Ayh56tkACEUTDOwnRC7pwqsZFbJysnnttI1hfWR4OTj971ndfyKv8fKUww3B82huPhcSenjloBQoECmADXZ+sO5QzHUYr9yShjxjQZ61IRCqNnHn729U8GVzbeufnebT84/r0tiZIUAAAAg4yVbiStrBU2NCBjvlksgCUIaJ8NWcgg5bwvC3lRl9YA6Iicf6xf8Zb3lr/0ea938tX8KxeOnD7+qUJAECh5sdb5Z2e789KsqLyzPl5fGAXDn9VmK/OTZGoSnSACoBXWMVo7OZEDxqz9q/effS7FpBvE0e1uzz33CzI/UghIQgjoNrq9zt7im91K589Bsn/4wxuXzuSLx+YRmUbTkYMohMopynRqI4gVIJQmZnLa90qyXWxg2a12GFgqZhaWCS5d++upt6689XS1MtPTWepU65Wjqzurg/1w/NGs39hBZt7a2Wy5RfeeQinfTgKz3vU7P18bbNy9NRh+/f4HHzzvKidTjMzAjPt24o/0cF4aOOgoZVylnNXNjVHXv+21P37zD+eZCJ54+fuP3QzWO9JR7UKuOP7Noy9eWJusvvLR6se/PnvqbF+hw/jFY+9F/cow7tdzIscMTJYtGDLOjDMzbvmtPgPD5nSzHuiwIlGyQqUXygtbjnRSwwYU3vL7X+D/yxevjoD/0yMwEgAKEAQA8G+QDuH4X0FBaQAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3Etry%20%7B%20Cu.import%28%22resource%3A//custombuttons-modules/addons4.js%22%2C%20%7B%7D%29%3B%20%7D%20catch%28ex%29%20%7B%7D%0A%0Afunction%20gatherInfo%28type%29%20%7B%0A%0A%09var%20tmp%20%3D%20%5B%5D%2C%20map%20%3D%20%7B%7D%2C%20sort%20%3D%20%5B%5D%3B%0A%09items.forEach%28function%28item%29%20%7B%0A%09%09if%20%28item.type%20%21%3D%20type%29%20return%3B%0A%0A%09%09var%20name%20%3D%20item.name%20%3F%20item.name.toUpperCase%28%29%20%3A%20%22UNNAMED%22%3B%0A%09%09name%20+%3D%20item.id%0A%0A%09%09tmp.push%28name%29%3B%0A%09%09map%5Bname%5D%20%3D%20item%3B%0A%09%7D%29%3B%0A%09tmp.sort%28%29%3B%0A%09tmp.forEach%28function%28name%29%20%7B%20sort.push%28map%5Bname%5D%29%20%7D%29%3B%0A%09%0A%09var%20list%20%3D%20%22%22%2C%20enabled%20%3D%200%2C%20disabled%20%3D%200%3B%0A%09sort.forEach%28function%28item%29%20%7B%0A%09%0A%09%09list%20+%3D%20%28item.name%20%7C%7C%20%22unnamed%22%29%20+%20%22%20%22%20+%20%28item.version%20%7C%7C%20%22%22%29%3B%0A%0A%09%09if%20%28item.type%20%21%3D%20%22custombuttons%22%20%26amp%3B%26amp%3B%20%28item.userDisabled%20%7C%7C%20item.appDisabled%29%29%20%7B%0A%09%09%09list%20+%3D%20%22%20%5B%20%u0432%u044B%u043A%u043B%u044E%u0447%u0435%u043D%20%5D%5Cn%22%3B%20disabled++%3B%20return%3B%0A%09%09%7D%0A%0A%09%09else%20if%20%28item.type%20%3D%3D%20%22custombuttons%22%29%20%7B%0A%0A%09%09%09var%20str%20%3D%20item.id%3B%0A%09%09%09var%20id%20%3D%20str.substring%28str.lastIndexOf%28%22custombuttons-button%22%29%2C%20str.length%29%3B%0A%09%09%09var%20button%20%3D%20document.getElementById%28id%29%3B%0A%0A%09%09%09if%20%28%21button%29%20%7B%0A%09%09%09%09list%20+%3D%20%22%20%5B%20%u041D%u0415%20%u0412%u042B%u0422%u0410%u0429%u0415%u041D%u0410%20%5D%5Cn%22%3B%20disabled++%3B%20return%3B%0A%09%09%09%7D%0A%09%09%09if%20%28button.hasAttribute%28%22initializeerror%22%29%29%20%7B%0A%09%09%09%09list%20+%3D%20%22%20%5B%20%u041E%u0428%u0418%u0411%u041A%u0410%20%u0418%u041D%u0418%u0426%u0418%u0410%u041B%u0418%u0417%u0410%u0426%u0418%u0418%20%5D%5Cn%22%3B%20disabled++%3B%20return%3B%0A%09%09%09%7D%0A%09%09%7D%0A%0A%09%09enabled++%3B%20list%20+%3D%20%22%5Cn%22%3B%0A%09%7D%29%3B%0A%09return%20%5Benabled%20+%20disabled%2C%20enabled%2C%20disabled%2C%20list%5D%3B%0A%7D%0Avar%20items%20%3D%20%5B%5D%3B%0Afunction%20extensionsCallback%28extensions%29%20%7B%0A%09var%20list%20%3D%20%22%22%3B%0A%09items%20%3D%20extensions%3B%0A%20%20%20%20%0A%09var%20info%20%3D%20Cc%5B%22@mozilla.org/xre/app-info%3B1%22%5D.getService%28Ci.nsIXULAppInfo%29%3B%0A%20%20%20%20%0A%09list%20+%3D%20info.vendor%20+%20%22%20%22%20+%20info.name%20+%20%22%20%22%20+%20info.version%20+%20%22%20%28build%20%22%20+%20info.appBuildID%20+%20%22%29%5Cn%22%3B%0A%09list%20+%3D%20%22User%20Agent%3A%20%22%20+%20navigator.userAgent%20+%20%22%5Cn%5Cn%22%3B%0A%0A%09for%28var%20type%20in%20AddonManager.addonTypes%29%20%7B%0A%09%09%0A%09%09var%20name%3B%0A%09%09var%20addonType%20%3D%20AddonManager.addonTypes%5Btype%5D%3B%0A%09%09if%20%28addonType.name%29%20name%20%3D%20addonType.name%3B%09%09%0A%09%09else%20if%20%28addonType.id%20%3D%3D%20%22custombuttons%22%29%20name%20%3D%20%22%u041A%u043D%u043E%u043F%u043A%u0438%22%3B%0A%0A%09%09list%20+%3D%20%22***%20%22%20+%20name%3B%0A%09%09var%20ext%20%3D%20gatherInfo%28addonType.id%29%3B%0A%09%09list%20+%3D%20%22%20%28%20%u0412%u043A%u043B%u044E%u0447%u0435%u043D%u043E%3A%20%22%20+%20ext%5B1%5D%20+%20%22%2C%20%u041E%u0442%u043A%u043B%u044E%u0447%u0435%u043D%u043E%3A%20%22%20+%20ext%5B2%5D%20+%20%22%2C%20%u0412%u0441%u0435%u0433%u043E%3A%20%22%20+%20ext%5B0%5D%20+%20%22%20%29%5Cn%22%20+%20ext%5B3%5D%20+%20%22%5Cn%22%3B%0A%09%7D%0A%0A%09var%20dialog%20%3D%20%27%5C%0A%09%09%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//global/skin/%22%3F%26gt%3B%5Cn%5C%0A%09%09%26lt%3Bdialog%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%09%09%09xmlns%3Ahtml%3D%22http%3A//www.w3.org/1999/xhtml%22%5Cn%5C%0A%09%09%09id%3D%22cbbExtensionsLister%22%5Cn%5C%0A%09%09%09persist%3D%22width%20height%20screenX%20screenY%22%5Cn%5C%0A%09%09%09title%3D%22%u0421%u043F%u0438%u0441%u043E%u043A%20%u0440%u0430%u0441%u0448%u0438%u0440%u0435%u043D%u0438%u0439%22%5Cn%5C%0A%09%09%09width%3D%22640%22%20height%3D%22480%22%5Cn%5C%0A%09%09%09buttons%3D%22accept%2Cextra1%22%5Cn%5C%0A%09%09%09buttonlabelextra1%3D%22%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0432%u0441%u0435%u2026%22%5Cn%5C%0A%09%09%09onload%3D%22init%28%29%22%5Cn%5C%0A%09%09%09ondialogextra1%3D%22copy%28%29%22%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3Bscript%20type%3D%22application/x-javascript%22%26gt%3B%5Cn%5C%0A%09%09%09%09%26lt%3B%21%5BCDATA%5B%5Cn%5C%0A%09%09%09%09%09function%20init%20%28%29%20%7B%7D%5Cn%5C%0A%09%09%09%09%09function%20copy%20%28%29%20%7B%5Cn%5C%0A%09%09%09%09%09%09var%20tb%20%3D%20document.getElementById%28%22addonslist%22%29%3B%5Cn%5C%0A%09%09%09%09%09%09window.arguments%5B0%5D.write%28%28opener.navigator.platform.indexOf%28%22Win%22%29%20%21%3D%20-1%29%20%3F%20tb.value.replace%28/%5C%5Cn/g%2C%20%22%5C%5Cr%5C%5Cn%22%29%20%3A%20tb.value%29%3B%5Cn%5C%0A%09%09%09%09%09%09tb.focus%20%28%29%3B%5Cn%5C%0A%09%09%09%09%09%7D%5Cn%5C%0A%09%09%09%09%5D%5D%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3B/script%26gt%3B%5Cn%5C%0A%09%09%09%26lt%3Btextbox%20id%3D%22addonslist%22%20flex%3D%221%22%20multiline%3D%22true%22%20/%26gt%3B%5Cn%5C%0A%09%26lt%3B/dialog%26gt%3B%27%3B%0A%09dialog%20%3D%20%22data%3Aapplication/vnd.mozilla.xul+xml%2C%22%20+%20encodeURIComponent%28dialog%29%3B%0A//%09var%20win%20%3D%20window.openDialog%20%28dialog%2C%20%22%22%2C%20%22chrome%2Cdependent%2Cdialog%3Dno%2Cminimizable%22%2C%20custombuttonsUtils.gClipboard%29%3B%0A%09var%20win%20%3D%20window.openDialog%20%28dialog%2C%20%22%22%2C%20%22chrome%2Cdependent%2Cdialog%3Dno%22%2C%20custombuttonsUtils.gClipboard%29%3B%0A%0A%09addEventListener%28%22load%22%2C%20function%28%29%20%7B%0A%09%09var%20doc%20%3D%20win.document%3B%0A%09%09var%20textbox%20%3D%20doc.querySelector%28%22textbox%22%29%3B%0A%09%09textbox.value%20%3D%20list%3B%0A%09%09textbox.inputField.selectionStart%20%3D%0A%09%09textbox.inputField.selectionEnd%20%3D%200%3B%0A%09%7D%2C%20true%2C%20win%29%3B%0A%7D%0AAddonManager.getAllAddons%28extensionsCallback%29%3B%0A%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:try { Cu.import("resource://custombuttons-modules/addons4.js", {}); } catch(ex) {} function gatherInfo(type) { var tmp = [], map = {}, sort = []; items.forEach(function(item) { if (item.type != type) return; var name = item.name ? item.name.toUpperCase() : "UNNAMED"; name += item.id tmp.push(name); map[name] = item; }); tmp.sort(); tmp.forEach(function(name) { sort.push(map[name]) }); var list = "", enabled = 0, disabled = 0; sort.forEach(function(item) { list += (item.name || "unnamed") + " " + (item.version || ""); if (item.type != "custombuttons" && (item.userDisabled || item.appDisabled)) { list += " [ выключен ]\n"; disabled++; return; } else if (item.type == "custombuttons") { var str = item.id; var id = str.substring(str.lastIndexOf("custombuttons-button"), str.length); var button = document.getElementById(id); if (!button) { list += " [ НЕ ВЫТАЩЕНА ]\n"; disabled++; return; } if (button.hasAttribute("initializeerror")) { list += " [ ОШИБКА ИНИЦИАЛИЗАЦИИ ]\n"; disabled++; return; } } enabled++; list += "\n"; }); return [enabled + disabled, enabled, disabled, list]; } var items = []; function extensionsCallback(extensions) { var list = ""; items = extensions; var info = Cc["@mozilla.org/xre/app-info;1"].getService(Ci.nsIXULAppInfo); list += info.vendor + " " + info.name + " " + info.version + " (build " + info.appBuildID + ")\n"; list += "User Agent: " + navigator.userAgent + "\n\n"; for(var type in AddonManager.addonTypes) { var name; var addonType = AddonManager.addonTypes[type]; if (addonType.name) name = addonType.name; else if (addonType.id == "custombuttons") name = "Кнопки"; list += "*** " + name; var ext = gatherInfo(addonType.id); list += " ( Включено: " + ext[1] + ", Отключено: " + ext[2] + ", Всего: " + ext[0] + " )\n" + ext[3] + "\n"; } var dialog = '\ <?xml-stylesheet href="chrome://global/skin/"?>\n\ <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\ xmlns:html="http://www.w3.org/1999/xhtml"\n\ id="cbbExtensionsLister"\n\ persist="width height screenX screenY"\n\ title="Список расширений"\n\ width="640" height="480"\n\ buttons="accept,extra1"\n\ buttonlabelextra1="Копировать все…"\n\ onload="init()"\n\ ondialogextra1="copy()">\n\ <script type="application/x-javascript">\n\ <![CDATA[\n\ function init () {}\n\ function copy () {\n\ var tb = document.getElementById("addonslist");\n\ window.arguments[0].write((opener.navigator.platform.indexOf("Win") != -1) ? tb.value.replace(/\\n/g, "\\r\\n") : tb.value);\n\ tb.focus ();\n\ }\n\ ]]>\n\ </script>\n\ <textbox id="addonslist" flex="1" multiline="true" />\n\ </dialog>'; dialog = "data:application/vnd.mozilla.xul+xml," + encodeURIComponent(dialog); // var win = window.openDialog (dialog, "", "chrome,dependent,dialog=no,minimizable", custombuttonsUtils.gClipboard); var win = window.openDialog (dialog, "", "chrome,dependent,dialog=no", custombuttonsUtils.gClipboard); addEventListener("load", function() { var doc = win.document; var textbox = doc.querySelector("textbox"); textbox.value = list; textbox.inputField.selectionStart = textbox.inputField.selectionEnd = 0; }, true, win); } AddonManager.getAllAddons(extensionsCallback); Автор кнопки: Dumby |
bunda1 > 18-04-2011 19:24:12 |
Downloads( Firefox 3.6 - 24 ) ЛКМ => открыть менеджер загрузок в боковой панели. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EDownloads%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACmElEQVR42oyU3UtUQRiHn9k9c47Ho+4uhrkthmUfkHeB91GJ1paiJl0EQZd9U3f+E1EX0b8QEUQX0ScZWd0E3VhBrWJFuZuEqyLsOTtnznSxx9rSzPdq5p13nhl+729GTBXL/BUJwAFcwAZEnDdAFagAARDVb7JYHQ6QBTKsHWWgGAPXBblAZu/ubTdUQ6YnKWslWoVIv/z6zYeZ08DCRkA2QPOW7T2dXTuwLAsMhDrk03Shp77mfyABkE6laGluRgiBACJjSKXSf9T8D1RbsBJIy0IIgcGQMAYrKfhn/b9BFtKWv1sWGZKJ5LqgJNAQiyyB1hpI4ti/pYiiCEvKlWlrbIcwFt23YkgH4NWf4DV5OI4DQmCMwWiN53n1FsnF42Xgq5gqljPA9u7OjjvupmxHUypF++Z2duzsIp3O1DQyhkhr5svzFAoFSsUSy0uL6KW5z29nZkeAaSt2a/Xy2Nit8RevLmS3bJUtqRSNXiOOLX+BwlCTTmfY091NLpujNPtF5fvP3IxdrizAB2bPnjt/r21zm3g6PnHe3tQqGxwHy5KIhMBEBoTCMQalAsJqJTh18sS1oeFjD32liysaaWDRV3pydPQ4rtMQPh6fuNjouo7luiREgshEGBPhhyHzc9+DwXz/1YGh4fu+0u+ARUCvtD8EFnylJ/MDg5G0ZfT42cSlnN3peF4TRkWoasCPuWLl6OH+a4fyRx4ENUg5vsgfPgqBcqD0u96+wwYET5+/vNjWnnONiSh9+1rJ9x28cqC3/1Gg9Pt6yFqG1EC5Gur3vX2HsG2pbt+5exYDI0OD1/ftP/ikGq6GAIg1/iNik6Ydmdzl2nI3QKWqPgRKf4xfvt7oE9HAQqD0ZKB0Ic75sYv1Wht+DgB8pQ6678CoOAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%20....%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20document.getElementById%28%27sidebar-box%27%29.getAttribute%28%27sidebarcommand%27%29%20%3F%20toggleSidebar%28%29%20%3A%20openWebPanel%28%22Downloads%22%2C%20downTabUrl%20%29%3B%20%20%20%20%20%09%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20var%20windows%20%3D%20Components.%20classes%20%5B%27@mozilla.org/appshell/window-mediator%3B1%27%5D.getService%28Components.%20interfaces.%20nsIWindowMediator%29.getEnumerator%20%28null%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%28%20windows.%20hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20win%20%3D%20windows.getNext%20%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20win.document.documentURI%20%3D%3D%20%22chrome%3A//mozapps/content/downloads/downloads.xul%22%29%20%7B%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20win.close%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20BrowserDownloadsUI%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20downloadManagerInTab%28%20true%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A%0A//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20...................................................................%0Avar%20downTabUrl%20%3D%20%27chrome%3A//mozapps/content/downloads/downloads.xul%27%3B%0A%0A//%20%u0438%u043A%u043E%u043D%u043A%u0438%20%u0434%u043B%u044F%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0437%u0430%u0433%u0440%u0443%u0437%u043E%u043A%20....%0Aconst%20trueDownloadsImg%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDAAIAAAMACyIAEGyoLtVqpyrVDSIADwAAAgABAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAAgAAAgALHwAPZaAmwsXxnv+t63n/XpwbwAcUAA0AAAIAAQIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAwADAAACAAwgAA9loyXFv+2W/7/wl/yg52b8n+Nj/1OJG8EBCAAMAAACAAECAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAECAAIAAAIADCEADmSiI8Sx4oX/suWH+7HmhP+T3FX/i9dK+5LZUv9RhxnAAQkADAAAAgABAgACAAAAAAAAAAAAAAAAAQIAAgAAAgANIQANY6Eiw6nbfP+l23f7p913/6fed/+I0kj/gs5A/37KPvuL0Ev/UIYYvwIJAAsAAAIAAQIAAgAAAAABAQABAAABAAsgAA1gnh/BoNJy/5vSa/qe1W3/odhx/5/Ybv+Cy0H/fsg8/3zFOv92vjX6g8VD/0yCFL0BCAALAAABAAABAAEAAAEACRUAEmqmKcyn2Hr/n9Ry/Z3Tbv+Yz2b/mtJp/5nRZv99xDz/ecI3/3e/Nv97wT7/e78//YvKT/9Xjhy/BAwACQAAAQAAAAEAFCkAL2CUKdxhkTDXXI4o1m+mN/KWzGb/ksth/pLLX/93vTn/croz/nm9Pf9noizyVoog1lqNJtlbkx/TDyAAHwAAAQAAAAAAAAAAAAAAAAACAwEEAAAAAD5oFqeXz2X/icFY+4rDWP9ytjX/bLEu+3/CQv8+ZxSnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAEAAQEBAQEDBAMEAAAAAEFqFqeSyV7/g7pR+4S8Uf9usDP/aKsr+3u9Pv9AaRSnAAAAAAMEAgQBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeNxVj/fbRK+3+2Sv9rqzD/ZaYo+3m5PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeJwlT/eLBF+3qyRv9qqS7/ZKQo+3m4PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeHwFD/da5B+3exQv9pqS7/ZKQo+3m4PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeEv03/cqw8+3WvPv9pqS7/ZKQo+3m4PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeCvkn/cKs4+3OuO/9pqS7/ZKQo+3m4PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAD9oE6d+vET/bKky+2+sNf9oqCv/Y6Mm+3e3Ov8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFaeDv0v/cKw5+3OvPP9vqzX/aqcx+3+8RP9AaRSnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgAEAAAAADlkCox1szT/a6Yv+W2oMPxspy78aqQt+XSyMv85ZAqMAAAAAAECAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%3B%0Aconst%20falseDownloadsImg%20%3D%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACmElEQVR42oyU3UtUQRiHn9k9c47Ho+4uhrkthmUfkHeB91GJ1paiJl0EQZd9U3f+E1EX0b8QEUQX0ScZWd0E3VhBrWJFuZuEqyLsOTtnznSxx9rSzPdq5p13nhl+729GTBXL/BUJwAFcwAZEnDdAFagAARDVb7JYHQ6QBTKsHWWgGAPXBblAZu/ubTdUQ6YnKWslWoVIv/z6zYeZ08DCRkA2QPOW7T2dXTuwLAsMhDrk03Shp77mfyABkE6laGluRgiBACJjSKXSf9T8D1RbsBJIy0IIgcGQMAYrKfhn/b9BFtKWv1sWGZKJ5LqgJNAQiyyB1hpI4ti/pYiiCEvKlWlrbIcwFt23YkgH4NWf4DV5OI4DQmCMwWiN53n1FsnF42Xgq5gqljPA9u7OjjvupmxHUypF++Z2duzsIp3O1DQyhkhr5svzFAoFSsUSy0uL6KW5z29nZkeAaSt2a/Xy2Nit8RevLmS3bJUtqRSNXiOOLX+BwlCTTmfY091NLpujNPtF5fvP3IxdrizAB2bPnjt/r21zm3g6PnHe3tQqGxwHy5KIhMBEBoTCMQalAsJqJTh18sS1oeFjD32liysaaWDRV3pydPQ4rtMQPh6fuNjouo7luiREgshEGBPhhyHzc9+DwXz/1YGh4fu+0u+ARUCvtD8EFnylJ/MDg5G0ZfT42cSlnN3peF4TRkWoasCPuWLl6OH+a4fyRx4ENUg5vsgfPgqBcqD0u96+wwYET5+/vNjWnnONiSh9+1rJ9x28cqC3/1Gg9Pt6yFqG1EC5Gur3vX2HsG2pbt+5exYDI0OD1/ftP/ikGq6GAIg1/iNik6Ydmdzl2nI3QKWqPgRKf4xfvt7oE9HAQqD0ZKB0Ic75sYv1Wht+DgB8pQ6678CoOAAAAABJRU5ErkJggg%3D%3D%22%3B%0A%0A%0A%0A/*%20%u041E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20%u0432%20%u0442%u0430%u0431%u0435%20%u0438%u043B%u0438%20%u043F%u0435%u0440%u0435%u043C%u0435%u0441%u0442%u0438%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043E%u043A%20%u0440%u044F%u0434%u043E%u043C%20%u0441%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u043E%u0439%20%0A%20%20%20%u0435%u0441%u043B%u0438%20%u0437%u0430%u0433%u0440%u0443%u0437%u0438%20%u0443%u0436%u0435%20%u043E%u0442%u043A%u0440%u044B%u0442%u044B%20%u0438%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u043B%u0438%u0448%u043D%u0438%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0437%u0430%u0433%u0440%u0443%u0437%u043E%u043A%20%20..........................................*/%0Afunction%20downloadManagerInTab%28%20foregroundTab%20%29%20%7B%20%20%20%20%20%20%20%20%20%20%0A%20%20%0A%20%20%20%20%20setTimeout%28function%28%29%20%7B%20closeDownloadManager%28%29%20%7D%2C%200%29%3B%20//%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u044B%u0439%20%u043C%u0435%u043D%u0435%u0434%u0436%u0435%u0440%20%u0437%u0430%u0433%u0440%u0443%u0437%u043E%u043A%20%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0437%u0430%u0433%u0440%u0443%u0437%u043E%u043A%20%u043A%u0440%u043E%u043C%u0435%20%u043F%u0435%u0440%u0432%u043E%u0439%20....%0A%20%20%20%20%20var%20downTab%20%3D%20null%3B%0A%20%20%20%20%20Array.slice%28%20gBrowser.tabs%20%29.forEach%28function%28tab%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20tab.linkedBrowser.currentURI.spec%20%21%3D%3D%20downTabUrl%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%21downTab%20%3F%20downTab%20%3D%20tab%20%3A%20gBrowser.removeTab%28tab%29%3B%0A%20%20%20%20%20%7D%29%0A%20%20%20%0A%20%20%20%20%20//%20%u043F%u0435%u0440%u0435%u043C%u0435%u0441%u0442%u0438%u0442%u044C%20%u0438%u043B%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043E%u043A%20%u0440%u044F%u0434%u043E%u043C%20%u0441%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u043E%u0439%20....%0A%20%20%20%20%20var%20selTab%20%3D%20gBrowser.selectedTab%3B%0A%20%20%20%20%20if%20%28%20downTab%20%21%3D%3D%20selTab%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20downTab%20%26%26%20gBrowser.visibleTabs.indexOf%28%20downTab%20%29%20%3D%3D%20-1%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20TabView.moveTabTo%28%20downTab%2C%20TabView._window.GroupItems._activeGroupItem.id%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20downTab%20%3D%20downTab%20%7C%7C%20gBrowser.addTab%28%20downTabUrl%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20pos%20%3D%20selTab._tPos%20+%20%28%20downTab._tPos%20%3E%20selTab._tPos%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20gBrowser.moveTabTo%28%20downTab%2C%20pos%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20downTab%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%7D%3B%0A%0A%0A%0A//%20%u0410%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u043C%u0435%u043D%u044F%u0435%u043C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0434%u043B%u044F%20%u0442%u0430%u0431%u0430%20%22%u0417%u0430%u0433%u0440%u0443%u0437%u043A%u0438%22%20.........................................................%0AaddEventListener%28%22TabAttrModified%22%2C%20function%28e%29%20%7B%20%0A%20%20%20%20%20if%20%28%20e.target.linkedBrowser.currentURI.spec%20%3D%3D%20downTabUrl%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20tabIndex%20%3D%20gBrowser.getBrowserIndexForDocument%28%20e.target.linkedBrowser.contentDocument%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20tab%20%3D%20gBrowser.mTabContainer.childNodes%5BtabIndex%5D%3B%0A%20%20%20%20%20%20%20%20%20%20LOG%28tab.label%29%0A%20%20%20%20%20%20%20%20%20%20tab.image%20%3D%20%28%20tab.label%20%3D%3D%20%22%u0417%u0430%u0433%u0440%u0443%u0437%u043A%u0438%22%20%29%3F%20falseDownloadsImg%3A%20trueDownloadsImg%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%0A%7D%2C%20true%2C%20gBrowser.tabContainer%29%3B%0A%0A%0A%0A//%20%u041E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u0442%u044C%20%u0432%u0441%u0435%20%u043A%u043E%u043C%u0430%u043D%u0434%u044B%20%u0441%u0432%u044F%u0437%u043D%u044B%u0435%20%u0441%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u043E%u0439%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u043A%u0430%u0442%u044C%20%u043D%u0443%u0436%u043D%u044B%u0435%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20%u0438%20%u043A%u043E%u043C%u0430%u043D%u0434%u044B%20%20........%0Afunction%20getCommand%28e%29%20%7B%0A%20%20%20%20%20var%20command%20%3D%20e.target.getAttribute%28%22oncommand%22%29%3B%0A%20%20%20%20%20if%20%28%20command%20%3D%3D%20%22performCommand%28%27cmd_removeFromList%27%29%3B%22%20%7C%7C%20command%20%3D%3D%20%27clearDownloadList%28%29%3B%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20content.document.location%20%3D%3D%20downTabUrl%29%20document.getElementById%28%22Browser%3AReload%22%29.doCommand%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20document.getElementById%28%27sidebar-box%27%29.getAttribute%28%27sidebarcommand%27%29%20%29%20openWebPanel%28%22Downloads%22%2C%20downTabUrl%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%09%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%20%20%20%20%20%0AaddEventListener%28%22command%22%2C%20getCommand%2C%20true%2C%20window%29%3B%0A%0A%0A%0A//%20%u0418%u0441%u043F%u0440%u0430%u0432%u043B%u044F%u0435%u043C%20%u043E%u0448%u0438%u0431%u043A%u0438%20.......................................................................................%0Afunction%20setFakeArguments%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.target.location.href%20%3D%3D%20%27chrome%3A//mozapps/content/downloads/downloads.xul%27%20%29%20%7B%0A%20%20%20%20%20var%20win%20%3D%20e.target.defaultView%3B%0A%20%20%20%20%20win%20%3D%20win.wrappedJSObject%20%7C%7C%20win%3B%0A%20%20%20%20%20win.arguments%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%7D%0A%7D%3B%0AaddEventListener%28%22TabClose%22%2C%20setFakeArguments%2C%20true%2C%20gBrowser%29%3B%0AaddEventListener%28%22DOMContentLoaded%22%2C%20setFakeArguments%2C%20true%2C%20gBrowser%29%3B%0AaddEventListener%28%22DOMContentLoaded%22%2C%20setFakeArguments%2C%20true%2C%20document.getElementById%28%27sidebar-box%27%29%29%3B%0A%0A%0A%0A%0A//%20%u0417%u0430%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u044B%u0439%20%u043C%u0435%u043D%u0435%u0434%u0436%u0435%u0440%20%u0437%u0430%u0433%u0440%u0443%u0437%u043E%u043A%20....................................................................%0Afunction%20closeDownloadManager%28%29%20%7B%0A%20%20%20%20%20var%20wm%20%3D%20Cc%5B%22@mozilla.org/appshell/window-mediator%3B1%22%5D.getService%28Ci.nsIWindowMediator%29%3B%0A%20%20%20%20%20var%20dm%20%3D%20wm.getMostRecentWindow%28%22Download%3AManager%22%29%3B%0A%20%20%20%20%20if%20%28%20dm%20%29%20dm.close%28%29%3B%20%20%0A%7D%3B%0A%0A%0A%09%09%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.....................................................................................%0Athis.tooltipText%20%3D%20%22L%3A%20Download%20Manager%20in%20the%20Sidebar%5CnM%3A%20Download%20Manager%20%5CnR%3A%20Download%20Manager%20in%20the%20Tab%5CnCtrl+R%3A%20CB%20menu%20%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ................................................................ this.onclick = function(e) { // действие при клике ЛКМ .... if ( e.button == 0 ) { document.getElementById('sidebar-box').getAttribute('sidebarcommand') ? toggleSidebar() : openWebPanel("Downloads", downTabUrl ); }; // действие при клике СКМ .... if ( e.button == 1 ) { var windows = Components. classes ['@mozilla.org/appshell/window-mediator;1'].getService(Components. interfaces. nsIWindowMediator).getEnumerator (null); while( windows. hasMoreElements() ) { var win = windows.getNext (); if ( win.document.documentURI == "chrome://mozapps/content/downloads/downloads.xul") { win.close(); return; } }; BrowserDownloadsUI(); }; // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); downloadManagerInTab( true ); } }; // Объявляем переменные для этой вкладки ................................................................... var downTabUrl = 'chrome://mozapps/content/downloads/downloads.xul'; // иконки для вкладки загрузок .... const trueDownloadsImg = "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEDAAIAAAMACyIAEGyoLtVqpyrVDSIADwAAAgABAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQIAAgAAAgALHwAPZaAmwsXxnv+t63n/XpwbwAcUAA0AAAIAAQIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAwADAAACAAwgAA9loyXFv+2W/7/wl/yg52b8n+Nj/1OJG8EBCAAMAAACAAECAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAECAAIAAAIADCEADmSiI8Sx4oX/suWH+7HmhP+T3FX/i9dK+5LZUv9RhxnAAQkADAAAAgABAgACAAAAAAAAAAAAAAAAAQIAAgAAAgANIQANY6Eiw6nbfP+l23f7p913/6fed/+I0kj/gs5A/37KPvuL0Ev/UIYYvwIJAAsAAAIAAQIAAgAAAAABAQABAAABAAsgAA1gnh/BoNJy/5vSa/qe1W3/odhx/5/Ybv+Cy0H/fsg8/3zFOv92vjX6g8VD/0yCFL0BCAALAAABAAABAAEAAAEACRUAEmqmKcyn2Hr/n9Ry/Z3Tbv+Yz2b/mtJp/5nRZv99xDz/ecI3/3e/Nv97wT7/e78//YvKT/9Xjhy/BAwACQAAAQAAAAEAFCkAL2CUKdxhkTDXXI4o1m+mN/KWzGb/ksth/pLLX/93vTn/croz/nm9Pf9noizyVoog1lqNJtlbkx/TDyAAHwAAAQAAAAAAAAAAAAAAAAACAwEEAAAAAD5oFqeXz2X/icFY+4rDWP9ytjX/bLEu+3/CQv8+ZxSnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAEAAQEBAQEDBAMEAAAAAEFqFqeSyV7/g7pR+4S8Uf9usDP/aKsr+3u9Pv9AaRSnAAAAAAMEAgQBAQEBAAAAAQAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeNxVj/fbRK+3+2Sv9rqzD/ZaYo+3m5PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeJwlT/eLBF+3qyRv9qqS7/ZKQo+3m4PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeHwFD/da5B+3exQv9pqS7/ZKQo+3m4PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeEv03/cqw8+3WvPv9pqS7/ZKQo+3m4PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFKeCvkn/cKs4+3OuO/9pqS7/ZKQo+3m4PP8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAD9oE6d+vET/bKky+2+sNf9oqCv/Y6Mm+3e3Ov8/aBOnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwEEAAAAAEBpFaeDv0v/cKw5+3OvPP9vqzX/aqcx+3+8RP9AaRSnAAAAAAIDAQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAgAEAAAAADlkCox1szT/a6Yv+W2oMPxspy78aqQt+XSyMv85ZAqMAAAAAAECAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; const falseDownloadsImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACmElEQVR42oyU3UtUQRiHn9k9c47Ho+4uhrkthmUfkHeB91GJ1paiJl0EQZd9U3f+E1EX0b8QEUQX0ScZWd0E3VhBrWJFuZuEqyLsOTtnznSxx9rSzPdq5p13nhl+729GTBXL/BUJwAFcwAZEnDdAFagAARDVb7JYHQ6QBTKsHWWgGAPXBblAZu/ubTdUQ6YnKWslWoVIv/z6zYeZ08DCRkA2QPOW7T2dXTuwLAsMhDrk03Shp77mfyABkE6laGluRgiBACJjSKXSf9T8D1RbsBJIy0IIgcGQMAYrKfhn/b9BFtKWv1sWGZKJ5LqgJNAQiyyB1hpI4ti/pYiiCEvKlWlrbIcwFt23YkgH4NWf4DV5OI4DQmCMwWiN53n1FsnF42Xgq5gqljPA9u7OjjvupmxHUypF++Z2duzsIp3O1DQyhkhr5svzFAoFSsUSy0uL6KW5z29nZkeAaSt2a/Xy2Nit8RevLmS3bJUtqRSNXiOOLX+BwlCTTmfY091NLpujNPtF5fvP3IxdrizAB2bPnjt/r21zm3g6PnHe3tQqGxwHy5KIhMBEBoTCMQalAsJqJTh18sS1oeFjD32liysaaWDRV3pydPQ4rtMQPh6fuNjouo7luiREgshEGBPhhyHzc9+DwXz/1YGh4fu+0u+ARUCvtD8EFnylJ/MDg5G0ZfT42cSlnN3peF4TRkWoasCPuWLl6OH+a4fyRx4ENUg5vsgfPgqBcqD0u96+wwYET5+/vNjWnnONiSh9+1rJ9x28cqC3/1Gg9Pt6yFqG1EC5Gur3vX2HsG2pbt+5exYDI0OD1/ftP/ikGq6GAIg1/iNik6Ydmdzl2nI3QKWqPgRKf4xfvt7oE9HAQqD0ZKB0Ic75sYv1Wht+DgB8pQ6678CoOAAAAABJRU5ErkJggg=="; /* Открывать загрузки в табе или переместить вкладку загрузок рядом с текущей вкладкой если загрузи уже открыты и закрыть все лишние вкладки загрузок ..........................................*/ function downloadManagerInTab( foregroundTab ) { setTimeout(function() { closeDownloadManager() }, 0); // закрыть стандартный менеджер загрузок // закрыть все вкладки загрузок кроме первой .... var downTab = null; Array.slice( gBrowser.tabs ).forEach(function(tab) { if ( tab.linkedBrowser.currentURI.spec !== downTabUrl ) return; !downTab ? downTab = tab : gBrowser.removeTab(tab); }) // переместить или открыть вкладку загрузок рядом с текущей вкладкой .... var selTab = gBrowser.selectedTab; if ( downTab !== selTab ) { if ( downTab && gBrowser.visibleTabs.indexOf( downTab ) == -1 ) TabView.moveTabTo( downTab, TabView._window.GroupItems._activeGroupItem.id ); downTab = downTab || gBrowser.addTab( downTabUrl ); var pos = selTab._tPos + ( downTab._tPos > selTab._tPos ); gBrowser.moveTabTo( downTab, pos ); gBrowser.selectedTab = downTab; } }; // Автоматически меняем иконку для таба "Загрузки" ......................................................... addEventListener("TabAttrModified", function(e) { if ( e.target.linkedBrowser.currentURI.spec == downTabUrl ) { var tabIndex = gBrowser.getBrowserIndexForDocument( e.target.linkedBrowser.contentDocument ); var tab = gBrowser.mTabContainer.childNodes[tabIndex]; LOG(tab.label) tab.image = ( tab.label == "Загрузки" )? falseDownloadsImg: trueDownloadsImg; } }, true, gBrowser.tabContainer); // Отслеживать все команды связные с загрузкой и запускать нужные функции и команды ........ function getCommand(e) { var command = e.target.getAttribute("oncommand"); if ( command == "performCommand('cmd_removeFromList');" || command == 'clearDownloadList();') { if ( content.document.location == downTabUrl) document.getElementById("Browser:Reload").doCommand(); if ( document.getElementById('sidebar-box').getAttribute('sidebarcommand') ) openWebPanel("Downloads", downTabUrl ); } }; addEventListener("command", getCommand, true, window); // Исправляем ошибки ....................................................................................... function setFakeArguments(e) { if ( e.target.location.href == 'chrome://mozapps/content/downloads/downloads.xul' ) { var win = e.target.defaultView; win = win.wrappedJSObject || win; win.arguments = []; } }; addEventListener("TabClose", setFakeArguments, true, gBrowser); addEventListener("DOMContentLoaded", setFakeArguments, true, gBrowser); addEventListener("DOMContentLoaded", setFakeArguments, true, document.getElementById('sidebar-box')); // Закрыть стандартный менеджер загрузок .................................................................... function closeDownloadManager() { var wm = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator); var dm = wm.getMostRecentWindow("Download:Manager"); if ( dm ) dm.close(); }; // Подсказка для кнопки ..................................................................................... this.tooltipText = "L: Download Manager in the Sidebar\nM: Download Manager \nR: Download Manager in the Tab\nCtrl+R: CB menu "; |
bunda1 > 18-04-2011 21:38:14 |
Сохранить всю страницу как PNG / PDF ( Firefox 24 + ) от 06.02.2017. ЛКМ => Сохранить всю страницу как PNG, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u043A%u0430%u043A%20%20PNG%20/%20PDF%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................%20%0Athis.onclick%20%3De%3D%3E%20%7B%20%20%20%20%20%0A%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20savePageInPNG%28%29%3B%0A%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%0A%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20savePageToPDF%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u044F%u0435%u0442%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u043A%u0430%u043A%20PDF%20%u0444%u0430%u0439%u043B%20%u0447%u0435%u0440%u0435%u0437%20%u0441%u0435%u0440%u0432%u0438%u0441%20%27pdfmyurl.com%27%20................%0Afunction%20savePageToPDF%28%29%20loadURI%28%22http%3A//pdfmyurl.com%3Furl%3D%22%20+%20content.location%29%3B%0A%0A%20%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u043A%u0430%u043A%20PNG%20................%0Afunction%20savePageInPNG%28%29%20%7B%0A%20%20%20var%20canvas%20%3D%20document.createElementNS%28xhtmlns%2C%20%27canvas%27%29%3B%0A%20%20%20canvas.width%20%3D%20content.innerWidth%20+%20content.scrollMaxX%3B%20%0A%20%20%20canvas.height%20%3D%20content.innerHeight%20+%20content.scrollMaxY%3B%0A%20%20%20var%20context%20%3D%20canvas.getContext%28%222d%22%29%3B%0A%20%20%20%28%28i%20%3D%2017%29%3D%3E%20%7B%0A%20%20%20%20%20%20try%20%7B%20context.drawWindow%28content%2C%200%2C%200%2C%20canvas.width%2C%20canvas.height%2C%20%22white%22%29%20%7D%0A%20%20%20%20%20%20catch%28e%29%20%7B%20canvas.height%20%3D%20canvas.width*i%3B%20arguments.callee%28--i%29%3B%20%7D%3B%0A%20%20%20%7D%29%28%29%3B%0A%20%20%20var%20uri%20%3D%20makeURI%28canvas.toDataURL%28%22image/png%22%29%29%3B%0A%20%20%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22Save%20Screenshot%20As%22%2C%20fp.modeSave%29%3B%0A%20%20%20fp.appendFilter%28%22%22%2C%20%22*.png%22%29%3B%0A%20%20%20var%20title%20%3D%20gBrowser.mCurrentTab.label.replace%28/%5B%3A+.%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%22%20%22%29.replace%28/%5Cs%5Cs+/g%2C%20%22%20%22%29%3B%0A%20%20%20fp.defaultString%20%3D%20title%20+%20new%20Date%28%29.toLocaleFormat%28%22%20%20%25d.%25m.%25Y.%20%28%20%25I%3A%25M%3A%25S%20%29%22%29%20+%20%22.png%22%3B%0A%20%20%20if%20%28fp.show%28%29%20%3D%3D%20fp.returnCancel%20%7C%7C%20%21fp.file%29%20return%3B%0A%0A%20%20%20var%20wbp%20%3D%20window.makeWebBrowserPersist%28%29%3B%0A%20%20%20parseInt%28Services.appinfo.version%29%20%3C%2036%0A%20%20%20%3F%20wbp.saveURI%28uri%2C%20null%2C%20null%2C%20null%2C%20null%2C%20fp.file%2C%20null%29%0A%20%20%20%3A%20wbp.saveURI%28uri%2C%20null%2C%20null%2C%20null%2C%20null%2C%20null%2C%20fp.file%2C%20null%29%3B%20//%20%u0435%u0441%u043B%u0438%20FF36+%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u043A%u0430%u043A%20PNG%20%5Cn%u0421%3A%20%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u043A%u0430%u043A%20PDF%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ................ this.onclick =e=> { if ( e.button == 0 ) savePageInPNG(); if ( e.button == 1 ) gShowPopup(this); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); savePageToPDF(); } }; // Сохраняет страницу как PDF файл через сервис 'pdfmyurl.com' ................ function savePageToPDF() loadURI("http://pdfmyurl.com?url=" + content.location); // Сохранить всю страницу как PNG ................ function savePageInPNG() { var canvas = document.createElementNS(xhtmlns, 'canvas'); canvas.width = content.innerWidth + content.scrollMaxX; canvas.height = content.innerHeight + content.scrollMaxY; var context = canvas.getContext("2d"); ((i = 17)=> { try { context.drawWindow(content, 0, 0, canvas.width, canvas.height, "white") } catch(e) { canvas.height = canvas.width*i; arguments.callee(--i); }; })(); var uri = makeURI(canvas.toDataURL("image/png")); var fp = window.makeFilePicker(); fp.init(window, "Save Screenshot As", fp.modeSave); fp.appendFilter("", "*.png"); var title = gBrowser.mCurrentTab.label.replace(/[:+.\\\/<>?*|"]+/g, " ").replace(/\s\s+/g, " "); fp.defaultString = title + new Date().toLocaleFormat(" %d.%m.%Y. ( %I:%M:%S )") + ".png"; if (fp.show() == fp.returnCancel || !fp.file) return; var wbp = window.makeWebBrowserPersist(); parseInt(Services.appinfo.version) < 36 ? wbp.saveURI(uri, null, null, null, null, fp.file, null) : wbp.saveURI(uri, null, null, null, null, null, fp.file, null); // если FF36+ }; // Подсказка для кнопки ................ this.tooltipText = "Л: Сохранить всю страницу как PNG \nС: CB Меню \nП: Сохранить всю страницу как PDF"; |
imyax > 21-04-2011 16:13:06 |
Make bookmarklet button( Firefox 3.6+ ) от 25.08.2016. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EMake%20bookmarklet%20button%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-4%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3Evar%20XML%20%3D%20window.XML%20%7C%7C%20%7B%7D%3B%0A%0Athis.%20showBookmarkletDialog%20%3D%20function%20%28callback%29%0A%7B%0A%20%20%20%20var%20ipi%20%3D%20XML.%20ignoreProcessingInstructions%3B%0A%20%20%20%20XML.%20ignoreProcessingInstructions%20%3D%20false%3B%0A%20%20%20%20var%20dialog%20%3D%20%27%5C%0A%20%20%20%20%20%20%20%20%26lt%3B%3Fxml-stylesheet%20href%3D%22chrome%3A//global/skin/%22%3F%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%26lt%3B%3Fxml-stylesheet%20href%3D%22resource%3A//gre/res/html.css%22%3F%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%26lt%3Bdialog%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20id%3D%22dlg02%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20title%3D%22Custom%20Buttons%20bookmarklet%20maker%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ondialogaccept%3D%22return%20windowController.accept%28%29%3B%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bscript%20type%3D%22application/x-javascript%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B%21%5BCDATA%5B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20windowController%20%3D%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20accept%3A%20function%20%28%29%5Cn%5C%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%7B%5Cn%5C%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%20var%20name%20%3D%20document.%20getElementById%20%28%22nametb%22%29.%20value%3B%5Cn%5C%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%20var%20url%20%3D%20document.%20getElementById%20%28%22urltb%22%29.%20value%3B%5Cn%5C%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%20var%20img%20%3D%20document.%20getElementById%20%28%22imgtb%22%29.%20value%3B%5Cn%5C%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%20window.%20arguments%20%5B0%5D%20%28name%2C%20url%2C%20img%29%3B%5Cn%5C%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%7D%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%5D%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/script%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bvbox%20flex%3D%221%22%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bgrid%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Bcolumns%26gt%3B%5Cn%5C%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%26lt%3Bcolumn/%26gt%3B%5Cn%5C%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%26lt%3Bcolumn%20flex%3D%221%22/%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/columns%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3Brows%26gt%3B%5Cn%5C%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%26lt%3Brow%20align%3D%22center%22%26gt%3B%5Cn%5C%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%26lt%3Blabel%20value%3D%22Bookmarklet%20Name%22/%26gt%3B%5Cn%5C%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%26lt%3Btextbox%20id%3D%22nametb%22%20flex%3D%221%22/%26gt%3B%5Cn%5C%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%26lt%3B/row%26gt%3B%5Cn%5C%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%26lt%3Brow%20align%3D%22center%22%26gt%3B%5Cn%5C%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%26lt%3Blabel%20value%3D%22Bookmarklet%20URL%22/%26gt%3B%5Cn%5C%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%26lt%3Btextbox%20id%3D%22urltb%22%20flex%3D%221%22/%26gt%3B%5Cn%5C%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%26lt%3B/row%26gt%3B%5Cn%5C%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%26lt%3Brow%20align%3D%22center%22%26gt%3B%5Cn%5C%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%26lt%3Blabel%20value%3D%22Icon%20URL%22/%26gt%3B%5Cn%5C%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%26lt%3Btextbox%20id%3D%22imgtb%22%20flex%3D%221%22/%26gt%3B%5Cn%5C%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%26lt%3B/row%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/rows%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/grid%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%26lt%3B/vbox%26gt%3B%5Cn%5C%0A%20%20%20%20%20%20%20%20%26lt%3B/dialog%26gt%3B%5Cn%5C%0A%20%20%20%20%27%3B%0A%20%20%20%20window.%20openDialog%20%28%22data%3Aapplication/vnd.mozilla.xul+xml%2C%22%20+%20dialog%2C%20%22%22%2C%20%22chrome%2Cdependent%2Cminimizable%2Cresizable%3Dyes%2Ccenterscreen%2Cdialog%3Dyes%22%2C%20callback%29%3B%0A%20%20%20%20XML.%20ignoreProcessingInstructions%20%3D%20ipi%3B%0A%7D%3B%0A%0Avar%20THIS%20%3D%20this%3B%0A%0Athis.%20makeBookmarklet%20%3D%20function%20%28bookmarkletName%2C%20bookmarkletCode%2C%20bookmarkletIcon%29%0A%7B%0A%20%20%20%20var%20bookmarklet%20%3D%20btoa%20%28bookmarkletCode%29%3B%0A%20%20%20%20custombuttons.%20cloneButton%20%28THIS%29%3B%0A%20%20%20%20var%20newButtonLink%20%3D%20custombuttons.%20makeButtonLink%20%28%22update%22%2C%20THIS.%20nextSibling.%20id%29%3B%0A%20%20%20%20var%20params%20%3D%20custombuttons.%20cbService.%20getButtonParameters%20%28newButtonLink%29.%20wrappedJSObject%3B%0A%20%20%20%20params.%20name%20%3D%20bookmarkletName%3B%0A%20%20%20%20params.%20code%20%3D%20%22getBrowser%20%28%29.%20loadURI%20%28atob%20%28%5C%22%22%20+%20bookmarklet%20+%20%22%5C%22%29%29%3B%22%3B%0A%20%20%20%20params.%20image%20%3D%20bookmarkletIcon%3B%0A%20%20%20%20params.%20wrappedJSObject%20%3D%20params%3B%0A%20%20%20%20custombuttons.%20cbService.%20installButton%20%28params%29%3B%0A%7D%3B%0A%0Athis.%20showBookmarkletDialog%20%28this.%20makeBookmarklet%29%3B%0A%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var XML = window.XML || {}; this. showBookmarkletDialog = function (callback) { var ipi = XML. ignoreProcessingInstructions; XML. ignoreProcessingInstructions = false; var dialog = '\ <?xml-stylesheet href="chrome://global/skin/"?>\n\ <?xml-stylesheet href="resource://gre/res/html.css"?>\n\ <dialog xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\ id="dlg02"\n\ title="Custom Buttons bookmarklet maker"\n\ ondialogaccept="return windowController.accept();">\n\ <script type="application/x-javascript">\n\ <![CDATA[\n\ var windowController =\n\ {\n\ accept: function ()\n\ {\n\ var name = document. getElementById ("nametb"). value;\n\ var url = document. getElementById ("urltb"). value;\n\ var img = document. getElementById ("imgtb"). value;\n\ window. arguments [0] (name, url, img);\n\ }\n\ };\n\ ]]>\n\ </script>\n\ <vbox flex="1">\n\ <grid>\n\ <columns>\n\ <column/>\n\ <column flex="1"/>\n\ </columns>\n\ <rows>\n\ <row align="center">\n\ <label value="Bookmarklet Name"/>\n\ <textbox id="nametb" flex="1"/>\n\ </row>\n\ <row align="center">\n\ <label value="Bookmarklet URL"/>\n\ <textbox id="urltb" flex="1"/>\n\ </row>\n\ <row align="center">\n\ <label value="Icon URL"/>\n\ <textbox id="imgtb" flex="1"/>\n\ </row>\n\ </rows>\n\ </grid>\n\ </vbox>\n\ </dialog>\n\ '; window. openDialog ("data:application/vnd.mozilla.xul+xml," + dialog, "", "chrome,dependent,minimizable,resizable=yes,centerscreen,dialog=yes", callback); XML. ignoreProcessingInstructions = ipi; }; var THIS = this; this. makeBookmarklet = function (bookmarkletName, bookmarkletCode, bookmarkletIcon) { var bookmarklet = btoa (bookmarkletCode); custombuttons. cloneButton (THIS); var newButtonLink = custombuttons. makeButtonLink ("update", THIS. nextSibling. id); var params = custombuttons. cbService. getButtonParameters (newButtonLink). wrappedJSObject; params. name = bookmarkletName; params. code = "getBrowser (). loadURI (atob (\"" + bookmarklet + "\"));"; params. image = bookmarkletIcon; params. wrappedJSObject = params; custombuttons. cbService. installButton (params); }; this. showBookmarkletDialog (this. makeBookmarklet); Custom Buttons² Context Menu Demo( Firefox 3.6+ ) Кнопка - образец , показывающий , что кроме модефикаторов клавиш мыши и хоткеев можно использовать контекстное меню . Автор: nicholas Код кнопки и инициализации: Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ECustom%20Buttons%B2%20Context%20Menu%20Demo%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnR0RjM1NPPtr+/LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALq1sjvLysTAxsbAGQAAAAAAAAAAAAAAAAAAAACnsK8UpK2sy6Cqqr6msLEaAAAAAAAAAAAAAAAAwbS3DtDGxs6jmZnajYeEvI+LhxcAAAAAAAAAAAAAAAAAAAAAqLGxBa+5ucymsbPwtsDCxcvQ1aDV1twUuauxFK+fpayklZn3jH+A/YuBf9OOh4QaAAAAAAAAAAAAAAAAAAAAAAAAAADX4OK7u8bI+rC5vPvJzdLx3NnesdbM0rO/r7XXlIGH/Yh3evuvo6Ljt6yqGAAAAAAAAAAAAAAAAAAAAAAAAAAA6/DysLTAxP+4wMX7y87T8e3r8Ozt5urt1MbM9rWhqPeeiI7p1MHDh9bGxwcAAAAAAAAAAAAAAAAAAAAAz9reBdvk6L2qtrz/tr3E/NHU2fno5+v37OXp99zO1Pi/q7L2pIuT6su2vGHIsLYCAAAAAAAAAAAAAAAAjJmfAaGvtCGptbuzmaWt+7S7w/vX2t/86Ofr++7o7Pzg0tj8vqiw+5B0ff6pj5Xamn+FKpBzegIAAAAAkpufAoqVmyWJlpyokp+m146aof+3vsX71Njd/eno7P3v5+z93s/W/begqP17XGb9clVd9H1iaL19ZmsyemhsApCZnSSIkpbHg4+VyYuXnumLmJ//qa63/tTX3f7z8vb+9O3x/eTV3P22nab9dlZg/l1BSPtgSE3ocl9ivoJwcyaWn6O9fIWKz4aRlqaTnqTEmaat/7K4wf/W2eD+8e/0/fDp7vrj09r4uqGr8oFkbfxpT1XmUTtAw2VSVsCSgYTDAAAAAAAAAAAAAAAAq7S6U7/IztG2vcT+2Nrg8+rn7fzp3+b43s3V6ragqdWxmKCqkXh/LQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NvigdHS2fDl3uf+3tDa/s+8xuzRu8RsAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjc4wvX193A5uLo/d/U2v7Wyc/Z1sbMEAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5OPp2eDc4fLVy9H75dnfmwAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODd4hTa1tnIzsfK59rQ1Q4AAAAAAAAA/wAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4+Di7NnU1gwAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAx+OcQcODnEHAA5xB4AOcQeADnEHAA5xBgAGcQQAAnEEAAJxBAACcQeAHnEH4AZxB+BecQfw7nEH8LZxB/nOcQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20Cb%20%3D%20custombuttons%3B%0A%0A//%20Two%20functions%20for%20testing%2C%20this.one%28%29%20and%20this.two%28%29%0Athis.one%20%3D%20function%28%29%20%7B%0A%20%20var%20Msg%20%3D%20createMsg%28this.label%29%3B%0A%20%20Msg.aMsg%28%22Function%201%22%29%3B%0A%7D%0A%0Athis.two%20%3D%20function%28%29%20%7B%0A%20%20custombuttons.alertSlide%28%22Function%202%22%2C%20%22It%20throws%20up%20a%20different%20alert%22%29%3B%0A%7D%0A%0A//%20Our%20menu%20items%0Athis.ss%20%3D%20%5B%0A%20%20%7B%20label%3A%20%27MenuItem%201%27%2C%20cmd%3A%20%27document.popupNode.one%28%29%27%2C%20sItemId%3A%20%27%27%20%7D%2C%0A%20%20%7B%20label%3A%20%27MenuItem%202%27%20%20%2C%20cmd%3A%20%27document.popupNode.two%28%29%27%2C%20sItemId%3A%20%27%27%20%7D%5D%3B%0A%0A//%20Our%20Initialization%20function%20for%20creating%20the%20context%20menu%2C%20setting%20up%20menuitems%20and%20telling%0A//%20custombuttons2%20extension%20to%20put%20cb%20context%20in%20a%20submenu%0Athis.mObj%20%3D%20Cb.getCbContextObj%28this%29%3B%0Athis.init%20%3D%20function%28x%29%20%7B%0A%20%20x.mObj.setSub%28%29%3B%0A%20%20var%20nItem%20%3D%20%7B%7D%2C%20mItem%20%3D%20%7B%7D%3B%0A%20%20document.getElementById%28CB2const.sCBCtxtMenu%29.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%20%20for%28var%20i%20in%20x.ss%29%20%7B%0A%20%20%20%20nItem%20%3D%20new%20x.mObj.getItem%28%29%3B%0A%20%20%20%20nItem.id%20%3D%20%27Note%27%3B%0A%20%20%20%20nItem.label%20%3D%20x.ss%5Bi%5D.label%3B%0A%20%20%20%20nItem.value%20%3D%20String%28i%29%3B%0A%20%20%20%20mItem%20%3D%20x.mObj.insertBefore%28nItem%20%2C%20x.mObj.oMenu.lastChild%29%3B%0A%20%20%20%20this.ss%5Bi%5D.sItemId%20%3D%20mItem.id%3B%0A%20%20%20%20mItem.setAttribute%28%27oncommand%27%2Cx.ss%5Bi%5D.cmd%29%0A%20%20%7D%0A%20%20x.mObj.getItem%28%29%3B%0A%20%20nItem%20%3D%20x.mObj.getItem%28%29%3B%0A%20%20nItem.id%20%3D%20%27Note%27%3B%0A%20%20this.separator%20%3D%20x.mObj.insertBefore%28%20nItem%20%2C%20x.mObj.oMenu.lastChild%29%3B%0A%7D%0Athis.init%28this%29%3B%0A%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27custombuttons.gQuot.mHandler%28event%2C%20this%29%27%29%3B%0Athis.setAttribute%28%27ondblclick%27%2C%20%27custombuttons.gQuot.gShowPopup%28this%29%3B%27%29%3B%0A%0A/*this.style.opacity%20%3D%20%27.65%27%3B%0Athis.setAttribute%28%22onmouseover%22%2C%20%22if%20%28custombuttons%29%20custombuttons.ButtonBrt%28event%29%3B%22%20%29%3B%0Athis.setAttribute%28%22onmouseout%22%2C%20%22if%20%28custombuttons%29%20custombuttons.ButtonDim%28event%29%3B%22%20%29%3B*/%0A%0Athis.setAttribute%28%27author%27%2C%27nicholas%27%29%3B%0Athis.setAttribute%28%27version%27%2C%2720081119.00%27%29%3B%0Athis.setAttribute%28%27homepage%27%2C%20%27http%3A//custombuttons2.com/forum/buttons/buttons-database/custom-buttons2-context-menu-demo.html%27%29%3B%0Athis.setAttribute%28%27dependency%27%2C%27FF3.0*%2C%20FL2.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%3B%0A%0Athis.setAttribute%28%27homepage%27%2C%20%27http%3A//custombuttons2.com/forum/buttons/buttons-database/custom-buttons2-context-menu-demo.html%27%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BNo%20help%20developed%20for%20%0A%3Clabel%3E%20button%0Acustombuttons-button%3Cid%3E.%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var Cb = custombuttons; // Two functions for testing, this.one() and this.two() this.one = function() { var Msg = createMsg(this.label); Msg.aMsg("Function 1"); } this.two = function() { custombuttons.alertSlide("Function 2", "It throws up a different alert"); } // Our menu items this.ss = [ { label: 'MenuItem 1', cmd: 'document.popupNode.one()', sItemId: '' }, { label: 'MenuItem 2' , cmd: 'document.popupNode.two()', sItemId: '' }]; // Our Initialization function for creating the context menu, setting up menuitems and telling // custombuttons2 extension to put cb context in a submenu this.mObj = Cb.getCbContextObj(this); this.init = function(x) { x.mObj.setSub(); var nItem = {}, mItem = {}; document.getElementById(CB2const.sCBCtxtMenu).setAttribute("oncommand", "event.stopPropagation()"); for(var i in x.ss) { nItem = new x.mObj.getItem(); nItem.id = 'Note'; nItem.label = x.ss[i].label; nItem.value = String(i); mItem = x.mObj.insertBefore(nItem , x.mObj.oMenu.lastChild); this.ss[i].sItemId = mItem.id; mItem.setAttribute('oncommand',x.ss[i].cmd) } x.mObj.getItem(); nItem = x.mObj.getItem(); nItem.id = 'Note'; this.separator = x.mObj.insertBefore( nItem , x.mObj.oMenu.lastChild); } this.init(this); this.setAttribute('onclick', 'custombuttons.gQuot.mHandler(event, this)'); this.setAttribute('ondblclick', 'custombuttons.gQuot.gShowPopup(this);'); /*this.style.opacity = '.65'; this.setAttribute("onmouseover", "if (custombuttons) custombuttons.ButtonBrt(event);" ); this.setAttribute("onmouseout", "if (custombuttons) custombuttons.ButtonDim(event);" );*/ this.setAttribute('author','nicholas'); this.setAttribute('version','20081119.00'); this.setAttribute('homepage', 'http://custombuttons2.com/forum/buttons/buttons-database/custom-buttons2-context-menu-demo.html'); this.setAttribute('dependency','FF3.0*, FL2.0*, TB2.0*, CB2 2.0.5*'); this.setAttribute('status','Complete'); this.setAttribute('public',true); this.setAttribute('homepage', 'http://custombuttons2.com/forum/buttons/buttons-database/custom-buttons2-context-menu-demo.html'); |
bunda1 > 21-04-2011 23:18:37 |
Savefrom( Firefox24+ ) от 07.02.2016. Код кнопки и код для инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ESavefrom%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBEAAAEAIACsBAAAFgAAACgAAAAQAAAAIgAAAAEAIAAAAAAAhAQAAAAAAAAAAAAAAAAAAAAAAAAFQKUABUClAAVApQAFQKUABUGmBQZBpwAHPqEUAkSrtAFErL0FPaIZBkGnAAVBpgUFQKUABUClAAVApQAFQKUABUClAAVApQAFQKUABUClBQdFqAEFOp8QAj6nnS2U6P8ymuz/BUKqqAQ5nhQIRagABT+mBQVApQAFQKUABUClAAVApQAFQKUABT+lBAdEqAAGPKAQAD+poTaW5f+H3P/4juD/+ESi6P8EQ6urBDqgEwdEqAAFP6UFBUClAAVApQAFQKUABUClAwdDpwAGPKAOAD6poDyZ5v+J3v/6fMj6/XXC+f6K3f/5Tqjq/wVEq6sEOp8TB0SnAAU/pQMFQKUABUClAwZDpwAHPaEPAD2oojmZ5f+J3P/4crz4/Vyo9/9cqPb/YKr1/XfI//hEoOn/BESrqwQ7oBQHRKcABUClAgVCpwAGPKAMADyooDOV5P+H2//4a7j3/VSk9v9bqvf/W6v3/1Wo9v9XpfP+X7b++SmM5v8AQampBjqgEAVCpwAGPKEGAEKrmS2S5v+B1f/5ZrT2/k6j9f9Xq/b/Vqv2/1Wr9v9Vq/b/Uan2/1On8/9Vsvz7H4ro/wFGrKEFPKEJBUGntgVt1P8ol/D/TaTy/0+n9v9Rqvb/Uav1/1Cs9f9QrfX/T6z1/0+s9f9Orfb/RKXw/yKW7v8HctX/BkOnwAVDqHsGQ6d2ADihlxhx0vRNsf3+UKv0/Uqr9P9MrvX/S671/0qt9P9MrPT9S7f7/hp+1PgAO6GeBkOndwVDqH4FQaUCBT+kAAE5oDkZc87iSbP8/0qr9PpGrfT/SLD1/0iw9f9FrvP/R67z+ke4+/0afNHuATqgQQU/owAFQqUDBUGlBgY/pAAAOKA8J37R51O9/f5BqvL6Qq7z/0Ox9P9DsfT/QbDz/0Kv8/xEu/v9HIDS8QE8oUQFP6QABUKlBwVBpQMFQKQAADefOzWG0eZny//+PKrx+jyu8v9BtPP/P7Pz/z2z8v8+sfH7Qr37/R2C0vABOqFDBT+kAAVCpQMGQaUDBz+kAAA2nzs2htHmg9r//ky28/ovq/D/PrX0/z638/86tvL/O7Px+z+/+/0dg9LwATuhQwU+pAAFQqUDBkGlAwc/pAAAN6A7M4bS5one//54zfr6Sbn1/zKz8v8xt/L/Mbfx/zC08fsyv/r9GoPR8AI6okMEPqQABUKlAwZBpQMHP6QAADegOziG0uaM3v/+h9L8+oTR/P9xyvr/WcP3/07A9f9KvPT7Vsz9/SuK0/ABOqFDBT+kAAVCpQMFQaUDBj+kAAA3oT0fgNHnXtP//mjO/fto0f7/cNf//3TY//9u1v7/bdX8/Gni//0nkdXzADihRQY/pAAFQqUDBUClAgU/pAAFPqQzBVO12ARqxfkHa8LsCnDD8gx1w/MMd8TzC3jE9Ap3xPAHesf8Bl635gU9pDwFQKQABUClAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis._handleClick%20%3D%28%29%3D%3E%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%27http%3A//savefrom.net/%3Furl%3D%27%20+%20escape%28content.location.href%29%29%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0430%u0435%u043C%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0421%u043F%u0440%u0430%u0432%u043A%u0430%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u0441%20%u0434%u043E%u043C%u0435%u043D%u0430%u043C%u0438%20%u0437%u0430%u043A%u0430%u0447%u043A%u0443%20%u0438%u0437%20%u043A%u043E%u0442%u043E%u0440%u044B%u0435%20%u043F%u043E%u0434%u0435%u0440%u0436%u0438%u0432%u0430%u0435%u0442%20savefrom%20..............%0Avar%20hosts%20%3D%20self.Help.split%28%27%5Cn%27%29.filter%28%28host%29%3D%3E%20/%5CS/.test%28host%29%29.map%28%28host%29%3D%3E%20host.trim%28%29%29%3B%0A%0A%0A//%20%u0415%u0441%u043B%u0438%20%u0434%u043E%u043C%u0435%u043D%20%u0441%u0430%u0439%u0442%u0430%20%u0441%u043E%u0432%u043F%u0430%u0434%u0430%u0435%u0442%20%u0441%20%u043C%u0430%u0441%u0441%u0438%u0432%u043E%u043C%20%u043C%u0435%u043D%u044F%u0435%u043C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0438%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0443%20..............%0Avar%20%5Bimg%5D%20%3D%20document.getAnonymousNodes%28self%29%3B%0AaddEventListener%28%22TabAttrModified%22%2C%20%28e%2C%20tab%20%3D%20e.target%29%3D%3E%20%7B%0A%20%20%20if%20%28%20%21tab.selected%20%29%20return%3B%20%20%20%0A%20%20%20%0A%20%20%20if%20%28%20%7Ehosts.indexOf%28content.document.domain.replace%28%22www.%22%2C%20%22%22%29%29%20%29%20%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20%22%u0415%u0441%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0434%u043B%u044F%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%22%2C%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20img.src%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBEAAAEAIACsBAAAFgAAACgAAAAQAAAAIgAAAAEAIAAAAAAAhAQAAAAAAAAAAAAAAAAAAAAAAAAFpUAABaVAAAWlQAAFpUAABaZBBQanQQAHoT4UAqtEtAGsRL0Foj0ZBqdBAAWmQQUFpUAABaVAAAWlQAAFpUAABaVAAAWlQAAFpUAABaVABQeoRQEFnzoQAqc+nS3olP8y7Jr/BapCqASeORQIqEUABaY/BQWlQAAFpUAABaVAAAWlQAAFpUAABaU/BAeoRAAGoDwQAKk/oTbllv+H/9z4jv/g+EToov8Eq0OrBKA6EweoRAAFpT8FBaVAAAWlQAAFpUAABaVAAwenQwAGoDwOAKk+oDzmmf+J/976fPrI/XX5wv6K/935Tuqo/wWrRKsEnzoTB6dEAAWlPwMFpUAABaVAAwanQwAHoT0PAKg9ojnlmf+J/9z4cvi8/Vz3qP9c9qj/YPWq/Xf/yPhE6aD/BKtEqwSgOxQHp0QABaVAAgWnQgAGoDwMAKg8oDPklf+H/9v4a/e4/VT2pP9b96r/W/er/1X2qP9X86X+X/62+SnmjP8AqUGpBqA6EAWnQgAGoTwGAKtCmS3mkv+B/9X5Zva0/k71o/9X9qv/Vvar/1X2q/9V9qv/Ufap/1Pzp/9V/LL7H+iK/wGsRqEFoTwJBadBtgXUbf8o8Jf/TfKk/0/2p/9R9qr/UfWr/1D1rP9Q9a3/T/Ws/0/1rP9O9q3/RPCl/yLulv8H1XL/BqdDwAWoQ3sGp0N2AKE4lxjScfRN/bH+UPSr/Ur0q/9M9a7/S/Wu/0r0rf9M9Kz9S/u3/hrUfvgAoTueBqdDdwWoQ34FpUECBaQ/AAGgOTkZznPiSfyz/0r0q/pG9K3/SPWw/0j1sP9F867/R/Ou+kf7uP0a0XzuAaA6QQWjPwAFpUIDBaVBBgakPwAAoDg8J9F+51P9vf5B8qr6QvOu/0P0sf9D9LH/QfOw/0Lzr/xE+7v9HNKA8QGhPEQFpD8ABaVCBwWlQQMFpEAAAJ83OzXRhuZn/8v+PPGq+jzyrv9B87T/P/Oz/z3ys/8+8bH7Qvu9/R3SgvABoTpDBaQ/AAWlQgMGpUEDB6Q/AACfNjs20Ybmg//a/kzztvov8Kv/PvS1/z7zt/868rb/O/Gz+z/7v/0d0oPwAaE7QwWkPgAFpUIDBqVBAwekPwAAoDc7M9KG5on/3v54+s36SfW5/zLys/8x8rf/MfG3/zDxtPsy+r/9GtGD8AKiOkMEpD4ABaVCAwalQQMHpD8AAKA3OzjShuaM/97+h/zS+oT80f9x+sr/WffD/071wP9K9Lz7Vv3M/SvTivABoTpDBaQ/AAWlQgMFpUEDBqQ/AAChNz0f0YDnXv/T/mj9zvto/tH/cP/X/3T/2P9u/tb/bfzV/Gn/4v0n1ZHzAKE4RQakPwAFpUIDBaVAAgWkPwAFpD4zBbVT2ATFavkHwmvsCsNw8gzDdfMMxHfzC8R49ArEd/AHx3r8Brde5gWkPTwFpEAABaVAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%22%3B%0A%20%20%20else%20%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20%22%u041D%u0435%u0442%20%u0432%u0438%u0434%u0435%u043E%20%u0434%u043B%u044F%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%22%2C%0A%20%20%20%20%20%20%20%20img.src%20%3D%20self.image%3B%0A%20%20%20%20%20%20%20%20%0A%7D%2C%20true%2C%20gBrowser.tabContainer%20%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bfilefactory.com%0Asendspace.com%0Ayoutube.com%0Ametacafe.com%0Abreak.com%0Adailymotion.com%0Avimeo.com%0Asevenload.com%0Amail.ru%0Asmotri.com%0Ayandex.ru%0Arambler.ru%0Atvigle.ru%0Aintv.ru%0Afacebook.com%0Alivejournal.com%0Avk.com%0Aodnoklassniki.ru%0Asoundcloud.com%0Aliveinternet.ru%0Aguitar-tube.com%0Agametrailers.com%0Atwitch.tv%0Azaycev.net%0A1tv.ru%0Arutv.ru%0Antv.ru%0Avesti.ru%0Amreporter.ru%0Akarusel-tv.ru%0Aautoplustv.ru%0Arussia.ru%0Aamik.ru%0Alife.ru%0Aa1tv.ru%0Akiwi.kz%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки .............. this._handleClick =()=> gBrowser.selectedTab = gBrowser.addTab('http://savefrom.net/?url=' + escape(content.location.href)); // Получаем из вкладки Справка массив с доменами закачку из которые подерживает savefrom .............. var hosts = self.Help.split('\n').filter((host)=> /\S/.test(host)).map((host)=> host.trim()); // Если домен сайта совпадает с массивом меняем иконку и подсказку .............. var [img] = document.getAnonymousNodes(self); addEventListener("TabAttrModified", (e, tab = e.target)=> { if ( !tab.selected ) return; if ( ~hosts.indexOf(content.document.domain.replace("www.", "")) ) self.tooltipText = "Есть видео для загрузки", img.src = "data:image/x-icon;base64,AAABAAEAEBEAAAEAIACsBAAAFgAAACgAAAAQAAAAIgAAAAEAIAAAAAAAhAQAAAAAAAAAAAAAAAAAAAAAAAAFpUAABaVAAAWlQAAFpUAABaZBBQanQQAHoT4UAqtEtAGsRL0Foj0ZBqdBAAWmQQUFpUAABaVAAAWlQAAFpUAABaVAAAWlQAAFpUAABaVABQeoRQEFnzoQAqc+nS3olP8y7Jr/BapCqASeORQIqEUABaY/BQWlQAAFpUAABaVAAAWlQAAFpUAABaU/BAeoRAAGoDwQAKk/oTbllv+H/9z4jv/g+EToov8Eq0OrBKA6EweoRAAFpT8FBaVAAAWlQAAFpUAABaVAAwenQwAGoDwOAKk+oDzmmf+J/976fPrI/XX5wv6K/935Tuqo/wWrRKsEnzoTB6dEAAWlPwMFpUAABaVAAwanQwAHoT0PAKg9ojnlmf+J/9z4cvi8/Vz3qP9c9qj/YPWq/Xf/yPhE6aD/BKtEqwSgOxQHp0QABaVAAgWnQgAGoDwMAKg8oDPklf+H/9v4a/e4/VT2pP9b96r/W/er/1X2qP9X86X+X/62+SnmjP8AqUGpBqA6EAWnQgAGoTwGAKtCmS3mkv+B/9X5Zva0/k71o/9X9qv/Vvar/1X2q/9V9qv/Ufap/1Pzp/9V/LL7H+iK/wGsRqEFoTwJBadBtgXUbf8o8Jf/TfKk/0/2p/9R9qr/UfWr/1D1rP9Q9a3/T/Ws/0/1rP9O9q3/RPCl/yLulv8H1XL/BqdDwAWoQ3sGp0N2AKE4lxjScfRN/bH+UPSr/Ur0q/9M9a7/S/Wu/0r0rf9M9Kz9S/u3/hrUfvgAoTueBqdDdwWoQ34FpUECBaQ/AAGgOTkZznPiSfyz/0r0q/pG9K3/SPWw/0j1sP9F867/R/Ou+kf7uP0a0XzuAaA6QQWjPwAFpUIDBaVBBgakPwAAoDg8J9F+51P9vf5B8qr6QvOu/0P0sf9D9LH/QfOw/0Lzr/xE+7v9HNKA8QGhPEQFpD8ABaVCBwWlQQMFpEAAAJ83OzXRhuZn/8v+PPGq+jzyrv9B87T/P/Oz/z3ys/8+8bH7Qvu9/R3SgvABoTpDBaQ/AAWlQgMGpUEDB6Q/AACfNjs20Ybmg//a/kzztvov8Kv/PvS1/z7zt/868rb/O/Gz+z/7v/0d0oPwAaE7QwWkPgAFpUIDBqVBAwekPwAAoDc7M9KG5on/3v54+s36SfW5/zLys/8x8rf/MfG3/zDxtPsy+r/9GtGD8AKiOkMEpD4ABaVCAwalQQMHpD8AAKA3OzjShuaM/97+h/zS+oT80f9x+sr/WffD/071wP9K9Lz7Vv3M/SvTivABoTpDBaQ/AAWlQgMFpUEDBqQ/AAChNz0f0YDnXv/T/mj9zvto/tH/cP/X/3T/2P9u/tb/bfzV/Gn/4v0n1ZHzAKE4RQakPwAFpUIDBaVAAgWkPwAFpD4zBbVT2ATFavkHwmvsCsNw8gzDdfMMxHfzC8R49ArEd/AHx3r8Brde5gWkPTwFpEAABaVAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; else self.tooltipText = "Нет видео для загрузки", img.src = self.image; }, true, gBrowser.tabContainer ); |
bunda1 > 27-04-2011 20:09:32 |
Anti Boss Key+ ( Firefox 3.6+ ) ЛКМ => свернуть 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%0A%20%20%3Cname%3EAnti%20Boss%20Key+%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAGABgBAAAFgAAACgAAAASAAAAJAAAAAEAGAAAAAAAOAQAAAAAAAAAAAAAAAAAAAAAAACqqqpGRkZNTU1MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExLS0tQUFAoKCgAAOfn566urq+vr6ysrKysrKysrK2tra6urq6urq6urq6urq6urq6urq+vr62traysrLi4uExMTAAA4uLio6Ojra2tubm5tbW1tbW1tra2sbGxrq6ur6+vsLCwsbGxsLCwra2ts7Ozrq6ura2tSEhIAADi4uKqqqqRkZFSUlJjY2NdXV1LS0tNTU1ISEhGRkZDQ0M/Pz9ERERQUFBFRUWSkpK4uLhGRkYAAOHh4bCwsG5ubhYWFkRERAsLCwQEBBMTEwYGBgAAAAAAAAAAAAICAiMjIwUFBWtra76+vkVFRQAA4eHhsLCwb29vNzc3bm5uDg4ODQ0NCAgIAwMDBAQEBQUFBAQECgoKKysrBQUFZ2dnu7u7RUVFAADh4eGxsbFtbW09PT1+fn4EBAQAAAABAQEAAAAAAAAAAAAAAAAAAAAREREAAABdXV26urpFRUUAAOHh4bGxsWxsbD4+PpycnGBgYGRkZG1tbWdnZ2hoaGlpaWhoaGZmZjY2NgAAAFJSUrm5uUZGRgAA4eHhsbGxbW1tNTU1wMDAjY2NiYmJvb293Nzc3d3d1NTUsrKyrKysfX19AAAASkpKubm5RkZGAADh4eGxsbFvb28pKSnBwcFycnJ2dnbIyMjBwcGvr6/S0tLDw8OamppfX18AAABHR0e5ublGRkYAAOHh4bCwsHBwcCcnJ7a2tmtra4iIiLe3t4iIiLu7u6amptra2p+fn1BQUAAAAEhISLm5uUZGRgAA4eHhsbGxbGxsREREubm5aWlpZmZmxsbGqampu7u7vr6+ycnJkpKSSkpKAAAATExMuLi4RkZGAADh4eGxsbFubm4zMzPBwcFsbGxMTEx0dHSoqKi8vLyioqJ0dHRvb29HR0cODg5JSUm5ublGRkYAAOHh4bCwsHJycgAAALGxsXp6el5eXlxcXGxsbHx8fGlpaXh4eGBgYFBQUAYGBj8/P7q6ukVFRQAA4uLiq6urjIyMQ0NDoKCgd3d3k5OTjY2Nj4+PjY2Nl5eXpKSkdnZ2YGBgVFRUcXFxtLS0R0dHAADj4+OlpaWrq6uysrKsrKx+fn6FhYV7e3t3d3d6enp0dHRxcXFzc3OMjIy0tLStra2vr69KSkoAAOLi4qKioqWlpaOjo6WlpampqaWlpaampqioqKqqqqmpqaioqKioqKioqKOjo6Ojo62trT8/PwAA9fX14uLi4+Pj4+Pj4+Pj4uLi4+Pj4uLi4uLi4uLi4uLi4uLi4uLi4uLi4+Pj4uLi6enppqamAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E2%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0441%u0432%u0435%u0440%u043D%u0443%u0442%u044C%20....%0AsetTimeout%28function%28%29%20%7B%20window.minimize%28%29%3B%20%7D%2C%200%29%3B%0A%0A//%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20...%0Avar%20CurTab%20%3D%20document.getElementById%28%27content%27%29.selectedTab%3B%0ACurTab.removeAttribute%28%27image%27%29%3B%0ACurTab.setAttribute%28%22label%22%2C%22about%3Ablank%22%29%3B%0A%0A//%20%u0441%u043F%u0440%u044F%u0442%u0430%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20....%0Avar%20style%20%3D%20content.document.createElement%28%22style%22%29%3B%0A%20%20%20%20style.setAttribute%28%22type%22%2C%20%22text/css%22%29%3B%0A%20%20%20%20style.setAttribute%28%22id%22%2C%20%22hideImg%22%29%3B%0A%20%20%20%20style.innerHTML%20%3D%20%22img%2C%20embed%2C%20object%20%7B%20visibility%3A%20hidden%20%21important%3B%20%7D%20%22%20+%0A%20%20%20%20%20%20%22html%20*%20%7B%20background-image%3A%20none%20%21important%3B%20%7D%22%3B%0A%20%20%20%20var%20head%20%3D%20content.document.getElementsByTagName%28%22head%22%29%5B0%5D%3B%0A%20%20%20%20head.appendChild%28style%29%3B%0A%20%20%20%20%0A//%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u0441%u044F%20%u043D%u0430%20%u043F%u0435%u0440%u0432%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20....%20%20%0AgBrowser.selectedTab%20%3D%20gBrowser.tabContainer.childNodes%5B0%5D%3B%20%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5BCtrl+%20%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:// свернуть .... setTimeout(function() { window.minimize(); }, 0); // переключить иконку и название текущей вкладки ... var CurTab = document.getElementById('content').selectedTab; CurTab.removeAttribute('image'); CurTab.setAttribute("label","about:blank"); // спрятать изображение на странице .... var style = content.document.createElement("style"); style.setAttribute("type", "text/css"); style.setAttribute("id", "hideImg"); style.innerHTML = "img, embed, object { visibility: hidden !important; } " + "html * { background-image: none !important; }"; var head = content.document.getElementsByTagName("head")[0]; head.appendChild(style); // переключится на первую вкладку .... gBrowser.selectedTab = gBrowser.tabContainer.childNodes[0]; |
bunda1 > 08-05-2011 18:52:05 |
Save( Firefox 24 + ) от 07.03.2017. Скриншот меню кнопки: ЛКМ => Открыть меню кнопки. Код инициализации: Выделить код Код:// Save, от 07.03.2017. ............. self.label = "Save"; self._handleClick =()=> menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); self.image = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAADAgBEDRIXnwxQjKQNWp6pDFWXqAxXm6gMV5moDFeaqAxXmqgMV5qoDFebqAxVlqgNW5+pCkyIogwSFqgDAgBHDQoFhyszOv8hheP+IJH7/x+L8v8fjfb/H433/x+N9v8fjfb/H432/x+N9/8fi/L/IJH7/yGF5P0kLTTvDAcDgwgICIQ8Ojf/0czA+Oji1fzh18r85NzO/OTbz/zj287849vO/OPbzvzk3M/84dfK++ji1f3Sy8D5NDIvywYGB3kKCgqFQ0A8/+XXw/v979f/9uTO//rp0f/66NH/+ujR//rn0f/66NH/+ujR//bkzv/979f/5tfD/UZBPv8KCwqEDQwMhUVDQP/f08X7+OrZ/+zf0P/v5NP/8OPT/+/j0//v4tP/8OPT/+/j0//s39D/+OrZ/+DTxfxEQj//DAwMhA8PD4VKR0T/4dXG+/rr2v/v4tH/9OXU//Ll1P/z5dT/8+XU//Pl1P/05NT/7+DR//rr2v/i1cX7SkhE/w8PD4USEhKFT0xI/+XXxfv97tr/9ePR//no1P/459T/+OfU//jn1P/459T/+OfU//Xk0f/97tr/5dfF+09MSf8SEhGFFRQUhVNQTv/j2cv7+u/g//Hm2P/169v/9Orb//Tq2//06tv/9erb//br3P/x5tf/+e/g/+PZzPtTUU7/FBQUhRgXF4VXU1D/2828+/Lk0f/q2sf/7d3K/+3dyv/t3cr/7N3K/+rayP/r28n/69vI//Ll0v/azbv7VlNP/xgXF4UfHh6FTktJ/1JOTPtZVFL/Uk5L/1FNSv9RTUr/UU1K/1JPTP9YVVD/VVJP/09NSv9WUk//UU1L+05LSf8fHh2FIR8fhVVTUP9FQkD7UlBM/6Wlj/+4uJ7/sLCX/7S0mv+xsJn/oKCQ/6+vmv+hoYv/TEtH/0NCQPtVUk//IR8fhSMhIIVcWVb/SEVF+19dVv/f3sP////e//X10v///93/2di8/1lYWP+eno//5+fG/19dV/9JRkb7W1hV/yMhIYUkJCOFXltZ/0tJSPtdW1f/0NC4/+/u1P/h4cj/8PDV/7++q/8vLC7/e3lw/9fWv/9eXVf/TElJ+15bWf8lJCKEJSQjhF9cWf9LSUf5XVtX/tbVwf/5+OL/6enV//j54v/GxrX/QD0+/42Kgv/d3cr/YF5a/k5LSvlhXlv/JSUjhCkoKIZpZWT/VVJR/WNhXP/V1cT//f3s/+3t3v/8/Or/zc2//01LSf+VlIz/4eDS/2hmYv9YVVT8aWVj/ycmJoIaGRlYSEVE1DYzM8NKSUfP0dHG9/X16P/n59v+7e3g/+jo3f/X2M3+6uve/9bWzPdOTUvNOjg3y0RBQLwPDw8lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; var pref = "CB.Shortcuts.pathToSaveShortcuts"; var faviconFolder = "C:\\Documents and Settings\\Favicon\\"; // папка для сохранения иконок для ярлыков и ярлыков сайтов var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService); // Создать меню для кнопки ............. var array = [ { label: "Сохранить значок веб-сайта", func: "saveFavicon()", image: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAACPVBMVEX09ff////C3L+Uq8+Vq8+Uqs+Zr9CZrtCZr9Gfu+ear8+mt9JRf8ORxl3t8vfF06+Twojs8/d9otl8o9s+aquZrs/X9KLp8Pft8fZhisf//+DBzN2hveihv+pii8hti9pgicl6oNlojs1zncNsi836/P2duebx8/eYyWqBp+Gn0IKBvlKHsm9qmaVuk8zt7/FEbauEv1Tp7/JdhL9oi9Pl8e2LwlmdsdD7/P76+/3H7ofo8+peh8eHwFaSteZ0pkp2gl7q8/Ohy5OApt2by2eZuOqbuOWaezWuvtd7nN2HvWxul9Ty9feQxV5ljcqBp+JEcLCVtOOo0nR7odx5n9suX6Z1mtBzmtSXyGPv9PewzfOzx+O6zu/s8fd9o95Xfrthi8lYhMN5oNnw9ffw9Pjw9Pf8/f6ewO/m8O9zmdE6aapsjdyUwouPxWPDzd6XteOSs9B5nNVpnpqHt7h/s6F6n9d7ntSTttGHwVh4qp+Ev1HH7ox6qk5wj+Hm8e3t9fOm0IKAtqOBpNrx+P9ljcyhs9FpkM2hv+/u8/fF0eOLu4N+vFKgzX3p9OSFqN13qExekIl4n9j7/P3x9PhxmNDm8e9Vg8Zfkozr8veq0YTX9qL//92AtamOwnHFz96Fot1diMh+pd13ntmatu+YyW/3+/+Tqs5UgcShzJNbhsdTf8GHs7bo8PaXtuqMr+Ty8/SZt+SUqs7r7Ox3ndb9/f7t8feZyXGYyWWCpNbz9PRuiteNtNDn7/V4ntjx8fGo3JqNAAAAv3RSTlP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AEVuhDkAAAD+SURBVBhXY5jHzcUMAqxAICq9bx8D96adDFAgaGQOFOBaH7h7zoqZDTlFyptncAAFWBjyi52CXCI0unRLxcECPhsatbbzmlXMnS60hg0kkOxW0uNrq93tNaFpD1ggUm21QK532ZQdSm1hmXKdDCwdnOWVOi1RjNGMQCCrwMDMJ8NZ4LAynVGPkXFp8zpJBubYmn579wXtqhZb0iwn9a1iWLaViYmJ3891obOwYtLEvcYMGyWAAkwJdv6accEhi8LjGVr11SenpC5f61g3NcO0vjCAIc+DjZ2dnWexddWSbYa9nlkM+8BgWsxsK7FZ1VLzRaACNokmtdnyu1QMQgF7Rlh4zWWTAwAAAABJRU5ErkJggg=="}, { label: "Запомнить значок веб-сайта как base64", func: "copyFaviconData()", image: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAI2bv/9RVpf/AAAAAAAAAAAAAAAAAAAA/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/AAAAAAAAAACIkvD/Jia6/ywpq/8AAAAAAAAAAAAAAAAAAAD/AAAA/wbwAf90qpv/Ymic/1RWqP9OUKr/W2Ch/2dumf9YYKT/Ly/B/xQP3/8MB9P/JCGb/wAAAAAAAAAAAAAAAAAAAP8G8AH/U5ea/ycr8f8VIP3/HiP4/ywo8v8sIvb/LCL2/ywi9v8KBOj/BQDe/wQAtv8tK4P/AAAAAAAAAAAAAAD/BvAB/3Sqm/9iaJz/Tim3/0UuuP9GPrT/R0ex/zk8uf8gIMz/FRDe/xEMzv8jIJz/AAAAAAAAAAAAAAAAAAAA/wbwAf8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAP8AAAD/SqOR/yImvP8sLKj/AAAAAAAAAAAAAAAAAAAAAAAAAP8G8AH/BvAB/wbwAf8AAAD/AAAA/wAAAP8AAAD/BvAB/3Sqm/9KW5r/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8G8AH/BvAB/wbwAf8AAAAAAAAAAAAAAAAAAAAABvAB/wbwAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/BvAB/wbwAf8G8AH/AAAAAAAAAAAAAAAAAAAAAAAAAAAG8AH/AAAAAAAAAP8G8AH/AAAAAAAAAAAAAAAAAAAA/wbwAf8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAP8G8AH/BvAB/wbwAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BvAB/wbwAf8AAAAAAAAA/wAAAP8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/AAAAAAAAAAAG8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wbwAf8G8AH/BvAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOesQQBjrEGAAaxBwACsQcABrEHDg6xBwAesQcAPrEHAD6xBw8+sQcPprEHD8axBwAGsQQABrEGAAaxB//+sQQ=="}, { separator: ''}, { label: "Сохранить ярлык страницы как…", func: "saveShortcuts('true')", image: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADzqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv8E/yT/lcsO//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv8E/yT/BP8k/wT/JP+Vyw7/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv8E/yT/BP8k/wT/JP8E/yT/BP8k/5XLDv/zqgD/86oA//I1///yNf//86oA//OqAP/zqgD/86oA//OqAP+Vyw7/lcsO/wT/JP8E/yT/BP8k/5XLDv+Vyw7/86oA//OqAP/yNf//8jX///OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP+Vyw7/BP8k/5XLDv/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/lcsO/wT/JP+Vyw7/86oA//OqAP/zqgD/86oA//02AP/9NgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA/5XLDv8E/yT/lcsO//OqAP/zqgD/86oA//OqAP/9NgD//TYA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP+Vyw7/BP8k/5XLDv/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/lcsO/wT/JP+Vyw7/86oA//OqAP/zqgD/86oA/wA31v8AN9b/86oA//9If///SH//86oA//OqAP/zqgD/86oA/5XLDv8E/yT/lcsO//OqAP/zqgD/86oA//OqAP8AN9b/ADfW//OqAP//SH///0h///OqAP/zqgD/86oA//OqAP+Vyw7/BP8k/5XLDv/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/lcsO/5XLDv+Vyw7/86oA//OqAP/zqgD/86oA/0CA//9AgP//86oA/07+9f9O/vX/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP9AgP//QID///OqAP9O/vX/Tv71//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/86oA//OqAP/zqgD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ=="}, { label: "Сохранить ярлык страницы без запроса на сохранение", func: "saveShortcuts()", image: false}, { separator: ''}, { label: "Сохранить всю страницу как PNG", func: "WebScreenShot.captureAll()", image: "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAzAAAAiAcFBa4KCQmvCgkJrwoJCa8KCQmvCgkJrwoJCa8KCQmvCgkJrwoJCa8KCQmvCgkJrwsJCaECAQE/BQMDAAAAAJUgICD4V1ZW/2FhYf5hYWH/YmFh/2BgYP9fX1//X19f/19fX/9gYGD/YmFh/2FhYf9gYGD+ZmVl/1RSUuIVFBQtCgkJy1paWv+Li4v9h4eH/oiIiP6FhYX+i4uL/pKSkv6Sk5P+kpKS/ouLi/6FhYX+iIiI/oiIiP6Hh4f7lZaW/25tbYQNDQ3OcHBw/5KSkv6Li4v/i4uL/5mZmf+EhIT/ZGRk/1tbWv9kZGT/hISE/5mZmf+Li4v/jY2N/4yMjPyWl5f/iomJjQ4NDc13d3f/m5ub/pWVlf+goKD/XFxc/ygoKP8fHyD/GBsb/yAhIv8pKSn/W1tb/6CgoP+Wlpb/lpaW/J6env+Jh4eMDg4OzX1+fv+ioqL+qqqq/1hYWP8ZGRn/Ghwb/x4dHP8mIh//FhQR/xUWF/8aGhr/WFhY/6urq/+cnJz8pKSk/4qJiYwPDg7Ng4OD/7W1tf6MjIz/Ghoa/xYYGP8uKCb/ZEAo/5xyOP++saL/RD45/xISE/8bGxv/jY2N/6+vr/ypqan/ioiIjA8PD82IiIj/xMTE/l1cXP8LDAz/JiId/1o3LP9ADgD/mGog//Dt6P/VysX/Ih4Z/wsMDf9eXl7/v7+//K6urv+KiYmMEA8PzY+Pj//Kysr+SEhH/wEDBv9MPi7/hlES/3dCAP+VZAn/tJVO/7eVXf9OQTL/AAIE/0pJSf/FxcX8tLS0/4qJiYwQEBDNm5ub/9/e3/5SUlL/AAAA/0M7Mf/aya7/ybiO/5RmEf9aIAD/cjkX/z80KP8AAAD/U1JS/9nZ2fzAwMD/i4qKjBEREc2oqKn/8O/w/oeGhv8AAAD/DAsK/6qkof/17uj/nW8l/14eCf9hPTr/ExUU/wAAAP+Hh4f/6urq/MzMzf+Mi4uMERERzbCwsv/r6uz+3Nzd/yoqKv8AAAD/ExEP/2heU/9yWjv/UD0u/xcXFv8AAAD/Kioq/93d3v/l5eb81NTV/4yLi4wSERHNuLm5/+/v8P7z8/P/xsbG/yAgIP8AAAD/AQEB/wAAAP8BAQH/AAAA/yAgIP/Gxsb/9PT0/+np6vzb29v/jIuLjBIREc2+vb7/+Pj5/uvr7P/7+/v/4ODg/3Nyc/8uLi7/Hh4d/y0sLP9zc3P/4ODg//v7+//s7O3/8/P0/OHg4f+Mi4uLFBMTyMPDw//////7+Pj4/ff29v38/Pz9/////fr6+v3u7u79+vr6/f////38/Pz99/b2/fn5+f37+/v53t7e/5KSko4GBgZ7m5yc//j4+P/w8fH/8fLy//Dw8P/u7u7/8vLy//X19f/y8vL/7u7u//Dw8P/x8vL/8vLy/uXl5f/BwcH+k5GRUAAAAAQeHR1yb25uxn59fcZ9fHzGfXx8xn18fMZ9e3vGfHt7xn17e8Z9fHzGfXx8xn18fMZ9fHzGgH9/xYmIiGVaV1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}, { label: "Сохранить видимую часть страницы как PNG", func: "WebScreenShot.capturePage()", image: false}, { label: "Сохранить выбранный элемент страницы как PNG", func: "WebScreenShotByClick.init()", image: "data:image/x-icon;base64,AAABAAEAIBkAAAEAIAAMDQAAFgAAACgAAAAgAAAAMgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29fT/2tra/8jIyP/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8XFxf/FxcX/xcXF/8jIyP/a2tr/9vX0/+zs7P/ak0b/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/9qTRv/s7Oz/7Ozs/+J9Dv/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//v7+/6SdmP/8+/r//Pv6//z7+v/8+/r//Pv6//z7+v/8+/r//Pv6//z7+v/8+/r/+vn4//z7+v/6+fj/4n0O/+zs7P/s7Oz/4n0O//z7+v/8+/r//Pv6//z7+v/8+/r//Pv6//z7+v/8+/r//Pv6//z7+v/8+/r//Pv6//z7+v/8+/r/aFtT//Lw7//y8O//8vDv//Lw7//y8O//8vDv//Lw7//y8O//8vDv//Lw7//y8O//8vDv//j39v/ifQ7/7Ozs/+zs7P/ifQ7/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P9oW1P/7+zq/+/s6v/v7Or/8O3r//Dt6//w7ev/8O3r//Dt6//w7ev/8O3r/+/s6v/w7ev/9fTy/+J9Dv/s7Oz/7Ozs/+J9Dv/49/b/+Pf2//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4/2hbU//q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/y8O//4n0O/+zs7P/s7Oz/4n0O//j39v/49/b/+Pf2//j39v/49/b/+Pf2//j39v/49/b/+Pf2//j39v/49/b/+Pf2//j39v/49/b/aFtT/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe//Dt6//ifQ7/7Ozs/+zs7P/ifQ7/9vX0//b19P/29fT/9vX0//b19P/29fT/9vX0//b19P/29fT/9vX0//b19P/29fT/9vX0//b19P9oW1P/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/7uro/+J9Dv/s7Oz/7Ozs/+J9Dv/08vH/9PLx//Ty8f/08vH/9PLx//Ty8f/08vH/9PLx//Ty8f/08vH/9PLx//Ty8f/08vH/9PLx/2hbU//x7+3/8vDv//Hv7f/x7+3/8e/t//Lw7//x7+3/8e/t//Lw7//x7+3/8vDv//Hv7f/29fT/4n0O/+zs7P/s7Oz/4n0O//Lw7//y8O//8vDv//Lw7//y8O//8vDv//Lw7//y8O//8vDv//Lw7//y8O//8vDv//Lw7//y8O//aFtT/6igmP+ooJj/qKCY/6igmP+ooJj/qKCY/6igmP+ooJj/qKCY/6igmP+ooJj/qKCY/8vGwf/ifQ7/7Ozs/+zs7P/ifQ7/8e/t//Hv7f/x7+3/8e/t//Hv7f/x7+3/8e/t//Hv7f/x7+3/8e/t//Hv7f/x7+3/8e/t//Hv7f9nWlL/aFtT/2hbU/9nWlL/Z1pS/2hbU/9oW1P/Z1pS/2daUv9oW1P/aFtT/2hbU/9nWlL/pJyX/+J9Dv/s7Oz/7Ozs/+J9Dv/w7ev/8O3r//Dt6//w7ev/8O3r//Dt6//x7+3/8O3r//Dt6//w7ev/8e/t//Dt6//w7ev/8O3r//Hv7f/w7ev/8O3r//Dt6//x7+3/8O3r//Dt6//w7ev/8e/t//Dt6//w7ev/8O3r//Dt6//w7ev/4n0O/+zs7P/s7Oz/4n0O/+/s6v/v7Or/7uro/+/s6v/v7Or/7+zq/+/s6v/v7Or/7+zq/+/s6v/v7Or/7+zq/+/s6v/v7Or/7+zq/+/s6v/v7Or/7+zq/+/s6v/v7Or/7+zq/+/s6v/v7Or/7+zq/+/s6v/u6uj/7+zq/+/s6v/ifQ7/7Ozs/+zs7P/ifQ7/7uro/+7q6P/u6uj/7uro/+zo5v/u6uj/7uro/+7q6P/s6Ob/7uro/+7q6P/u6uj/7Ojm/+7q6P/u6uj/7uro/+zo5v/u6uj/7uro/+7q6P/s6Ob/7uro/+7q6P/u6uj/7Ojm/+7q6P/u6uj/7Ojm/+J9Dv/s7Oz/7Ozs/+J9Dv/s6Ob/7Ojm/+zo5v/s6Ob/7Ojm/+zo5v/s6Ob/7Ojm/+zo5v/s6Ob/7Ojm/+zo5v/s6Ob/7Ojm/+zo5v/s6Ob/7Ojm/+zo5v/s6Ob/7Ojm/+zo5v/s6Ob/7Ojm/+zo5v/s6Ob/7Ojm/+zo5v/s6Ob/4n0O/+zs7P/s7Oz/4n0O/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/q5uT/6ubk/+rm5P/ifQ7/7Ozs/+zs7P/ifQ7/6eXi/+nl4v/p5eL/6eXi/+nl4v/p5eL/6eXi/+nl4v/p5eL/6eXi/+nl4v/p5eL/6eXi/+nl4v/p5eL/6eXi/+nl4v/p5eL/6eXi/+nl4v/p5eL/6eXi/+nl4v/p5eL/6eXi/+nl4v/p5eL/6eXi/+J9Dv/s7Oz/7Ozs/+J9Dv/m4d7/5uHe/+bh3v/p5eL/5uHe/+bh3v/m4d7/6eXi/+bh3v/m4d7/5uHe/+nl4v/m4d7/5uHe/+bh3v/p5eL/5uHe/+bh3v/m4d7/6eXi/+bh3v/m4d7/5uHe/+nl4v/m4d7/5uHe/+bh3v/p5eL/4n0O/+zs7P/s7Oz/4n0O/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/m4d7/5uHe/+bh3v/ifQ7/7Ozs/+zs7P/ifQ7/5uHe/+Tf3P/m4d7/5N/c/+bh3v/k39z/5uHe/+Tf3P/m4d7/5N/c/+bh3v/k39z/5uHe/+Tf3P/m4d7/5N/c/+bh3v/k39z/5uHe/+Tf3P/m4d7/5N/c/+bh3v/k39z/5uHe/+Tf3P/m4d7/5N/c/+J9Dv/s7Oz/7Ozs/+J9Dv/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/i3Nn/4tzZ/+Lc2f/k39z/4n0O/+zs7P/s7Oz/4n0O/+Lc2f/h29j/4dvY/+Hb2P/h29j/4dvY/+Hb2P/h29j/4dvY/+Hb2P/h29j/4dvY/+Hb2P/h29j/4dvY/+Hb2P/h29j/4dvY/+Hb2P/h29j/4dvY/+Hb2P/h29j/4dvY/+Hb2P/h29j/4dvY/+Hb2P/ifQ7/7Ozs/+zs7P/ifQ7/4NnW/+DZ1v/g2db/4NnW/+DZ1v/g2db/4NnW/+DZ1v/g2db/4NnW/+DZ1v/g2db/4NnW/+DZ1v/g2db/4NnW/+DZ1v/g2db/4NnW/+DZ1v/g2db/4NnW/+DZ1v/g2db/4NnW/+DZ1v/g2db/4NnW/+J9Dv/s7Oz/9fTy/+J9Dv/8+/r/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/+vn4//r5+P/6+fj/4n0O//X08v/8+/r/6KFU/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ifQ7/4n0O/+J9Dv/ooVT//Pv6/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}, { label: "Сохранить выбранную область страницы как PNG", func: "WebScreenShotByClipping.init()", image: "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAADDn2Hfz5pE/8eVQP7IlkH/yJZB/8iWQf/IlUH/yJVA/8iVQP/IlED/yJQ//8iUP//IlD//yJM+/8iTPv/Hkj3/nI1w//bDbP//8OH//+zW///s1///69b//+rV///p1P//59L//+XQ///izf//38n//9vG///ZxP//1b///dG////Prf/KlkX/88N4/v37///99Pj//fT6//vy9v/68fT/+u/y//rt8P/66u3/+ufq//rl6P/64eT/+93h//3a3//71d7//9LK/86XR//0xHb//vv////18///9fT///f5///4////9f7///P8///v+f//7Pb//+nz///m8f//4eb//9vZ//3Y2v//1Mb/zphH//TGd//+/////Pj1///7///Q58r/m9aV/6TZnv+i15r/otWY/6LTlv+j0pb/mc6M/9DXuf//3+P//Nnc///Wyf/OmUf/9MZ3//7////8+/j//////53WnP+Y5pn/rvGv/6PvpP+e7p//me6b/5nvm/95533/mM+L///j7f/629z//9jL/86ZR//0xnf//v////z9+v//////qtup/8Xzxf/a/tn/z/vO/8n7yf/D+sL/xPvD/6Hzo/+j05b//+Tu//re3///2cz/zplI//XGeP/+/////P36//////+n26f/uvC6/9T71P/K+Mr/xvjG/8D3wP+/+L//nfCf/6LTlf//5u//+t/g///cz//OmUj/9MZ3//7////8/fr//////6rcqv/G9MX/3//f/9n92f/V/NX/0PzQ/9H+0P+s9a7/pdSY///o8f/64OL//9zP/86aSP/0xnf//v////z9+f//////ndid/5TjlP+v7q//qeyp/6jsqf+k7KX/p+6n/4Tlh/+Z0Y7//+r0//rh4v//3tH/zppI//TGd//+/////v77///////Y8Nj/p9+n/6/jr/+t4a3/rd2p/67bpv+u2ab/p9Wc/9jgx///6Oz//OPl///e0f/Omkj/9MV1//7//////fr///78///+/f///////////////////P////j////0+///8fn//+vu///m4v/94+P//97P/86ZSP/zx3v//v/////+/f///////f////v////7////+/////v+///7+///+/f///vz/P/98Pr//+33//3p9///5OL/zppL//a1Sv/0xoL/9cR7//XEfP/1xHz/9cR8//XEfP/1xH3/9cR8//XCev/1wXr/9b94//W9d//1u3X/87l0//y6bP/Llj7/+pMA/vWBAP/1gwD/9YMA//WDAP/1gwD/9YMA//WDAP/1gwD/9YQA//WEAP/1hAD/9YQA//WEAP/zhAH//okA/8qLIv3xpzP/4ptV/+OdU//jnVP/451T/+OdU//jnVP/451T/+OdU//jnVL/451S/+OdUv/jnVL/451S/+GdVf/qnUf/2aRJ/9q0c9/8yn7/98V5/vjGev/4xnr/+MZ6//jGev/4xnr/+MZ6//jGev/4xnr/+MZ6//jGev/4xnr/+MZ6/vrIe/+jj2y4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}, { separator: ''}, { label: "Сохранить всю страницу как PDF", func: "savePageToPDF()", image: "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYUw4pJt3V/+Rb1D8lnFP/55zTf+VcVH/lXJS/5VyUv+VclL/lXJS/5VyUv+VclL/k3BR/J56Wv9cRzSkAAAAAJNvUKTto2L/4ppe/uehZf/Pmmr/noZv/9Scav/Wl17/1plh/9eZYf/XmWH/15lh/9eZYf/WmGD/2Jlg/suRXP9mRiuk8rWA/397dP1akKn/rqqi/3LF3f8Mntj/4dLJ///+9f/48u3/9e7n//bt5v/47+f/+O/n//jv5//rvZP/1ZJX/a9/VP9+lrD8AIvz/xOt+f8Douv/ALb6/wC28/9tmar/z8jJ//Lq5/////7//v////n9///6/P3//////+Ta0P/PjVP/pnpT/IWds/+aiXj/5efl/8Px//951/3/LMz//wCx8/8GltL/NIu3/4ycqf/l29L////+//n6+//8/v//3tXM/8+OVP+oe1P/6K57/86QWP/r6Ob////////++v/r9/z/oOb9/zDL//8Arf//AI/r/ydysv+hpqr//PTr///////d1Mz/0I5U/6h7U//osH//wo5g/+fm5P/7/f//9vf5//z7+////vv/9/r8/5Dc/P8Oqv7/AJf//wF02v9ffZ7/8Ojh/+Ha1P/NjFL/qHtT/+ewf//Ej1//7O3r///////+/v7//v7+//f5+v/6+vv////8/8Tq/f8hp/7/AJH//wB18/8/bqj/1MGu/9mXXv+leVH/569+/8iSYv+/tKn/wLew/8O5sf/P0M////////7+/v/3+fv////7/9Hv/v8hoP3/AIn//wB4/v84ZqL/w4NH/619VP/nsYD/x45c/9W5of/bv6j/0Jxt/6J/YP+spqD/2N3i//7////6+/3///76/8vr/v8Slv7/AIb+/wBz//83VH7/nW1B/+ewfv/Fjl7/7Ozr///////9+/r/9d7K/9Ghdv+jd1D/pJ6Y/+jt8f/9///////7/6fb/v8Ahv7/AYD//wRp6f95YlT/57B//8SOXv/n5uT//v7///r7/P/8/v////////XRsv/DhEv/loBu/9DX3P/9/v/////7/2O6/f8Afv//FnTU/5JtTf/nsH//xY9e/+jn5f/+/f//+fj5//n4+P/5+Pn/+/////Xbxf/Wj1D/nX1h/+Ll6P////7/3+/3/w+V//8tcbP/qHJB/+WuffzCjV7/5efn///////+/v7//////////////v7///////XRsP/TnW3/8fT3//////////z/ddD//0Nxl/+zdkH88LmH/9CRWP2+qJT/0M7N/8/Jxv/Pysf/z8rH/8/Kxv/Py8n/zsO6/7+pmP/PzMv/zsnG/9bNyP+nsK7/h4R3/b2BT/+Sb1Ck7qxw/9GSW/69hlb/wYhX/8CIV//AiFf/wIhX/8CIVv/BiVj/xI1d/8CIVv/BiFf/vYZW/9STW/7ppmv/bE80pAAAAACUd16k+sui/+7AmPzwwpr/8MKa//DCmv/wwpr/8MKa//DCmf/vwZj/8MKa//DCmv/uwJj8+cui/5N3XaQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}, { label: "Добавить url и сохранить страницу", func: "savePage()", image: "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAyMjIzwyMjFeLi0tVS8vLlcuLy9XLS4uVywsLFUuLi5aKSkpUggICBMAAAAAAgICAQAAAAAAAAAAAAAAABQTEyOgoJ/yysvL/s3Pz/7Z293/4OPk/+bp6f/t7u7/5eXl/LOysv97e3vLFRUWJQAAAAACAgIDAAAAAAAAAAA8PDxSz9HT/83Qz/fLx8T8z7+5/M/AsPzez8n89e3r/PDx8fyusLL43dzc/52dndMWFhY2AAAAAAICAgIAAAAAODg5T8bEv/+9o476vIR1/7WDcv+uj3v/spCA/8Wqk//Gtab/rqyq/+Pk5fn19fX+np6e4BQUFCgAAAAAAAAAAC4uJU29oYj/wLao+tLDqf/Mv7P/yLik/7zEvP/F0cr/v62Y/6+Kef/Z2NP/6Ors+d3c3P97e3vNBAQEDgIDAAZhRCuYxaSb/8Gvqfu2inL/vIF0/7FmUv+ygG//waaX/8m8tP/CoIn/vqOF/9zg3//l5ef7ycnJ/zY2Nm0hFw08rGJD/6BlYf2mWUD/rW9g/7aNff+ZRyL/pmxR/7RyWv+qaEz/uYR0/69kSf/k1tD//////Ozs6/1iYmK4WTMck61mVv+Yemj8hjsg/51bQ/+wem//n084/6+pq/+3p6H/l0Ux/4lFOf+gWDr/zq2X//b7/fzo6Oj/YWBgsXpXSbnMsp//wNC8/I9jWv+WX1X/tn5w/7iKfv/Tzc7/ztXc/513bf+MSjH/rWJG/7iRd//o7Oz85OPl/2BgYLN1aFqu2tO+/7ejnvyohYD/ybGb/7q1ov/HwrX/7/Lr//T19v/Hzs3/p4V0/6hvW/+6gHf/4uDh/N3e3v9hYWC0dWNPuaVXRP6cfWv8w7Gz/8vHsv/U2dP/4OHf//b08//9/Pv/3drZ/7rBw/+0ppv/wZ2F/9zc3PzW1tj/ZWRktE1HPW2oa1f/lX1t/cTP0v/Ew8T/3Nvd/9LR0//W1tf/5OXl/+/t6v/i6vD/wK+i/8y2o//b3t/81NTU/2FhYbMMDAsPsZ2a1tDX2P++vL390c/P/+Dh4P/b29r/09PS/9rY1//6+Pf/8PP3/8Kqlf/c0sv/3N7g/NTU1P9iYmKyAAAAAEY6MmXozcP/5ezt+OHk6Pzt7Oz9+Pj4/urq6/zs7/T8+f///NXGsPzey8P87vDy/OXm5vnf39//ZWVlrgAAAAAGBQQQdFdHy8Wfhv/d18797e7w/+3t7P/y8u7/7N/G/7unff+/uqT/4+Tl/97d3v/c3Nz/sLCw+h8fH0IBAQABAAEBABEVFx8vJB1cWy8ciZNrU8itknHrkWdIxUsqFnEnJSBRMjQ3WS8uL1csLCtVMjIyXiIiIj4BAQECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="}, { label: "Сохранить выделенный текст как txt файл", func: "saveSelectionToTxt()", image: "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAQE6AAAAZAAAAGgAAAJmAAACZgAAAGYAAABmAAAAZgAAAGYAAABmAAAAZgAAAGYAAABlAAAAaQABAmYAAQEjAAAAADlVkOdVcKHxVXKi8kdklPJLZpfyU3Cg8lJvn/JRbZ7yUW+g8lFun/JRbp/yUG6e8lVyofFVdKjzLkV45wAAAFABAQEAaIzF/3y34v9wsuL/cJe0/0lpgv9bjLP/dLLh/2+v3v9sq9v/cK3d/3Gv3v9sqtv/b7Df/4G77P9VcqT2AAAAVAMDAQBnir/+ZqfU/pDB4/7a3uD+j46N/kxYXv6To6/+1er4/tXp+P7J3/D+1ej4/svg8v6Gut/9aqzd/lhxnvAAAABSAwIBAGaIvv9pptX/ocfj//f4/P/P0tX/g4CA/1xZWf+Woqr/2uz8/9Hl+f/W5fT/2Of3/5fC4v5tq93/Vm+e8QAAAFIDAgEAaYm+/3mw2/+iyeX/9Pn8/+z0+//IzNL/d3h5/0tMTv+Mkpn/xdvs/9Hp/f/O4PL/msXk/nmz4/9XcJ/xAAAAUgMDAQBti7//k7/h/6fL5v/v9fn/4u73/9Dk9P+8wMT/YGpx/zJJWv94iJf/ztzo/9Pp/P+ZwuD+gLfk/1dwnvEAAABSAwMBAHOPwf+myub/sNHp//j7/P/6/P3/8fr///r39P+sxdP/IXWq/xJJcv+NjZD/0+Lu/6TN7f6Ft+L/WXGf8QAAAFIDAwEAd5LD/7PR6/+ZxOP/0ePx/97r9f/Y5/L/3e32/8Tc7f9gseT/CHK3/zBYdv+HiY7/lL/f/pLE7/9bcJ3xAAAAUgMDAQB4k8P/xNvx/5/F5f+kyOX/qMrn/6TH5f+kyOX/sM/q/5e51P9Mm83/GHm3/xxIav9fdYf+pMvs/1x1pfIAAABTAwMBAHmSxf/O4/T/y9/y/8Hb9P/C3PX/wNv0/7vW7/+93ff/utDm/42fsf9Gjbn/EXS2/ytSbv6Fj5r/WnGc8gAAAFICAwEBepPE/tHk9f/S5PX/vMjV/7fCzP+3w8//uMPP/7XBzP+6ytf/qa+4/3h/hv9Ghaz/JoO+/jNXdP82PVnyAAAAVgACAgCBmcb/2+r3/dHh8fyPkpX/kI6N/5yam/+dnJ3/paWk/6enpf+sr6//mpSR/3Bubf9SjbD8H4C+/QsrSvcCAAB/AAAAA3yVx//j8///3u/7/52gpf6pqKf+uLm5/rq7u/7Ly8v+ycnI/paWlf6LjY/+np2f/Xh+g/5gnL7/MX+y/xcgJ80BAgNNN1OUs6W84fDA1O73mJyj/ainpv+2trb/t7e4/8fHyP/Fxsb/kZGQ/4eGhP+vucT/j6G+/W53k/NlkbnwNoOv/AgiNb8CCBsQDRo/YwsaO3B0d33arKyp9q2trfWvr6/2u7u79ru7vPawr7H1sbCt9nJ2gOQIGD6bFCFEYB0qPE1Bf6SpEz9cggAAAAMCAQEBAQAAADIyMmlDQ0ONQUFBhUFBQYVCQkGFQkJBhUhISIRNTU2OKysrZAEAAAUBAQAAAgEAAAkEAAEDAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="}, { separator: ''}, { label: "Запомнить изображение как base64, в контекстном меню", value: "CB.Save.WebScreenShotOnImage"}, { label: "Сохранить выделенный текст в файл, в контекстном меню", value: "CB.Save.SelectionToFile" }, { label: "Открыть выделенный текст в внешнем редакторе, в контекстном меню", value: "CB.Save.TextToEditor"}, ]; var menuPopup = self.appendChild(document.createElement("menupopup")); array.forEach((m,i)=> { if ("separator" in m) { menuPopup.appendChild(document.createElement("menuseparator")); return }; var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m.label); mItem.setAttribute("class", "menuitem-iconic"); if ("image" in m) mItem.setAttribute("image", m.image || array[i-1].image); if ("value" in m) { mItem.setAttribute('type', 'checkbox'); mItem.setAttribute('checked', cbu.getPrefs(m.value) ); mItem.onclick =()=> cbu.setPrefs(m.value, !cbu.getPrefs(m.value)); } if ("func" in m) mItem.addEventListener("command", ()=> eval(m.func.toString())); }); menuPopup.setAttribute("onclick", "event.stopPropagation()"); // Сохранить как PNG страницу или части страницы ............. WebScreenShot = { capture: function(win, x, y, width, height) { var canvas = document.createElementNS(xhtmlns, 'canvas'); canvas.width = width; canvas.height = height; var ctx = canvas.getContext("2d"); ((i = 17)=> { try { ctx.drawWindow(win, x, y, canvas.width, canvas.height, "white") } catch(e) { canvas.height = canvas.width*i; arguments.callee(--i) }; })(); var url = makeURI(canvas.toDataURL("image/png")); var fp = window.makeFilePicker(); fp.init(window, "Сохранить как…", fp.modeSave); fp.appendFilter("", "*.png"); fp.defaultString = getTabLabel() + " " + (new Date().toLocaleFormat("%d.%m.%Y. %H:%M:%S")) + ".png"; if (fp.show() == fp.returnCancel || !fp.file) return; var wbp = window.makeWebBrowserPersist(); parseInt(Services.appinfo.version) < 36 ? wbp.saveURI(url, null, null, null, null, fp.file, null) : wbp.saveURI(url, null, null, null, null, null, fp.file, null); // если FF36+ }, captureAll: function() { var win = content; WebScreenShot.capture(win, 0, 0, win.innerWidth + win.scrollMaxX, win.innerHeight + win.scrollMaxY); }, capturePage: function() { var win = content, doc = win.document, body = doc.body, html = doc.documentElement; var scrX = (body.scrollLeft || html.scrollLeft) - html.clientLeft; var scrY = (body.scrollTop || html.scrollTop) - html.clientTop; WebScreenShot.capture(win, scrX, scrY, win.innerWidth, win.innerHeight); }, onImage: function(image) { var canvas = document.createElementNS(xhtmlns, 'canvas'); canvas.width = image.naturalWidth; canvas.height = image.naturalHeight; var ctx = canvas.getContext('2d'); ctx.drawImage(image, 0, 0); var base64 = canvas.toDataURL(); gClipboard.write(base64); // стиль для изображение в сплывающей подсказке .... var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var uri = makeURI('data:text/css,'+ encodeURIComponent('#alertImage { height: 25px !important; width: 25px !important; }')); sss.loadAndRegisterSheet(uri, 0); alertsService.showAlertNotification(base64, self.label, "Запомнил изображение как base64", false, "", (s, t)=> { if (t == 'alertfinished') sss.unregisterSheet(uri, 0); // удалить стиль когда подсказка закрывается }, ""); } }; // Сохранить выбранную область страницы как PNG .... WebScreenShotByClipping = { capture: WebScreenShot.capture, handleEvent: function(e) { if (e.button) return false; e.preventDefault(); e.stopPropagation(); switch(e.type){ case 'mousedown': this.downX = e.pageX; this.downY = e.pageY; this.bs.left = this.downX + 'px'; this.bs.top = this.downY + 'px'; this.body.appendChild(this.box); this.flag = true; break; case 'mousemove': if (!this.flag) return; this.moveX = e.pageX; this.moveY = e.pageY; if (this.downX > this.moveX) this.bs.left = this.moveX + 'px'; if (this.downY > this.moveY) this.bs.top = this.moveY + 'px'; this.bs.width = Math.abs(this.moveX - this.downX) + 'px'; this.bs.height = Math.abs(this.moveY - this.downY) + 'px'; break; case 'mouseup': this.uninit(); break; } }, init: function() { this.win = document.commandDispatcher.focusedWindow; if (this.win == window) this.win = content; this.doc = this.win.document; this.body = this.doc.body; if (!this.body instanceof HTMLBodyElement){ alertsService.showAlertNotification(self.image, self.label, "Не удается захватить!"); return false; } this.flag = null; this.box = this.doc.createElement('div'); this.bs = this.box.style; this.bs.border = '#0f0 dashed 2px'; this.bs.position = 'absolute'; this.bs.zIndex = '2147483647'; this.defaultCursor = getComputedStyle(this.body, '').cursor; this.body.style.cursor = 'crosshair'; ["click", "mouseup", "mousemove", "mousedown"].forEach(type=> this.doc.addEventListener(type, this, true)); }, uninit: function() { var pos = [this.win, parseInt(this.bs.left), parseInt(this.bs.top), parseInt(this.bs.width), parseInt(this.bs.height)]; this.body.style.cursor = this.defaultCursor; this.body.removeChild(this.box); this.capture.apply(this, pos); ["click", "mouseup", "mousemove", "mousedown"].forEach(type=> this.doc.removeEventListener(type, this, true)); }, }; // Сохранить выбранный элемент на странице как PNG .... WebScreenShotByClick = { capture: WebScreenShot.capture, getPosition: function() { var html = this.doc.documentElement; var body = this.doc.body; var rect = this.target.getBoundingClientRect(); return [ this.win ,Math.round(rect.left) + (body.scrollLeft || html.scrollLeft) - html.clientLeft ,Math.round(rect.top) + (body.scrollTop || html.scrollTop) - html.clientTop ,parseInt(rect.width) ,parseInt(rect.height) ]; }, highlight: function() { this.orgStyle = this.target.hasAttribute('style') ? this.target.style.cssText : false; this.target.style.cssText += 'outline: red 2px solid; outline-offset: 2px; -moz-outline-radius: 2px;'; }, lowlight: function(e) { if (this.orgStyle) this.target.style.cssText = this.orgStyle; else this.target.removeAttribute('style'); }, handleEvent: function(e) { switch(e.type){ case 'click': if (e.button) return; e.preventDefault(); e.stopPropagation(); this.lowlight(); this.capture.apply(this, this.getPosition()); this.uninit(); break; case 'mouseover': if (this.target) this.lowlight(); this.target = e.target; this.highlight(); break; } }, init: function() { this.win = content; this.doc = content.document; ["click", "mouseover"].forEach(type=> this.doc.addEventListener(type, this, true)); }, uninit: function() { this.target = false; ["click", "mouseover"].forEach(type=> this.doc.removeEventListener(type, this, true)); }, }; // Сохранить страницу как PDF файл через сервис 'pdfmyurl.com' ............. function savePageToPDF(loc = content.location) { loc.href.startsWith("http") && loadURI("http://pdfmyurl.com?url=" + loc); }; // Сохранить ярлык страницы в указанную папку или в последнюю папку сохранения .............. function saveShortcuts(saveAs, shortcutName) { var url = content.document.location; cbu.isPref(pref, "C:\\"); // блокируем создание ярлыков для внутренних страниц FF if ( ["about:", "chrome:", "jar:", "data:"].indexOf(url.protocol) !== -1 ) { alertsService.showAlertNotification("chrome://global/skin/icons/error-16.png", self.label, "Не поддерживается"); return; } // получить название ярлыка if ( saveAs ) shortcutName = setPathToShortcut(shortcutName) else shortcutName = shortcutName ? shortcutName : getSiteName() + getTabLabel() + " " + Date.now(); if ( saveAs && shortcutName == false ) return; // сохранить иконку таба в установленную папку var faviconName = "favicon" + Date.now(); var favicon = saveFaviconToFolder(faviconName); // получить путь для сохранения ярлыка из 'about:config' var pathToFolder = gPrefService.getComplexValue(pref, Ci.nsISupportsString).data; var pathToShortcut = pathToFolder + shortcutName + ".url"; // адрес страницы в UTF-8 если это протокол 'file' или в 'Punycode' если это .рф домен if ( url.protocol == 'file:' ) url = convertFromUnicode("UTF-8", url); if ( url.host.slice(-3) == '.рф') url = Services.io.newURI(url, null, null).asciiSpec; // текст ярлыка из адреса страницы и пути к иконке таба var text = "[InternetShortcut]" + "\r\n" + "URL=" + url; var pathToFavicon = "IconFile=" + faviconFolder + faviconName + ".ico" + "\r\n"; if ( favicon == false ) var pathToFavicon = ""; var data = text + "\r\n" + pathToFavicon + "IconIndex=0"; // записать текст в ярлык var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); file.initWithPath(pathToShortcut); foStream.init(file, 0x02|0x08|0x20, 0666, 0); foStream.write(data, data.length); foStream.close(); // подсказка var notification = 'Сохранил в: ' + pathToFolder; var image = (favicon == false) ? self.image : gBrowser.selectedBrowser.mIconURL; alertsService.showAlertNotification(image, shortcutName, notification); }; // Установка пути и названия для сохранения ярлыка через диалог сохранения, отмена отдаст 'false' .............. function setPathToShortcut(shortcutName) { var pathToFile = gPrefService.getComplexValue(pref, Ci.nsISupportsString).data; var shortcutName = shortcutName ? shortcutName : getSiteName() + getTabLabel() + " " + Date.now(); // диалог создания и установки пути var fp = window.makeFilePicker(); fp.init(window, "Укажите где сохранить ярлык страницы!", fp.modeSave); fp.appendFilters(fp.filterAll); fp.defaultString = shortcutName; if ( fp.show() == fp.returnCancel ) return false; // убрать название файла из пути к файлу и записать путь в 'about:config' var filePath = fp.file.path.toString(); var fileName = fp.file.leafName.toString(); cbu.setPrefs(pref, convertFromUnicode("UTF-8", filePath.replace(fileName, "")) ); return fileName; }; // Сохранить в указанную папку иконку таба как .ico и без диалога сохранения .............. function saveFaviconToFolder(faviconName) { var url = gBrowser.mCurrentTab.image.replace("#-moz-resolution=16,16",""); if ( !url || content.document.mozSyntheticDocument ) return false; if ( url.startsWith("http") ) url = "moz-anno:favicon:" + url; var img = new Image(); img.onload = function() { var tools = Cc["@mozilla.org/image/tools;1"].getService(Ci.imgITools); var stream = Cc["@mozilla.org/scriptableinputstream;1"].createInstance(Ci.nsIScriptableInputStream); var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var request = img.QueryInterface(Ci.nsIImageLoadingContent).getRequest(img.CURRENT_REQUEST); var istrm = tools.encodeImage(request.image, "image/vnd.microsoft.icon", "format=bmp;bpp=32"); stream.init(istrm); var data = stream.readBytes(stream.available()); istrm.close(); stream.close(); var path = faviconFolder + faviconName + ".ico"; file.initWithPath(path); file.exists() && file.remove(false); try { file.create(file.NORMAL_FILE_TYPE, 448) } catch(e) { setTimeout(()=> { alertsService.showAlertNotification("chrome://global/skin/icons/error-16.png", self.label, "Не могу сохранить иконку вкладки в " + faviconFolder + "\n" + "Укажите в начале кода кнопки другой диск!"); }, 2500); }; cbu.writeFile(path, data); } img.setAttribute("src", url); }; // Добавить адрес наверху страницы и открыть диалог сохранения страницы ............. function savePage() { var sURL = gURLBar.value; content.document.body.innerHTML = "<table width=100%><tr><td align=left><small><a target=_blank href=" + sURL + ">"+ sURL + "</a></small>\n</td></tr></table>" + content.document.body.innerHTML; saveDocument(window.content.document); }; // Сохранить иконку текущего сайта с диалогом сохранения ............. function saveFavicon() { saveImageURL(gBrowser.mCurrentTab.image, "save", null, false, false, null, content.document) }; // Скопировать иконку текущего сайта как base64 код ............. function copyFaviconData() { var img = new Image(); img.src = gBrowser.mCurrentTab.image; WebScreenShot.onImage(img); }; // Сохранить выделенный текст или весь текст на странице как txt файл ............. function saveSelectionToTxt() { var sel = getSelect(); !sel && document.getElementById("cmd_selectAll").doCommand(); // создать название файла из заголовка страницы и текущего времени и сохранить текст .... var fileTitle = getTabLabel() + ' ' + (new Date()).toLocaleFormat("%H·%M·%S"); saveURL("data:text/plain," + encodeURIComponent(content.location + ("\r\n\r\n" + sel)), fileTitle + ".txt", null, false, false, null, content.document); !sel && goDoCommand("cmd_selectNone"); }; // Добавляем в контекстного меню страницы новые пункты ............. ((contextMenu, el)=> { // в контекстного меню изображений .... var baseItem = contextMenu.appendChild(document.createElement("menuitem")); baseItem.id = "content-baseItem"; baseItem.setAttribute("label", "Запомнить изображение как base64"); baseItem.onclick =()=> WebScreenShot.onImage(gContextMenu.target); // в контекстного меню выделенного текста .... var saveItem = contextMenu.insertBefore(document.createElement("menuitem"), el); saveItem.id = "content-saveItem"; saveItem.setAttribute("label", "Сохранить выделенный текст в файл"); saveItem.onclick =()=> saveSelectionToFile(); var editorItem = contextMenu.insertBefore(document.createElement("menuitem"), el); editorItem.id = "content-editorItem"; editorItem.setAttribute("label", "Открыть выделенный текст в внешнем редакторе"); editorItem.onclick =()=> textToEditor(); // устанавливаем где и при каких настройках показывать новые пункты .... addEventListener('popupshowing', e=> { if (e.target != e.currentTarget) return; var sel = gContextMenu.isTextSelected; saveItem.hidden = !sel || !cbu.getPrefs("CB.Save.SelectionToFile"); editorItem.hidden = !sel || !cbu.getPrefs("CB.Save.TextToEditor"); baseItem.hidden = !gContextMenu.onImage || !cbu.getPrefs("CB.Save.WebScreenShotOnImage"); }, false, contextMenu); // удалять новые пункти при изминениях .... addDestructor(()=> { baseItem.remove(); saveItem.remove(); editorItem.remove(); }); })(document.getElementById("contentAreaContextMenu"), document.getElementById("context-sep-open")); // Сохранить выделенный текст в файл на рабочем столе ............. function saveSelectionToFile() { // создать текст для записи var url = content.document.location; if (/\.рф/.test(url.host)) url = convertFromUnicode("UTF-8", url); var time = new Date().toLocaleFormat("%H:%M:%S"); var text = convertFromUnicode("UTF-8", getSelect()); var title = convertFromUnicode("UTF-8", getTabLabel()); var text = "..............................................................\n" + title + " - " + time + "\n" + url + "\n\n" + text + "\n\n\n"; var text = text.replace(/\u000A/g, "\u000D\u000A").replace(/\u000D\u000D\u000A/g, "\u000D\u000A"); // путь к файлу и название файла var file = Services.dirsvc.get("Desk", Ci.nsIFile); file.append("Save - " + (new Date()).toLocaleFormat("%d.%m.%Y") + ".txt"); // создать файл с текстом или добавлять текст в файл var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); file.exists() ? foStream.init(file, 0x02 | 0x10, 0664, 0) : foStream.init(file, 0x02|0x08|0x20, 0666, 0); foStream.write(text, text.length); foStream.close(); // всплывающая подсказка дает возможность открыть файл если кликнуть на подсказке var notification = 'Сохранил выделенный текст в файл на рабочий стол'; var image = gBrowser.mCurrentTab.image || self.image; alertsService.showAlertNotification(image, notification, "Кликни чтобы открыть файл", true, "", (s, t)=> { if (t == 'alertclickcallback') file.launch(); }, ""); }; // Создать текстовой файл с выделенным текстом в папке профиля и открыть в редакторе ............. function textToEditor() { var text = convertFromUnicode("UTF-16", getSelect()); var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("TextToEditor.txt"); custombuttonsUtils.writeFile(file.path, text); file.launch(); }; // Конвертировать текст в юникод ............. function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; // Получить название домена с заглавным первым символом и без приставок( типа .ru и .com ) .............. function getSiteName() { try { var domain = content.document.domain.split('.') } catch(e) { return "" }; domain = (domain.length == 2) ? domain[0] : domain[1] return domain[0].toUpperCase() + domain.slice(1).split('.')[0] + " "; }; // Получить название вкладки без не сохраняемых символов и лишних пробелов .............. function getTabLabel() { var label = gBrowser.mCurrentTab.label; var label = label.replace(/[:+.\\\/<>?*|"]+/g, " ").replace(/\s\s+/g, " "); return label.substring(0, 50); }; // Получить выделенный текст из страницы или 'false' .............. function getSelect() { var el = document.commandDispatcher.focusedElement; try { return el.value.substring(el.selectionStart, el.selectionEnd) } catch(e) {}; var sel = document.commandDispatcher.focusedWindow.getSelection(); return (sel == '') ? false : sel.toString().replace(/^\s+|\s+$/g,"").replace(/\u000A/g, "\u000D\u000A").replace(/\u000D\u000D\u000A/g, "\u000D\u000A"); }; Установка кнопки: устанавливаем расширение Сustom Buttons, создаём новую кнопку, откроется окно диалога добавления кнопки, копируем в вкладку Инициализация код инициализации и нажимаем Ok, потом откроется сообщение о успешном создании кнопки, опять нажимаем Ok. Потом открываем настройку панелей инструментов, перетаскиваем кнопку в нужное место на панели и начинаем пользоваться кнопкой. Большое спасибо Dumby за помощь с кнопкой. |
bunda1 > 13-05-2011 19:07:16 |
Открыть внешние win приложения( Firefox24+ )от 12.12.2015. ЛКМ => Показать меню. Код кнопки и код для инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u043D%u0435%u0448%u043D%u0438%u0435%20win%20%u043F%u0440%u0438%u043B%u043E%u0436%u0435%u043D%u0438%u044F%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAMAAwQAKCImDyo4IWkYaBzFQ6xI8FG/V/VCq0jcGGQbkwAQACQAAAAAAAIAAwAAAAAAAAAAAAAAAAEAAAIAAgIAQy4iYp9YOuZUah3/QMJQ/nfxgP97+Yb/f/+L/m/7ev87v0L1BzwIawAAAAAAAgADAAAAAAEAAAIAAAAAQR4Ki7pwNP//tG79aXQg/CGwM/tL3lP+SeJU/krmVf5I5lT8ROZQ/SjIMf8DQgWFAAAAAAACAAMAAAAAMRoKX5hKHP/qoVT69JtU/WVsGP8RmyP/LMAz/ynHM/4ozTP8Jc4w+x/KK/sbxyn7Daoa/wAlA1QAAAEAAgAAA2o5G9GhVyT/z305/N54Nv9eWxTyAnMR6Qp+DvsIig//CpQR/wucE/8KnQ//CpkG/QedAf8FZADWAwIACigYIklrMln7h0VB/6dcJPvBaCz/XC8RlgABAAACDgAlABUANAAfAUsAKABeAz8RlAhfUvkDZnP/CFtw+gcXKklSLEeVlUiB/6VamPykYGD7o1wl/2A4H5YAAAAAAgEBBAAAAAAAAQMEAAAAAAUoVmcHcfT/AIL5+QCK//8BOZ2rXjJRsJtOhf/SgLr9zoK++5hbW/9AKhaGAAAAAAICAQYAAQACAAMDBwAAAAABLlprD4///wqh9/oJsf//Al7M1FsxT6ucUYf/1Iq//Oyd1vzYkMf/X0FVhQAAAAADAgMEAAAAAAACBAQBAAAAAC1aYRSQ//8lpPr6Irj//wtt1t5GJT2DmlCF/82Juvz2reH/8Kbb/eej1P9jR1t+AAAAAAMCAwQBAwUGAAAAAAYkV2wjkv//PLP7+jzE//8VaMXMHhAaP5FLff+4d6b++rno//iz5P/3suP88rLg/2hPYn8AAAAAAQAAAAgPYW1bXeD/PJL0/1DB/fxSy///EkiRlwAAAABqOFzBp16S/+ev2Pz/we///b7s//u86vr7wev/dFxfcgAJYmhxeP//lJH+/juS+/5q0f/+V7n4/AASODwAAAAAHA4YP5NMgP+6fKj9/Mzw/f3H8/7/y/X/7LvU811Ywd54gPv8r6z//puZ/P1Akff5g+L//y5hmZ8AAAAAAgECAwAAAAA1Gy5vmlGG/8iOuP3/1vX/8sfe811YxNZ6g/f5ubb9/a6u+/uvrfz8TZPt/1GFvMcAAQwNAQAAAAAAAAACAQEDAAAAACoVJVh/QW3umWuP7V5fzeSMk/j9zcn//7+//v7Av///o6Pz+yU2XH0AAwYKAQAAAAAAAQEAAAAAAAAAAAEBAQMAAAAADwkHFAcCKUsJGb3VO0vn9lRf5/RdZMzXRkmTmw4OKTUAAAAAAgIDAwABAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%0Avar%20array%20%3D%20%5B%0A%20%20%20%5B%22IE%22%2C%20%22c%3A%5C%5CProgram%20files%5C%5CInternet%20Explorer%5C%5Ciexplore.exe%22%5D%2C%0A%20%20%20%5B%22Explorer%22%2C%20%22c%3A%5C%5Cwindows%5C%5Cexplorer.exe%22%5D%2C%0A%20%20%20%5B%22separator%22%5D%2C%0A%20%20%20%5B%22Cmd%20Prompt%22%2C%20%22C%3A%5C%5Cwindows/system32%5C%5Ccmd.exe%22%5D%2C%0A%20%20%20%5B%22Media%20Player%22%2C%20%22C%3A%5C%5CProgram%20Files%5C%5CWindows%20Media%20Player%5C%5Cwmplayer.exe%22%5D%2C%0A%20%20%20%5B%22Task%20Manager%22%2C%20%22C%3A%5C%5Cwindows%5C%5Csystem32%5C%5Ctaskmgr.exe%22%5D%2C%20%0A%20%20%20%5B%22Control%20Panel%22%2C%20%22C%3A%5C%5Cwindows%5C%5Csystem32%5C%5Ccontrol.exe%22%5D%2C%0A%20%20%20%5B%22separator%22%5D%2C%0A%20%20%20%5B%22Notepad%22%2C%20%22c%3A%5C%5Cwindows%5C%5Cnotepad.exe%22%5D%2C%0A%20%20%20%5B%22Calculator%22%2C%20%22C%3A%5C%5Cwindows%5C%5Csystem32%5C%5Ccalc.exe%22%5D%2C%0A%20%20%20%5B%22Virtual%20Keyboard%22%2C%20%22C%3A%5C%5Cwindows%5C%5Csystem32%5C%5COSK.exe%22%5D%2C%0A%20%20%20%5B%22Character%20table%22%2C%20%22C%3A%5C%5Cwindows%5C%5Csystem32%5C%5Ccharmap.exe%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0Avar%20menuPopup%20%3D%20self.appendChild%28%20document.createElement%28%22menupopup%22%29%20%29%3B%0Aarray.forEach%28%28m%29%3D%3E%20%7B%0A%20%20%20if%20%28m%20%3D%3D%20%22separator%22%29%20%7B%20menuPopup.appendChild%28%20document.createElement%28%22menuseparator%22%29%20%29%3B%20return%20%7D%3B%0A%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m%5B0%5D%29%3B%20%20%20%20%20%0A%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20mItem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20m%5B1%5D%29%3B%0A%20%20%20mItem.onclick%20%3De%3D%3E%20Components.Constructor%28%22@mozilla.org/file/local%3B1%22%2C%20%22nsIFile%22%2C%20%22initWithPath%22%29%28m%5B1%5D%29.launch%28%29%3B%0A%20%20%20menuPopup.appendChild%28mItem%29%3B%0A%7D%29%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this._handleClick =()=> menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); var array = [ ["IE", "c:\\Program files\\Internet Explorer\\iexplore.exe"], ["Explorer", "c:\\windows\\explorer.exe"], ["separator"], ["Cmd Prompt", "C:\\windows/system32\\cmd.exe"], ["Media Player", "C:\\Program Files\\Windows Media Player\\wmplayer.exe"], ["Task Manager", "C:\\windows\\system32\\taskmgr.exe"], ["Control Panel", "C:\\windows\\system32\\control.exe"], ["separator"], ["Notepad", "c:\\windows\\notepad.exe"], ["Calculator", "C:\\windows\\system32\\calc.exe"], ["Virtual Keyboard", "C:\\windows\\system32\\OSK.exe"], ["Character table", "C:\\windows\\system32\\charmap.exe"] ]; var menuPopup = self.appendChild( document.createElement("menupopup") ); array.forEach((m)=> { if (m == "separator") { menuPopup.appendChild( document.createElement("menuseparator") ); return }; var mItem = document.createElement("menuitem"); mItem.setAttribute("label", m[0]); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", "moz-icon://file://" + m[1]); mItem.onclick =e=> Components.Constructor("@mozilla.org/file/local;1", "nsIFile", "initWithPath")(m[1]).launch(); menuPopup.appendChild(mItem); }); |
imyax > 24-05-2011 22:22:28 |
Панель поиска на сайте(Firefox3.6-5.0) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0430%u043D%u0435%u043B%u044C%20%u043F%u043E%u0438%u0441%u043A%u0430%20%u043D%u0430%20%u0441%u0430%u0439%u0442%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAmBJREFUeJx9k09IVGEUxc/33pvJMZ2mxiCY2WolFANjQtDCKIIIQcOVtBDatTJo5aIyENoUroKEtrr0rXLTnxFbhIwyGg3+KZiccRQsnfHNjPNm3r23hfScl9HZfd/9nXsuF64SETTq4teBy37lG9VF69KhRYkJNtdyNteTNteeZOMzy428amwQSw9O60rr27C3sUcWCAQA0KGhBQGEJYg6O+ZG90y/p8Gj3HjTrLW4/tMpRDO1PP6nMLUiQP5cpHym/fPNqaoBAO/256eKVHLNfaEexJo7EAucR6aWh1lIIGEtAAB+6RZC3Bz93rQ9BaBfdaXvXWHI/GJlxU2RePJY8vjWJB7mX7rvtnILmLlbq3JtbMPe9sBP8xOIJQYQensV5tYHAMBQWy9QcFym5K+irmhMC6gTnXtkeRqMbk1gyfmGYshGitcBAIW6BZTIZWyDoOrSaYhI5M+2PTptYCjci+Fzg4dTrbwCtKOyKAETRwzif5gBfOx4jZ7WOFLlVQwvPcfsThII6h6GhKE5TJt6Y+u/ZGbfY3ZvAQj7gKDh/isBiGnTKHEl3YJApIiyxzicfYFQKYBMMQc0a0DAG6KqABmc1nysj4QleCw51TmJRPcbDF24C5zUj9U1i8B1GtFW42ayzo4ZplYPkLAWkNhNIrOTBXYdr3mfQWCT7ywnlYjgxtz9pjUjt15SB9GCr3JEFhygLoBPASHDNUuFcvLjoF0erFU9x3T20/VpsPSV/FXYBkGUuAtT1cOxCWzy7SXvMTXq1Ny1SyB5JiRd4nCUhEGgHClOspLHfCv1pZH/DQCsPJc3oUS/AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E/*Initialization%20Code*/%0Avar%20menu%20%3D%20%26lt%3Bpanel%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20onclick%3D%22this.%20parentNode.%20handleClick%20%28event%29%3B%22%26gt%3B%0A%20%20%20%20%20%20%20%20%26lt%3Bvbox%26gt%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%26lt%3Btoolbarbutton%20id%3D%22custombuttons-button%22%0A%20%20%20%20%20tooltiptext%3D%22%u041F%u043E%u0438%u0441%u043A%20Google%20%u043D%u0430%20%u0441%u0430%u0439%u0442%u0435%22%0A%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAACXBIWXMAAAsSAAALEgHS3X78AAACyElEQVQokTWSTWhcVRhAz3fvfW/ezGQmba0ZTJvEWtNKk53UCKViNkFREH/AlSBSCqWopYtSV1oUGnGjKwV1qehGK6RgQbAFhXaitsEumhaTFtMxGWeSJp1M8mbevZ+L4OpsD5wjZyc/GnfOfdPTU+wT48gnFuNy5DLPjuo1CvN3CUkOVEEAlGwz2xCRY05VzxfscH6g8BzNWmD8RRjYZ9B/akiyDod3QW8R4giNLOI9t76u5u/cqH3qCsU4//jIBG8/m/LQkHB9Gt76UOjfW8EXK7iZKlQCOEEiC6IMjz/K/J+380YE9o56Boc9WddTm/dcPJdisKz1OO7YBWp2iUVZYiVdorPcgL/vkbbaOJ9BaZvy8vHA52eU5Vml3XYA/Dy0wIWdN+lLWkRB6FuN2b0Y8XAtxjTbuCyD5mLglaNKlAvc+MNw6PnAleaPXK5fIMoMnVaLzAjzFm4OBrp7lP7KGi7dgMnjKS8cEZ6cgJfe6GW6fpEz0yewtks52s59SYmMxWJBFRXl+0MpThXOTXWZmkp5/ajh1MeWZONB9uRHmVn+lSyyGBGc2SIKQQLBKg71HBzNmHi1zMhYCY0D+7Y/xsl4knevHmP630s8kOwEAbMVGi8BDQkuX0p457MEE/9E9941fvkuorL/GUb2j/Ha0Jvcbs5RX71LziaoBgBUlJgc9uBu3ht7qpcw9z7b5HeKoUqjNkdLdvHEIxPM1me4UvuNgknIMk/wSvDgGgVc868qpUaH/h0NolwRkTzJwiVW6geIDhwmUodPQSPQoKCAKABOg2qhdV02M8OGriPGUA6r2GSVzS74boZ2IKQQtqz/X1xNIJYvv+3g11qEtRa+U6Y9+AGFgRN8dfkTzs/+QK/JkaVdtKNoR4mWSoiKyJGnB0+L+rPi2yoiomKx5FkuOq6WV1g3GYmLEStYa3HWqjFOrDVf/AddhjkVPuJ3DwAAAABJRU5ErkJggg%3D%3D%22%0A%20%20%20%20%20cb-oncommand%3D%22var%20uri%20%3D%20%26lt%3B%21%5BCDATA%5Bjavascript%3Avoid%28str%3Dprompt%28%27%u041F%u043E%u0438%u0441%u043A%20%u0441%20%u043F%u043E%u043C%u043E%u0449%u044C%u044E%20Google%20%u043D%u0430%20%u044D%u0442%u043E%u043C%20%u0441%u0430%u0439%u0442%u0435%3A%27+document.domain%2C%27%27%29%29%3Bif%28str%29%7Bvoid%28open%28%27http%3A//www.google.com/search%3Fas_q%3D%27+str+%27%26amp%3Bamp%3Bas_sitesearch%3D%27+document.domain%29%29%3B%7D%5D%5D%26gt%3B%3B%26amp%3B%23xA%3B%26amp%3B%23xA%3Bif%28%21%28%26amp%3Bquot%3BnoscriptUtil%26amp%3Bquot%3B%20in%20window%29%20%7C%7C%20%21noscriptUtil.service.handleBookmark%28uri%29%29%26amp%3B%23xA%3B%26amp%3B%23xA%3B%20%20%20%20loadURI%28uri%29%3B%22%0A/%26gt%3B%20%20%20%20%20%0A%20%20%20%26lt%3Btoolbarbutton%20id%3D%22custombuttons-button%22%0A%20%20%20%20%20tooltiptext%3D%22%u041F%u043E%u0438%u0441%u043A%20Yandex%20%u043D%u0430%20%u0441%u0430%u0439%u0442%u0435%22%0A%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sEEwEgIKwpdqAAAAKSSURBVDjLjZFPaBx1FMc/MztFQ2sUSUi7JUJ2kw0psmCgUEFP3nsVpYd6EduDt4g2khaxCHrsIYVKD2m0N+kp17IQBmwyWUYsdC8ZZnelhnVlM3Tnz77Z3/PQTWyqh3zh8ePxee/x3vdn+b6/DHzLxsaGDk6dUnzfV1XFnogims2m4rqu5uu3VD+6oEmSqBOGIa999hUAf9RqWL7vKyNVq1WLLMt08HhHsyxT13XfIwxD3b90ScMw1Eajodb29vZhC2DheZ4aY/4TOzs7aozBjqKIOI6x3p55/p57iziOqVQqeJ6nTq/Xo9VqYd2+xytLS+y3e0StFgDtdvtna21t7WmpVDrNS9rd3f26VCrdtHzfbwNnX+Kr1Wr1KgD/t2Capup53uvGGGwRQURg+RPML3cRESzLwhjTExEcEQFAL1wEEfJRvrCwgOu6nzrdbheAyZVvMBMTdM+/e7hIkiRXnDiOAfi70yG9fBkZ5VEUMTMz847T7/exHz0iuXYNsgzT7x+c+cPc3BxWrVbTQqFw5Ma9vT2mpqYsAOr1enswGOhxFASB1uv1L1WVg3BE5Kxt2wyHw+fjJcN+cAfr8a/Q/RPGTjL8/gEA09PTFAqF77a2tt5cXFz8AsBO05QDL0UE+8MPyMemSJfvIhc/h/ruET45OUmxWFxyXfcnEcHOsuxIgXk2hm7/jogw/OsZ/Pb0CBcRxsfHqVQqH29ubtadJEnodDr/OnTnR169f5+TxSLJmTNkmdB9kY8UBAFJkqw6WZbRH1kPcGJlhfzJE7q1GoWHDzlx4wbpC9wYQxAE5Hn+/vz8/Ka1vr6u5XKZ4yjPc5rNJqr6Rrlc3gdw8jy/3mg0rgCnjzFjdXZ29ipw+Gv/AGlK32Dj9T2iAAAAAElFTkSuQmCC%22%0A%20%20%20%20%20cb-oncommand%3D%22var%20uri%20%3D%20%26lt%3B%21%5BCDATA%5B%20javascript%3Avoid%28str%3Dprompt%28%27%25D0%259F%25D0%25BE%25D0%25B8%25D1%2581%25D0%25BA%2520%25D1%2581%2520%25D0%25BF%25D0%25BE%25D0%25BC%25D0%25BE%25D1%2589%25D1%258C%25D1%258E%2520Yandex%2520%25D0%25BD%25D0%25B0%2520%25D1%258D%25D1%2582%25D0%25BE%25D0%25BC%2520%25D1%2581%25D0%25B0%25D0%25B9%25D1%2582%25D0%25B5%3A%27+document.domain%2C%27%27%29%29%3Bif%28str%29%7Bvoid%28open%28%27http%3A//www.yandex.ru/yandsearch%3Frpt%3Drad%26amp%3Bamp%3Btext%3D%27+str+%27%26amp%3Bamp%3Bserverurl%3D%27+document.domain%29%29%3B%7D%26amp%3B%23xA%3B%26amp%3B%23xA%3B%5D%5D%26gt%3B%3B%26amp%3B%23xA%3Bif%28%21%28%26amp%3Bquot%3BnoscriptUtil%26amp%3Bquot%3B%20in%20window%29%20%7C%7C%20%21noscriptUtil.service.handleBookmark%28uri%29%29%26amp%3B%23xA%3B%20%20%20%20loadURI%28uri%29%3B%22%0A/%26gt%3B%0A%20%20%20%20%20%0A%20%20%20%26lt%3Btoolbarbutton%20id%3D%22custombuttons-button%22%0A%20%20%20%20%20tooltiptext%3D%22%u041F%u043E%u0438%u0441%u043A%20Bing%20%u043D%u0430%20%u0441%u0430%u0439%u0442%u0435%22%0A%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAACXBIWXMAAAsSAAALEgHS3X78AAAB50lEQVQokY3TP2xNYRzG8c855173ttrS1t9GakCFVBASg0TCIrGI2UBiMBoMJoOJVSIWk4FVIhESkfg7+DOIQQkGrTSlbVT1323PPa/hvbdak2d6T875Pu/7e97nJOH22kDwV4n/VQmEJXCyFE4sN/4XTjI2HaWyhl8fGH1FViXkhKLhkUWjUCwzK0nL7L5IRx+fbzL4gHILSUqpSlGQT8ZDZG1k5UXTEoGFKRQUC3TtoGtPNGvpoT7D5Cd+DTD5hdoYpbYlMycZUjYcYuNh2rcw+53aKFkrrT0kJb7e4ctNRp6QVhpwc46OvrjDy3N8f8rsOOVWVu9k62k2n6DnCC/OMvJYGtlGMNODPDvFwHWmBinmqI3z7T7Pz/DtHpVu9l+m1NqE8whPvOfHa1b2kpZjaElKdR3FPEN3mZ+gYxtJJlXkTH6OcLmdSif5b9IVDbiMOvkUXXvjNw2l6nN8vBGfuvdx4Go82tQQ8z+ZGSav0X+eLSdjuG8vkU9Lwq3uIORsOsauC3TtZnqIsTfM/mDFKjr7WbU9bvDuCgPXCHVJuL02CCHOtLKX9QfZfJz2PsJCvKqZIYYfMfwwtlBA2oCbqtcazWojq8Q1FDXymfi+mcViSZrKqrFp9ekY2uL/0Ug9a1nW7T+z2Kt7++dAvwAAAABJRU5ErkJggg%3D%3D%22%20%0A%20%20%20%20%20cb-oncommand%3D%22var%20uri%20%3D%20%26lt%3B%21%5BCDATA%5B%20javascript%3Avoid%28str%3Dprompt%28%27%u041F%u043E%u0438%u0441%u043A%20%u0441%20%u043F%u043E%u043C%u043E%u0449%u044C%u044E%20Bing%20%u043D%u0430%20%u044D%u0442%u043E%u043C%20%u0441%u0430%u0439%u0442%u0435%3A%27+document.domain%2C%27%27%29%29%3Bif%28str%29%7Bvoid%28open%28%27http%3A//www.bing.com/search%3Fq%3Dsite%3A%27+document.location.hostname+%20%27+%27%20+str+%27%26amp%3Bamp%3Bgo%3D%26amp%3Bamp%3Bform%3DQBRE%26amp%3Bamp%3Bfilt%3Dall%27%29%29%3B%7D%26amp%3B%23xA%3B%5D%5D%26gt%3B%3B%26amp%3B%23xA%3Bif%28%21%28%26amp%3Bquot%3BnoscriptUtil%26amp%3Bquot%3B%20in%20window%29%20%7C%7C%20%21noscriptUtil.service.handleBookmark%28uri%29%29%26amp%3B%23xA%3B%20%20%20%20loadURI%28uri%29%3B%22%0A/%26gt%3B%0A%20%20%20%20%20%0A%20%20%20%26lt%3Btoolbarbutton%20id%3D%22custombuttons-button%22%0A%20%20%20%20%20tooltiptext%3D%22%u041F%u043E%u0438%u0441%u043A%20BugMeNot%20%u043B%u043E%u0433%u0438%u043D%u044B%2C%u043F%u0430%u0440%u043E%u043B%u0438%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u0430%22%20%0A%20%20%20%20%20image%3D%22data%3Aimage/x-icon%3Bbase64%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%22%0A%20%20%20%20%20cb-oncommand%3D%22var%20uri%20%3D%20%26lt%3B%21%5BCDATA%5B%20javascript%3Avoid%28window.open%28%27http%3A//www.bugmenot.com/view/%27+location.hostname%2C%27BugMeNot_%27+location.hostname%2C%27width%3D500%2Cheight%3D400%2Cleft%3D100%2Ctop%3D100%2Cscrollbars%3Dyes%2Clocation%3Dno%27%29%29%26amp%3B%23xA%3B%5D%5D%26gt%3B%3B%26amp%3B%23xA%3Bif%28%21%28%26amp%3Bquot%3BnoscriptUtil%26amp%3Bquot%3B%20in%20window%29%20%7C%7C%20%21noscriptUtil.service.handleBookmark%28uri%29%29%26amp%3B%23xA%3B%20%20%20%20loadURI%28uri%29%3B%22%0A%20/%26gt%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%26lt%3Btoolbarbutton%20id%3D%22custombuttons-button%22%20%0A%20%20%20%20%20tooltiptext%3D%22%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u043E%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0435%20%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%22%20%0A%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAfpJREFUeJydk0trU0EUx/9n5ia9SbwI2lBsaUTsItbqTsGFIjbgVxBd+A1cdVNwXwi4cCGIrt121ZWYLqrdVAUfIGpbKUlqqolJSe773jnjwqp5XAp6VsP8zvmfx8whrTX67elO62LGkEuC6BwB+YgZbsRNL1bvfaUWb56Z3Oj3p36BF7udiinFtYYTwA4V+IARACkIBMBTvHr77NT8sID5aq9b7YZRvmEHOMyU1vBjbn53w8LdS6d9cZB5JSl42jIxbZkDd5IIgpC30nIFAOh5vX3ZlGLtU9sZyXZrdhIA8PBNDVZaDrCGEyBUfMVgrcsNJ7nstVobdTvAru2jeCw3wKyUxA/FZZGWYsYOVaJAreejG8SYOmKOsGxKwg7VjMGMcR56SgCYyI2hdPI4AODJh68jXBAhUDwuIubE7N/62vqYMB8AiBRDeDG3KBEfboo1Yq1bwo3UlhT/LtHyQpiG3BIh88L/VLC976IXxgviRvHEuqe4ooYGOZEb+3M+dTQzwDY7DkBUeXx9bp201nj0tmYCqApCPmP8/TBupFDt+QCAgmUim5LY7Dio94Lm8ue9QvtOyR9Ypvuvd55FrOetlEQ2JSHoV3OKNVpeiO19FyCqPCjNln7H0PA6lze+XAiVXvJjPu/FKh8pBghNInpnCFq8d7X4st//J3JK/Ibf2DGRAAAAAElFTkSuQmCC%22%0A%20%20%20%20%20cb-oncommand%3D%22var%20uri%20%3D%20%26lt%3B%21%5BCDATA%5B%20javascript%3A%28function%28%29%7Bvar%20meta%3D%27%27%3Bvar%20scripts%3D%27%27%3Bvar%20embed%3D%27%27%3Bvar%20m%3Ddocument.getElementsByTagName%28%27meta%27%29%3Bfor%28var%20i%3D0%2Cmi%3Bmi%3Dm%5Bi%5D%3Bi++%29%7Bmeta+%3D%28mi.name%3Fmi.name+%27%3A%20%27%3A%28mi.httpEquiv%3Fmi.httpEquiv+%27%3A%27%3A%27%27%29%29+mi.content+%27%255Cn%27%7D%3Bvar%2520s%3Ddocument.getElementsByTagName%28%27script%27%29%3Bfor%28var%2520i%3D0%2Csi%3Bsi%3Ds%5Bi%5D%3Bi++%29%7Bif%28si.src%29scripts+%3Dsi.src+%27%255Cn%27%7D%3Bvar%2520e%3Ddocument.getElementsByTagName%28%27embed%27%29%3Bvar%2520o%3Ddocument.getElementsByTagName%28%27object%27%29%3Bvar%2520fullUrl%3Dfunction%28url%29%7Bvar%2520a%3Ddocument.createElement%28%27a%27%29%3Ba.href%3Durl%3Breturn%2520url%3Fa.href+%27%255Cn%27%3A%27%27%7D%3Bfor%28var%2520i%3D0%2Cei%3Bei%3De%5Bi%5D%3Bi++%29%7Bembed+%3DfullUrl%28ei.getAttribute%28%27src%27%29%29%7D%3Bfor%28var%2520i%3D0%2Coi%3Boi%3Do%5Bi%5D%3Bi++%29%7Bvar%2520src%3Doi.getAttribute%28%27data%27%29%7C%7Coi.getAttribute%28%27src%27%29%3Bif%28%21src%29%7Bfor%28var%2520j%3D0%2Cp%3Bp%3Doi.childNodes%5Bj%5D%3Bj++%29%7Bif%28p.tagName%26amp%3Bamp%3B%26amp%3Bamp%3Bp.tagName.toLowerCase%28%29%3D%3D%27param%27%26amp%3Bamp%3B%26amp%3Bamp%3Bp.getAttribute%28%27name%27%29.match%28/%5E%28movie%7Cdata%7Csrc%7Ccode%7Cfilename%7Curl%29%24/i%29%29%7Bsrc%3Dp.getAttribute%28%27value%27%29%3B%2520break%7D%7D%7D%3Bvar%2520lnk%3DfullUrl%28src%29%3Bif%28embed.indexOf%28lnk%29%3D%3D-1%29embed+%3Dlnk%7D%3Bvar%2520lastmod%3D%28Date.parse%28document.lastModified%29%3D%3D0%29%3F%27%27%3Adocument.lastModified%3Bvar%2520mode%3Ddocument.getElementsByTagName%28%27HTmL%27%29.length%3D%3D0%3F%27Really%2520strict%27%3A%28document.compatMode%3D%3D%27CSS1Compat%27%3F%27Normal%2520strict%27%3A%27Quirks%27%29%3Bvar%2520title%3Ddocument.title%7C%7C%28document.getElementsByTagName%28%27title%27%29%5B0%5D%26amp%3Bamp%3B%26amp%3Bamp%3Bdocument.getElementsByTagName%28%27title%27%29%5B0%5D.text%29%7C%7C%27%27%3B%2520if%28meta%29meta%3D%27%255CnMeta-%25D0%25B4%25D0%25B0%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B5%3A%255Cn%27+meta%3Bif%28scripts%29scripts%3D%27%255Cn%25D0%25A1%25D0%25BA%25D1%2580%25D0%25B8%25D0%25BF%25D1%2582%25D1%258B%3A%255Cn%27+scripts%3Bif%28embed%29embed%3D%27%255Cn%25D0%2592%25D1%2581%25D1%2582%25D1%2580%25D0%25BE%25D0%25B5%25D0%25BD%25D0%25BD%25D1%258B%25D0%25B5%2520%25D0%25BE%25D0%25B1%25D1%258A%25D0%25B5%25D0%25BA%25D1%2582%25D1%258B%3A%255Cn%27+embed%3B%2520alert%28%27%25D0%2598%25D0%25B4%25D0%25B5%25D0%25BD%25D1%2582%25D0%25B8%25D1%2584%25D0%25B8%25D0%25BA%25D0%25B0%25D1%2586%25D0%25B8%25D1%258F%2520%25D0%25B1%25D1%2580%25D0%25B0%25D1%2583%25D0%25B7%25D0%25B5%25D1%2580%25D0%25B0%3A%2520%27+navigator.userAgent+%27%255Cn%255Cn%25D0%2597%25D0%25B0%25D0%25B3%25D0%25BE%25D0%25BB%25D0%25BE%25D0%25B2%25D0%25BE%25D0%25BA%3A%2520%27+title+%27%255Cn%255Cn%25D0%2590%25D0%25B4%25D1%2580%25D0%25B5%25D1%2581%3A%2520%27+location.href+%27%255Cn%255Cn%25D0%25A0%25D0%25B5%25D1%2584%25D0%25B5%25D1%2580%25D1%2580%25D0%25B5%25D1%2580%3A%2520%27+document.referrer+%27%255Cn%255Cn%25D0%2594%25D0%25B0%25D1%2582%25D0%25B0%2520%25D0%25BF%25D0%25BE%25D1%2581%25D0%25BB%25D0%25B5%25D0%25B4%25D0%25BD%25D0%25B5%25D0%25B3%25D0%25BE%2520%25D0%25B8%25D0%25B7%25D0%25BC%25D0%25B5%25D0%25BD%25D0%25B5%25D0%25BD%25D0%25B8%25D1%258F%3A%2520%27+lastmod+%27%255Cn%255Cn%25D0%25A0%25D0%25B5%25D0%25B6%25D0%25B8%25D0%25BC%2520%25D0%25BE%25D1%2582%25D0%25BE%25D0%25B1%25D1%2580%25D0%25B0%25D0%25B6%25D0%25B5%25D0%25BD%25D0%25B8%25D1%258F%3A%2520%27+mode+%27%2520mode%255Cn%27+meta+scripts+embed%29%7D%29%28%29%5D%5D%26gt%3B%3B%26amp%3B%23xA%3Bif%28%21%28%26amp%3Bquot%3BnoscriptUtil%26amp%3Bquot%3B%20in%20window%29%20%7C%7C%20%21noscriptUtil.service.handleBookmark%28uri%29%29%26amp%3B%23xA%3B%20%20%20%20loadURI%28uri%29%3B%22%0A/%26gt%3B%0A%20%20%20%20%20%0A%20%20%20%26lt%3Btoolbarbutton%20id%3D%22custombuttons-button%22%0A%20%20%20%20%20tooltiptext%3D%22Leader-When%20security%20matters-%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u043E%20%u0441%u0430%u0439%u0442%u0435%20%22%0A%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAASElEQVQ4jWM4c+bMf0oww5kzZ/7//MJAFkYxgFSbsRpALMBvAIMxKqa/AciGkOUFmhmAJEZHA7Bh+hhAAOA0gKKkTFFmogQDAJUMSdAatE7rAAAAAElFTkSuQmCC%22%0A%20%20%20%20%20cb-oncommand%3D%22var%20uri%20%3D%20%26lt%3B%21%5BCDATA%5B%20javascript%3Avoid%28open%28%27http%3A//leader.ru/secure/whoiz.html%3Fq%3D%27+document.domain%29%29%3B%26amp%3B%23xA%3B%5D%5D%26gt%3B%3B%26amp%3B%23xA%3Bif%28%21%28%26amp%3Bquot%3BnoscriptUtil%26amp%3Bquot%3B%20in%20window%29%20%7C%7C%20%21noscriptUtil.service.handleBookmark%28uri%29%29%26amp%3B%23xA%3B%20%20%20%20loadURI%28uri%29%3B%22%0A/%26gt%3B%0A%20%20%20%20%20%0A%20%20%20%26lt%3Btoolbarbutton%20id%3D%22custombuttons-button%22%0A%20%20%20%20%20tooltiptext%3D%22Leader-When%20security%20matters-%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u043E%u0431%20IP%20%22%0A%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAASElEQVQ4jWM4c+bMf0oww5kzZ/7//MJAFkYxgFSbsRpALMBvAIMxKqa/AciGkOUFmhmAJEZHA7Bh+hhAAOA0gKKkTFFmogQDAJUMSdAatE7rAAAAAElFTkSuQmCC%22%0A%20%20%20%20%20cb-oncommand%3D%22var%20uri%20%3D%20%26lt%3B%21%5BCDATA%5B%20javascript%3Avoid%28str%3Dprompt%28%27%25D0%2592%25D0%25B2%25D0%25B5%25D1%2581%25D1%2582%25D0%25B8%2520IP%2520%25D0%25B0%25D0%25B4%25D1%2580%25D0%25B5%25D1%2581%27%29%29%3Bif%28str%29%7Bvoid%28open%28%27http%3A//leader.ru/secure/whoiz.html%3Fq%3D%27+str%29%29%3B%7D%3B%26amp%3B%23xA%3B%5D%5D%26gt%3B%3B%26amp%3B%23xA%3Bif%28%21%28%26amp%3Bquot%3BnoscriptUtil%26amp%3Bquot%3B%20in%20window%29%20%7C%7C%20%21noscriptUtil.service.handleBookmark%28uri%29%29%26amp%3B%23xA%3B%20%20%20%20loadURI%28uri%29%3B%22%0A/%26gt%3B%0A%20%20%20%20%20%0A%20%20%20%20%20%20%20%26lt%3B/vbox%26gt%3B%0A%26lt%3B/panel%26gt%3B%3B%0Athis.%20appendChild%20%28custombuttonsUtils.%20makeXML%20%28menu%29%29%3B%0Athis.%20type%20%3D%20%22menu%22%3B%0Athis.%20orient%20%3D%20%22horizontal%22%3B%0A%0Athis.%20handleClick%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20menuitem%20%3D%20event.%20target%3B%0A%20%20%20%20var%20url%20%3D%20menuitem.%20getAttributeNS%20%28%22http%3A//xsms.nm.ru/custombuttons/%22%2C%20%22url%22%29%3B%0A%20%20%20%20if%20%28%21url%29%20return%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%200%29%0A%20%20%20%20%20%20%20%20loadURI%20%28url%29%3B%0A%20%20%20%20else%20if%20%28event.%20button%20%3D%3D%201%29%0A%20%20%20%20%20%20%20%20gBrowser.%20addTab%20%28url%29%3B%0A%20%20%20%20this.%20open%20%3D%20false%3B%0A%7D%3B%0A%0A%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Инициализация: Выделить код Код:/*Initialization Code*/ var menu = <panel xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:cb="http://xsms.nm.ru/custombuttons/" onclick="this. parentNode. handleClick (event);"> <vbox> <toolbarbutton id="custombuttons-button" tooltiptext="Поиск Google на сайте" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAACXBIWXMAAAsSAAALEgHS3X78AAACyElEQVQokTWSTWhcVRhAz3fvfW/ezGQmba0ZTJvEWtNKk53UCKViNkFREH/AlSBSCqWopYtSV1oUGnGjKwV1qehGK6RgQbAFhXaitsEumhaTFtMxGWeSJp1M8mbevZ+L4OpsD5wjZyc/GnfOfdPTU+wT48gnFuNy5DLPjuo1CvN3CUkOVEEAlGwz2xCRY05VzxfscH6g8BzNWmD8RRjYZ9B/akiyDod3QW8R4giNLOI9t76u5u/cqH3qCsU4//jIBG8/m/LQkHB9Gt76UOjfW8EXK7iZKlQCOEEiC6IMjz/K/J+380YE9o56Boc9WddTm/dcPJdisKz1OO7YBWp2iUVZYiVdorPcgL/vkbbaOJ9BaZvy8vHA52eU5Vml3XYA/Dy0wIWdN+lLWkRB6FuN2b0Y8XAtxjTbuCyD5mLglaNKlAvc+MNw6PnAleaPXK5fIMoMnVaLzAjzFm4OBrp7lP7KGi7dgMnjKS8cEZ6cgJfe6GW6fpEz0yewtks52s59SYmMxWJBFRXl+0MpThXOTXWZmkp5/ajh1MeWZONB9uRHmVn+lSyyGBGc2SIKQQLBKg71HBzNmHi1zMhYCY0D+7Y/xsl4knevHmP630s8kOwEAbMVGi8BDQkuX0p457MEE/9E9941fvkuorL/GUb2j/Ha0Jvcbs5RX71LziaoBgBUlJgc9uBu3ht7qpcw9z7b5HeKoUqjNkdLdvHEIxPM1me4UvuNgknIMk/wSvDgGgVc868qpUaH/h0NolwRkTzJwiVW6geIDhwmUodPQSPQoKCAKABOg2qhdV02M8OGriPGUA6r2GSVzS74boZ2IKQQtqz/X1xNIJYvv+3g11qEtRa+U6Y9+AGFgRN8dfkTzs/+QK/JkaVdtKNoR4mWSoiKyJGnB0+L+rPi2yoiomKx5FkuOq6WV1g3GYmLEStYa3HWqjFOrDVf/AddhjkVPuJ3DwAAAABJRU5ErkJggg==" cb-oncommand="var uri = <![CDATA[javascript:void(str=prompt('Поиск с помощью Google на этом сайте:'+document.domain,''));if(str){void(open('http://www.google.com/search?as_q='+str+'&as_sitesearch='+document.domain));}]]>;

if(!("noscriptUtil" in window) || !noscriptUtil.service.handleBookmark(uri))

 loadURI(uri);" /> <toolbarbutton id="custombuttons-button" tooltiptext="Поиск Yandex на сайте" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sEEwEgIKwpdqAAAAKSSURBVDjLjZFPaBx1FMc/MztFQ2sUSUi7JUJ2kw0psmCgUEFP3nsVpYd6EduDt4g2khaxCHrsIYVKD2m0N+kp17IQBmwyWUYsdC8ZZnelhnVlM3Tnz77Z3/PQTWyqh3zh8ePxee/x3vdn+b6/DHzLxsaGDk6dUnzfV1XFnogims2m4rqu5uu3VD+6oEmSqBOGIa999hUAf9RqWL7vKyNVq1WLLMt08HhHsyxT13XfIwxD3b90ScMw1Eajodb29vZhC2DheZ4aY/4TOzs7aozBjqKIOI6x3p55/p57iziOqVQqeJ6nTq/Xo9VqYd2+xytLS+y3e0StFgDtdvtna21t7WmpVDrNS9rd3f26VCrdtHzfbwNnX+Kr1Wr1KgD/t2Capup53uvGGGwRQURg+RPML3cRESzLwhjTExEcEQFAL1wEEfJRvrCwgOu6nzrdbheAyZVvMBMTdM+/e7hIkiRXnDiOAfi70yG9fBkZ5VEUMTMz847T7/exHz0iuXYNsgzT7x+c+cPc3BxWrVbTQqFw5Ma9vT2mpqYsAOr1enswGOhxFASB1uv1L1WVg3BE5Kxt2wyHw+fjJcN+cAfr8a/Q/RPGTjL8/gEA09PTFAqF77a2tt5cXFz8AsBO05QDL0UE+8MPyMemSJfvIhc/h/ruET45OUmxWFxyXfcnEcHOsuxIgXk2hm7/jogw/OsZ/Pb0CBcRxsfHqVQqH29ubtadJEnodDr/OnTnR169f5+TxSLJmTNkmdB9kY8UBAFJkqw6WZbRH1kPcGJlhfzJE7q1GoWHDzlx4wbpC9wYQxAE5Hn+/vz8/Ka1vr6u5XKZ4yjPc5rNJqr6Rrlc3gdw8jy/3mg0rgCnjzFjdXZ29ipw+Gv/AGlK32Dj9T2iAAAAAElFTkSuQmCC" cb-oncommand="var uri = <![CDATA[ javascript:void(str=prompt('%D0%9F%D0%BE%D0%B8%D1%81%D0%BA%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20Yandex%20%D0%BD%D0%B0%20%D1%8D%D1%82%D0%BE%D0%BC%20%D1%81%D0%B0%D0%B9%D1%82%D0%B5:'+document.domain,''));if(str){void(open('http://www.yandex.ru/yandsearch?rpt=rad&text='+str+'&serverurl='+document.domain));}

]]>;
if(!("noscriptUtil" in window) || !noscriptUtil.service.handleBookmark(uri))
 loadURI(uri);" /> <toolbarbutton id="custombuttons-button" tooltiptext="Поиск Bing на сайте" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAACXBIWXMAAAsSAAALEgHS3X78AAAB50lEQVQokY3TP2xNYRzG8c855173ttrS1t9GakCFVBASg0TCIrGI2UBiMBoMJoOJVSIWk4FVIhESkfg7+DOIQQkGrTSlbVT1323PPa/hvbdak2d6T875Pu/7e97nJOH22kDwV4n/VQmEJXCyFE4sN/4XTjI2HaWyhl8fGH1FViXkhKLhkUWjUCwzK0nL7L5IRx+fbzL4gHILSUqpSlGQT8ZDZG1k5UXTEoGFKRQUC3TtoGtPNGvpoT7D5Cd+DTD5hdoYpbYlMycZUjYcYuNh2rcw+53aKFkrrT0kJb7e4ctNRp6QVhpwc46OvrjDy3N8f8rsOOVWVu9k62k2n6DnCC/OMvJYGtlGMNODPDvFwHWmBinmqI3z7T7Pz/DtHpVu9l+m1NqE8whPvOfHa1b2kpZjaElKdR3FPEN3mZ+gYxtJJlXkTH6OcLmdSif5b9IVDbiMOvkUXXvjNw2l6nN8vBGfuvdx4Go82tQQ8z+ZGSav0X+eLSdjuG8vkU9Lwq3uIORsOsauC3TtZnqIsTfM/mDFKjr7WbU9bvDuCgPXCHVJuL02CCHOtLKX9QfZfJz2PsJCvKqZIYYfMfwwtlBA2oCbqtcazWojq8Q1FDXymfi+mcViSZrKqrFp9ekY2uL/0Ug9a1nW7T+z2Kt7++dAvwAAAABJRU5ErkJggg==" cb-oncommand="var uri = <![CDATA[ javascript:void(str=prompt('Поиск с помощью Bing на этом сайте:'+document.domain,''));if(str){void(open('http://www.bing.com/search?q=site:'+document.location.hostname+ '+' +str+'&go=&form=QBRE&filt=all'));}
]]>;
if(!("noscriptUtil" in window) || !noscriptUtil.service.handleBookmark(uri))
 loadURI(uri);" /> <toolbarbutton id="custombuttons-button" tooltiptext="Поиск BugMeNot логины,пароли для сайта" image="data:image/x-icon;base64,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" cb-oncommand="var uri = <![CDATA[ javascript:void(window.open('http://www.bugmenot.com/view/'+location.hostname,'BugMeNot_'+location.hostname,'width=500,height=400,left=100,top=100,scrollbars=yes,location=no'))
]]>;
if(!("noscriptUtil" in window) || !noscriptUtil.service.handleBookmark(uri))
 loadURI(uri);" /> <toolbarbutton id="custombuttons-button" tooltiptext="Информация о браузере и открытой странице" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAfpJREFUeJydk0trU0EUx/9n5ia9SbwI2lBsaUTsItbqTsGFIjbgVxBd+A1cdVNwXwi4cCGIrt121ZWYLqrdVAUfIGpbKUlqqolJSe773jnjwqp5XAp6VsP8zvmfx8whrTX67elO62LGkEuC6BwB+YgZbsRNL1bvfaUWb56Z3Oj3p36BF7udiinFtYYTwA4V+IARACkIBMBTvHr77NT8sID5aq9b7YZRvmEHOMyU1vBjbn53w8LdS6d9cZB5JSl42jIxbZkDd5IIgpC30nIFAOh5vX3ZlGLtU9sZyXZrdhIA8PBNDVZaDrCGEyBUfMVgrcsNJ7nstVobdTvAru2jeCw3wKyUxA/FZZGWYsYOVaJAreejG8SYOmKOsGxKwg7VjMGMcR56SgCYyI2hdPI4AODJh68jXBAhUDwuIubE7N/62vqYMB8AiBRDeDG3KBEfboo1Yq1bwo3UlhT/LtHyQpiG3BIh88L/VLC976IXxgviRvHEuqe4ooYGOZEb+3M+dTQzwDY7DkBUeXx9bp201nj0tmYCqApCPmP8/TBupFDt+QCAgmUim5LY7Dio94Lm8ue9QvtOyR9Ypvuvd55FrOetlEQ2JSHoV3OKNVpeiO19FyCqPCjNln7H0PA6lze+XAiVXvJjPu/FKh8pBghNInpnCFq8d7X4st//J3JK/Ibf2DGRAAAAAElFTkSuQmCC" cb-oncommand="var uri = <![CDATA[ javascript:(function(){var meta='';var scripts='';var embed='';var m=document.getElementsByTagName('meta');for(var i=0,mi;mi=m[i];i++){meta+=(mi.name?mi.name+': ':(mi.httpEquiv?mi.httpEquiv+':':''))+mi.content+'%5Cn'};var%20s=document.getElementsByTagName('script');for(var%20i=0,si;si=s[i];i++){if(si.src)scripts+=si.src+'%5Cn'};var%20e=document.getElementsByTagName('embed');var%20o=document.getElementsByTagName('object');var%20fullUrl=function(url){var%20a=document.createElement('a');a.href=url;return%20url?a.href+'%5Cn':''};for(var%20i=0,ei;ei=e[i];i++){embed+=fullUrl(ei.getAttribute('src'))};for(var%20i=0,oi;oi=o[i];i++){var%20src=oi.getAttribute('data')||oi.getAttribute('src');if(!src){for(var%20j=0,p;p=oi.childNodes[j];j++){if(p.tagName&&p.tagName.toLowerCase()=='param'&&p.getAttribute('name').match(/^(movie|data|src|code|filename|url)$/i)){src=p.getAttribute('value');%20break}}};var%20lnk=fullUrl(src);if(embed.indexOf(lnk)==-1)embed+=lnk};var%20lastmod=(Date.parse(document.lastModified)==0)?'':document.lastModified;var%20mode=document.getElementsByTagName('HTmL').length==0?'Really%20strict':(document.compatMode=='CSS1Compat'?'Normal%20strict':'Quirks');var%20title=document.title||(document.getElementsByTagName('title')[0]&&document.getElementsByTagName('title')[0].text)||'';%20if(meta)meta='%5CnMeta-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5:%5Cn'+meta;if(scripts)scripts='%5Cn%D0%A1%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D1%8B:%5Cn'+scripts;if(embed)embed='%5Cn%D0%92%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D0%BE%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D1%8B:%5Cn'+embed;%20alert('%D0%98%D0%B4%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%86%D0%B8%D1%8F%20%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%B0:%20'+navigator.userAgent+'%5Cn%5Cn%D0%97%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BE%D0%BA:%20'+title+'%5Cn%5Cn%D0%90%D0%B4%D1%80%D0%B5%D1%81:%20'+location.href+'%5Cn%5Cn%D0%A0%D0%B5%D1%84%D0%B5%D1%80%D1%80%D0%B5%D1%80:%20'+document.referrer+'%5Cn%5Cn%D0%94%D0%B0%D1%82%D0%B0%20%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B5%D0%B3%D0%BE%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F:%20'+lastmod+'%5Cn%5Cn%D0%A0%D0%B5%D0%B6%D0%B8%D0%BC%20%D0%BE%D1%82%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F:%20'+mode+'%20mode%5Cn'+meta+scripts+embed)})()]]>;
if(!("noscriptUtil" in window) || !noscriptUtil.service.handleBookmark(uri))
 loadURI(uri);" /> <toolbarbutton id="custombuttons-button" tooltiptext="Leader-When security matters-Информация о сайте " image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAASElEQVQ4jWM4c+bMf0oww5kzZ/7//MJAFkYxgFSbsRpALMBvAIMxKqa/AciGkOUFmhmAJEZHA7Bh+hhAAOA0gKKkTFFmogQDAJUMSdAatE7rAAAAAElFTkSuQmCC" cb-oncommand="var uri = <![CDATA[ javascript:void(open('http://leader.ru/secure/whoiz.html?q='+document.domain));
]]>;
if(!("noscriptUtil" in window) || !noscriptUtil.service.handleBookmark(uri))
 loadURI(uri);" /> <toolbarbutton id="custombuttons-button" tooltiptext="Leader-When security matters-Информация об IP " image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAASElEQVQ4jWM4c+bMf0oww5kzZ/7//MJAFkYxgFSbsRpALMBvAIMxKqa/AciGkOUFmhmAJEZHA7Bh+hhAAOA0gKKkTFFmogQDAJUMSdAatE7rAAAAAElFTkSuQmCC" cb-oncommand="var uri = <![CDATA[ javascript:void(str=prompt('%D0%92%D0%B2%D0%B5%D1%81%D1%82%D0%B8%20IP%20%D0%B0%D0%B4%D1%80%D0%B5%D1%81'));if(str){void(open('http://leader.ru/secure/whoiz.html?q='+str));};
]]>;
if(!("noscriptUtil" in window) || !noscriptUtil.service.handleBookmark(uri))
 loadURI(uri);" /> </vbox> </panel>; this. appendChild (custombuttonsUtils. makeXML (menu)); this. type = "menu"; this. orient = "horizontal"; this. handleClick = function (event) { var menuitem = event. target; var url = menuitem. getAttributeNS ("http://xsms.nm.ru/custombuttons/", "url"); if (!url) return; if (event. button == 0) loadURI (url); else if (event. button == 1) gBrowser. addTab (url); this. open = false; }; *Добавлено "Leader-When security matters-Информация об IP адресе" 21.07.2011 24-05-2011 22:46:54 Открыть в Opera(Ubuntu)(Firefox3.6-5.0) Открывает текущую страницу в Opera скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EOpera%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAABGdBTUEAAK/INwWK6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9oFFBMkGw0H7zIAAAL9SURBVDjLbZJfTJtlFMZ/30cLS6lS/pWWtBKyBruyLSSyEBMn88q5BC/0yi1uckWWeOENN2Yak116IUY3wWhkM8HFxERF1DlD3KLAHDrKhM0ULHzCJhUKtHVroXyPF7AKcefqvO95znPe5zkvbI/oYw0qHAxJmn//DAbA/MBXylqzbJhFm5A/wuV29tvPdSPIfz3vlG8l57xmfDk6Jkmb1e/r3br53GFJUn8NY1wP4LdXV7V08kUNB7bazldDb6gqnrEs+95CQuNnu9TtwV8YcOXIIVuSYq+/qvETxyRJ0+++rQuV9PG1Dy7XIntjQ3PtbYrVG5KkYT8arKWtwBI52Np5qcG9HGsJ5E417Y4279vr2mFEQceDotuDf/xsl+4tJJSxLLs3VBk/X70NEOvptiVp+r0zWo6Oaf6bAZ3zmnEA80IlfeZa1gD4Z2SIxc8+pfbwEeqbn6wDcJQ6iBQXOwDQb9fIp5cAyN0cNQDM0iJem3vjZQBcyRgPlTlA4MxlGPABI0G4EUTJjmPKXvxCdiql6Uc99mhgm5PN+/a6TjXtjk63BHKXGtzLjQdbOwur3y63pxI6lqDLSRvwQkVjfQQgORGfBD55ZZ3++5gdBB9VgcDvrgvdfuLNHjnLyoyK/fvJJhIg2FVTQ3I8yvrqqn7s7DBSs1O1RXCnfREcfV6wbdq8TS1f+g604jv0lGEYBn9+3Evm91sAuBvCBI+/BJIRfvp57vz8w+3E2NVn+7z0m0cT4DI5XZzOULFnD4axqSpzeZC10RHWRkfIXBnceq9BRThMSTqDy+D00QSYAKUmk3lrQumfLha0FS9ZOGeiOGeilCxZhfv08HfkrQmVFjG5478MBYj/GsC2jj8jSUp92KW5IJoLotQHb0mSrPY2/RLAHgoQf+AWusNVkcdzK9fq6iMu5yONclbXGADrfy9ofXbCmJmZvDtc4jlw8tbi5P8IPB4PKysrhEIhR4Wn3Jsq3uW7azrKAFx2fvXhtexfyZXlxNTUVP4+FuBfs3VpxpzbeVsAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E1%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Avar%20page%20%3D%20gBrowser.currentURI%3B%0Avar%20browser%20%3D%20%22/usr/bin/opera%22%3B%0A%0Avar%20file%20%3D%20%20Components.classes%5B%22@mozilla.org/file/local%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.createInstance%28Components.interfaces.nsILocalFile%29%3B%0Afile.initWithPath%28browser%29%3B%0A%0Avar%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%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.createInstance%28Components.interfaces.nsIProcess%29%3B%0Aprocess.init%28file%29%3B%0Aprocess.run%28false%2C%20%5Bpage.spec%5D%2C%201%29%3B%0Areturn%20true%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%22Opera%22%20%u0434%u043B%u044F%20Linux%20OS%0A%3Clabel%3E%20%0Aid%20%3D%20%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var page = gBrowser.currentURI; var browser = "/usr/bin/opera"; var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(browser); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.run(false, [page.spec], 1); return true; Открыть в Midori(Ubuntu)(Firefox3.6-5.0) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EMidori%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAKTSURBVDiNlZHPb1RVHMU/90dnXqHtDLaNtWIpnfAj0IKEAAsXmBgXxo0u3MkfYEwIC2GBGxO3sHHLzh2NEkw0JkCUxBAWZmwhKEjjD8SpkynpS2d4zpt37/deF61DTBMMZ39Ozucc9f78sddD4JxS+gDPoBjDba35wHrH+YP7Ds9Vhir/b+qWka6Cob/Jis6BWz/Vz9sQ4lxbLdNcu7vZ4AwvrB1loryLldYjfuks4F58wLApscVWCCHOWVcUdHqr/3UWlun8OK/sfIut24f57MYFHgxeZ3h6gLG/DjP0cJzG5FVcUWBdIXiRvndLq8abtffYMz1Lr8j55MuzZFN3SKxhsvEabxw6wbe3L+NFcIVgnfN48QCo5ihvz55ix2SNGCNf3ZgnnVhgJK1xfPQE+48dQilFs/07/jmPcx4rXhAReFzmnR1nGKtMkGUZSilqz88ynn3I3pcPkiRJv+VyZ4kBEcQL1vmAD8JM9io7t+/euCgCMPPSrk3DZllGW7eohIDzAe03EPaOH8EYQ5qmT71yudlAjeR48Xjn0d4JrucZKlex1lKv16lWqxhj6PV6hBAwxvQDVtdW0IPr2N4J2nvBec9qu0We54QQANBas7i4SKVSoVQq9QN+bd2FgbDewAtafCCawNf3PuXhn39gre3v8C+OUgqAzuMON1uXkCj4IIgP6w1EhPbUHT7+5l2+X7pOt9tFREiShEajQVEUAFy8dgEzkyKygeAFM3kk+WhkyhAJlEaFdPg+C9/dI+aGNFvhys0vaHfWuFL/nB8G5rFbIcRAiIH0twJ19GT157H95d3JNt3nDC7iuhFtwA5qfB6wZY16siV5Gnj0Y+++1ZbTzVvdc1HYfPpTpAxLpUSf/gcI2lvMWbR5vAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Avar%20page%20%3D%20gBrowser.currentURI%3B%0Avar%20browser%20%3D%20%22/usr/bin/midori%22%3B%0A%0Avar%20file%20%3D%20%20Components.classes%5B%22@mozilla.org/file/local%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.createInstance%28Components.interfaces.nsILocalFile%29%3B%0Afile.initWithPath%28browser%29%3B%0A%0Avar%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%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.createInstance%28Components.interfaces.nsIProcess%29%3B%0Aprocess.init%28file%29%3B%0Aprocess.run%28false%2C%20%5Bpage.spec%5D%2C%201%29%3B%0Areturn%20true%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%22Opera%22%20%u0434%u043B%u044F%20Linux%20OS%0A%3Clabel%3E%20%0Aid%20%3D%20%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var page = gBrowser.currentURI; var browser = "/usr/bin/midori"; var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(browser); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.run(false, [page.spec], 1); return true; |
imyax > 25-05-2011 21:59:12 |
Текстовые смайлы(Firefox3.6-5.0) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0422%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0435%20%u0441%u043C%u0430%u0439%u043B%u044B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAi9JREFUeJyVk8tLVHEUxz+/e2dGzWlCp2wxQykyiwQlw0JbhFJBEIEugqB90L5NLnr9A+3b1KZcxeiuxYTUoskQLc1ZJGXYSBk+ynnPvfecFlPqnaDHd3P48X2cc35wjKriw8KRHkzotmL3KXZc1UO9ShatTCOVm4HeT3O75cYXkDmaxNjDVJfB2wT1fhI2YsK4JoqqM95wbHnEH5C91kju2SLuWpzqR/4EhyiuNGVzbjzRNpAuWwBspcb+xQwQZB2bfDxsvR+rTZDpOw7yiuLMX827UXD2oyon7FtXWx/grHQiRR5OJrh+vx+Ano4Nn6GeMwgitFtqNXXhbQLwaDKxU8MnfQH1XMCq4IrpslQ19uu3Lw8t1uqFA9A84Auo54xRRCRm3Le9apdnd5TNA7Xu+RdQSPsXr+M2cnswzlx3NlDNxMDjf6Bq2MyHViy8fEZMeJtIzcaZSHf8ZphId3A32bP9rroWtnEzASE4KiZ6NqTfawGvY8wvRUm9SdB9OAvA/FIrH75E6O6sQuQcbD2hWDaIeKNGVanMHEpaWhwOsk6hHODe0/OkphzfBGf6G7hyqZ1me4XC58dUHRlvGZQRo6psTJ9ubNJ3izb5eMj6BqaBr84Qq4XaKgejQdqiQSgtUFx7TqlUyq6ua6LropZ9x1Scakuq6nDIyhOwKpjAXrAjqBqcSp5CIQd44y2DUndMu1B8ua9bhDsi2ueJxlUEY9ysQaYt492InJL53fofa8ocVmP9V6MAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0Athis.appendChild%28parseFromXML%28%0A%20%20%20%20%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20%20%20%20%20%20%20oncommand%3D%22this.parentNode.insertText%28event.target.getAttribute%28%27cb_text%27%29%29%3B%22%3E%0A%20%3Cmenu%20label%3D%22%u042D%u043C%u043E%u0446%u0438%u044F%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmenupopup%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%29%22%20label%3D%22%3A-%29%20%u0443%u043B%u044B%u0431%u043A%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%28%22%20label%3D%22%3A-%28%20%u0433%u0440%u0443%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%7C%22%20label%3D%22%3A-%7C%20%u0437%u0430%u0434%u0443%u043C%u0447%u0438%u0432%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-D%22%20label%3D%22%3A-D%20%u0441%u043C%u0435%u0445%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22X-D%22%20label%3D%22X-D%20%u0441%u043C%u0435%u0445%20%u0441%20%u0437%u0430%u0436%u043C%u0443%u0440%u0435%u043D%u043D%u044B%u043C%u0438%20%u0433%u043B%u0430%u0437%u0430%u043C%u0438%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-C%22%20label%3D%22%3A-C%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u043E%u0433%u043E%u0440%u0447%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-/%22%20label%3D%22%3A-/%20%u043D%u0435%u0434%u043E%u0432%u043E%u043B%u044C%u0441%u0442%u0432%u043E/%u043E%u0437%u0430%u0434%u0430%u0447%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%5C%22%20label%3D%22%3A-%5C%20%u043D%u0435%u0434%u043E%u0432%u043E%u043B%u044C%u0441%u0442%u0432%u043E/%u043E%u0437%u0430%u0434%u0430%u0447%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-0%22%20label%3D%22%3A-0%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%228-O%22%20label%3D%228-O%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3D-O%22%20label%3D%22%3D-O%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%20%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%5B%20%5D%22%20label%3D%22%3A-%5B%20%5D%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%5B%22%20label%3D%22%3A-%5B%20%u0441%u043C%u0443%u0449%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%250%22%20label%3D%22%250%20%u0441%u0431%u0438%u0442%20%u0441%20%u0442%u043E%u043B%u043A%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3E%3A-D%22%20label%3D%22%3E%3A-D%20%u0437%u043B%u043E%u0440%u0430%u0434%u043D%u044B%u0439%20%20%u0441%u043C%u0435%u0445%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%7D%3A-%3E%22%20label%3D%22%7D%3A-%3E%20%u043A%u043E%u0432%u0430%u0440%u043D%u0430%u044F%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%3E%22%20label%3D%22%5D%3A-%3E%20%u043A%u043E%u0432%u0430%u0440%u043D%u0430%u044F%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A%27-%29%22%20label%3D%22%3A%27-%29%20%u0441%u0438%u043B%u044C%u043D%u044B%u0439%20%u0441%u043C%u0435%u0445%28%u0434%u043E%20%u0441%u043B%u0451%u0437%29%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A%27-D%22%20label%3D%22%3A%27-D%20%u0441%u0438%u043B%u044C%u043D%u044B%u0439%20%u0441%u043C%u0435%u0445%28%u0434%u043E%20%u0441%u043B%u0451%u0437%29%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22D-%3A%22%20label%3D%22D-%3A%20%u0441%u0438%u043B%u044C%u043D%u0430%u044F%20%u0437%u043B%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22/%3A-%28%22%20label%3D%22/%3A-%28%20%AB%u0435%u0434%u0435%u0442%20%u043A%u0440%u044B%u0448%u0430%BB%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22/%3A-%5D%22%20label%3D%22/%3A-%5D%20%AB%u0435%u0434%u0435%u0442%20%u043A%u0440%u044B%u0448%u0430%BB%22%20/%3E%0A%20%20%20%20%20%20%20%20%20%20%3C/menupopup%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/menu%3E%0A%20%3Cmenu%20label%3D%22%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmenupopup%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3B-%29%22%20label%3D%22%3B-%29%20%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-*%22%20label%3D%22%3A-*%20%u0446%u0435%u043B%u043E%u0432%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A_%28%22%20label%3D%22%3A_%28%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A%7E%28%22%20label%3D%22%3A%7E%28%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A%27%28%22%20label%3D%22%3A%27%28%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A*%28%22%20label%3D%22%3A*%28%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%7B%7D%22%20label%3D%22%3A-%7B%7D%20%u0441%u0442%u0440%u0430%u0441%u0442%u043D%u044B%u0439%20%u043F%u043E%u0446%u0435%u043B%u0443%u0439%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-@%22%20label%3D%22%3A-@%20%u043A%u0440%u0438%u0447%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-X%22%20label%3D%22%3A-X%20%u0440%u043E%u0442%20%u043D%u0430%20%u0437%u0430%u043C%u043A%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%21%22%20label%3D%22%3A-%21%20%u043E%u0442%u0432%u0440%u0430%u0449%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-P%22%20label%3D%22%3A-P%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u044F%u0437%u044B%u043A%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-p%22%20label%3D%22%3A-p%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u044F%u0437%u044B%u043A%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3Alol%3A%22%20label%3D%22%3Alol%3A%20%u0433%u0440%u043E%u043C%u043A%u0438%u0439%20%u0441%u043C%u0435%u0445%22%20/%3E%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%3C/menupopup%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/menu%3E%0A%20%3Cmenu%20label%3D%22%u041F%u0435%u0440%u0441%u043E%u043D%u0430%u0436%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmenupopup%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%228-%29%22%20label%3D%228-%29%20%u0447%u0435%u043B%u043E%u0432%u0435%u043A%20%u0432%20%u043E%u0447%u043A%u0430%u0445%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22B-%29%22%20label%3D%22B-%29%20%u0447%u0435%u043B%u043E%u0432%u0435%u043A%20%u0432%20%u043E%u0447%u043A%u0430%u0445%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22O%3A-%29%22%20label%3D%22O%3A-%29%20%u0430%u043D%u0433%u0435%u043B%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%25%29%22%20label%3D%22%25%29%20%u0441%u0443%u043C%u0430%u0441%u0448%u0435%u0434%u0448%u0438%u0439%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A*%29%22%20label%3D%22%3A*%29%u043F%u044C%u044F%u043D%u044B%u0439%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22/b/%22%20label%3D%22/b/%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5Co/%22%20label%3D%22%5Co/%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%u0413%u0433Y%22%20label%3D%22%u0413%u0433Y%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%7B%3A%u20AC%22%20label%3D%22%7B%3A%u20AC%20%u041A%u0442%u0443%u043B%u0445%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3AE%22%20label%3D%22%3AE%20%u041A%u0442%u0443%u043B%u0445%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3B%2C%3B%29%22%20label%3D%22%28%3B%2C%3B%29%20%u041A%u0442%u0443%u043B%u0445%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22*%3AO%29%22%20label%3D%22*%3AO%29%20%u043A%u043B%u043E%u0443%u043D%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-E%22%20label%3D%22%3A-E%20%u043E%u0441%u043A%u0430%u043B%u0435%u043D%u043D%u044B%u0439%20%20%u0432%u0430%u043C%u043F%u0438%u0440%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-F%22%20label%3D%22%3A-F%20%u0432%u0430%u043C%u043F%u0438%u0440%20%u0431%u0435%u0437%20%u043A%u043B%u044B%u043A%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A%3A-%29%22%20label%3D%22%3A%3A-%29%20%u043C%u0443%u0442%u0430%u043D%u0442/%u043F%u0440%u0438%u0448%u0435%u043B%u0435%u0446%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5B%3A%5D%22%20label%3D%22%5B%3A%5D%20%u0440%u043E%u0431%u043E%u0442%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22-%3D%3C%3A-%29%22%20label%3D%22-%3D%3C%3A-%29%20%u0432%u043E%u043B%u0448%u0435%u0431%u043D%u0438%u043A%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%2C%u2019-/%22%20label%3D%22%2C%u2019-/%20%u043A%u0438%u0442%u0430%u0435%u0446%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3C%7C-%29%22%20label%3D%22%3C%7C-%29%20%u043A%u0438%u0442%u0430%u0435%u0446%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%u043E-%29%22%20label%3D%22%u043E-%29%20%u0446%u0438%u043A%u043B%u043E%u043F%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22O-%29%22%20label%3D%22O-%29%20%u0446%u0438%u043A%u043B%u043E%u043F%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%5D%5B%22%20label%3D%22%3A-%5D%5B%20%u0447%u0435%u0440%u0435%u043F%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3A-%3F%22%20label%3D%22%3A-%3F%20%u043A%u0443%u0440%u044F%u0449%u0438%u0439%20%u0442%u0440%u0443%u0431%u043A%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%u042D%3A-%29%22%20label%3D%22%u042D%3A-%29%20%u043E%u043B%u0435%u043D%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3C3%22%20label%3D%22%3C3%20%u0441%u0435%u0440%u0434%u0446%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22@%7D-%3E--%22%20label%3D%22@%7D-%3E--%20%u0440%u043E%u0437%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5Cm/%22%20label%3D%22%5Cm/%20%u043A%u043E%u0437%u0430%20%28%u0436%u0435%u0441%u0442%29%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5Cm/_%22%20label%3D%22%5Cm/_%20%u043A%u043E%u0437%u0430%20%28%u0436%u0435%u0441%u0442%29%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5B%3A%7C%7C%7C%3A%5D%22%20label%3D%22%5B%3A%7C%7C%7C%3A%5D%20%u0431%u0430%u044F%u043D%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5B%3A%5D/%5C/%5C/%5C%5B%3A%5D%22%20label%3D%22%5B%3A%5D/%5C/%5C/%5C%5B%3A%5D%20%u0431%u0430%u044F%u043D%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5B%3A%5D%7C%7C%7C%5B%3A%5D%22%20label%3D%22%5B%3A%5D%7C%7C%7C%5B%3A%5D%20%u0431%u0430%u044F%u043D%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28_%21_%29%22%20label%3D%22%28_%21_%29%20%u0437%u0430%u0434%u043D%u0438%u0446%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%29%28%29%22%20label%3D%22%28%29%28%29%20%u0437%u0430%u0434%u043D%u0438%u0446%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%3C/menupopup%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/menu%3E%0A%20%20%20%20%3C/menupopup%3E%0A%29%29%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0Athis.insertText%20%3D%20function%28str%29%20%7B%0A%20%20%20%20var%20command%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28command%29%3B%0A%20%20%20%20if%28controller%20%26%26%20controller.isCommandEnabled%28command%29%29%20%7B%0A%20%20%20%20%20%20%20%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20str%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28command%2C%20params%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Afunction%20parseFromXML%28xml%29%20%7B%0A%20%20%20%20var%20pp%20%3D%20XML.prettyPrinting%3B%0A%20%20%20%20XML.prettyPrinting%20%3D%20false%3B%0A%20%20%20%20var%20elt%20%3D%20new%20DOMParser%28%29.parseFromString%28xml.toXMLString%28%29%2C%20%22application/xml%22%29.documentElement%3B%0A%20%20%20%20XML.prettyPrinting%20%3D%20pp%3B%0A%20%20%20%20return%20elt%3B%0A%7D%0A%0Avar%20that%20%3D%20this%3B%0Athis.hideDropMarker%20%3D%20function%28%29%20%7B%0A%20%20var%20dropMarker%20%3D%20document.getAnonymousElementByAttribute%28that%2C%20%22class%22%2C%20%22toolbarbutton-menu-dropmarker%22%29%3B%0A%20%20if%20%28dropMarker%29%20%7B%0A%20%20%20%20dropMarker.setAttribute%28%22hidden%22%2C%20%22true%22%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20setTimeout%28that.hideDropMarker%2C%2010%29%3B%0A%20%20%7D%0A%7D%0Athis.hideDropMarker%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%3Clabel%3E%20%0Aid%20%3D%20%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Инициализация: Выделить код Код:/*Initialization Code*/ this.appendChild(parseFromXML( <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="this.parentNode.insertText(event.target.getAttribute('cb_text'));"> <menu label="Эмоция"> <menupopup> <menuitem cb_text=":-)" label=":-) улыбка" /> <menuitem cb_text=":-(" label=":-( грусть" /> <menuitem cb_text=":-|" label=":-| задумчивость" /> <menuitem cb_text=":-D" label=":-D смех" /> <menuitem cb_text="X-D" label="X-D смех с зажмуренными глазами" /> <menuitem cb_text=":-C" label=":-C сильное огорчение" /> <menuitem cb_text=":-/" label=":-/ недовольство/озадаченность" /> <menuitem cb_text=":-\" label=":-\ недовольство/озадаченность" /> <menuitem cb_text=":-0" label=":-0 удивление" /> <menuitem cb_text="8-O" label="8-O сильное удивление" /> <menuitem cb_text="=-O" label="=-O сильное удивление" /> <menuitem cb_text=":-[ ]" label=":-[ ] сильное удивление" /> <menuitem cb_text=":-[" label=":-[ смущение" /> <menuitem cb_text="%0" label="%0 сбит с толку" /> <menuitem cb_text=">:-D" label=">:-D злорадный смех" /> <menuitem cb_text="}:->" label="}:-> коварная улыбка" /> <menuitem cb_text=":->" label="]:-> коварная улыбка" /> <menuitem cb_text=":'-)" label=":'-) сильный смех(до слёз)" /> <menuitem cb_text=":'-D" label=":'-D сильный смех(до слёз)" /> <menuitem cb_text="D-:" label="D-: сильная злость" /> <menuitem cb_text="/:-(" label="/:-( «едет крыша»" /> <menuitem cb_text="/:-]" label="/:-] «едет крыша»" /> </menupopup> </menu> <menu label="Действие"> <menupopup> <menuitem cb_text=";-)" label=";-) подмигивать" /> <menuitem cb_text=":-*" label=":-* целовать" /> <menuitem cb_text=":_(" label=":_( плакать" /> <menuitem cb_text=":~(" label=":~( плакать" /> <menuitem cb_text=":'(" label=":'( плакать" /> <menuitem cb_text=":*(" label=":*( плакать" /> <menuitem cb_text=":-{}" label=":-{} страстный поцелуй" /> <menuitem cb_text=":-@" label=":-@ кричать" /> <menuitem cb_text=":-X" label=":-X рот на замке" /> <menuitem cb_text=":-!" label=":-! отвращение" /> <menuitem cb_text=":-P" label=":-P показывать язык" /> <menuitem cb_text=":-p" label=":-p показывать язык" /> <menuitem cb_text=":lol:" label=":lol: громкий смех" /> </menupopup> </menu> <menu label="Персонаж"> <menupopup> <menuitem cb_text="8-)" label="8-) человек в очках" /> <menuitem cb_text="B-)" label="B-) человек в очках" /> <menuitem cb_text="O:-)" label="O:-) ангел" /> <menuitem cb_text="%)" label="%) сумасшедший" /> <menuitem cb_text=":*)" label=":*)пьяный" /> <menuitem cb_text="/b/" label="/b/ Медвед/«Превед!" /> <menuitem cb_text="\o/" label="\o/ Медвед/«Превед!»" /> <menuitem cb_text="ГгY" label="ГгY Медвед/«Превед!»" /> <menuitem cb_text="{:€" label="{:€ Ктулху" /> <menuitem cb_text=":E" label=":E Ктулху" /> <menuitem cb_text="(;,;)" label="(;,;) Ктулху" /> <menuitem cb_text="*:O)" label="*:O) клоун" /> <menuitem cb_text=":-E" label=":-E оскаленный вампир" /> <menuitem cb_text=":-F" label=":-F вампир без клыка" /> <menuitem cb_text="::-)" label="::-) мутант/пришелец" /> <menuitem cb_text="[:]" label="[:] робот" /> <menuitem cb_text="-=<:-)" label="-=<:-) волшебник" /> <menuitem cb_text=",’-/" label=",’-/ китаец" /> <menuitem cb_text="<|-)" label="<|-) китаец" /> <menuitem cb_text="о-)" label="о-) циклоп" /> <menuitem cb_text="O-)" label="O-) циклоп" /> <menuitem cb_text=":-][" label=":-][ череп" /> <menuitem cb_text=":-?" label=":-? курящий трубку" /> <menuitem cb_text="Э:-)" label="Э:-) олень" /> <menuitem cb_text="<3" label="<3 сердце" /> <menuitem cb_text="@}->--" label="@}->-- роза" /> <menuitem cb_text="\m/" label="\m/ коза (жест)" /> <menuitem cb_text="\m/_" label="\m/_ коза (жест)" /> <menuitem cb_text="[:|||:]" label="[:|||:] баян" /> <menuitem cb_text="[:]/\/\/\[:]" label="[:]/\/\/\[:] баян" /> <menuitem cb_text="[:]|||[:]" label="[:]|||[:] баян" /> <menuitem cb_text="(_!_)" label="(_!_) задница" /> <menuitem cb_text="()()" label="()() задница" /> </menupopup> </menu> </menupopup> )); this.type = "menu"; this.orient = "horizontal"; this.insertText = function(str) { var command = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(command); if(controller && controller.isCommandEnabled(command)) { controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"] .createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", str); controller.doCommandWithParams(command, params); } }; function parseFromXML(xml) { var pp = XML.prettyPrinting; XML.prettyPrinting = false; var elt = new DOMParser().parseFromString(xml.toXMLString(), "application/xml").documentElement; XML.prettyPrinting = pp; return elt; } var that = this; this.hideDropMarker = function() { var dropMarker = document.getAnonymousElementByAttribute(that, "class", "toolbarbutton-menu-dropmarker"); if (dropMarker) { dropMarker.setAttribute("hidden", "true"); } else { setTimeout(that.hideDropMarker, 10); } } this.hideDropMarker(); 25-05-2011 22:09:28 скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0422%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0435%20%u0441%u043C%u0430%u0439%u043B%u044B%28%u0410%u0437%u0438%u044F%29%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAi9JREFUeJyVk8tLVHEUxz+/e2dGzWlCp2wxQykyiwQlw0JbhFJBEIEugqB90L5NLnr9A+3b1KZcxeiuxYTUoskQLc1ZJGXYSBk+ynnPvfecFlPqnaDHd3P48X2cc35wjKriw8KRHkzotmL3KXZc1UO9ShatTCOVm4HeT3O75cYXkDmaxNjDVJfB2wT1fhI2YsK4JoqqM95wbHnEH5C91kju2SLuWpzqR/4EhyiuNGVzbjzRNpAuWwBspcb+xQwQZB2bfDxsvR+rTZDpOw7yiuLMX827UXD2oyon7FtXWx/grHQiRR5OJrh+vx+Ano4Nn6GeMwgitFtqNXXhbQLwaDKxU8MnfQH1XMCq4IrpslQ19uu3Lw8t1uqFA9A84Auo54xRRCRm3Le9apdnd5TNA7Xu+RdQSPsXr+M2cnswzlx3NlDNxMDjf6Bq2MyHViy8fEZMeJtIzcaZSHf8ZphId3A32bP9rroWtnEzASE4KiZ6NqTfawGvY8wvRUm9SdB9OAvA/FIrH75E6O6sQuQcbD2hWDaIeKNGVanMHEpaWhwOsk6hHODe0/OkphzfBGf6G7hyqZ1me4XC58dUHRlvGZQRo6psTJ9ubNJ3izb5eMj6BqaBr84Qq4XaKgejQdqiQSgtUFx7TqlUyq6ua6LropZ9x1Scakuq6nDIyhOwKpjAXrAjqBqcSp5CIQd44y2DUndMu1B8ua9bhDsi2ueJxlUEY9ysQaYt492InJL53fofa8ocVmP9V6MAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0Athis.appendChild%28parseFromXML%28%0A%20%20%20%20%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20%20%20%20%20%20%20oncommand%3D%22this.parentNode.insertText%28event.target.getAttribute%28%27cb_text%27%29%29%3B%22%3E%0A%20%3Cmenu%20label%3D%22%u042D%u043C%u043E%u0446%u0438%u044F%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmenupopup%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28n_n%29%22%20label%3D%22%28n_n%29%u0443%u043B%u044B%u0431%u043A%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%5E_%5E%29%22%20label%3D%22%28%5E_%5E%29%u0440%u0430%u0434%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3C_%3E%29%22%20label%3D%22%28%3C_%3E%29%u0433%u0440%u0443%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28v_v%29%22%20label%3D%22%28v_v%29%u0433%u0440%u0443%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%5E%20%5E%29%22%20label%3D%22%28%5E%20%5E%29%u0443%u043B%u044B%u0431%u043A%u0430%20%u0447%u0435%u0440%u0435%u0437%20%u0441%u0438%u043B%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3E_%3C%29%22%20label%3D%22%28%3E_%3C%29%u0437%u043B%u043E%u0441%u0442%u044C/%u043A%u0430%u0442%u0435%u0433%u043E%u0440%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3E_%3E%29%22%20label%3D%22%28%3E_%3E%29%u0441%u043A%u0435%u043F%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3C_%3C%29%22%20label%3D%22%28%3C_%3C%29%u0441%u043A%u0435%u043F%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28-_-%A8%29%22%20label%3D%22%28-_-%A8%29%u0441%u043A%u043E%u043D%u0444%u0443%u0436%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5E_%5E%A8%22%20label%3D%22%5E_%5E%A8%u0441%u043C%u0443%u0449%u0451%u043D%u043D%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22*%5E_%5E*%22%20label%3D%22*%5E_%5E*%u0441%u043C%u0443%u0449%u0435%u043D%u043D%u043E%u0441%u0442%u044C%20%u0441%20%u043F%u043E%u043A%u0440%u0430%u0441%u043D%u0435%u043D%u0438%u0435%u043C%22%20/%3E%20%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28-_-%23%29%22%20label%3D%22%28-_-%23%29%u044F%u0440%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28-_-%A4%29%22%20label%3D%22%28-_-%A4%29%u044F%u0440%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28-_-+%29%22%20label%3D%22%28-_-+%29%u044F%u0440%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28o_o%29%22%20label%3D%22%28o_o%29%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%280_0%29%22%20label%3D%22%280_0%29%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28O_o%29%22%20label%3D%22%28O_o%29%u043E%u0447%u0435%u043D%u044C%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28o_O%29%22%20label%3D%22%28o_O%29%u043E%u0447%u0435%u043D%u044C%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28V_v%29%22%20label%3D%22%28V_v%29%u043D%u0435%u043F%u0440%u0438%u044F%u0442%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28@_@%29%22%20label%3D%22%28@_@%29%u043E%u0431%u0430%u043B%u0434%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%25_%25%29%22%20label%3D%22%28%25_%25%29%u0443%u0441%u0442%u0430%u043B%u043E%u0441%u0442%u044C%20%u0433%u043B%u0430%u0437%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28u_u%29%22%20label%3D%22%28u_u%29%u0434%u0435%u043F%u0440%u0435%u0441%u0441%u0438%u044F%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3Ex%3C%21%29%22%20label%3D%22%28%3Ex%3C%21%29%u0447%u0435%u0440%u0442%21%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%228%28%3E_%3C%298%22%20label%3D%228%28%3E_%3C%298%u0440%u0435%u0432%u043D%u0438%u0432%u044B%u0439%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3E%3E%29%22%20label%3D%22%28%3E%3E%29%u043A%u043E%u0441%u043E%u0439%20%u0432%u0437%u0433%u043B%u044F%u0434%2C%20%u043D%u0435%u0434%u043E%u0432%u0435%u0440%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%280_%3C%29%22%20label%3D%22%280_%3C%29%u043D%u0435%u0440%u0432%u043D%u044B%u0439%20%u0442%u0438%u043A%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28*_*%29%22%20label%3D%22%28*_*%29%u0444%u0430%u043D%u0430%u0442%u0435%u043D%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22-__-%22%20label%3D%22-__-%u0444%u043B%u0435%u0433%u043C%u0430%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C/%AB%u043C%u0434%u0430-%u0430-%u0430%u2026%BB%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%289_9%29%22%20label%3D%22%289_9%29%u043D%u0435%20%u0441%u043F%u0430%u043B%20%u0432%u0441%u044E%20%u043D%u043E%u0447%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3D__%3D%22%20label%3D%22%3D__%3D%u0441%u043E%u043D%u043D%u044B%u0439%20%u0438%u043B%u0438%20%AB%u0434%u043E%u0441%u0442%u0430%u043B%u0438%u2026%BB%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28-.-%29Zzz.%22%20label%3D%22%28-.-%29Zzz.%u0441%u043F%u044F%u0449%u0438%u0439%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28-_-%29Zzz.%22%20label%3D%22%28-_-%29Zzz.%u0441%u043F%u044F%u0449%u0438%u0439%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28-_-%3B%29%22%20label%3D%22%28-_-%3B%29%u0431%u043E%u043B%u0435%u0437%u043D%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%u0425_%u0445%29%22%20label%3D%22%28%u0425_%u0445%29%u0442%u0440%u0443%u043F%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28+_+%29%22%20label%3D%22%28+_+%29%u0442%u0440%u0443%u043F%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%u0445_%u0445%29%22%20label%3D%22%28%u0445_%u0445%29%u0442%u0440%u0443%u043F%22%20/%3E%0A%20%20%20%20%20%20%20%20%20%20%3C/menupopup%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/menu%3E%0A%20%3Cmenu%20label%3D%22%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmenupopup%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%5E_%7E%29%22%20label%3D%22%28%5E_%7E%29%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%5E_-%29%22%20label%3D%22%28%5E_-%29%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3B_%3B%29%22%20label%3D%22%28%3B_%3B%29%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28T_T%29%22%20label%3D%22%28T_T%29%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28TT.TT%29%22%20label%3D%22%28TT.TT%29%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28ToT%29%22%20label%3D%22%28ToT%29%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22Q__Q%22%20label%3D%22Q__Q%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3DX%3D%22%20label%3D%22%3DX%3D%u0440%u0443%u043A%u043E%u043F%u043E%u0436%u0430%u0442%u0438%u0435%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5E%7D%7B%5E%22%20label%3D%22%5E%7D%7B%5E%u043B%u044E%u0431%u043E%u0432%u044C%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%5E3%5E%29%22%20label%3D%22%28%5E3%5E%29%u043F%u043E%u0446%u0435%u043B%u0443%u0439%22%20/%3E%0A%20%20%20%20%20%20%20%20%20%20%3C/menupopup%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/menu%3E%0A%20%3Cmenu%20label%3D%22%u041F%u0435%u0440%u0441%u043E%u043D%u0430%u0436%22%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Cmenupopup%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3D%5E.%5E%3D%29%22%20label%3D%22%28%3D%5E.%5E%3D%29%u043A%u043E%u0448%u043A%u0430%28%u043D%u044F%29%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%3D%5E_%5E%3D%22%20label%3D%22%3D%5E_%5E%3D%u043A%u043E%u0448%u043A%u0430%28%u043D%u044F%29%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28O%2Co%29%22%20label%3D%22%28O%2Co%29%u0441%u043E%u0432%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5E..%5E%22%20label%3D%22%5E..%5E%u0441%u0432%u0438%u043D%u044C%u044F%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22///_%u0422%22%20label%3D%22///_%u0422%u044D%u043C%u043E-%u043A%u0438%u0434%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22T_%5C%5C%5C%22%20label%3D%22T_%5C%5C%5C%u044D%u043C%u043E-%u043A%u0438%u0434%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22///_%5E%22%20label%3D%22///_%5E%u044D%u043C%u043E-%u043A%u0438%u0434%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%5E_%5C%5C%5C%22%20label%3D%22%5E_%5C%5C%5C%u044D%u043C%u043E-%u043A%u0438%u0434%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%A8%5C%28%u043E_%u041E%29/%A8%29%22%20label%3D%22%28%A8%5C%28%u043E_%u041E%29/%A8%29%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28jIj%29%22%20label%3D%22%28jIj%29%u041A%u0442%u0443%u043B%u0445%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28%3B%2C%3B%29%22%20label%3D%22%28%3B%2C%3B%29%u041A%u0442%u0443%u043B%u0445%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28o%2C.%2CO%29%22%20label%3D%22%28o%2C.%2CO%29%u041A%u0442%u0443%u043B%u0445%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22Y%28O%2C%2C%2C%2CO%29Y%22%20label%3D%22Y%28O%2C%2C%2C%2CO%29Y%u041A%u0442%u0443%u043B%u0445%u0443%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28x%28x_%28x_x%28%u041E_%u043E%29x_x%29_x%29x%29%22%20label%3D%22%28x%28x_%28x_x%28%u041E_%u043E%29x_x%29_x%29x%29%u0436%u0438%u0432%u043E%u0439%20%u0441%u0440%u0435%u0434%u0438%20%u0437%u043E%u043C%u0431%u0438%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22%28-%28-_%28-_-%28%u041E_%u043E%29-_-%29_-%29-%29%22%20label%3D%22%28-%28-_%28-_-%28%u041E_%u043E%29-_-%29_-%29-%29%u043F%u0440%u043E%u0441%u043D%u0443%u043B%u0441%u044F%20%u0432%20%u043C%u0435%u0442%u0440%u043E%22%20/%3E%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20cb_text%3D%22@-_-@%22%20label%3D%22@-_-@%u043E%u0432%u0435%u043D%2C%20%u0431%u0430%u0440%u0430%u0448%u043A%u0430%22%20/%3E%0A%20%20%20%20%20%20%20%20%20%20%3C/menupopup%3E%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%3C/menu%3E%0A%20%20%20%20%3C/menupopup%3E%0A%29%29%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0Athis.insertText%20%3D%20function%28str%29%20%7B%0A%20%20%20%20var%20command%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28command%29%3B%0A%20%20%20%20if%28controller%20%26%26%20controller.isCommandEnabled%28command%29%29%20%7B%0A%20%20%20%20%20%20%20%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20str%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28command%2C%20params%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Afunction%20parseFromXML%28xml%29%20%7B%0A%20%20%20%20var%20pp%20%3D%20XML.prettyPrinting%3B%0A%20%20%20%20XML.prettyPrinting%20%3D%20false%3B%0A%20%20%20%20var%20elt%20%3D%20new%20DOMParser%28%29.parseFromString%28xml.toXMLString%28%29%2C%20%22application/xml%22%29.documentElement%3B%0A%20%20%20%20XML.prettyPrinting%20%3D%20pp%3B%0A%20%20%20%20return%20elt%3B%0A%7D%0Avar%20that%20%3D%20this%3B%0Athis.hideDropMarker%20%3D%20function%28%29%20%7B%0A%20%20var%20dropMarker%20%3D%20document.getAnonymousElementByAttribute%28that%2C%20%22class%22%2C%20%22toolbarbutton-menu-dropmarker%22%29%3B%0A%20%20if%20%28dropMarker%29%20%7B%0A%20%20%20%20dropMarker.setAttribute%28%22hidden%22%2C%20%22true%22%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20setTimeout%28that.hideDropMarker%2C%2010%29%3B%0A%20%20%7D%0A%7D%0Athis.hideDropMarker%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%3Clabel%3E%20%0Aid%20%3D%20%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Инициализация: Выделить код Код:/*Initialization Code*/ this.appendChild(parseFromXML( <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="this.parentNode.insertText(event.target.getAttribute('cb_text'));"> <menu label="Эмоция"> <menupopup> <menuitem cb_text="(n_n)" label="(n_n)улыбка" /> <menuitem cb_text="(^_^)" label="(^_^)радость" /> <menuitem cb_text="(<_>)" label="(<_>)грусть" /> <menuitem cb_text="(v_v)" label="(v_v)грусть" /> <menuitem cb_text="(^ ^)" label="(^ ^)улыбка через силу" /> <menuitem cb_text="(>_<)" label="(>_<)злость/категоричность" /> <menuitem cb_text="(>_>)" label="(>_>)скептичность" /> <menuitem cb_text="(<_<)" label="(<_<)скептичность" /> <menuitem cb_text="(-_-¨)" label="(-_-¨)сконфуженность" /> <menuitem cb_text="^_^¨" label="^_^¨смущённость" /> <menuitem cb_text="*^_^*" label="*^_^*смущенность с покраснением" /> <menuitem cb_text="(-_-#)" label="(-_-#)ярость" /> <menuitem cb_text="(-_-¤)" label="(-_-¤)ярость" /> <menuitem cb_text="(-_-+)" label="(-_-+)ярость" /> <menuitem cb_text="(o_o)" label="(o_o)удивление" /> <menuitem cb_text="(0_0)" label="(0_0)сильное удивление" /> <menuitem cb_text="(O_o)" label="(O_o)очень сильное удивление" /> <menuitem cb_text="(o_O)" label="(o_O)очень сильное удивление" /> <menuitem cb_text="(V_v)" label="(V_v)неприятное удивление" /> <menuitem cb_text="(@_@)" label="(@_@)обалдение" /> <menuitem cb_text="(%_%)" label="(%_%)усталость глаз" /> <menuitem cb_text="(u_u)" label="(u_u)депрессия" /> <menuitem cb_text="(>x<!)" label="(>x<!)черт!" /> <menuitem cb_text="8(>_<)8" label="8(>_<)8ревнивый" /> <menuitem cb_text="(>>)" label="(>>)косой взгляд, недоверие" /> <menuitem cb_text="(0_<)" label="(0_<)нервный тик" /> <menuitem cb_text="(*_*)" label="(*_*)фанатение" /> <menuitem cb_text="-__-" label="-__-флегматичность/«мда-а-а…»" /> <menuitem cb_text="(9_9)" label="(9_9)не спал всю ночь" /> <menuitem cb_text="=__=" label="=__=сонный или «достали…»" /> <menuitem cb_text="(-.-)Zzz." label="(-.-)Zzz.спящий" /> <menuitem cb_text="(-_-)Zzz." label="(-_-)Zzz.спящий" /> <menuitem cb_text="(-_-;)" label="(-_-;)болезненность" /> <menuitem cb_text="(Х_х)" label="(Х_х)труп" /> <menuitem cb_text="(+_+)" label="(+_+)труп" /> <menuitem cb_text="(х_х)" label="(х_х)труп" /> </menupopup> </menu> <menu label="Действие"> <menupopup> <menuitem cb_text="(^_~)" label="(^_~)подмигивать" /> <menuitem cb_text="(^_-)" label="(^_-)подмигивать" /> <menuitem cb_text="(;_;)" label="(;_;)плакать" /> <menuitem cb_text="(T_T)" label="(T_T)плакать" /> <menuitem cb_text="(TT.TT)" label="(TT.TT)плакать" /> <menuitem cb_text="(ToT)" label="(ToT)плакать" /> <menuitem cb_text="Q__Q" label="Q__Qплакать" /> <menuitem cb_text="=X=" label="=X=рукопожатие" /> <menuitem cb_text="^}{^" label="^}{^любовь" /> <menuitem cb_text="(^3^)" label="(^3^)поцелуй" /> </menupopup> </menu> <menu label="Персонаж"> <menupopup> <menuitem cb_text="(=^.^=)" label="(=^.^=)кошка(ня)" /> <menuitem cb_text="=^_^=" label="=^_^=кошка(ня)" /> <menuitem cb_text="(O,o)" label="(O,o)сова" /> <menuitem cb_text="^..^" label="^..^свинья" /> <menuitem cb_text="///_Т" label="///_Тэмо-кид" /> <menuitem cb_text="T_\\\" label="T_\\\эмо-кид" /> <menuitem cb_text="///_^" label="///_^эмо-кид" /> <menuitem cb_text="^_\\\" label="^_\\\эмо-кид" /> <menuitem cb_text="(¨\(о_О)/¨)" label="(¨\(о_О)/¨)Медвед/«Превед!»" /> <menuitem cb_text="(jIj)" label="(jIj)Ктулху" /> <menuitem cb_text="(;,;)" label="(;,;)Ктулху" /> <menuitem cb_text="(o,.,O)" label="(o,.,O)Ктулху" /> <menuitem cb_text="Y(O,,,,O)Y" label="Y(O,,,,O)YКтулху" /> <menuitem cb_text="(x(x_(x_x(О_о)x_x)_x)x)" label="(x(x_(x_x(О_о)x_x)_x)x)живой среди зомби" /> <menuitem cb_text="(-(-_(-_-(О_о)-_-)_-)-)" label="(-(-_(-_-(О_о)-_-)_-)-)проснулся в метро" /> <menuitem cb_text="@-_-@" label="@-_-@овен, барашка" /> </menupopup> </menu> </menupopup> )); this.type = "menu"; this.orient = "horizontal"; this.insertText = function(str) { var command = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(command); if(controller && controller.isCommandEnabled(command)) { controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"] .createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", str); controller.doCommandWithParams(command, params); } }; function parseFromXML(xml) { var pp = XML.prettyPrinting; XML.prettyPrinting = false; var elt = new DOMParser().parseFromString(xml.toXMLString(), "application/xml").documentElement; XML.prettyPrinting = pp; return elt; } var that = this; this.hideDropMarker = function() { var dropMarker = document.getAnonymousElementByAttribute(that, "class", "toolbarbutton-menu-dropmarker"); if (dropMarker) { dropMarker.setAttribute("hidden", "true"); } else { setTimeout(that.hideDropMarker, 10); } } this.hideDropMarker(); |
bunda1 > 28-05-2011 13:20:36 |
Прокрутка страницы( Firefox 3.6+ ) ЛКМ => Прокрутить страницу налево до края, Код кнопки и инициализация: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAFBIAAAEAIAAQBgAAFgAAACgAAAAUAAAAJAAAAAEAIAAAAAAA6AUAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A+Pj4DP///wCRkZGwmJiYpfLy8hT///8A/Pz8BPz8/AT///8A8vLyFJiYmKWRkZGw////APj4+Az///8A////AP///wD///8A////AP///wD4+PgM////AJGRkbCYmJil8vLyFP///wD8/PwE/Pz8BP///wDy8vIUmJiYpZGRkbD///8A+Pj4DP///wD///8A////AP///wD///8A+vr6Cf///wClpaWVOzs7/52dnYv8/PwJ////AP39/QT9/f0E////APz8/AmdnZ2LOzs7/6WlpZX///8A+vr6Cf///wD///8A/f39AP///wB9fX0JVFRUAF5eXpVfX1//aGhoi0tLSwl9fX0A7u7uBO7u7gR9fX0AS0tLCWhoaItfX1//Xl5elVRUVAB9fX0J////AP39/QD9/f0A////B319fQBUVFS5Xl5e/19fX/9oaGjzS0tL/319fcDu7u4f7u7uH319fcBKSkr/ampq81xcXP9TU1P/jIyMuf///wD7+/sH////AP39/QD///8HfX19AFRUVLleXl7/X19f/2hoaPNLS0v/fX19wO7u7h/u7u4ffX19wEpKSv9qamrzXFxc/1NTU/+MjIy5////APv7+wf///8A/f39Av///wB9fX3RVFRU/15eXv1fX1//aGho9EtLS/99fX3A7u7uH+7u7h99fX3AS0tL/2hoaPRfX1//Xl5e/VRUVP99fX3R////AP39/QL9/f0C////AH19fdFUVFT/Xl5e/V9fX/9oaGj0S0tL/319fcDu7u4f7u7uH319fcBLS0v/aGho9F9fX/9eXl79VFRU/319fdH///8A/f39Av39/QD///8HfX19AFRUVLleXl7/X19f/2hoaPNLS0v/fX19wO7u7h/u7u4ffX19wEpKSv9qamrzXFxc/1NTU/+MjIy5////APv7+wf///8A/f39AP///wd9fX0AVFRUuV5eXv9fX1//aGho80tLS/99fX3A7u7uH+7u7h99fX3ASkpK/2pqavNcXFz/U1NT/4yMjLn///8A+/v7B////wD9/f0A////AH19fQlUVFQAXl5elV9fX/9oaGiLS0tLCX19fQDu7u4E7u7uBH19fQBKSkoJampqi1xcXP9TU1OVjIyMAP///wn7+/sA////AP39/QD///8AfX19CVNTUwBoaGiVR0dH/6CgoIv6+voJ////AP39/QT9/f0E////APr6+gmioqKLRUVF/11dXZWLi4sA////Cfv7+wD///8A////AP///wD///8A+Pj4DP///wCRkZGwmJiYpfLy8hT///8A/Pz8BPz8/AT///8A8vLyFJiYmKWRkZGw////APj4+Az///8A////AP///wD///8A////AP///wD4+PgM////AJGRkbCYmJil8vLyFP///wD8/PwE/Pz8BP///wDy8vIUmJiYpZGRkbD///8A+Pj4DP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20........%0Aself.onclick%20%3D%20this.onmousedown%20%3De%3D%3E%20%7B%0A%0A%20%20%20if%20%28%20e.type%20%3D%3D%20%27mousedown%27%20%26%26%20%21e.button%20%29%20%20%20%20%20%20//%20%u0434%u043B%u0438%u043D%u043D%u044B%u0439%20%u043B%u0435%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%0A%20%20%20%20%20%20%20%20self.taimer%20%3D%20setTimeout%28%28%29%3D%3E%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20delete%20self.taimer%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20goDoCommand%28%27cmd_scrollTop%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20500%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.type%20%3D%3D%20%27mousedown%27%20%26%26%20e.button%20%3D%3D%202%20%29%20%20//%20%u0434%u043B%u0438%u043D%u043D%u044B%u0439%20%u043F%u0440%u0430%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%0A%20%20%20%20%20%20%20%20self.taimer%20%3D%20setTimeout%28%28%29%3D%3E%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20delete%20self.taimer%3B%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20goDoCommand%28%27cmd_scrollBottom%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20500%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%20%20%20%20%20%20%20%20%20//%20%u0441%u0440%u0435%u0434%u043D%u0438%u0439%20%u043A%u043B%u0438%u043A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.type%20%3D%3D%20%27click%27%20%26%26%20self.taimer%20%29%20%7B%20%20%20%20%20%20//%20%u043B%u0435%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%0A%20%20%20%20%20%20%20%20clearTimeout%28self.taimer%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20content.scrollTo%280%2C%20content.scrollY%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%0A%20%20%20if%20%28%20e.type%20%3D%3D%20%27click%27%20%26%26%20e.button%20%3D%3D%202%20%29%20%7B%20%20%20%20//%20%u043F%u0440%u0430%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20content.scrollTo%28content.scrollMaxX%2C%20content.scrollY%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A//%20%u041A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0435%20%u043F%u0440%u043E%u043A%u0440%u0443%u0447%u0438%u0432%u0430%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%u0435%u0440%u0445%20-%20%u0432%u043D%u0438%u0437%20........%0Avar%20speed%20%3D%2014%3B%20//%20%u0441%u043A%u043E%u0440%u043E%u0441%u0442%u044C%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0438%0Athis.onwheel%20%3De%3D%3E%20e.deltaY%20%3C%200%20%3F%20content.scrollBy%280%2C%20-speed%29%20%3A%20content.scrollBy%280%2C%20speed%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20........%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041F%u0440%u043E%u043A%u0440%u0443%u0442%u0438%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u043D%u0430%u043B%u0435%u0432%u043E%20%5Cn%u0414%u041B%3A%20%u041F%u0440%u043E%u043A%u0440%u0443%u0442%u0438%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%u0432%u0435%u0440%u0445%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041F%3A%20%u041F%u0440%u043E%u043A%u0440%u0443%u0442%u0438%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u043D%u0430%u043F%u0440%u0430%u0432%u043E%20%5Cn%u0414%u041F%3A%20%u041F%u0440%u043E%u043A%u0440%u0443%u0442%u0438%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%u043D%u0438%u0437%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u043F%u0440%u043E%u043A%u0440%u0443%u0447%u0438%u0432%u0430%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%u0435%u0440%u0445%20-%20%u0432%u043D%u0438%u0437%22%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ........ self.onclick = this.onmousedown =e=> { if ( e.type == 'mousedown' && !e.button ) // длинный левый клик self.taimer = setTimeout(()=> { delete self.taimer; goDoCommand('cmd_scrollTop'); }, 500); if ( e.type == 'mousedown' && e.button == 2 ) // длинный правый клик self.taimer = setTimeout(()=> { delete self.taimer; goDoCommand('cmd_scrollBottom'); }, 500); if ( e.button == 1 ) gShowPopup(this); // средний клик if ( e.type == 'click' && self.taimer ) { // левый клик clearTimeout(self.taimer); content.scrollTo(0, content.scrollY); } if ( e.type == 'click' && e.button == 2 ) { // правый клик e.preventDefault(); content.scrollTo(content.scrollMaxX, content.scrollY); } }; // Колёсиком мыши на кнопке прокручивать страницу верх - вниз ........ var speed = 14; // скорость прокрутки this.onwheel =e=> e.deltaY < 0 ? content.scrollBy(0, -speed) : content.scrollBy(0, speed); // Подсказка для кнопки ........ this.tooltipText = "Л: Прокрутить страницу налево \nДЛ: Прокрутить страницу вверх\ \nП: Прокрутить страницу направо \nДП: Прокрутить страницу вниз\ \nКолёсиком мыши на кнопке можно прокручивать страницу верх - вниз"; |
bunda1 > 28-05-2011 15:53:01 |
BB: Color Menu ( Firefox24 + ) от 13.01.2015. Пример как добавлять новые цвета в кнопку: Добавляем в кнопку новый пункт Neon Green за White В коде инициализации добавляем за: новую строку: Нажать Ok или Сохранить Код кнопки и инициализация: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EBB%3A%20Color%20Menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADU0lEQVR4Xk3OW0ybBRyH4fc7lLZQyqGwclqLG5hFbvCAxpvFEBPkwkkWFo3ZlW43CxckapZ44Y0XvXAbFwaSiWJGoiFzHjKzicJ0w4XJQZfpaORQDqVdO6At9GP03L9NRtQ3efK7/SmXLD+RR4jqxUS1A+xZnaURq/2VrFM5ul1Mc4kbKppYdDQyUV7PqLUSw1wFajmIAir/pgB5t0mX86XFuYsq9CQTdERidGzE6InscTEP53UVt/BfqoJGARnZa6su08cP1xafdtVqFTXVUFsDNjukNVgyqJiMcjquMm7TacsLiICakgjxXMhVby8eaXM1NjXWFeGqU3C7wH0QGhvhiUPQ4IJMKfycpilaxEi5CZfFBHjUD2wD1o8Hg8/GJdQlcv+UyO2zIlc9Ip+cEzn3qYjnmsjZKZFT8yIdD0W6EjkZkezgFUna1KSEO5+sqDxR5zBRZc/Q4ICDNeCqL3CD2wX1BTUN4KgTDlQniFk28RI5AXudXLC83b/81GWR1+ZFzgREPHFJDWclOiYyPyNyd1XkRlxkOJMRj0TljCxLh8zKyYIhWenns7KTo8ZzQyLdP4r0Tor0eUW+CYn8kZCIb1du/HZXJhOb8p2EpE/+lF6ZkC75Vjrlsnwk06NqTrbIyDoQ2OeH/CqoAfL4mZu+hX/8FsbGPVSCwDoKQdKFfcQGaiQZ8AV3vZBdg/QKJHyPN71KlTNFy9NOaq1OlOkt4lteUvhIFpQQQ8PwqUbm4c2F2P0dHi3AoyXIBkAJgVZQeNL6vMIDZZbm8iPUzdhRtsNk8WMhthPFf1PVxPhhLrr8VXD7b9A3920AQcitYikKc+SlPX5Pf02r4xkq+ysoGjMoIzMcz65f13U9tZsR+fD7sK/9zRbrIbtZAS0N7IKYyAMmNY27Pcn1oS/4/MIVLC0KL4Rf9B22NSVVNEE34V9PGG986Z1bCkaXQQ2DHgQtgMpjOg/Qjk7R8lZZ3vfrGtf6Ro/fGZuqUdnPrDMTNOIvX7rjHbx6+15sYWme7cgKqZSfaGyNgH8pZpj/Gmg/3tr5bs/7A73v9Xq6X+8O6fwvk8ZaMpt9Z3ZxY2wxuXPUETQ3mxt0wuQW4yW5iV1natShmIxjrx77xVZdlEmn0/wDi3q+iH+UAK0AAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20........................%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20........................%0Avar%20colors%20%3D%20%5B%0A%09%22%23000000%2CBlack%22%2C%0A%09%22%23808080%2CGray%22%2C%0A%09%22%23000066%2CD-Blue%22%2C%0A%09%22%233366ff%2CM-Blue%22%2C%0A%09%22%2333ccff%2CL-Blue%22%2C%0A%09%22%23ff0000%2CRed%22%2C%0A%09%22%23006600%2CD-Green%22%2C%0A%09%22%2333cc00%2CM-Green%22%2C%0A%09%22%2399FF99%2CL-Green%22%2C%0A%09%22%23ffff00%2CYellow%22%2C%0A%09%22%23964B00%2CBrown%22%2C%0A%09%22%23FF4F00%2COrange%22%2C%0A%09%22%23FFC0CB%2CPink%22%2C%0A%09%22%23ffffff%2CWhite%22%2C%0A%09%0A%20%20%20%09%22separator%22%2C%0A%0A%09%22%23006600%2Csome%201%22%2C%0A%09%22%23ff0000%2Csome%202%22%2C%0A%09%22%23e30077%2Csome%203%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%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%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Acolors.forEach%28%28str%29%3D%3E%20%7B%20%0A%20%20%20if%20%28%20str%20%3D%3D%20%22separator%22%20%29%20%7B%20menuPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20var%20color%20%3D%20str.split%28%22%2C%22%29%5B0%5D%2C%20label%20%3D%20str.split%28%22%2C%22%29%5B1%5D%2C%0A%20%20%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20label%29%3B%0A%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20insertBBcode%28color%29%3B%20%0A%20%20%20menuPopup.appendChild%28mItem%29%3B%0A%20%20%20%0A%20%20%20//%20%u0434%u043B%u044F%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u044F%20%u0446%u0432%u0435%u0442%u043D%u044B%u0445%20%u0438%u043A%u043E%u043D%u043E%u043A%20%u0432%20%u043C%u0435%u043D%u044E%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u043C%20CSS%20%u043A%u043E%u0434%20%u043A%20%u0432%u0441%u0435%u043C%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20....%0A%20%20%20%28function%28css%29%20%7B%0A%20%20%20%20%20%20var%20pi%20%3D%20document.createProcessingInstruction%28%27xml-stylesheet%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27type%3D%22text/css%22%20href%3D%22data%3Atext/css%3Butf-8%2C%27%20+%20encodeURIComponent%28css%29%20+%20%27%22%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20document.insertBefore%28pi%2C%20document.documentElement%29%3B%20%20%20%0A%20%20%20%20%7D%29%28%27menuitem%5Blabel%3D%22%27%20+%20label%20+%20%27%22%5D%3E%20.menu-iconic-left%20%3E%20.menu-iconic-icon%20%7B%20background-color%3A%27%20+%20color%20+%20%27%21important%3B%7D%27%29%3B%0A%20%20%20%0A%7D%29%3B%0AmenuPopup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20bb%20%u043A%u043E%u0434%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20........................%0Afunction%20insertBBcode%28color%29%20%7B%0A%20%20%20var%20textBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20var%20text%20%3D%20textBox.value.substring%28textBox.selectionStart%2C%20textBox.selectionEnd%29%3B%0A%20%20%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Ci.nsICommandController%29%3B%0A%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20params.setStringValue%28%22state_data%22%2C%20%22%5Bcolor%3D%22%20+%20color%20+%20%22%5D%22%20+%20text%20+%20%22%5B/color%5D%22%29%3B%0A%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши ........................ this._handleClick =()=> menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); // Создать меню ........................ var colors = [ "#000000,Black", "#808080,Gray", "#000066,D-Blue", "#3366ff,M-Blue", "#33ccff,L-Blue", "#ff0000,Red", "#006600,D-Green", "#33cc00,M-Green", "#99FF99,L-Green", "#ffff00,Yellow", "#964B00,Brown", "#FF4F00,Orange", "#FFC0CB,Pink", "#ffffff,White", "separator", "#006600,some 1", "#ff0000,some 2", "#e30077,some 3" ]; var menuPopup = self.appendChild(document.createElement("menupopup")); colors.forEach((str)=> { if ( str == "separator" ) { menuPopup.appendChild(document.createElement("menuseparator")); return }; var color = str.split(",")[0], label = str.split(",")[1], mItem = document.createElement("menuitem"); mItem.setAttribute("label", label); mItem.setAttribute("class", "menuitem-iconic"); mItem.onclick =()=> insertBBcode(color); menuPopup.appendChild(mItem); // для создания цветных иконок в меню добавляем CSS код к всем пунктам меню .... (function(css) { var pi = document.createProcessingInstruction('xml-stylesheet', 'type="text/css" href="data:text/css;utf-8,' + encodeURIComponent(css) + '"'); return document.insertBefore(pi, document.documentElement); })('menuitem[label="' + label + '"]> .menu-iconic-left > .menu-iconic-icon { background-color:' + color + '!important;}'); }); menuPopup.setAttribute("onclick", "event.stopPropagation()"); // Добавить bb код в текстовое поле ........................ function insertBBcode(color) { var textBox = document.commandDispatcher.focusedElement; var text = textBox.value.substring(textBox.selectionStart, textBox.selectionEnd); var cmd = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(cmd); var controller = controller.QueryInterface(Ci.nsICommandController); var params = Cc["@mozilla.org/embedcomp/command-params;1"].createInstance(Ci.nsICommandParams); params.setStringValue("state_data", "[color=" + color + "]" + text + "[/color]"); controller.doCommandWithParams(cmd, params); }; Спасибо Dumby за помощь с кнопкой. |
bunda1 > 16-06-2011 20:23:06 |
userChrome.css ( Firefox 3.6+ ) скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EuserChrome.css%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAyhJREFUOMtdk11oW3UYh59zzj8nyUnz2TSmaWfT2lY3nWvRi7KBX3gxxBsHguKY84OyG9ErL7yQgdfFKYKI4gQvnKDI5kVRkNWqGyg6R9utpraNXWzztTRZ0pPk5Jz/8aJbaf3Be/e+Dw8v76twO2ff63uj0ejMBHziRZ9P/VEX6uvArCYCj0i5VbXcePr5yT/G+V80gOnpqx9n5+tv9QYap2rWSxNJY/G5n+ZPpwe6jUfrzvF0NNR/n99uJOPpl080LJlNpcfq3eGDzVLpmhQA5ZvtsSdPvIOz/Db37nsFf3sUbd8ghycmKOVWGThwjFuVAlkuhX6+EjsiPCKTCOmVhQVsASClVHtSAazUGVzHReNp9g+DL+xhqHsYAFuEmZuf8wmhJhXXjhCwjMmHJrcBruuqEoiHPQhgy7RxJSgKWLnz5ItVPp0u4JjrXe+/sHz0yoqSPXfZX92M5231zjIcYL3WIVux2GxJGpZEupD/5Qzh1iz3jw4imxuEjXwiHmoe99B5rGLKxA7gjkFvTCcV00lFFNT5N4mnoijqdlvHktRKdYYTq0NTp5iqNZ0hsdvg6pqJZUl8msLdMZ3fP/mMo8cO47SzjChfwoEStgVW1WXpekV37OCzewyWNlrMrZk0O5KFf5scfGYKUDC32vQaOcZHW3SnwnhDI3z9vafasTB2DGxgsNeHZUk0VSER0tjsPMyv776GHhzniadUfrvUplG0IWHLa6aRi6jOithtkIh6QIK0JfmyRfKuISInZ3ngwf18dbKfizdj9loleqtLc6qGRgbUi3sALQk4Ll26ynCfn6ihcU/yEB7g1QtF2h+ctRc//Gheuu5MROssK5Dds0QJuIBhCHyasgN2AAXQhGYHE31FT6d52WM3Mk67XtwDiNw+JHYN7S7TbJtC91Z0n1EM+nvKhzbXTAGQ+eufC4+3RsYMj8NW3WTp71U7v1G084WyvZhZaeVubDT+nLteFkKsj46kl1Upqj09mnX6m5ntZ/r2uy8+P//DuVq+UDjiujLk9epqOBS0DMNver16VVWV9fRA/416w1xstzp51+etpFIpC+A/x3JsuL3cxBcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Components.interfaces.nsIProperties%29.get%28%22UChrm%22%2C%20Components.interfaces.nsIFile%29%3B%20%0Afile.append%28%22userChrome.css%22%29%3B%20%20%20%20%20%0Afile.launch%28%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsIFile); file.append("userChrome.css"); file.launch(); userContent.css ( Firefox 3.6+ ) открывает файл userContent.css в внешнем текстовом редакторе по умолчанию. скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EuserContent.css%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM08tJDdQK3IgOROtHzcSuyY9Gb00Sii3PlMyrUVZOZ1HWjuDQ1c3ZjdNKj5FWjomTWZAEICAgAIAAAAAAAAAAHqoeoHo7OH/9fTr/+jq4P/Eybv7q7Oj95Sfi/NufWPrUWRH3yQ7F8soPxuxTV9BdktjRiJmZmYIAAAAAAAAAAChx6DP8PfK////1f///9n////d////4v///+b////r////7/////P/jZqH6UZZPZlIXEQyUV5RDkBAgAIAAAAAocegz/D3zf/w+sX/7fnE//z+3f///+X////q////7v////L////2/5ehkfNAUjmrO0k+SDc9QyIwMEAMAAAAAKHHoM/w99D/8PrH/+35x//y+tP/8/vZ//3+6v////D////1////+f+Tno73KjcswSo2NIErMTxeKzE9IgAAAAChx6DP8PfS//L6z//w+s//7PjN/9jytf/n983/v9Cx/+353f9NFZX/OidU+ygxNu0rLkLdKDMsqSgyMkIAAAAAocegz/D31P/h9bn/2/Oz/930uf/n98z/0NXG/18Oof9sP6f/tjnp/20gpv9XGJr/bSma/SUzIs8nMDKDAAAAAKHHoM/w99j/yO2Y/73piv/Z8rb/1fGy/72h1/++T/L/sD3k/7U36P+nJ9v/pRzZ/5wty/8vKkzrKjIspQAAAAChx6DP8Pfa/+H1vf/b87f/3vS///D63f9sFKr/vk7y/7tE7v+rU8//gS+q/4sNxv+OCMT/dSWf+zAyMZsAAAAAocegz/D33f///+z////v////9P/9+vj/0HT7/8JR9f/HZPH/qqqq/1dEYf+RDcr/ngnR/6k30/U0NDRGAAAAAKHHoM/w99//8PrY/+351v/t+dr/7fne//z++f+oQOH/xWLw/6qqqv9dRmb/phrZ/4gqrd1BN0ZoPTdDJAAAAAChx6DP8Pfi////8v////b/9fvr//P76v/9/vv/47D5/82g4f+EiX//Zl9o/5wyyul6M5mBQTxBKEc5VQ4AAAAAosihzfD35P/w+t7/7fnd/+354P/t+eH//P76////////////7O/q/3B5a/NBVTihQVM5OFFRRhIzZmYEAAAAAKTKo8vW7M//s2rM/9Dqz//Jrdj/tM64/+zb8v/Qut3/+vf8/+jg7v+cppjrPVM0iUJXOChGXUYIAAAAAAAAAAC30bebeGmL/4kzqP+Fh5T/lym1/2yjc/+Vaq7/lqWh/6Z9uP+cS7j/bodw3TFBLE44UDAaK1UrBAAAAAAAAAAAAAAAAJEbn3CFFpMwjRqej5UcplCZHqy/mR6sgZ0pr7+bHq2vmjKnzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Components.interfaces.nsIProperties%29.get%28%22UChrm%22%2C%20Components.interfaces.nsIFile%29%3B%20%0Afile.append%28%22userContent.css%22%29%3B%20%20%20%20%20%0Afile.launch%28%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var file = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("UChrm", Components.interfaces.nsIFile); file.append("userContent.css"); file.launch(); Предварительно эти файлы должны быть созданы пользователем. |
imyax > 17-06-2011 16:06:35 |
Просмотр и сохранение иконок сайтов(Firefox3.6-5.0) скрытый текст Код кнопки:: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0440%u043E%u0441%u043C%u043E%u0442%u0440%20%u0438%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u0435%20%u0438%u043A%u043E%u043D%u043E%u043A%20%u0441%u0430%u0439%u0442%u043E%u0432%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAQAAAAEABcxq3DAAADMklEQVQ4y22SS2hcZRzFz/e4r5k7rySTJs3EajVtbDomtBpKRKiFYretz4VuFDfFpYhuxI3rplRBSqGGVgtuAtXaLFUEkSJiM0mjNIZhJqnDzZ2Z3Ll37vO7n4umItrf6n/gnD9ncQgewqVLC2CMEdve5o1mE6urK4mu6/Lr64v/8/IHx+cLi5iZnoRI04yuKids2zplGNq4lKn0/f7GnbU7S8XS4A+5fN5v1Df+ecAA4P0Pz6N6+AlYdmcsn8ueU1X+kdsP5sJEHsyY+cm9o6PHSsX8aSHEeN8Lb41Vxt227SBNYxAAuHxlEX4QFQ/sr1yMkuTl23cttH0NoaDwgwhpKlEpRBg2PNzb2rpqtZyzuqH25s9/DHLukwXMHjmEHcd9q+cFnzW6hD82MQmmGrC6PbRsFy1XwUbThuI1cObpTKQS8qamq1/Ulv8AnXumiuGhkiGEeLETKvzkiWPYVylB0SmoAjAVUHMcSSaDn9pDWFoJ1HzRPDPz1JPqyReeA02SGG3bPmQ7wezs0SkMFAyAElCFgmkMTGdgBodDAFow8Eu3gPW/3LlOx54QiQB1XQ/tjjPJNGOgMlKCJBKEE1CVgWkM3OBwOYWjUOglDYFhotlD2dlxDnqeB+77AWSaZplaJJwzkDgF4RRUlSCpD8eqo9ZK4Xf6kDEFaAahECwIomwoJLgQCZCm21EiEj8WnFAKxgi4SuFlsrhtlOEOE2TNGIknIH2JgplESRxtx4KAx1EMBrEsUm/zT8vZ9+hIEV2R4lY3wI9dwMoNQctKcF8g2Ikw1PewN4t6GISrMShoFMXobDbvqpF7bWW9jgvLFuZ/7+D6lgsrTEClBCUAUykyGsGzJV+asn/l9Ksv1aNwd0ifXrgImYQjQje/7DxSfb63ZwyaxkHSFAAgCIXnRxiyNjHYqC3JoP8GU7Tts++8fX/KN5e+wY2bN9zXX3uFlRP36JFy3pweMMlUjmO/kmIwcKCv18Tat181rl29PD/x+MTP733wLgDcb/AvCrqmHz88VT1enZ45UN4zWgIkWve22su//bpWW619F0XR9wB6DwIED0cDYAIwdrW/G4r+a/wbqOd9YAmWl1IAAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMDktMjhUMTE6Mjc6NTUtMDQ6MDDs/LGJAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5LTA3LTAzVDEwOjAwOjI0LTA0OjAwYkMTwQAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20Cb%20%3D%20custombuttons%3B%0Avar%20orgImg%3Dthis.image%3B%0A//%20Three%20functions%20for%20testing%2C%20this.one%28%29%20and%20this.two%28%29%20and%20this.three%28%29%0Athis.one%20%3D%20function%28%29%0A%7B%0A%09this.image%3Ddocument.getElementById%28%22page-proxy-favicon%22%29.src%3B%0A%7D%3B%0A%0Athis.two%20%3Dfunction%28%29%0A%7B%0A%09this.image%3Ddocument.getElementById%28%22page-proxy-favicon%22%29.src%3B%0A%09openUILinkIn%28this.image%2C%22save%22%29%3B%0A%7D%3B%0A%0Athis.three%20%3Dfunction%28%29%0A%7B%0A%09this.image%3DorgImg%3B%0A%7D%3B%0A//%20Our%20menu%20items%0Athis.ss%20%3D%20%5B%0A%20%20%7B%20label%3A%20%27%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0441%u0430%u0439%u0442%u0430%27%2C%20cmd%3A%20%27document.popupNode.one%28%29%27%2C%20sItemId%3A%20%27%27%20%7D%2C%0A%20%20%7B%20label%3A%20%27%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0441%u0430%u0439%u0442%u0430%27%20%20%2C%20cmd%3A%20%27document.popupNode.two%28%29%27%2C%20sItemId%3A%20%27%27%20%7D%2C%0A%20%20%7B%20label%3A%20%27%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%27%20%20%2C%20cmd%3A%20%27document.popupNode.three%28%29%27%2C%20sItemId%3A%20%27%27%20%7D%5D%3B%0A%0A//%20Our%20Initialization%20function%20for%20creating%20the%20context%20menu%2C%20setting%20up%20menuitems%20and%20telling%0A//%20custombuttons2%20extension%20to%20put%20cb%20context%20in%20a%20submenu%0Athis.mObj%20%3D%20Cb.getCbContextObj%28this%29%3B%0Athis.init%20%3D%20function%28x%29%20%7B%0A%20%20x.mObj.setSub%28%29%3B%0A%20%20var%20nItem%20%3D%20%7B%7D%2C%20mItem%20%3D%20%7B%7D%3B%0A%20%20document.getElementById%28CB2const.sCBCtxtMenu%29.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%20%20for%28var%20i%20in%20x.ss%29%20%7B%0A%20%20%20%20nItem%20%3D%20new%20x.mObj.getItem%28%29%3B%0A%20%20%20%20nItem.id%20%3D%20%27Note%27%3B%0A%20%20%20%20nItem.label%20%3D%20x.ss%5Bi%5D.label%3B%0A%20%20%20%20nItem.value%20%3D%20String%28i%29%3B%0A%20%20%20%20mItem%20%3D%20x.mObj.insertBefore%28nItem%20%2C%20x.mObj.oMenu.lastChild%29%3B%0A%20%20%20%20this.ss%5Bi%5D.sItemId%20%3D%20mItem.id%3B%0A%20%20%20%20mItem.setAttribute%28%27oncommand%27%2Cx.ss%5Bi%5D.cmd%29%0A%20%20%7D%0A%20%20x.mObj.getItem%28%29%3B%0A%20%20nItem%20%3D%20x.mObj.getItem%28%29%3B%0A%20%20nItem.id%20%3D%20%27Note%27%3B%0A%20%20this.separator%20%3D%20x.mObj.insertBefore%28%20nItem%20%2C%20x.mObj.oMenu.lastChild%29%3B%0A%7D%0Athis.init%28this%29%3B%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27custombuttons.gQuot.mHandler%28event%2C%20this%29%27%29%3B%0Athis.setAttribute%28%27ondblclick%27%2C%20%27custombuttons.gQuot.gShowPopup%28this%29%3B%27%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u041B%u041A%u041C%3D%u041F%u041A%u041C%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var Cb = custombuttons; var orgImg=this.image; // Three functions for testing, this.one() and this.two() and this.three() this.one = function() { this.image=document.getElementById("page-proxy-favicon").src; }; this.two =function() { this.image=document.getElementById("page-proxy-favicon").src; openUILinkIn(this.image,"save"); }; this.three =function() { this.image=orgImg; }; // Our menu items this.ss = [ { label: 'Показать иконку сайта', cmd: 'document.popupNode.one()', sItemId: '' }, { label: 'Сохранить иконку сайта' , cmd: 'document.popupNode.two()', sItemId: '' }, { label: 'Восстановить иконку кнопки' , cmd: 'document.popupNode.three()', sItemId: '' }]; // Our Initialization function for creating the context menu, setting up menuitems and telling // custombuttons2 extension to put cb context in a submenu this.mObj = Cb.getCbContextObj(this); this.init = function(x) { x.mObj.setSub(); var nItem = {}, mItem = {}; document.getElementById(CB2const.sCBCtxtMenu).setAttribute("oncommand", "event.stopPropagation()"); for(var i in x.ss) { nItem = new x.mObj.getItem(); nItem.id = 'Note'; nItem.label = x.ss[i].label; nItem.value = String(i); mItem = x.mObj.insertBefore(nItem , x.mObj.oMenu.lastChild); this.ss[i].sItemId = mItem.id; mItem.setAttribute('oncommand',x.ss[i].cmd) } x.mObj.getItem(); nItem = x.mObj.getItem(); nItem.id = 'Note'; this.separator = x.mObj.insertBefore( nItem , x.mObj.oMenu.lastChild); } this.init(this); this.setAttribute('onclick', 'custombuttons.gQuot.mHandler(event, this)'); this.setAttribute('ondblclick', 'custombuttons.gQuot.gShowPopup(this);'); 17-06-2011 16:21:42 скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EFfolders+%20%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7DAAAOwwHHb6hkAAADIklEQVQ4jXWSy2tcVRzHP79zzn3MI5km5tXG8TE10EiCaEWtTQuCaAW7cFFBqgi6EQRFBP8DsTsXLnRTUVxUECniC6Mo2CAuaqWtqEk176bNw0kyyczcufeec1wEl372X/h84SPzn51hcqap01azVK2YxvBQL6FtEfgMj+A9GAU/L7Rlrml6EdFGcH3lsH5itOzkwQOGI0P2bFa58/C5+eCN16rTD03uHFyeyXtWIskDEYWDfLPR6T0zvvxW7RZVVJ74/OXmh1dW7cvSW9S1z18YvjhVe6nneHjJZwsL8vrYJ0RDA8QuI3WQO4spVDjx/as8L+c93X2ysr67+eg7c/cba23sYsPp5H10ve7e7n7Fi/ZS3lqShIAst5QNbCUps6WD0mx4r10ubecAFysP6ACVhjE75UH1bPSF+bR+Uj9ZP6uuN5WSrKPqzVRJe1v9MfiI/G3ukFKUo0KlPGA8oEIlYQQZmr64wexyi6kkpms8odNuAwpcQNLYpBSlSKTRoRXvQQGoUOOjgP1Dngvrt/Lixpv8Vj2J7K6TJR0kS0gaW2RSYLE0QhxbfGgAMCBIKMRdmqszGRc7o8joISJbx9oQbzMyPLsu5nH5gVplhSwuYKIOexc8EBrKhZRfOMxHa0cJzTalqINK6ySqgvIdENgJAg7tW8XG3egw/c8ATCS0dYHT916jp/ot13e6ONb3F+P9dd6dfoD3Fo8jqkWtcgNdCnFaI6HaMwCPCgQdK5LEc+q2y0RFT952fDmZ8OvcKnIgYbcjHBmbw8QapxQqUODBIIIKxKOFoKj5c97x1Y+aSzf38Z2boN1fZbDZ4rmRWY7uX6KZR8SB39sIGJt5XKB83BPS3M189a6IiShkbXqYh51ipHKFU7UZxvo3cCZEW3zUFYi70fIuB2MdfvrCstw+0AeqIGGsZOIeOHbfTVDrYBw+EzqtAbLU4TNLsmm59tOKWIc3mZLFDyb/+SZpXX0qrJRaYVErUzAEBUMQKxyC7VhskpO1LGkrd+l2q/jx1MZkpmRJnnligHNfr/Uqxd3O74WF5/8RUIJzjt+ffqy//i8xcmhqNgdQTAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A%0Avar%20menu%20%3D%20%3Cmenupopup%0A%20%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20onclick%3D%22this.parentNode.menuClick%28event%29%22%3E%0A%20%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20%20image%3D%22chrome%3A//global/skin/dirListing/folder.png%22%0A%20%20%20%20%20%20%20label%3D%22installation%20folder%22%20%20%20%20%20%20%0A%20%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.FinstallFolder%28event%29%22%7D/%3E%0A%20%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20%20image%3D%22chrome%3A//global/skin/dirListing/folder.png%22%0A%20%20%20%20%20%20%20label%3D%22profile%22%20%20%20%20%20%20%0A%20%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.Fprofile%28event%29%22%7D/%3E%0A%20%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20%20image%3D%22chrome%3A//global/skin/dirListing/folder.png%22%0A%20%20%20%20%20%20%20label%3D%22chrome%22%0A%20%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.Fchrome%28event%29%22%7D/%3E%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20image%3D%22chrome%3A//global/skin/dirListing/folder.png%22%0A%20%20%20%20%20%20label%3D%22custombuttons%22%0A%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.Fcustombuttons%28event%29%22%7D/%3E%0A%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20image%3D%22chrome%3A//global/skin/dirListing/folder.png%22%0A%20%20%20%20%20%20label%3D%22extensions%22%0A%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.Fextensions%28event%29%22%7D/%3E%0A%0A%3C/menupopup%3E%3B%0Avar%20bool%20%3D%20XML.prettyPrinting%3B%0AXML.prettyPrinting%20%3D%20false%3B%0Avar%20el%20%3D%20new%20DOMParser%28%29.parseFromString%28menu.toXMLString%28%29%2C%20%22application/xml%22%29.documentElement%3B%0AXML.prettyPrinting%20%3D%20bool%3B%0Athis.appendChild%28el%29%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0Athis.menuClick%20%3D%20function%28event%29%20%7B%0A%20%20event.preventDefault%28%29%3B%0A%20%20event.stopPropagation%28%29%3B%0A%20%20this.open%20%3D%20false%3B%0A%7D%0A%0Athis.FinstallFolder%20%3D%20function%28event%29%20%7B%0AstartProcess%28%22/usr/bin/nautilus%22%2C%5B%22/usr/lib/firefox-5.0%22%5D%29%3B%0Afunction%20startProcess%28path%2C%20args%29%20%0A%7B%0A%20%20%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%7D%3B%0A%7D%0A%0Athis.Fprofile%20%3D%20function%28event%29%20%7B%0A%20%20let%20propertiesService%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29%3B%0A%20%20let%20currProfD%20%3D%20propertiesService.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%20%20let%20profileDir%20%3D%20currProfD.path%3B%0A%20%20let%20nsLocalFile%20%3D%20Components.Constructor%28%22@mozilla.org/file/local%3B1%22%2C%20%22nsILocalFile%22%2C%20%22initWithPath%22%29%3B%0A%20%20new%20nsLocalFile%28profileDir%29.reveal%28%29%3B%0A%7D%0A%0Athis.Fchrome%20%3D%20function%28event%29%20%7B%0A%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0A%20%20file.append%28%22chrome%22%29%3B%0A%20%20var%20local%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20var%20args%20%3D%20%5B%20file.path%5D%3B%0A%20%20local.initWithPath%28%22/usr/bin/nautilus%22%29%3B%0A%20%20process.init%28local%29%3B%0A%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%7D%0A%0Athis.Fcustombuttons%20%3D%20function%28event%29%20%7B%0A%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0A%20%20file.append%28%22custombuttons%22%29%3B%0A%20%20var%20local%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20var%20args%20%3D%20%5B%20file.path%5D%3B%0A%20%20local.initWithPath%28%22/usr/bin/nautilus%22%29%3B%0A%20%20process.init%28local%29%3B%0A%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%7D%0A%0Athis.Fextensions%20%3D%20function%28event%29%20%7B%0A%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0A%20%20file.append%28%22extensions%22%29%3B%0A%20%20var%20local%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20var%20args%20%3D%20%5B%20file.path%5D%3B%0A%20%20local.initWithPath%28%22/usr/bin/nautilus%22%29%3B%0A%20%20process.init%28local%29%3B%0A%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%7D%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BID%3D%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:/*Initialization Code*/ /*Initialization Code*/ var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onclick="this.parentNode.menuClick(event)"> <menuitem class="menuitem-iconic" image="chrome://global/skin/dirListing/folder.png" label="installation folder" onclick={"document.getElementById('" + this.id + "').FinstallFolder(event)"}/> <menuitem class="menuitem-iconic" image="chrome://global/skin/dirListing/folder.png" label="profile" onclick={"document.getElementById('" + this.id + "').Fprofile(event)"}/> <menuitem class="menuitem-iconic" image="chrome://global/skin/dirListing/folder.png" label="chrome" onclick={"document.getElementById('" + this.id + "').Fchrome(event)"}/> <menuitem class="menuitem-iconic" image="chrome://global/skin/dirListing/folder.png" label="custombuttons" onclick={"document.getElementById('" + this.id + "').Fcustombuttons(event)"}/> <menuitem class="menuitem-iconic" image="chrome://global/skin/dirListing/folder.png" label="extensions" onclick={"document.getElementById('" + this.id + "').Fextensions(event)"}/> </menupopup>; var bool = XML.prettyPrinting; XML.prettyPrinting = false; var el = new DOMParser().parseFromString(menu.toXMLString(), "application/xml").documentElement; XML.prettyPrinting = bool; this.appendChild(el); this.type = "menu"; this.orient = "horizontal"; this.menuClick = function(event) { event.preventDefault(); event.stopPropagation(); this.open = false; } this.FinstallFolder = function(event) { startProcess("/usr/bin/nautilus",["/usr/lib/firefox-5.0"]); function startProcess(path, args) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.run(false, args, args.length); }; } this.Fprofile = function(event) { let propertiesService = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties); let currProfD = propertiesService.get("ProfD", Ci.nsIFile); let profileDir = currProfD.path; let nsLocalFile = Components.Constructor("@mozilla.org/file/local;1", "nsILocalFile", "initWithPath"); new nsLocalFile(profileDir).reveal(); } this.Fchrome = function(event) { var file = Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); file.append("chrome"); var local = Components.classes["@mozilla.org/file/local;1"]. createInstance(Components.interfaces.nsILocalFile); var process = Components.classes["@mozilla.org/process/util;1"]. createInstance(Components.interfaces.nsIProcess); var args = [ file.path]; local.initWithPath("/usr/bin/nautilus"); process.init(local); process.run(false, args, args.length); } this.Fcustombuttons = function(event) { var file = Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); file.append("custombuttons"); var local = Components.classes["@mozilla.org/file/local;1"]. createInstance(Components.interfaces.nsILocalFile); var process = Components.classes["@mozilla.org/process/util;1"]. createInstance(Components.interfaces.nsIProcess); var args = [ file.path]; local.initWithPath("/usr/bin/nautilus"); process.init(local); process.run(false, args, args.length); } this.Fextensions = function(event) { var file = Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); file.append("extensions"); var local = Components.classes["@mozilla.org/file/local;1"]. createInstance(Components.interfaces.nsILocalFile); var process = Components.classes["@mozilla.org/process/util;1"]. createInstance(Components.interfaces.nsIProcess); var args = [ file.path]; local.initWithPath("/usr/bin/nautilus"); process.init(local); process.run(false, args, args.length); } |
imyax > 17-06-2011 16:37:25 |
Open userCSS+JS(Ubuntu)(Firefox4.0-5.0) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EOpen%20userCSS+JS%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAACsElEQVQ4jWWSTWhdVRDHf3POufc177WJsU9NoljyStoqLpqi0YAilO50UbdFuxB10WWh1IUbxY1k70roRgRXQpGuFI2r8mj8oFBptVTaxEcDaZ/v4+bm3ntmXPiatHFgmMXMf5iPn7DLRMR776OZHVt4+ZULExMTaqY45xAE552WRTG+vPzDR3lefL2tAxzgRCQFJtM0/eTylZ+tl+VVtz+0vChNVc3MyuEws+npmSWAIOC8R0FcFS02m80P333v/Y9brVZ8otnUqqykXgvqTOkNS+pjewgpHGxxotOhJSJgxpRz7llVvTd3aG7pyi+/nqyKoqoqDfv31bje6bK8Htk7uY9453dOtjqa6Fn35qnbK8F7OX3+NJ/Pz9Uaa8k5m5o9Qb/vTaQW6nsD2r1F9sU7vNB4nMsvnuO3+w2yPy+6M6+t6usLzIdTr7L06RvWWK8qi4tNIb1lml0TzUAab7N19ypTG206+QI31yOXLrbxs89w5jl1dLEwM25N5t+yiSePS/D3EPlHZDyFXoes/w3dv+tsrMENy5nSb5Efb3Jk/13Y8LAZJdSOHBZmz0rIx/Bu9BOv8NQYezoXqI+1mflgmgPJHf7qf8XiS3WOHjCGtwOb3UgQ8UL1Ewxz8LIDxFDw9ceYPLYIyXFAOBoMJBI3a/j5VZJLXxLYug/DqzBU8A8jZaPgMTPAYQhmisVNGB+QNlMCZQa9P6Bvuxo84MsQFDRHdACxRywHsKVYBoEih/4aDOw/FrcHULAKrADNweJOToHEQTSCFYXR2xAGI5ixUbFtb8FDp9lu4BUrsSAAW6Y6APEPFP5Roe3SR/ApCFHc921ZGayKS0SQyjkXnXNRnIs4V4087rhUuERgsIr7ri0rAhw8PM1nzz/NoVIp5f8DP2IGljiSa2vcuN7h/L/gDz/PEZXJ2QAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0Avar%20menu%20%3D%20%3Cmenupopup%0A%20%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20onclick%3D%22this.parentNode.menuClick%28event%29%22%3E%0A%20%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%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%3D%3D%22%0A%20%20%20%20%20%20%20label%3D%22userChrome.css%22%0A%20%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.userChrome%28event%29%22%7D/%3E%0A%20%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAANQSURBVHjaJMxPbFN1AMDx7+/96WvfH9b1rXRrHZtWi1SCcWKEZKjRRCIcTLwQD8pFIxEzXUJIPOjBGKJBDSdPaFBD/EOMxiAxEgIHDG7CYH8Y7l/m6MbY1m1tt/b1ve6952HHz+UjwjDk4/ffyT9hDB7paJW36bqKpkaRZI0g1Gj4IY7rsO64rFYdlsseI5Ole3/9G5y+cv3OgPjw2Fs73j6091oqVWrCUiAWA/kBkDMg0oAMzENwD/xZ8KqEqw7nz16onzh79zn5vRe0j3bnzW4iUaAKog6hgAAIPAhKsFEEbwG8+1BbRzRg+0PtyujATV3JNdfa2QDqy6BJ4AdAA4QLamkz26iAvwhBZdP1EDyJxzv0FiUWkXzcdWqOy/BQiY6sQevDJt7aErf+djF0hXwughANpkfLzM/WyW+1iEdNrEgYKIYmWJorcvTb/7DizRQWZvm0t41T34xTrQl8NN441EZcDzl1pkRxoYAdt/muZydmxEfRVbgwtIwfKHx1WKXg5lFZYnzK5dk9CV47kEKPykzfhbmiyy7b5LPXM0TcEmroIIVuBbW+SM1xCOcXGBkYZnqiSO+BBNUVn1eO9nH8xG2yhkPP/jRYMR49fouhG/2YrCFVHY/nWwvYzQkOnnb54kqUmBXh0pjPzdtzCLHBU3mD5fUqZy7N0t8/QcKQad+yQaUeIiZPdv6aDWdeDqI2d4KttCdX2JK8D4rNQCFJrQy//zTDm6962I+0MzWosqupzM/niozJ8T8kxw1AEkhakcc6R9mSXgAzCWYTXXsF/rjLylWH7z8QBIsFup6Z4J+Li/RdlDC9EKXi+NAioAWIRyDWBloK1Digs+9dE3POZuqX69w4ppLZJzN3rsH+qE4hYaGUnYaMGYAlQLNBa4VYGiJJUCwkVfDkl2lsS6b4Yx9r5yGbipHrSfFbsSwpQ0Vz/qW2NVB8UBOgtUC0FaJpiNggZAgrdH7+InE7wL08Qrw3i5abZPATY1XGys3u6BCHM5lQwUqDkQFzG1idYGY3M1UDUSe6uxnz6SRKbp6xme7g5A/LPSIIQ7p3PrjnYJd7pGt7NGUZBnrMQI3oSEqMIJRwPZdarcZ6vUq1UWN4dK3457D19bWhscv/DwDynl5oNXchJAAAAABJRU5ErkJggg%3D%3D%22%0A%20%20%20%20%20%20%20label%3D%22userContent.css%22%0A%20%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.userContent%28event%29%22%7D/%3E%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNC8xMS8wOGGVBZQAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABx0lEQVQ4ja2UMUgbURjHf3ckJzjcWSyRRgOhoe2SaOCc29JRHIt0DEVXlzp07yKULo5FmqlQwUWQzBYyemTIVrsUqiURkbTqae7O18V75j1y12r7hw++//e+97//e+/eg/8MQ+MOUATGEvot4BD4DhwD0Z8+MNPpdERSNBoNIYQQtVptBbg7xBCmxscMwyApYtTr9bflcvnZ1YqMNEFM00yMMAxlX7vd3qhWq4+B0VTBNIeO4yi9rVZrC7g3WMsMc5iEYrFIs9mk1+thWVZcngK+JgoO7pUOx3GoVCp6WaQ6TBP8G1zPfrUrDC5vJSIw4d2sAZrD9y8eKY2Ls7bM13d/KrWYAyx92pO5IugHEXtHfcmXt33W5idY3u4AKHmMB+OWwpUj9fsRJ+ehEoDMX27uszY/oYz7/ShFMIg4uQiVABS+8PEbH55PSu4HqqC65H7E/TtZyVfn8rxuHMja6lweQKnpDpVT5l9wdcr6T/ckDMOdm+hkMpmnwGfJAVzXfQjku93udNrVG4ZCoTCTy+UM4MDzvC/xHv4CsG37tFQqvQmCYDRZ4hrZbPbMtu3TQY2h98x13fgFGQHGteEj4ALA87wf+tzfFUXLs9H3dmQAAAAASUVORK5CYII%3D%22%0A%20%20%20%20%20%20label%3D%22prefs.js%22%0A%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.prefs%28event%29%22%7D/%3E%0A%20%20%20%20%3Cmenuitem%0A%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAABzUlEQVQ4ja2Uv2sUQRTHP+v+iBuCF4isGAVtYneGY1MeBuxOUloIVidimUaL9DaC2KRVvFbFRgj5K7JwcNckenJwepKTEHYlgne4zyY72ZncLkr8whfe982bL2/m7awlIvxPOIauANeB+YJ6D/gOfAEOgd+nKkQkz+UgCKSIjUZDAGm1Wk9E5KKIWMZ+zhn+82ZBnhmazebzbrd7+/hEVt7ANCRN00I6zskNVavVt+12+xYwW2pY1mEcx1ptrVb7AFzO58yhkKapmVLo9/vU63UqlQrj8ThLXwU+FRqWfUZxHNPpdE5tKe3wrN+lpQxerEwZ+l+akMLjHQuMDh+92dUKX+0kKn64ckHLZRrg5b0lFWuGvmuztOApvbnms761z+baJQAtzvDxYKxp7Yy+ZzN33tEIqPj13Susb+1r675nlxi6NnMzjkZA0+/uX+PB+69K+65uqB/Zs/l8OFF6Y3vIszuLKrexPQTQcmaH2pQ5C46nbD6vVdu25V8oIqt5DwcgiqIbwGIQBDfLnt40DAaD5dFoZAHDMAz3sjv8AZAkyVGv13vquu5sscUJJpPJzyRJjvIe1rSnFkVR9geZARaM5QPgF0AYht/MvX8AHIQZO771bscAAAAASUVORK5CYII%3D%22%0A%20%20%20%20%20%20label%3D%22user.js%22%0A%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.userJS%28event%29%22%7D/%3E%0A%0A%3C/menupopup%3E%3B%0Avar%20bool%20%3D%20XML.prettyPrinting%3B%0AXML.prettyPrinting%20%3D%20false%3B%0Avar%20el%20%3D%20new%20DOMParser%28%29.parseFromString%28menu.toXMLString%28%29%2C%20%22application/xml%22%29.documentElement%3B%0AXML.prettyPrinting%20%3D%20bool%3B%0Athis.appendChild%28el%29%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0Athis.menuClick%20%3D%20function%28event%29%20%7B%0A%20%20event.preventDefault%28%29%3B%0A%20%20event.stopPropagation%28%29%3B%0A%20%20this.open%20%3D%20false%3B%0A%7D%0A%0Athis.userChrome%20%3D%20function%28event%29%20%7B%0Avar%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0Afile.append%28%22chrome%22%29%3B%0Afile.append%28%22userChrome.css%22%29%3B%0Avar%20localFile%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsILocalFile%29%3B%0Avar%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsIProcess%29%3B%0Avar%20args%20%3D%20%5Bfile.path%5D%3B%0AlocalFile.initWithPath%28%22/usr/bin/gedit%22%29%3B%0Aprocess.init%28localFile%29%3B%0Aprocess.run%28false%2C%20args%2C%20args.length%29%3B%0A%7D%0A%0Athis.userContent%20%3D%20function%28event%29%20%7B%0Avar%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0Afile.append%28%22chrome%22%29%3B%0Afile.append%28%22userContent.css%22%29%3B%0Avar%20localFile%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsILocalFile%29%3B%0Avar%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsIProcess%29%3B%0Avar%20args%20%3D%20%5Bfile.path%5D%3B%0AlocalFile.initWithPath%28%22/usr/bin/gedit%22%29%3B%0Aprocess.init%28localFile%29%3B%0Aprocess.run%28false%2C%20args%2C%20args.length%29%3B%0A%7D%0A%0Athis.prefs%20%3D%20function%28event%29%20%7B%0Avar%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0Afile.append%28%22prefs.js%22%29%3B%0Avar%20localFile%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsILocalFile%29%3B%0Avar%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsIProcess%29%3B%0Avar%20args%20%3D%20%5Bfile.path%5D%3B%0AlocalFile.initWithPath%28%22/usr/bin/gedit%22%29%3B%0Aprocess.init%28localFile%29%3B%0Aprocess.run%28false%2C%20args%2C%20args.length%29%3B%0A%7D%0A%0Athis.userJS%20%3D%20function%28event%29%20%7B%0Avar%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0Afile.append%28%22user.js%22%29%3B%0Avar%20localFile%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsILocalFile%29%3B%0Avar%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D.%0A%20%20createInstance%28Components.interfaces.nsIProcess%29%3B%0Avar%20args%20%3D%20%5Bfile.path%5D%3B%0AlocalFile.initWithPath%28%22/usr/bin/gedit%22%29%3B%0Aprocess.init%28localFile%29%3B%0Aprocess.run%28false%2C%20args%2C%20args.length%29%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BID%3D%3Cid%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:/*Initialization Code*/ var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onclick="this.parentNode.menuClick(event)"> <menuitem class="menuitem-iconic" image="data:image/png;base64,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" label="userChrome.css" onclick={"document.getElementById('" + this.id + "').userChrome(event)"}/> <menuitem class="menuitem-iconic" image="data:image/png;base64,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" label="userContent.css" onclick={"document.getElementById('" + this.id + "').userContent(event)"}/> <menuitem class="menuitem-iconic" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNC8xMS8wOGGVBZQAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzQGstOgAAABx0lEQVQ4ja2UMUgbURjHf3ckJzjcWSyRRgOhoe2SaOCc29JRHIt0DEVXlzp07yKULo5FmqlQwUWQzBYyemTIVrsUqiURkbTqae7O18V75j1y12r7hw++//e+97//e+/eg/8MQ+MOUATGEvot4BD4DhwD0Z8+MNPpdERSNBoNIYQQtVptBbg7xBCmxscMwyApYtTr9bflcvnZ1YqMNEFM00yMMAxlX7vd3qhWq4+B0VTBNIeO4yi9rVZrC7g3WMsMc5iEYrFIs9mk1+thWVZcngK+JgoO7pUOx3GoVCp6WaQ6TBP8G1zPfrUrDC5vJSIw4d2sAZrD9y8eKY2Ls7bM13d/KrWYAyx92pO5IugHEXtHfcmXt33W5idY3u4AKHmMB+OWwpUj9fsRJ+ehEoDMX27uszY/oYz7/ShFMIg4uQiVABS+8PEbH55PSu4HqqC65H7E/TtZyVfn8rxuHMja6lweQKnpDpVT5l9wdcr6T/ckDMOdm+hkMpmnwGfJAVzXfQjku93udNrVG4ZCoTCTy+UM4MDzvC/xHv4CsG37tFQqvQmCYDRZ4hrZbPbMtu3TQY2h98x13fgFGQHGteEj4ALA87wf+tzfFUXLs9H3dmQAAAAASUVORK5CYII=" label="prefs.js" onclick={"document.getElementById('" + this.id + "').prefs(event)"}/> <menuitem class="menuitem-iconic" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsSAAALEgHS3X78AAABzUlEQVQ4ja2Uv2sUQRTHP+v+iBuCF4isGAVtYneGY1MeBuxOUloIVidimUaL9DaC2KRVvFbFRgj5K7JwcNckenJwepKTEHYlgne4zyY72ZncLkr8whfe982bL2/m7awlIvxPOIauANeB+YJ6D/gOfAEOgd+nKkQkz+UgCKSIjUZDAGm1Wk9E5KKIWMZ+zhn+82ZBnhmazebzbrd7+/hEVt7ANCRN00I6zskNVavVt+12+xYwW2pY1mEcx1ptrVb7AFzO58yhkKapmVLo9/vU63UqlQrj8ThLXwU+FRqWfUZxHNPpdE5tKe3wrN+lpQxerEwZ+l+akMLjHQuMDh+92dUKX+0kKn64ckHLZRrg5b0lFWuGvmuztOApvbnms761z+baJQAtzvDxYKxp7Yy+ZzN33tEIqPj13Susb+1r675nlxi6NnMzjkZA0+/uX+PB+69K+65uqB/Zs/l8OFF6Y3vIszuLKrexPQTQcmaH2pQ5C46nbD6vVdu25V8oIqt5DwcgiqIbwGIQBDfLnt40DAaD5dFoZAHDMAz3sjv8AZAkyVGv13vquu5sscUJJpPJzyRJjvIe1rSnFkVR9geZARaM5QPgF0AYht/MvX8AHIQZO771bscAAAAASUVORK5CYII=" label="user.js" onclick={"document.getElementById('" + this.id + "').userJS(event)"}/> </menupopup>; var bool = XML.prettyPrinting; XML.prettyPrinting = false; var el = new DOMParser().parseFromString(menu.toXMLString(), "application/xml").documentElement; XML.prettyPrinting = bool; this.appendChild(el); this.type = "menu"; this.orient = "horizontal"; this.menuClick = function(event) { event.preventDefault(); event.stopPropagation(); this.open = false; } this.userChrome = function(event) { var file = Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); file.append("chrome"); file.append("userChrome.css"); var localFile = Components.classes["@mozilla.org/file/local;1"]. createInstance(Components.interfaces.nsILocalFile); var process = Components.classes["@mozilla.org/process/util;1"]. createInstance(Components.interfaces.nsIProcess); var args = [file.path]; localFile.initWithPath("/usr/bin/gedit"); process.init(localFile); process.run(false, args, args.length); } this.userContent = function(event) { var file = Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); file.append("chrome"); file.append("userContent.css"); var localFile = Components.classes["@mozilla.org/file/local;1"]. createInstance(Components.interfaces.nsILocalFile); var process = Components.classes["@mozilla.org/process/util;1"]. createInstance(Components.interfaces.nsIProcess); var args = [file.path]; localFile.initWithPath("/usr/bin/gedit"); process.init(localFile); process.run(false, args, args.length); } this.prefs = function(event) { var file = Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); file.append("prefs.js"); var localFile = Components.classes["@mozilla.org/file/local;1"]. createInstance(Components.interfaces.nsILocalFile); var process = Components.classes["@mozilla.org/process/util;1"]. createInstance(Components.interfaces.nsIProcess); var args = [file.path]; localFile.initWithPath("/usr/bin/gedit"); process.init(localFile); process.run(false, args, args.length); } this.userJS = function(event) { var file = Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); file.append("user.js"); var localFile = Components.classes["@mozilla.org/file/local;1"]. createInstance(Components.interfaces.nsILocalFile); var process = Components.classes["@mozilla.org/process/util;1"]. createInstance(Components.interfaces.nsIProcess); var args = [file.path]; localFile.initWithPath("/usr/bin/gedit"); process.init(localFile); process.run(false, args, args.length); } *Исправлена грамматическая ошибка в описании кнопки |
imyax > 17-06-2011 17:10:35 |
Fit to Page Width(Firefox)Подогнать страницу по ширине с возможностью отключения без обновления страницы. Это улучшенная и дополненная Fit to Width от Dark-Demon скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EFit%20to%20Page%20Width%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAFVBMVEX///8AzP8AAAAAzP8Amf8AAMwAAACWs84cAAAAB3RSTlMAd3f/////1grLHQAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADA1LzI4LzA2GvIWfQAAAEpJREFUeJxjYMAErKGhgRCGi0uIAJjhbBxiCGO4AIUUgIzQ0AAmhiQgw9gkQI0hTRXECEpDiChAGExgXUAGxEAXlwCIFUDtWOwGAHj3ENTzyS3QAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20is_active%3D0%3B%0Avar%20rule1%3D0%3B%0Avar%20rule2%3D0%3B%0Athis.checked%3Dfalse%3B%0Athis.tooltipText%3D%22Fit%20to%20Page%20Width%3A%20Off%22%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%0A%20if%20%28event.button%20%3D%3D%200%29%20%7B%0A%0A%20%20if%20%28is_active%20%3D%3D%200%29%20%7B%0A%20%20%20%20var%20s%3Dcontent.document.styleSheets%5B0%5D%3B%0A%20%20%20%20rule1%3Ds.insertRule%28%27div%2Ctable%2Ctbody%2Ctr%2Ctd%2Cp%2Col%2Cul%2Cdl%2Ch1%2Ch2%2Ch3%2Chr%20%7Bmax-width%3A99%25%21important%3B%7D%27%2C1%29%3B%0A%20%20%20%20rule2%3Ds.insertRule%28%27pre%20%7Bmax-width%3A99%25%21important%3B%20white-space%3Anormal%21important%3B%7D%27%2C1%29%3B%0A%0A%20%20%20%20var%20i%3Dcontent.document.images%3B%0A%20%20%20%20for%20%28var%20j%3D0%3B%20j%3Ci.length%3B%20j++%29%20%7B%0A%20%20%20%20%20%20var%20k%3Dcontent.window.innerWidth/i%5Bj%5D.width*.99%3B%0A%20%20%20%20%20%20if%20%28k%3C1%29%20%7Bi%5Bj%5D.width*%3Dk%3B%20i%5Bj%5D.height*%3Dk%3B%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20is_active%3D1%3B%0A%0A%20%20%20%20this.checked%3Dtrue%3B%0A%20%20%20%20this.tooltipText%3D%22Fit%20to%20Page%20Width%3A%20On%22%0A%20%20%7D%20else%20%7B%0A%20%20%20%20var%20s%3Dcontent.document.styleSheets%5B0%5D%3B%0A%20%20%20%20if%20%28rule2%20%21%3D%200%20%29%20%7Bs.deleteRule%28rule2%29%3B%20rule2%3D0%3B%7D%0A%20%20%20%20if%20%28rule1%20%21%3D%200%20%29%20%7Bs.deleteRule%28rule1%29%3B%20rule1%3D0%3B%7D%0A%0A%20%20%20%20var%20i%3Dcontent.document.images%3B%0A%20%20%20%20for%20%28var%20j%3D0%3B%20j%3Ci.length%3B%20j++%29%20%7B%0A%20%20%20%20%20%20var%20k%3D%20content.window.innerWidth/i%5Bj%5D.width/.99%3B%0A%20%20%20%20%20%20if%20%28k%3C1%29%20%7Bi%5Bj%5D.width*%3Dk%3B%20i%5Bj%5D.height*%3Dk%3B%7D%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20is_active%3D0%3B%0A%0A%20%20%20%20this.checked%3Dfalse%3B%0A%20%20%20%20this.tooltipText%3D%22Fit%20to%20Page%20Width%3A%20Off%22%0A%20%20%7D%0A%0A%20%7D%0A%7D%0A%0Athis.setAttribute%28%22onleftclick%22%2C%20%22this.onclick%28%29%22%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bhttp%3A//forum.mozilla-russia.org/viewtopic.php%3Fpid%3D194020%23p194020%0Aautor%20Killy%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var is_active=0; var rule1=0; var rule2=0; this.checked=false; this.tooltipText="Fit to Page Width: Off" this.onclick = function(event) { if (event.button == 0) { if (is_active == 0) { var s=content.document.styleSheets[0]; rule1=s.insertRule('div,table,tbody,tr,td,p,ol,ul,dl,h1,h2,h3,hr {max-width:99%!important;}',1); rule2=s.insertRule('pre {max-width:99%!important; white-space:normal!important;}',1); var i=content.document.images; for (var j=0; j<i.length; j++) { var k=content.window.innerWidth/i[j].width*.99; if (k<1) {i[j].width*=k; i[j].height*=k;}; } is_active=1; this.checked=true; this.tooltipText="Fit to Page Width: On" } else { var s=content.document.styleSheets[0]; if (rule2 != 0 ) {s.deleteRule(rule2); rule2=0;} if (rule1 != 0 ) {s.deleteRule(rule1); rule1=0;} var i=content.document.images; for (var j=0; j<i.length; j++) { var k= content.window.innerWidth/i[j].width/.99; if (k<1) {i[j].width*=k; i[j].height*=k;}; } is_active=0; this.checked=false; this.tooltipText="Fit to Page Width: Off" } } } this.setAttribute("onleftclick", "this.onclick()"); |
imyax > 17-06-2011 22:09:33 |
Make bookmark button(Firefox) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EMake%20bookmark%20button%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsSAAALEgHS3X78AAADrElEQVQ4jZXUS2/UVRzG8e/vnNPpbTrToVRwmhIJViiJ9IIrF8aIb8B3IIkudOXSsHLDS2BlggtfhELYYAxhg4jQRqlogV6m08695387/3OOKxINK5/t8yTP7gMgWmvF/4hSanJx8czKhx9duTI1XdUA8qqsVCr1hYWFs0tLS+eXl5eX19bWLtdqteLatWtfD0ej8fX19dWVldWVtdXVS8sX3llabDYXZ6rTrK5ffvfRk42/BKhcv37926tXr34yNzdXrVQq8u93a20+ZsxYZXxcETzDwYC97oCX/YSd49Lfb5cPnneTDanX629vbm7+2mw2p2OMUSC4Io9pmoq1lsyVqp/mcmALf+h07MqEHOtpSdSUZEHHw/GpzrM7t24aIIYYPcDBQYs0dzopPRmaTMZIzVS0tUns7IS2QUhzSHIIWYFYG8tiKuttPnxsACpjY/qg3WY3jVTnmohSGKUYU5AVSHbs6Xb7DA6PcO19TrR36S9cYvjmBXHHuN7Wxp8GIPiSUeHRjdN4ZXA+YJOc1ovnDPZ2MK0dmq0dltv7VHsdJl9u86I03P7yhiS1i6PjnT92jYiiLApsqbBOkbkSVTHs7OxTfPUZ7zdPIaVDuZLSB1yek3nFQms7vvfdN/Lw05uDorPfUaKEosgZlpqR0wyzyDCDfh6QrS06t26TJhnqjdNMzs9TbTSoTkwQJquxsb2Jf/pbv3A2NSKi8qKgHw02DWgfUB6GaWBcFO3EcrbXw9TrxCQhpilhOCBL0jjZOWTm8d2CGDEiIkXh6AaDDRHtQRz0k8hJV2JLz9HeHtVqlZjnhDwn7/fJkhTvCuYf/aCIAaMgFGXgKFOkEtAxICYysOBiBOAoz5lvtQgx4rOMxFqSLJPMw6nte2cAjAi4EOlZTRJBxwg6MEoENzWN6R3SFUWn0wGgLApS5xjluYzKklmlLjZCOG+A6AP0jyNp8KgQQYc4Oi5DopSaBPqliy3vlc5zyhhJvY+2LMMQfIxx6i2Rj42IjIdITKwnKctSYtBqzKgsregEifMgKi9kT4kfz7LoQZWgvNba1GroRoPa0dE5k+f5CS1S0bqGy4xxx12x3Y3+/saPv1+ww9Uu+C1X7J6p1c6JcyaZmWFUr496s7NP9kXuPet0fnqWZXcFqH3+xVffb+aXTv79+Oc7o90H92376S+hTA8aSq0UMR7YGIsPZmdvuFpt74W1tztp+jDLsjYhvGaVBv6Dm4iSV1zJa3MQECVilIgB5B8VOzFqiSqfKQAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Avar%20doc%20%3D%20getBrowser%20%28%29.%20contentDocument%3B%0Avar%20title%20%3D%20doc.%20title%3B%0Avar%20pageURI%20%3D%20makeURI%20%28doc.%20location.%20href%2C%20null%2C%20null%29%3B%0Avar%20iconData%20%3D%20getFaviconData%20%28pageURI%29%3B%0Acustombuttons.%20cloneButton%20%28this%29%3B%0Avar%20newButtonLink%20%3D%20custombuttons.%20makeButtonLink%20%28%22update%22%2C%20this.%20nextSibling.%20id%29%3B%0Avar%20params%20%3D%20custombuttons.%20cbService.%20getButtonParameters%20%28newButtonLink%29.%20wrappedJSObject%3B%0Aparams.%20image%20%3D%20iconData%3B%0Aparams.%20name%20%3D%20title%3B%0Aparams.%20code%20%3D%20%22getBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28%5C%22%22%20+%20doc.%20location.%20href%20+%20%22%5C%22%29%3B%22%3B%0Aparams.%20wrappedJSObject%20%3D%20params%3B%0Acustombuttons.%20cbService.%20installButton%20%28params%29%3B%0Afunction%20makeURI%20%28aURL%2C%20aOriginCharset%2C%20aBaseURI%29%0A%7B%0A%20%20%20%20var%20ioService%20%3D%20Components.%20classes%5B%22@mozilla.org/network/io-service%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20getService%20%28Components.%20interfaces.%20nsIIOService%29%3B%0A%20%20%20%20return%20ioService.%20newURI%20%28aURL%2C%20aOriginCharset%2C%20aBaseURI%29%3B%0A%7D%0Afunction%20getFaviconData%20%28pageURI%29%0A%7B%0A%20%20%20%20var%20fis%20%3D%20Components.%20classes%20%5B%22@mozilla.org/browser/favicon-service%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20getService%28Components.interfaces.nsIFaviconService%29%3B%0A%20%20%20%20var%20iconURL%20/*%3D%20fis.%20getFaviconForPage%20%28pageURI%29*/%3B%0A%20%20%20%20%0A%20%20%20%20try%0A%20%20%20%20%7B%0A%09%20%20%20%20iconURL%20%3D%20fis.%20getFaviconForPage%20%28pageURI%29%3B%0A%20%20%20%20%7D%20catch%20%28e%29%20%7B%7D%0A%20%20%20%20if%20%28iconURL%29%0A%20%20%20%20%0A%20%20%20%20return%20fis.%20getFaviconDataAsDataURL%20%28iconURL%29%3B%0A%20%20%20%20return%20%22%22%3B%0A%7D%0A%0Avar%20elt%20%3D%20document.%20getAnonymousElementByAttribute%20%28this%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0Aelt.%20style.%20height%20%3D%20%2216px%22%3B%0Aelt.%20style.%20width%20%3D%20%2216px%22%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bhttp%3A//forum.mozilla-russia.org/viewtopic.php%3Fpid%3D349838%23p349838%0Aautor%3A%20Anton%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:/*CODE*/ var doc = getBrowser (). contentDocument; var title = doc. title; var pageURI = makeURI (doc. location. href, null, null); var iconData = getFaviconData (pageURI); custombuttons. cloneButton (this); var newButtonLink = custombuttons. makeButtonLink ("update", this. nextSibling. id); var params = custombuttons. cbService. getButtonParameters (newButtonLink). wrappedJSObject; params. image = iconData; params. name = title; params. code = "getBrowser (). selectedTab = getBrowser (). addTab (\"" + doc. location. href + "\");"; params. wrappedJSObject = params; custombuttons. cbService. installButton (params); function makeURI (aURL, aOriginCharset, aBaseURI) { var ioService = Components. classes["@mozilla.org/network/io-service;1"]. getService (Components. interfaces. nsIIOService); return ioService. newURI (aURL, aOriginCharset, aBaseURI); } function getFaviconData (pageURI) { var fis = Components. classes ["@mozilla.org/browser/favicon-service;1"]. getService(Components.interfaces.nsIFaviconService); var iconURL ; try { iconURL = fis. getFaviconForPage (pageURI); } catch (e) {} if (iconURL) return fis. getFaviconDataAsDataURL (iconURL); return ""; } |
bunda1 > 19-06-2011 22:21:11 |
Fit to width 2 ( Firefox 3.6 и выше, SeaMonkey ) скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EFit%20to%20width%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%2CR0lGODlhDQAQAPcAAAAAAAAAzgAI1gAY1gAx3gBC3gBK5wBS5wBj5wBr7wBr9wCM7wCc/wCl/wCt/wC1/wDO/wgh1hgp1hgxxhiE3hit5yFSziGU1iGt/yG11ikpISkpKSm1/zExKTExMTExlDF7rTGlxjGlzjk5MTk5OUJre0JrhEJ7hEqcrUrW91JSSlJSUlJSlGuEhGuEjHt7c3t7e3ucnHve75zn75zn99b399739+/39/f39///9////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ywAAAAADQAQAAAIlwADCBwYQIKMGzgSBjCAIEECBAQicJhRA2GABA0cZDwQgUEKijguOoBAEkFHCB9DJhhZcgCDlxhksKDAEgICAQRyWoixAkQFkhAWFBg64YMKACtQAF2K4igAAB5aLIXQosNTACROZJia4cQIABtMhJhKMkSJDTAu1Fzq4MILkWQhOEggEKNGB3jxMqC7sOFDh34NEBw8OCAAOw%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A//%20%3D%3DUserScript%3D%3D%0A//%20@name%20Custom%20Buttons%0A//%20@namespace%20http%3A//www.greasespot.net/%0A//%20@include%20http%3A//custombuttons.mozdev.org/drupal/content/*%0A//%20@exclude%20http%3A//custombuttons.mozdev.org/drupal/content/main-page%0A//%20@exclude%20http%3A//custombuttons.mozdev.org/drupal/content/custom-buttons-documentation%0A//%20%3D%3D/UserScript%3D%3D%0A%20%0A%20if%28content.document.getElementById%28%22sidebar-left%22%29%29%0A%20%7B%0A%20%20%20%20content.document.getElementById%28%22sidebar-left%22%29.style.display%20%3D%20%22none%22%3B%0A%20%7D%0A%20%0A%0A%20%0Avar%20d%20%3D%20content.document%3B%0Avar%20s%20%3D%20d.createElement%28%22style%22%29%3B%0As.type%20%3D%20%22text/css%22%3B%0As.innerHTML%20%3D%20%22%23sidebar-left%20+%20td%20%7B%20padding-left%3A%200%20%7D%22%3B%0Avar%20h%20%3D%20d.getElementsByTagName%28%22head%22%29%5B0%5D%3B%0Ah.appendChild%28s%29%3B%0A%20%0Avar%20p%20%3D%20content.document.getElementsByTagName%28%22pre%22%29%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20p.length%3B%20i++%29%20%7B%0A%20%20p%5Bi%5D.style.overflow%20%3D%20%22auto%22%3B%0A%20%20if%20%28p%5Bi%5D.textContent.indexOf%28%22data%3Aimage%22%29%20%3D%3D%20-1%29%20%7B%0A%20%20%20%20p%5Bi%5D.style.whiteSpace%20%3D%20%22pre-wrap%22%3B%0A%20%20%20%20p%5Bi%5D.style.wordWrap%20%3D%20%22break-word%22%3B%0A%20%20%7D%0A%7D%0A%20%0A/*%20double%20click%20to%20select%20all%20*/%0A%20%0A//var%20d%20%3D%20document%3B%0A//var%20p%20%3D%20d.getElementsByTagName%28%22pre%22%29%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20p.length%3B%20i++%29%20%7B%0A%20%20p%5Bi%5D.addEventListener%28%22dblclick%22%2C%20function%20%28%29%20%7B%0A%20%20%20%20var%20s%20%3D%20getSelection%28%29%3B%0A%20%20%20%20var%20r%20%3D%20d.createRange%28%29%3B%0A%20%20%20%20r.selectNodeContents%28this%29%3B%0A%20%20%20%20s.removeAllRanges%28%29%3B%0A%20%20%20%20s.addRange%28r%29%3B%0A%20%20%7D%2C%20false%29%3B%0A%7D%0A%20%0A/*%20fit%20to%20width%20*/%0A%20%0Afunction%20t%28f%29%20%7B%0A%20%20var%20a%20%3D%20d.createNodeIterator%28d%2C%201%2C%20f%2C%20false%29%3B%0A%20%20while%20%28a.nextNode%28%29%29%20%7B%7D%0A%7D%0A//var%20d%20%3D%20document%3B%0At%28function%20%28e%29%20%7B%0A%20%20var%20x%20%3D%20e.offsetLeft%3B%0A%20%20var%20l%20%3D%20e.offsetParent%3B%0A%20%20while%20%28l%20%21%3D%20null%29%20%7B%0A%20%20%20%20x%20+%3D%20l.offsetLeft%3B%0A%20%20%20%20l%20%3D%20l.offsetParent%3B%0A%20%20%7D%0A%20%20var%20w%20%3D%20d.documentElement.clientWidth%20-%20x%3B%0A%20%20var%20s%20%3D%20e.style%3B%0A%20%20if%20%28s.marginLeft%29%20w%20-%3D%20s.marginLeft%3B%0A%20%20if%20%28s.marginRight%29%20w%20-%3D%20s.marginRight%3B%0A%20%20if%20%28s.paddingLeft%29%20w%20-%3D%20s.paddingLeft%3B%0A%20%20if%20%28s.paddingRight%29%20w%20-%3D%20s.paddingRight%3B%0A%20%20if%20%28s.borderWidth%29%20w%20-%3D%20s.borderWidth%3B%0A%20%20w%20-%3D%20d.defaultView.innerWidth%20-%20d.documentElement.offsetWidth%3B%0A%20%20if%20%28e.tagName%20%3D%3D%20%22IMG%22%29%20%7B%0A%20%20%20%20var%20h%20%3D%20e.clientHeight%20*%20w%20/%20e.clientWidth%3B%0A%20%20%20%20s.maxHeight%20%3D%20h%3B%0A%20%20%7D%0A%20%20s.maxWidth%20%3D%20w%20+%20%22px%22%3B%0A%7D%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:// ==UserScript== // @name Custom Buttons // @namespace http://www.greasespot.net/ // @include http://custombuttons.mozdev.org/drupal/content/* // @exclude http://custombuttons.mozdev.org/drupal/content/main-page // @exclude http://custombuttons.mozdev.org/drupal/content/custom-buttons-documentation // ==/UserScript== if(content.document.getElementById("sidebar-left")) { content.document.getElementById("sidebar-left").style.display = "none"; } var d = content.document; var s = d.createElement("style"); s.type = "text/css"; s.innerHTML = "#sidebar-left + td { padding-left: 0 }"; var h = d.getElementsByTagName("head")[0]; h.appendChild(s); var p = content.document.getElementsByTagName("pre"); for (var i = 0; i < p.length; i++) { p[i].style.overflow = "auto"; if (p[i].textContent.indexOf("data:image") == -1) { p[i].style.whiteSpace = "pre-wrap"; p[i].style.wordWrap = "break-word"; } } /* double click to select all */ //var d = document; //var p = d.getElementsByTagName("pre"); for (var i = 0; i < p.length; i++) { p[i].addEventListener("dblclick", function () { var s = getSelection(); var r = d.createRange(); r.selectNodeContents(this); s.removeAllRanges(); s.addRange(r); }, false); } /* fit to width */ function t(f) { var a = d.createNodeIterator(d, 1, f, false); while (a.nextNode()) {} } //var d = document; t(function (e) { var x = e.offsetLeft; var l = e.offsetParent; while (l != null) { x += l.offsetLeft; l = l.offsetParent; } var w = d.documentElement.clientWidth - x; var s = e.style; if (s.marginLeft) w -= s.marginLeft; if (s.marginRight) w -= s.marginRight; if (s.paddingLeft) w -= s.paddingLeft; if (s.paddingRight) w -= s.paddingRight; if (s.borderWidth) w -= s.borderWidth; w -= d.defaultView.innerWidth - d.documentElement.offsetWidth; if (e.tagName == "IMG") { var h = e.clientHeight * w / e.clientWidth; s.maxHeight = h; } s.maxWidth = w + "px"; }); Fit to width 3 ( Firefox 3.6 и выше, SeaMonkey ) Выравнивает страницу по ширине окна. Автор:Anton скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EFit%20to%20width%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%2CR0lGODlhDQAQAPcAAAAAAAAAzgAI1gAY1gAx3gBC3gBK5wBS5wBj5wBr7wBr9wCM7wCc/wCl/wCt/wC1/wDO/wgh1hgp1hgxxhiE3hit5yFSziGU1iGt/yG11ikpISkpKSm1/zExKTExMTExlDF7rTGlxjGlzjk5MTk5OUJre0JrhEJ7hEqcrUrW91JSSlJSUlJSlGuEhGuEjHt7c3t7e3ucnHve75zn75zn99b399739+/39/f39///9////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ywAAAAADQAQAAAIlwADCBwYQIKMGzgSBjCAIEECBAQicJhRA2GABA0cZDwQgUEKijguOoBAEkFHCB9DJhhZcgCDlxhksKDAEgICAQRyWoixAkQFkhAWFBg64YMKACtQAF2K4igAAB5aLIXQosNTACROZJia4cQIABtMhJhKMkSJDTAu1Fzq4MILkWQhOEggEKNGB3jxMqC7sOFDh34NEBw8OCAAOw%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Btry%0A%7B%0A%20%20%20%20var%20doc%20%3D%20getBrowser%20%28%29.%20contentDocument%3B%0A%20%20%20%20doc.%20body.%20style.%20backgroundColor%20%3D%20%22rgb%28236%2C233%2C216%29%22%3B%0A%20%20%20%20doc.%20body.%20style.%20lineHeight%20%3D%20%222%22%3B%0A%20%20%20%20doc.%20body.%20style.%20textIndent%20%3D%20%223em%22%3B%0A%20%20%20%20doc.%20body.%20style.%20textHeight%20%3D%20%223%25%22%3B%0A%20%20%20%20doc.%20body.%20style.%20textAlign%20%3D%20%22justify%22%3B%0A%20%20%20%20%0A%7D%0Acatch%20%28e%29%20%7B%7D%20%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:try { var doc = getBrowser (). contentDocument; doc. body. style. backgroundColor = "rgb(236,233,216)"; doc. body. style. lineHeight = "2"; doc. body. style. textIndent = "3em"; doc. body. style. textHeight = "3%"; doc. body. style. textAlign = "justify"; } catch (e) {} |
imyax > 22-06-2011 01:32:53 |
Permanent Bookmark(Firefox4.0-5.0) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EPermanent%20Bookmark%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADMElEQVR4Xk3RT2tcVQBA8XPve5OZ95zJTOZPk0nHTtLGJIU0WrRGLVJpUWoEwSK6sEJ3rgRBxKW46dIv4EJRF61uVGyFUhTdSCUbDRYTkzYNGSeTZCbOTF7e33uvRSjmB+cTHFH9oOmeslr7M7JDhOQgY7iQSlkXtFIXfSW5uqho7wQIDA9IrbmsNI8ADgeEscrNTA1/+OzckReSRNeFAAwYg+AAmXfl9GheXk+0+RiwAbQ25HOZt+bPjc88ceJQJZ9Lz4dBct4I8ZW0xUUjACH+yxp6/v3MZEFfyob7s0LKXqL0L4kyx8+ern8yO110Mmmb3l5yenp86PV0Wp7c6FHsNjpXtFaJjhNktxveaJJdHirnGKvl31XGPD06knvnzFytCGBJKBedwrFaIffUuMPokH0GwSRKg9ZIafT60rb++W/PUCk61blHa1888/jhS5m0BCCOoX64wO5eSPkhyeyYS8oZeAM/gDBGmiCi1fSuddJ5f3N7j+NT5aP5wfQAgNYQhpqca7HnRQwfyjFRFJRLmVcI4xJhhFRBhIria79v6fVG20fFETs7HlpDHBuSROH7CcWCix8phl2Yna4cI4rP4QdIoxUoFTda0Zeek2dldZdSMcvKWh8hBHGsSRJN1rXo/BMw8XCBsbKQdiH7ErGSMt4PUIGPtxdd+XNHx/eafQZShs2tPrHSKJVgjGG7E+BkbKoVh1pOMDE1chY/rNs6jACIonD5XmfwZq+UenF9o8/9EzQaPbJOiijWtHd9TkyWSNuSyapLverVllznOcs6+iYmUaCUvv/bGS47L7uhh+va2JagMOiwcm+XkZJLacihueNxd62NUxrk9mq/JAEApBTEXvD5D4u9r9f6gpXVbXpeSKu9jzYGISXf/3SH7368w1/bEV1fQGbgiI1l8YCdJmytd9+7kbNPVk8N1JeWN6nXy7S2+iwsNmhHKVY2YXltf/n2r4vXzW7vMyFPf8v/DDqKITGvzp+vX3ntSccScUAnSnNzoctvC83FjS3vU1rtb7CtVSyJ4LGrHIQQoBR22vpo4njl7UrR5Y9bdxc6G7uX6Xm3KOa2CCJINAj4F0IRi07s8/Z5AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0Alet%20mWid%20%3D%2055%3B%0Afunction%20fileName%28%29%7B%0A%09let%20dir%20%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Components.interfaces.nsIProperties%29.get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0A%09dir.append%28%22custombuttons%22%29%3B%0A%09if%20%28%21dir.exists%28%29%29%20%7B%0A%09%09try%7B%0A%09%09%09dir.create%280x01%2C%200755%29%3B%0A%09%09%7D%20catch%28e%29%7B%0A%09%09%09let%20msg%3D%27Custom%20Buttons%20error.%5D%27+%27%5B%20Event%3A%20Creating%20custombuttons%20directory%5D%27+%27%5B%20%27+e%3BComponents.utils.reportError%28msg%29%3B%0A%09%09%7D%0A%09%7D%0A%09return%20dir.path%3B%0A%7D%0A%0Afunction%20writeFile%20%28sFilePath%2C%20sFileContent%29%0A%7B%0A%20%20%20%20var%20suc%20%3D%20Cc%20%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.%20createInstance%20%28Ci.%20nsIScriptableUnicodeConverter%29%3B%0A%20%20%20%20suc.%20charset%20%3D%20%22UTF-8%22%3B%0A%20%20%20%20cbu.%20writeFile%20%28sFilePath%2C%20suc.%20ConvertFromUnicode%20%28sFileContent%29%29%3B%0A%7D%0A%0Afunction%20readFile%20%28sFilePath%29%0A%7B%0A%20%20%20%20var%20suc%20%3D%20Cc%20%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.%20createInstance%20%28Ci.%20nsIScriptableUnicodeConverter%29%3B%0A%20%20%20%20suc.%20charset%20%3D%20%22UTF-8%22%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20return%20suc.%20ConvertToUnicode%20%28cbu.%20readFile%20%28sFilePath%29%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%7D%0A%20%20%20%20return%20%22%22%3B%0A%7D%0A//********%20%20Read%20write%20******%0Alet%20mp%3B%0Athis.removeNode%20%3D%20function%28%20aNode%20%29%7B%0A%09closeMenus%28%20aNode%20%29%3B%0A%09mp.removeChild%28%20aNode%20%29%3B%0A%09//reAssignId%28%29%3B%0A%7D%3B%0A%0Afunction%20reAssignId%28%29%7B%0A%09let%20NL%3Dmp.childNodes%3B%0A%09for%28let%20i%3D0%3Bi%3CNL.length%3Bi++%29%0A%09%7B%0A%09%09mp.removeChild%28NL%5Bi%5D.id%3Di+1%29%3B%0A%09%7D%0A%7D%0A%0Afunction%20addMenuItem%28aNode%2C%20aLabel%2CaURL%2CaImg%2C%20aContextId%2C%20aCommand%29%20%7B%0A%09let%20mi%20%3D%20aNode.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%09mi.setAttribute%28%22label%22%2C%20aLabel.substr%280%2CmWid%29%29%3B%0A%09mi.setAttribute%28%22value%22%2C%20aURL%29%3B%0A%09mi.setAttribute%28%22class%22%2C%22menuitem-iconic%22%29%0A%09mi.setAttribute%28%22image%22%2C%20aImg%29%3B%0A%09mi.setAttribute%28%22name%22%2C%20aImg%29%3B%0A%09mi.setAttribute%28%22id%22%2CaNode.childNodes.length%29%3B%0A%09if%28aContextId%29%20mi.setAttribute%28%22context%22%2C%20aContextId%29%3B%0A%09if%28aCommand%29%20mi.setAttribute%28%22oncommand%22%2C%20aCommand%29%3B%0A%7D%0Afunction%20donoth%28%29%7B%7D%0A%0A/*%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20%20Execute%20Init%20Code%20%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%20*/%0Alet%20contextId%20%3D%20%22popup-item-bookmark%22%3B%0Alet%20test%20%3D%20document.getElementById%28contextId%29%3B%0Aif%28test%29%20test.parentNode.removeChild%28test%29%3B%0Alet%20mainPopup%20%3D%20document.getElementById%28%22mainPopupSet%22%29%3B%0Alet%20context%20%3D%20mainPopup.appendChild%28document.createElement%28%22popup%22%29%29%3B%0Acontext.id%20%3D%20contextId%3B%0AaddMenuItem%28context%2C%20%22Remove%20Item%3F%22%2Cnull%2Cthis.image%2C%20null%2C%20%22alert%28document.popupNode.label%29%3B%20document.popupNode.parentNode.parentNode.removeNode%28document.popupNode%29%3B%22%29%3B%0Alet%20filePath%3DfileName%28%29+%22/Bookmarks300.txt%22%3B%0Alet%20data%3DreadFile%28filePath%29%3B%0Alet%20popupItems%3Ddata.split%28%27%5Cn%27%29%3B%0Amp%20%3D%20document.createElement%28%22menupopup%22%29%3B%0AaddMenuItem%28mp%2C%20%22Save%22%2C%22Save%22%2Cthis.image%2Cnull%2C%22this.parentNode.parentNode.save%28%29%22%29%3B%0Amp.setAttribute%28%22oncommand%22%2C%20%22this.parentNode.openPage%28event%29%22%29%3B%0Afor%20%28let%20i%20in%20popupItems%29%20%7B%0A%09popupItems%5Bi%5D.replace%28/%5C%5Cs/g%2C%27%27%29%3B%0A%09if%28popupItems%5Bi%5D.length%3E1%29%7B%0A%09%20%20%20let%20pItem%3DpopupItems%5Bi%5D.split%28%22%5D%7E%5B%22%29%3B%0A%09%09if%28pItem.length%3D%3D3%29%0A%09%09%7B%0A%09%09%20%20addMenuItem%28mp%2C%20pItem%5B0%5D%2CpItem%5B1%5D%2CpItem%5B2%5D%2C%20contextId%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%20/*%20End%20for*/%0Afunction%20getData%28%29%7B%0A%09let%20NL%3Dmp.childNodes%3B%0A%09let%20data%3D%22%22%3B%0Afor%28let%20i%3D1%3Bi%3CNL.length%3Bi++%29%7B%0A%09%09let%20img%3DNL%5Bi%5D.getAttribute%28%22image%22%29%3B%0A%09%09data%3Ddata+NL%5Bi%5D.label+%22%5D%7E%5B%22+NL%5Bi%5D.value+%22%5D%7E%5B%22+img+%22%5Cn%22%3B%0A%09%7D%0A%09return%20data%3B%0A%7D%0Athis.execute%3Dfunction%28evt%29%7B%0A%09if%28evt.target.value%3D%3D-1%29%20AddMenuItem%28%29%3B%0A%7D%0Afunction%20AddMenuItem%28%29%7B%0A%09let%20img%3Ddocument.getElementById%28%22page-proxy-favicon%22%29.src%3B%0A%09let%20name%3Dcontent.document.title%3B%0A%09let%20url%3Ddocument.getElementById%28%22urlbar%22%29.value%3B%0A%09addMenuItem%28mp%2Cname%2Curl%2Cimg%2CcontextId%29%3B%0A%09%0Afunction%20getChildFolder%28aFolderId%2C%20aSubFolder%29%20%7B%0A%20%20var%20htService%20%3D%20Components.classes%5B%22@mozilla.org/browser/nav-history-service%3B1%22%5D.%0A%20%20%20%20getService%28Components.interfaces.nsINavHistoryService%29%3B%0A%20%20var%20query%20%3D%20htService.getNewQuery%28%29%3B%0A%20%20var%20options%20%3D%20htService.getNewQueryOptions%28%29%3B%0A%20%20query.setFolders%28%5BaFolderId%5D%2C%201%29%3B%0A%20%20var%20result%20%3D%20htService.executeQuery%28query%2C%20options%29%3B%0A%20%20var%20rootNode%20%3D%20result.root%3B%0A%20%20var%20childFolder%20%3D%200%3B%0A%20%20rootNode.containerOpen%20%3D%20true%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20rootNode.childCount%3B%20i++%29%20%7B%0A%20%20%20%20var%20node%20%3D%20rootNode.getChild%28i%29%3B%0A%20%20%20%20if%20%28node.type%20%3D%3D%20node.RESULT_TYPE_FOLDER%20%26%26%20node.title%20%3D%3D%20aSubFolder%29%20%7B%0A%20%20%20%20%20%20childFolder%20%3D%20node.itemId%3B%0A%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20rootNode.containerOpen%20%3D%20false%3B%0A%20%20return%20childFolder%3B%0A%7D%09%0A%09%0Avar%20bmService%20%3D%20Components.classes%5B%22@mozilla.org/browser/nav-bookmarks-service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsINavBookmarksService%29%3B%0Avar%20ioService%20%3D%20Components.classes%5B%22@mozilla.org/network/io-service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIIOService%29%3B%0Avar%20folder%3B%0Afolder%20%3D%20bmService.bookmarksMenuFolder%3B%20//%20Bookmarks%20Menu%0Afolder%20%3D%20bmService.getChildFolder%28folder%2C%20%22Permanent%20Bookmarks%22%29%3B%0Avar%20uri%20%3D%20ioService.newURI%28content.document.location.href%2C%20null%2C%20null%29%3B%0Avar%20title%20%3D%20content.document.title%3B%0AbmService.insertBookmark%28folder%2C%20uri%2C%20bmService.DEFAULT_INDEX%2C%20title%29%3B%09%0A%09%0A%7D%0Athis.save%20%3D%20function%28%29%0A%7B%0A%09writeFile%28filePath%2CgetData%28%29%29%0A%7D%3B%0Athis.openPage%20%3D%20function%28%20e%20%29%0A%7B%0A%09let%20link%20%3D%20e.target.value%0A%09if%20%28link%20%21%3D%20%22Save%22%29%7B%0A%09%09let%20newTab%20%3D%20gBrowser.addTab%28link%29%3B%0A%09%09gBrowser.selectedTab%20%3D%20newTab%3B%0A%09%7D%0A%7D%3B%0A%0A%0A%0Athis.setAttribute%28%22onclick%22%2C%20%22this.buttonClick%28evt%29%22%29%3B%0A%0Athis.%20handleClick%20%3D%20function%20%28evt%29%0A%7B%0Avar%20menuitem%20%3D%20evt.%20target%3B%0Avar%20url%20%3D%20menuitem.%20getAttributeNS%20%28%22http%3A//xsms.nm.ru/custombuttons/%22%2C%20%22url%22%29%3B%0Aif%20%28event.%20button%20%3D%3D%200%29%0AgBrowser.%20addTab%20%28url%29%3B%0Aelse%20if%20%28event.%20button%20%3D%3D%201%29%0A%20%20gClipboard.write%28url%29%3B%0A%20%20if%20%28evt.button%20%3D%3D%201%29%20alert%28%22Copied%20to%20Clipboard%22%29%3B%0A%20%20custombuttons.alertSlide%28%22Copied%20to%20Clipboard%21%21%22%2C%20%22AWESOME%21%21%22%29%3B%28menuitem.value%29%3B%0Athis.%20open%20%3D%20false%3B%0A%7D%3B%0A%0A%0Athis.type%20%3D%20%22menu-button%22%3B%0Athis.setAttribute%28%22class%22%2C%20%22menu-iconic%22%29%3B%0Athis.setAttribute%28%22oncommand%22%2C%20%22this.execute%28event%29%3B%22%29%3B%0Athis.appendChild%28mp%29%3B%0Athis.value%3D-1%3B%0A%0Athis.setAttribute%28%22author%22%2C%20%22deepakjoshi04%2CSCClockDr%22%20%29%3B%0Athis.setAttribute%28%22status%22%2C%22Complete%22%29%3B%0Athis.setAttribute%28%22public%22%2Ctrue%29%3B%0Athis.setAttribute%28%22dependency%22%2C%22FF%202.0%2CCB%202.0.*%22%29%3B%0Athis.setAttribute%28%22version%22%2C%2220080124.01%22%29%3B%0Athis.setAttribute%28%27homepage%27%2C%20%27http%3A//custombuttons2.com/forum/buttons/buttons-database/permanent-bookmark.html%27%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BHelp%20has%20not%20been%20defined%20for%20this%20button.%0A%u041D%u0430%u0436%u0430%u0442%u0438%u0435%20%u043D%u0430%20%u0438%u043A%u043E%u043D%u043A%u0443%20-%20%u0437%u0430%u043D%u043E%u0441%u0438%u0442%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u043A%u043D%u043E%u043F%u043A%u0438.%0A%u041D%u0430%u0436%u0430%u0442%u0438%u0435%20%u043D%u0430%20%u0441%u0442%u0440%u0435%u043B%u043A%u0443-%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u043A%u043D%u043E%u043F%u043A%u0438.%20%0A%u041D%u0430%u0436%u0430%u0442%u0438%u0435%20%u043D%u0430%20%u043F%u0443%u043D%u043A%u0442%20%22Save%22%20%u0432%20%u0441%u043F%u0438%u0441%u043A%u0435%20%u0441%u043E%u0445%u0440%u0430%u043D%u044F%u0435%u0442%20%u0441%u043F%u0438%u0441%u043E%u043A.%20%0A%u0423%u0434%u0430%u043B%u0435%u043D%u0438%u0435%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%20-%20%u043F%u0440%u0430%u0432%u043E%u0439%20%u043A%u043B%u0430%u0432%u0438%u0448%u0435%u0439%20%u043C%u044B%u0448%u0438%20%u043F%u043E%20%u0432%u044B%u0431%u0440%u0430%u043D%u043D%u043E%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0438%20%u043D%u0430%u0436%u0430%u0442%u044C%20%u043F%u043E%u044F%u0432%u0438%u0432%u0448%u0438%u0439%u0441%u044F%20%u043F%u0443%u043D%u043A%u0442%20%22Remove%20Item%20%3F%22.%0A%u041F%u043E%u044F%u0432%u0438%u0442%u0441%u044F%20%u0437%u0430%u043F%u0440%u043E%u0441%20%u043D%u0430%20%u043F%u043E%u0434%u0442%u0432%u0435%u0440%u0436%u0434%u0435%u043D%u0438%u0435%20%u0443%u0434%u0430%u043B%u0435%u043D%u0438%u044F%20-%20%u043D%u0430%u0436%u0430%u0442%u044C%20%22%u041E%u043A%22.%20%0A%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u043F%u0438%u0441%u043E%u043A%2C%20%u043F%u0440%u043E%u0438%u0437%u0432%u0435%u0441%u0442%u0438%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u0435%20%u043D%u0430%u0436%u0430%u0442%u0438%u0435%u043C%20%u043D%u0430%20%u043F%u0443%u043D%u043A%u0442%20%22Save%22.%20%0A%u0421%u043F%u0438%u0441%u043E%u043A%20%u0441%u043E%u0445%u0440%u0430%u043D%u0451%u043D%u043D%u044B%u0445%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%20%u043D%u0430%u0445%u043E%u0434%u0438%u0442%u0441%u044F%20%u0432%20%u043F%u0430%u043F%u043A%u0435%20custombuttons%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F%20%u0432%20%u0444%u0430%u0439%u043B%u0435%20%22Bookmarks300.txt%22%0A%u0410%u0432%u0442%u043E%u0440%u044B%3A%20deepakjoshi04%2C%20SCClockDr%20%20%0A%u0410%u0434%u0430%u043F%u0442%u0430%u0446%u0438%u044F%20%u043F%u043E%u0434%20firefox%204.0.*%20%3A%20morat%20%0A%u041A%u043E%u0440%u0440%u0435%u043A%u0446%u0438%u044F%20%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u043A%u0438%u0440%u0438%u043B%u043B%u0438%u0446%u044B%3A%20Anton%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:/*Initialization code*/ let mWid = 55; function fileName(){ let dir = Components.classes["@mozilla.org/file/directory_service;1"].getService(Components.interfaces.nsIProperties).get("ProfD", Components.interfaces.nsIFile); dir.append("custombuttons"); if (!dir.exists()) { try{ dir.create(0x01, 0755); } catch(e){ let msg='Custom Buttons error.]'+'[ Event: Creating custombuttons directory]'+'[ '+e;Components.utils.reportError(msg); } } return dir.path; } function writeFile (sFilePath, sFileContent) { var suc = Cc ["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance (Ci. nsIScriptableUnicodeConverter); suc. charset = "UTF-8"; cbu. writeFile (sFilePath, suc. ConvertFromUnicode (sFileContent)); } function readFile (sFilePath) { var suc = Cc ["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance (Ci. nsIScriptableUnicodeConverter); suc. charset = "UTF-8"; try { return suc. ConvertToUnicode (cbu. readFile (sFilePath)); } catch(e) { } return ""; } //******** Read write ****** let mp; this.removeNode = function( aNode ){ closeMenus( aNode ); mp.removeChild( aNode ); //reAssignId(); }; function reAssignId(){ let NL=mp.childNodes; for(let i=0;i<NL.length;i++) { mp.removeChild(NL[i].id=i+1); } } function addMenuItem(aNode, aLabel,aURL,aImg, aContextId, aCommand) { let mi = aNode.appendChild(document.createElement("menuitem")); mi.setAttribute("label", aLabel.substr(0,mWid)); mi.setAttribute("value", aURL); mi.setAttribute("class","menuitem-iconic") mi.setAttribute("image", aImg); mi.setAttribute("name", aImg); mi.setAttribute("id",aNode.childNodes.length); if(aContextId) mi.setAttribute("context", aContextId); if(aCommand) mi.setAttribute("oncommand", aCommand); } function donoth(){} /* ============ Execute Init Code ============ */ let contextId = "popup-item-bookmark"; let test = document.getElementById(contextId); if(test) test.parentNode.removeChild(test); let mainPopup = document.getElementById("mainPopupSet"); let context = mainPopup.appendChild(document.createElement("popup")); context.id = contextId; addMenuItem(context, "Remove Item?",null,this.image, null, "alert(document.popupNode.label); document.popupNode.parentNode.parentNode.removeNode(document.popupNode);"); let filePath=fileName()+"/Bookmarks300.txt"; let data=readFile(filePath); let popupItems=data.split('\n'); mp = document.createElement("menupopup"); addMenuItem(mp, "Save","Save",this.image,null,"this.parentNode.parentNode.save()"); mp.setAttribute("oncommand", "this.parentNode.openPage(event)"); for (let i in popupItems) { popupItems[i].replace(/\\s/g,''); if(popupItems[i].length>1){ let pItem=popupItems[i].split("]~["); if(pItem.length==3) { addMenuItem(mp, pItem[0],pItem[1],pItem[2], contextId); } } } /* End for*/ function getData(){ let NL=mp.childNodes; let data=""; for(let i=1;i<NL.length;i++){ let img=NL[i].getAttribute("image"); data=data+NL[i].label+"]~["+NL[i].value+"]~["+img+"\n"; } return data; } this.execute=function(evt){ if(evt.target.value==-1) AddMenuItem(); } function AddMenuItem(){ let img=document.getElementById("page-proxy-favicon").src; let name=content.document.title; let url=document.getElementById("urlbar").value; addMenuItem(mp,name,url,img,contextId); function getChildFolder(aFolderId, aSubFolder) { var htService = Components.classes["@mozilla.org/browser/nav-history-service;1"]. getService(Components.interfaces.nsINavHistoryService); var query = htService.getNewQuery(); var options = htService.getNewQueryOptions(); query.setFolders([aFolderId], 1); var result = htService.executeQuery(query, options); var rootNode = result.root; var childFolder = 0; rootNode.containerOpen = true; for (var i = 0; i < rootNode.childCount; i++) { var node = rootNode.getChild(i); if (node.type == node.RESULT_TYPE_FOLDER && node.title == aSubFolder) { childFolder = node.itemId; break; } } rootNode.containerOpen = false; return childFolder; } var bmService = Components.classes["@mozilla.org/browser/nav-bookmarks-service;1"]. getService(Components.interfaces.nsINavBookmarksService); var ioService = Components.classes["@mozilla.org/network/io-service;1"]. getService(Components.interfaces.nsIIOService); var folder; folder = bmService.bookmarksMenuFolder; // Bookmarks Menu folder = bmService.getChildFolder(folder, "Permanent Bookmarks"); var uri = ioService.newURI(content.document.location.href, null, null); var title = content.document.title; bmService.insertBookmark(folder, uri, bmService.DEFAULT_INDEX, title); } this.save = function() { writeFile(filePath,getData()) }; this.openPage = function( e ) { let link = e.target.value if (link != "Save"){ let newTab = gBrowser.addTab(link); gBrowser.selectedTab = newTab; } }; this.setAttribute("onclick", "this.buttonClick(evt)"); this. handleClick = function (evt) { var menuitem = evt. target; var url = menuitem. getAttributeNS ("http://xsms.nm.ru/custombuttons/", "url"); if (event. button == 0) gBrowser. addTab (url); else if (event. button == 1) gClipboard.write(url); if (evt.button == 1) alert("Copied to Clipboard"); custombuttons.alertSlide("Copied to Clipboard!!", "AWESOME!!");(menuitem.value); this. open = false; }; this.type = "menu-button"; this.setAttribute("class", "menu-iconic"); this.setAttribute("oncommand", "this.execute(event);"); this.appendChild(mp); this.value=-1; this.setAttribute("author", "deepakjoshi04,SCClockDr" ); this.setAttribute("status","Complete"); this.setAttribute("public",true); this.setAttribute("dependency","FF 2.0,CB 2.0.*"); this.setAttribute("version","20080124.01"); this.setAttribute('homepage', 'http://custombuttons2.com/forum/buttons/buttons-database/permanent-bookmark.html'); P.S.Кнопка размещена повторно. Первоначальное сообщение от 20-06-2011 почему-то отсутствует. |
hydrolizer > 02-07-2011 13:57:40 |
По просьбе из вот этой темы: скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EHistory%20Export%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20mDBConn%20%3D%20Cc%5B%22@mozilla.org/browser/nav-history-service%3B1%22%5D.getService%28Ci.nsPIPlacesDatabase%29.DBConnection%3B%0Avar%20stmt%3DmDBConn.createStatement%28%22SELECT%20strftime%28%27%25d-%25m-%25Y%20%25H%3A%25M%3A%25S%27%2Cmax%28coalesce%28last_visit_date%2C0%29%29/1000000%2C%27unixepoch%27%2C%27localtime%27%29%20fd%2C%20url%2Cmax%28coalesce%28last_visit_date%2C0%29%29%20from%20moz_places%20group%20by%20url%20order%20by%203%20desc%22%29%3B%0Avar%20log%3D%5B%5D%3B%0Awhile%28stmt.step%28%29%29%20log.push%28stmt.row.fd+%22%5Ct%22+stmt.row.url%29%3B%0Astmt.finalize%28%29%3B%0Avar%20fp%3DCc%5B%22@mozilla.org/filepicker%3B1%22%5D.createInstance%28Ci.nsIFilePicker%29%3B%0Afp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u0444%u0430%u0439%u043B%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20%u0436%u0443%u0440%u043D%u0430%u043B%u0430%22%2C%20Ci.nsIFilePicker.modeSave%29%3B%0Afp.appendFilter%28%22Text%20files%22%2C%22*.txt%22%29%3B%0Avar%20res%20%3D%20fp.show%28%29%3B%0Aif%20%28res%20%3D%3D%20Ci.nsIFilePicker.returnCancel%29%0A%09return%20false%3B%0Avar%20file%20%3D%20fp.file%3B%0Aif%20%28%21%28/%5C.txt%24/i.test%28file.path%29%29%29%20file.initWithPath%28file.path+%22.txt%22%29%3B%0Avar%20foStream%20%3D%20Cc%5B%22@mozilla.org/network/file-output-stream%3B1%22%5D.createInstance%28Ci.nsIFileOutputStream%29%3B%0AfoStream.init%28file%2C%200x02%20%7C%200x08%20%7C%200x20%2C%200664%2C%200%29%3B%0Avar%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/converter-output-stream%3B1%22%5D.createInstance%28Ci.nsIConverterOutputStream%29%3B%0Aconverter.init%28foStream%2C%20%22UTF-8%22%2C%200%2C%200%29%3B%0Aconverter.writeString%28log.join%28%22%5Cn%22%29%29%3B%0Aconverter.close%28%29%3B%0Aalert%28%22%u0416%u0443%u0440%u043D%u0430%u043B%20%u0443%u0441%u043F%u0435%u0448%u043D%u043E%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u043D%22%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var mDBConn = Cc["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsPIPlacesDatabase).DBConnection; var stmt=mDBConn.createStatement("SELECT strftime('%d-%m-%Y %H:%M:%S',max(coalesce(last_visit_date,0))/1000000,'unixepoch','localtime') fd, url,max(coalesce(last_visit_date,0)) from moz_places group by url order by 3 desc"); var log=[]; while(stmt.step()) log.push(stmt.row.fd+"\t"+stmt.row.url); stmt.finalize(); var fp=Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); fp.init(window, "Укажите файл для экспорта журнала", Ci.nsIFilePicker.modeSave); fp.appendFilter("Text files","*.txt"); var res = fp.show(); if (res == Ci.nsIFilePicker.returnCancel) return false; var file = fp.file; if (!(/\.txt$/i.test(file.path))) file.initWithPath(file.path+".txt"); var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0); var converter = Cc["@mozilla.org/intl/converter-output-stream;1"].createInstance(Ci.nsIConverterOutputStream); converter.init(foStream, "UTF-8", 0, 0); converter.writeString(log.join("\n")); converter.close(); alert("Журнал успешно экспортирован"); |
slbgz > 09-07-2011 02:35:21 |
Right click = Button Help(Firefox) Кнопка заменяет на всех установленных кнопках стандартный вызов CB-меню по Правому Kлику мыши на вызов окошка Помощи (Button Help). Или добавляет вызов Button Help к другой функции, уже назначенной на Правый Клик некоторых кнопок. Если такое всеобщее изменение поведения нежелательно для определенной кнопки, Код: Infocatcher скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0440%u0430%u0432%u0438%u0439%20K%u043Ba%u0446%20%3D%20%u0414%u043E%u043F%u043E%u043C%u043E%u0433%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/bmp%3Bbase64%2CQk02AwAABQFyYTYAAAAoAAAAEAAAABAAAAABABgAAAAAAAADAAAnAAAAJwAAAAAAAAAAAAAAzNHUzNHUzNHUzNHUxszQr6upqJCGooV4ooR3pZKJtLCvyM3QzNHUzNHUzNHUzNHUzNHUzNHUy9DTuK2smlUxwF0pzWYvzWcvzWcvzGYus1QilWNKtra3y8/TzNHUzNHUzNHUy9DTpZKIulwq0mou1Gov1Gov2IBJ03M81Gsv1Gsv0GktrFoupKGgy8/TzNHUzNLVtKKbw2Aq1Gsv020v020u25Ni/vTp+ebV1G0v1G0v020u1G0urVont7a3zNHUxcbJrVkk024u028v024v024u04tY8ufd6tK/1nAv1nAv1nAv1nAu1W4tmWFAxszQtp6O1W8u3HMv3HMv3HMv3HMv3HMv135B3HQy3HMv3HMv3HMv3HMv3HMuyWYit6yotX9b23Mu3HMu3HMu3HMv3HIn1oJG9uHQ89Cx3HYo3HYo3HYo3HYo3HYn23YnrpGAwHZD23cm3Hcm3Hcm3HYm3HYm23ku8+rh/PLo4IY+23Ym23Yn23kn23kn23knrYFhxXxC33gn33gn33on33sn33sn5Hsn3ruf/PTs/Ozi6ZJN5Xom5Xon5Xon5XonsYRiwIJN5Xsn5Xsn5Xsn5Xsn5Xsn5Xsn5X4n38a2+/f0/fPp5YQv5YAn5YAn5YAns4lrw5185IYt5YAn5YAn5YAn5YAn5YAn5H8m5IEq6uXg/fn17Z5c5YAn5YAn5HwmtqWTwbSq5JQ+5YMn5IIn5p9i/f39+u/m651S7qZm+vf3/fn265lP64Mn7IQnxGsiw8TFzNTYuoRU7JIy7YQm64gt5dfI/Pv9/v7+/f7+/Pz96s6564gm7Ycm5YUpuJyGzNLVzNHUyMrLzI5O7JYy7Ikn7Ikr37SN49TI49bJ366B7Ior7Ygm540rtoJRy8/QzNHUzNHUzNHUycrLv4VO8KJC8pEt7Ysm7Ysm7Ysm7osm844n4JI0u5Jxyc3PzNHUzNHUzNHUzNHUzNHUytHVwa2cypxt1Y4924sw2Yguz4pAw5xxwbiwzNPXzNHUzNHUzNHU%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5BaddEventListener%28%22contextmenu%22%2C%20function%28e%29%20%7B%0A%20%20%20%20var%20btn%20%3D%20e.target%3B%0A%20%20%20%20if%28%0A%20%20%20%20%20%20%20%20e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.altKey%20%7C%7C%20e.metaKey%0A%20%20%20%20%20%20%20%20%7C%7C%20btn.id.substr%280%2C%2020%29%20%21%3D%20%22custombuttons-button%22%0A%20%20%20%20%20%20%20%20%7C%7C%20%21btn.hasAttribute%28%22Help%22%29%0A%20%20%20%20%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20custombuttons.uChelpButton%28btn%29%3B%0A%7D%2C%20true%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BRight%20click%20%3D%20Button%20Help%0A%0A%u041A%u043D%u043E%u043F%u043A%u0430%20%u0437%u043C%u0456%u043D%u044E%u0454%20%u0443%20%u0432%u0441%u0456%u0445%20%u0456%u043D%u0441%u0442%u0430%u043B%u044C%u043E%u0432%u0430%u043D%u0438%u0445%20%u043A%u043D%u043E%u043F%u043A%u0430%u0445%20Custom%20Buttons%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u0438%u0439%20%u0432%u0438%u043A%u043B%u0438%u043A%20CB-%u043C%u0435%u043D%u044E%20%u041F%u0440%u0430%u0432%u0438%u043C%20%u041A%u043B%u0430%u0446%u043E%u043C%20%u043C%u0438%u0448%u0456%20%u043D%u0430%20%u0432%u0438%u043A%u043B%u0438%u043A%20Button%20Help.%20%u0410%u0431%u043E%20%u0434%u043E%u0434%u0430%u0454%20%u0432%u0438%u043A%u043B%u0438%u043A%20Button%20Help%20%u0434%u043E%20%u0456%u043D%u0448%u043E%u0457%20%u0444%u0443%u043D%u043A%u0446%u0456%u0457%2C%20%u0432%u0436%u0435%20%u043F%u0440%u0438%u0437%u043D%u0430%u0447%u0435%u043D%u043E%u0457%20%u043D%u0430%20%u043F%u0440%u0430%u0432%u0438%u0439%20%u043A%u043B%u0430%u0446%20%u0434%u0435%u044F%u043A%u0438%u0445%20%u043A%u043D%u043E%u043F%u043E%u043A..%0A%0A%u042F%u043A%u0449%u043E%20%u0442%u0430%u043A%u0430%20%u0437%u0430%u043C%u0456%u043D%u0430%20%u0454%20%u043D%u0435%u0431%u0430%u0436%u0430%u043D%u043E%u044E%20%u0434%u043B%u044F%20%u043F%u0435%u0432%u043D%u043E%u0457%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%20%u0442%u043E%20%u0457%u0457%20%u043C%u043E%u0436%u043D%u0430%20%u0432%u0438%u043C%u043A%u043D%u0443%u0442%u0438%20%u043D%u0430%20%u0442%u0456%u0439%20%u043A%u043D%u043E%u043F%u0446%u0456%20%u0448%u043B%u044F%u0445%u043E%u043C%20%u043F%u043E%u0432%u043D%u043E%u0433%u043E%20%u043E%u0447%u0438%u0449%u0435%u043D%u043D%u044F%20%u0457%u0457%20%u043F%u043E%u043B%u044F%20Help.%0A%0A%u0410%u0432%u0442%u043E%u0440%20%u043A%u043E%u0434%u0443%3A%20Infocatcher%0A%u041E%u0444%u043E%u0440%u043C%u043B%u0435%u043D%u043D%u044F%3A%20slbgz%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:addEventListener("contextmenu", function(e) { var btn = e.target; if( e.ctrlKey || e.shiftKey || e.altKey || e.metaKey || btn.id.substr(0, 20) != "custombuttons-button" || !btn.hasAttribute("Help") ) return; e.preventDefault(); e.stopPropagation(); custombuttons.uChelpButton(btn); }, true); |
hydrolizer > 09-07-2011 16:43:06 |
History Export (Firefox) - вариант №2 скрытый текст Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EHistory%20Export%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5BComponents.utils.import%28%22resource%3A//gre/modules/Services.jsm%22%29%3B%0Athis.applyTransform%3Dfunction%28xsltName%2CsrcDoc%29%0A%7B%0A%20%20let%20xsltFile%3DServices.dirsvc.get%28%22ProfD%22%2C%20Ci.nsILocalFile%29%3B%0A%20%20xsltFile.append%28xsltName%29%3B%0A%20%20let%20xsltUri%3DServices.io.newFileURI%28xsltFile%29%3B%0A%20%20let%20xhr%20%3D%20Cc%5B%22@mozilla.org/xmlextras/xmlhttprequest%3B1%22%5D.createInstance%28Ci.nsIXMLHttpRequest%29%3B%0A%20%20xhr.open%28%22GET%22%2C%20xsltUri.spec%2C%20false%29%3B%0A%20%20xhr.send%28null%29%3B%0A%20%20let%20xslt%20%3D%20xhr.responseXML%3B%0A%20%20let%20xsltproc%3DCc%5B%22@mozilla.org/document-transformer%3B1%3Ftype%3Dxslt%22%5D.createInstance%28Ci.nsIXSLTProcessor%29%3B%0A%20%20xsltproc.importStylesheet%28xslt%29%3B%0A%20%20return%20xsltproc.transformToDocument%28srcDoc%29%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20mDBConn%20%3D%20Cc%5B%22@mozilla.org/browser/nav-history-service%3B1%22%5D.getService%28Ci.nsPIPlacesDatabase%29.DBConnection%3B%0Avar%20stmt%3DmDBConn.createStatement%28%22SELECT%20strftime%28%27%25d-%25m-%25Y%20%25H%3A%25M%3A%25S%27%2Cmax%28coalesce%28last_visit_date%2C0%29%29/1000000%2C%27unixepoch%27%2C%27localtime%27%29%20fd%2C%20url%2Cmax%28coalesce%28last_visit_date%2C0%29%29%20from%20moz_places%20p%20where%20not%20exists%28select%20b.id%20from%20moz_bookmarks%20b%20where%20b.fk%3Dp.id%29%20group%20by%20url%20order%20by%203%20desc%22%29%3B%0Avar%20log%3D%5B%5D%3B%0Awhile%28stmt.step%28%29%29%20log.push%28%7Bfd%3Astmt.row.fd%2Curl%3Astmt.row.url%7D%29%3B%0Astmt.finalize%28%29%3B%0Avar%20xmlDoc%3Ddocument.implementation.createDocument%20%28null%2C%22%22%2Cnull%29%3B%0Avar%20pi%3DxmlDoc.createProcessingInstruction%28%27xml%27%2C%27version%3D%221.0%22%20encoding%3D%22UTF-8%22%27%29%3B%0AxmlDoc.appendChild%28pi%29%3B%0Avar%20root%3DxmlDoc.createElement%28%22root%22%29%3B%0AxmlDoc.appendChild%28root%29%3B%0Alog.forEach%28function%28elem%29%0A%7B%0A%20%20var%20item%3DxmlDoc.createElement%28%22item%22%29%3B%0A%20%20item.setAttribute%28%22last_visit%22%2Celem.fd%29%3B%0A%20%20item.setAttribute%28%22url%22%2C%20elem.url%29%3B%0A%20%20root.appendChild%28item%29%3B%0A%7D%29%3B%0Avar%20htmlDoc%3Dthis.applyTransform%28%22history.xsl%22%2C%20xmlDoc%29%3B%0AhtmlDoc%3Dthis.applyTransform%28%22decorator.xsl%22%2C%20htmlDoc%29%0Avar%20fp%3DCc%5B%22@mozilla.org/filepicker%3B1%22%5D.createInstance%28Ci.nsIFilePicker%29%3B%0Afp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u0444%u0430%u0439%u043B%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20%u0436%u0443%u0440%u043D%u0430%u043B%u0430%22%2C%20Ci.nsIFilePicker.modeSave%29%3B%0Afp.appendFilter%28%22HTML%20files%22%2C%22*.html%22%29%3B%0Avar%20res%20%3D%20fp.show%28%29%3B%0Aif%20%28res%20%3D%3D%20Ci.nsIFilePicker.returnCancel%29%0A%20%20%20%20return%20false%3B%0Avar%20file%20%3D%20fp.file%3B%0Aif%20%28%21%28/%5C.html%24/i.test%28file.path%29%29%29%20file.initWithPath%28file.path+%22.html%22%29%3B%0Avar%20foStream%20%3D%20Cc%5B%22@mozilla.org/network/file-output-stream%3B1%22%5D.createInstance%28Ci.nsIFileOutputStream%29%3B%0AfoStream.init%28file%2C%200x02%20%7C%200x08%20%7C%200x20%2C%200664%2C%200%29%3B%0Avar%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/converter-output-stream%3B1%22%5D.createInstance%28Ci.nsIConverterOutputStream%29%3B%0Aconverter.init%28foStream%2C%20%22UTF-8%22%2C%200%2C%200%29%3B%0Avar%20serializer%3DCc%5B%22@mozilla.org/xmlextras/xmlserializer%3B1%22%5D.createInstance%28Ci.nsIDOMSerializer%29%3B%0Aserializer.serializeToStream%28htmlDoc%2C%20foStream%2C%20%22%22%29%3B%0Aconverter.close%28%29%3B%0Aif%20%28Services.prompt.confirmEx%28null%2C%22%u0412%u044B%u0433%u0440%u0443%u0437%u043A%u0430%20%u0436%u0443%u0440%u043D%u0430%u043B%u0430%22%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u043E%u0437%u0434%u0430%u043D%u043D%u044B%u0439%20%u0444%u0430%u0439%u043B%3F%22%2C%0A%20%20%20%20Services.prompt.STD_YES_NO_BUTTONS%2Cnull%2Cnull%2Cnull%2Cnull%2C%7B%7D%29%21%3D%3D0%29%20return%3B%0Avar%20tab%3DgBrowser.addTab%28Services.io.newFileURI%28file%29.spec%29%3B%0AgBrowser.selectedTab%3Dtab%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код Выделить код Код:var mDBConn = Cc["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsPIPlacesDatabase).DBConnection; var stmt=mDBConn.createStatement("SELECT strftime('%d-%m-%Y %H:%M:%S',max(coalesce(last_visit_date,0))/1000000,'unixepoch','localtime') fd, url,max(coalesce(last_visit_date,0)) from moz_places p where not exists(select b.id from moz_bookmarks b where b.fk=p.id) group by url order by 3 desc"); var log=[]; while(stmt.step()) log.push({fd:stmt.row.fd,url:stmt.row.url}); stmt.finalize(); var xmlDoc=document.implementation.createDocument (null,"",null); var pi=xmlDoc.createProcessingInstruction('xml','version="1.0" encoding="UTF-8"'); xmlDoc.appendChild(pi); var root=xmlDoc.createElement("root"); xmlDoc.appendChild(root); log.forEach(function(elem) { var item=xmlDoc.createElement("item"); item.setAttribute("last_visit",elem.fd); item.setAttribute("url", elem.url); root.appendChild(item); }); var htmlDoc=this.applyTransform("history.xsl", xmlDoc); htmlDoc=this.applyTransform("decorator.xsl", htmlDoc); var fp=Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); fp.init(window, "Укажите файл для экспорта журнала", Ci.nsIFilePicker.modeSave); fp.appendFilter("HTML files","*.html"); var res = fp.show(); if (res == Ci.nsIFilePicker.returnCancel) return false; var file = fp.file; if (!(/\.html$/i.test(file.path))) file.initWithPath(file.path+".html"); var foStream = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); foStream.init(file, 0x02 | 0x08 | 0x20, 0664, 0); var converter = Cc["@mozilla.org/intl/converter-output-stream;1"].createInstance(Ci.nsIConverterOutputStream); converter.init(foStream, "UTF-8", 0, 0); var serializer=Cc["@mozilla.org/xmlextras/xmlserializer;1"].createInstance(Ci.nsIDOMSerializer); serializer.serializeToStream(htmlDoc, foStream, ""); converter.close(); if (Services.prompt.confirmEx(null,"Выгрузка журнала", "Открыть созданный файл?", Services.prompt.STD_YES_NO_BUTTONS,null,null,null,null,{})!==0) return; var tab=gBrowser.addTab(Services.io.newFileURI(file).spec); gBrowser.selectedTab=tab; Инициализация Выделить код Код:Components.utils.import("resource://gre/modules/Services.jsm"); this.applyTransform=function(xsltName,srcDoc) { let xsltFile=Services.dirsvc.get("ProfD", Ci.nsILocalFile); xsltFile.append(xsltName); let xsltUri=Services.io.newFileURI(xsltFile); let xhr = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpRequest); xhr.open("GET", xsltUri.spec, false); xhr.send(null); let xslt = xhr.responseXML; let xsltproc=Cc["@mozilla.org/document-transformer;1?type=xslt"].createInstance(Ci.nsIXSLTProcessor); xsltproc.importStylesheet(xslt); return xsltproc.transformToDocument(srcDoc); } Кнопка для преобразования в html использует XSL-преобразования, поэтому необходимо в папке профиля создать 2 xsl-шаблона: Выделить код Код:<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/"> <hr/> <table> <xsl:for-each select="root/item"> <tr> <td style="white-space: nowrap; vertical-align: top"> <xsl:value-of select="@last_visit"/> </td> <td style="padding-left: 1em"> <a href="{@url}"><xsl:value-of select="@url"/></a> </td> </tr> <tr><td colspan="2"><hr/></td></tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet> decorator.xsl Выделить код Код:<?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:param name="indent-increment" select="'	'"/> <xsl:template match="node()"> <xsl:param name="indent" select="'
'"/> <xsl:value-of select="$indent"/> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates> <xsl:with-param name="indent" select="concat($indent,$indent-increment)"/> </xsl:apply-templates> <xsl:if test="*"> <xsl:value-of select="$indent"/> </xsl:if> </xsl:copy> </xsl:template> </xsl:stylesheet> XSL-файлы с вышеприведенным кодом нужно сохранить в UTF-8 без BOM. Второй файл необязателен - с его помощью сгенеренный html просто делается читабельным. Если планируется не использовать второй файл (decorator.xsl), то в коде кнопки нужно закомментировать строку с htmlDoc=this.applyTransform("decorator.xsl", htmlDoc) В будущем я, наверное, на основе этого кода сделаю отдельное расширение с выбором вариантов экспорта (txt/xml/html/json). И без описанной под спойлером возни с xslt. |
bunda1 > 13-07-2011 20:55:08 |
Переключить язык интерфейса( Firefox24+ ) от 09.06.2016. ЛКМ => переключить язык интерфейса с окном подтвеждения, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u044F%u0437%u044B%u043A%20%u0438%u043D%u0442%u0435%u0440%u0444%u0435%u0439%u0441%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhEAAAEAIAA0BQAAFgAAACgAAAASAAAAIgAAAAEAIAAAAAAADAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQIAAAAAAAAAABITFiBERmaTeH26/mpwtf11er79XGCUzCMlOFgDAwADAAAAAAAAAgIAAAAAAAAAAAAAAAAAAAAAAgIDAwAAAAAWFhkgODxhjlBYre5qc9n/dn7d/4CI4/97g9/+b3je/1dhyv82PYfGHyA2WQAAAAABAQIDAAAAAAAAAAABAQECAAAAABISFiNIUJnfSlbb/2t17f+QmPj8o6r8/6eu/f+mrfz/mqL6/n2H9P5TX+j/PkjK/x8iS3wAAAAAAAABAgAAAAACAgIDHR0gJ0pPmuMuOsr/U1/j+XZ/7P5/huv/f4fp/4CH6v+Ah+n/f4fq/3uE7P9ocun9PEjc+S45wf8nKlCCAwMAAAAAAQIBAAAAZWul2hkqyf8jN+f7O0zt/0JS7P9CU+3/QlTu/0NU7/9CU+z/QlTt/0JT7P8/UO//MEPr/hEl3/kxP8P/Jyo/VgEBAQGEgX6balt6/U85gPxeSpL/YkqQ/2JLkP9jTJH/Y0yR/2NNkf9jTJH/Y0yR/2JLkP9iS5D/YEqP/1pDjv1ROnr9X1Rm0gECAgBwY1OeqGsj/8JuEvzDbxb/wm4U/8JuE//CbxL/w3AT/8FuFf/FcRX/xHAT/8FtE//BbRP/wm8V/8RwFv6+bBL+kmMt8CAeGymbgWHasGYH/9R2AP7OcwD/z3YH/9WDHf/Yhh//14Yg/9eGIf/XhR7/14Uf/9mHH//UgBf/z3UC/9F1AP/KbwD7s3Mj/2VYR4a8oHv/qWEF/890A//IdhT/3JdC/9ycTP/bnE3/3Z1P/9qaSv/cnE//25tN/9ybS//cnEz/2ZE3/8pyBv/FbQT7rW4h/ldJN3vEqov/p14B/8txAf/gnUv/569p/+KqY//jq2T/46tk/+KrZf/iq2X/46tk/+KrZP/iq2T/7LNr/9iMLf+/ZQD7rnEl/2RXSIN4a16iomsr/799LPzmvYn/5L6Q/+S9jv/kvY//5L2P/+S9j//kvY//5L2P/+S9j//lvY3/5sCS/+Gyd/+vahf7p31M/llUT2dqaWd/z8Kz/u/i0/r++PH//vfu//748P/+9+///vfv//737//+9+///vfw//737//++PD//vfv//737/3u4Mz/lY2E0gABAgAzMjIzw8XJ+8vO0vz////+/v/////////////////////////////////////////+//////////f3+PrExsn2Oz09VgEAAAEAAAAAeXh4isjHxv/Z2dj6/////v7+/v/+/f3//v7+//7+/v///v7//v79//39/P///////f38+83Lyv+xsK7wAQAAAAAAAAADAwMDAAAAAHV1dInJycr/19fW//v7+/z///////////////////////////////7x8fD6z9DR/7m5uPZUVFVdAQEBAQAAAAABAQEAAwMDBAAAAAB0dHaAwcHB8szLy//V1NP/6+rq//Dw8f/x8PD/5eXl/9TT1P/R0M//q6qr1lZVVFkAAAAAAQEBAQAAAAAAAAAAAAAAAAMDAwMAAAAAKSkpJoaFhZnMzMr+wL+//rq6u/+7urv9yMjI/6KiotJ6enyDIiIiIQAAAAAFBQUGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20......................%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20%0A%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%20....%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20ru%20%3D%20getLocale%28%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%20custombuttons.confirmBox%28null%2C%20%28ru%20%3F%20%27%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043D%u0430%20en-US%27%20%3A%20%27Switch%20to%20ru%27%29%2C%20%28ru%20%3F%20%27%u0420%u0435%u0441%u0442%u0430%u0440%u0442%27%20%3A%20%27Restart%27%29%2C%20%28ru%20%3F%20%27%u041E%u0442%u043C%u0435%u043D%u0430%27%20%3A%20%27Cancel%27%29%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20cbu.setPrefs%28s%2C%20%28ru%20%3F%20%22en-US%22%20%3A%20%22ru%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20Services.startup.quit%28Services.startup.eAttemptQuit%20%7C%20Services.startup.eRestart%29%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%0A%20%20%20%20%20%0A%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20var%20tab%20%3D%20gBrowser.getBrowserForTab%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22http%3A//mozilla-russia.org/products/firefox/history.html%23nightly-ru%22%29%29%3B%20%0A%20%20%20%20%20%20%20%20%20tab.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28e.type%2C%20c%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20version%20%3D%20parseInt%28Services.appinfo.version%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gFindBar._find%28version%29%3B%20//%20%u043D%u0430%u0439%u0442%u0438%20%u0432%u0435%u0440%u0441%u0438%u044E%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u043F%u043E%u0434%u0441%u0432%u0435%u0442%u043A%u0443%20%u0432%u0435%u0440%u0441%u0438%u0438%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20goDoCommand%28%22cmd_selectNone%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20finder%20%3D%20gBrowser.finder%20%7C%7C%20gFindBar%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20lighted%20%3D%20%28finder._highlightDoc%20%7C%7C%20finder._highlight%29.bind%28finder%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20lighted%28true%2C%20version%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%200%29%20%20%0A%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0Avar%20s%20%3D%20%22general.useragent.locale%22%3B%0Afunction%20getLocale%28%29%20%7B%20return%20%28cbu.getPrefs%28s%29%20%3D%3D%20%22ru%22%29%20%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u0432%20about%3Aconfig%20......................%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29.src%20%3D%20getLocale%28%29%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAADBwcIALzAyADk6OwAlJSYCCQkNAAAAAAAAAAIcAAATTQAAG2UAABFYAAABKgAAAAMBAQEABQUFAgQEBgEAAAAAT09RAMLCwgAyNDEAPkBAAxoaGQAZGB0tLSVcpTkmi+s+KJ/+Pimk/z4on/83JonxLSVXuRAREUgAAAAABQUIAQAAAAFPT1EAvb3CACYjNgMnJy0AU1RUY83N0ffo5vT/6+v0/vDw9f/x8ff+8PD2/+vr9f/o5/X/yMnN/zw8O4oAAAABAAAAAU9PUAC5tsUDDAQxAAQAQl4xGqT/OyCy/jcbsvs8H77+PiDE/z8gxf8+IMT/PB++/jcbsvw8IbP8MBij/wMBJoUAAAAAUVBUAszMzwBlZmEhtrLK7sG64v/Fv+b9ycHr/8nC7f/Kwu7/ysLv/8rC7v/Jwu3/ycLr/8W+5f7DvOT+sq/E/w4QBj9OTlAAt7PDAD8yeomLfcz/j3/S+5eF4f+Zhun/nIfx/52H9/+eiPn/nYf3/5uG8f+Yher/loTh/45+0fyNftX/HxdEqEdIRADHxdQKSjqg1lVBwP9ZQsr9XEPW/2BF5P9nSu//bE30/21O+P9sTfX/akzs/2VI3/9gRtP/XUXF/l5HxP8/MX/lUlNPG+nn5i/Y0cf39u/i///26f7/+u3///3r//z58//z7///9PD///Tw///z8P//8u////Hu/f/s6fn+6+n3/6+uvfpfX2I739DKO5ZcSf2oa1b/wIRx/8+QgP/pon3/uX6z/1gz//9lPP7/Yjr//145+/9ZN+r/VzfY/0otxf8wFLP/GgKJ/VZUZkLbycMsklZB9bF5Z//Lmoj+1p+N/+Oji//uv7T/8/T///Pv/v/z7///8u////Hv///x7/z/8O36/uzr+P+ysL71ZWRmLeLU0AaVXUnRuIl5/9Cnmf3WqJr/57KZ/9Cnvv+gj/7/p5P6/6WS+f+jkvP/opHs/56O4/+hk9z9hnXU/z0vftJcXFwI3szGAJBVQX+4joD/1bWp+tizp//juab/2LbE/7+0/v/Dtfr/wrX5/8G09v+/s/H/vbHs/7205Pusn+D/GhBKgFNQXwDfzsgAjlI9Fql6auTawbj/2r20+969sf/lz83/6+v8/+zp9//r6fj/6+n3/+rn9//p5/T76+n7/66sv+BHSj4Ug4ODAODPygOXX0wAmmVSSL6bj/rk0s3/59HF+9C8zfyvo+n+s6fo/rKl5/6ypuX8s6ji+76z6P9xX7v2BgBIQicgRQB2cYsD4M/KAJhfTQOfblwAmGFORbeRg+bgzcb/9Ovn/v////////7///////7+/v709Pj/29vc31dTaT0SA0wABwBOA1pPiADfzccAkldDAJpmVAKWXkoAkllGFKFsUneXd5LKf3DK75aHzPaFdcbuWESxxj0pmHGAfo0QRkRPAAcARgIAAEMAVk+DAPXw7gDfzcYA4dHMAN/PyQLh0c0B49LIAMm4yQSrodogsKXaLa2j2R6vpdkCuLDYANjY3gHJyMwDtLDHALKtxwDMydoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20......................%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%0A%20%20%20var%20ru%20%3D%20getLocale%28%29%3B%20%20%20%20%20%0A%20%20%20this.tooltipText%20%3D%20%28ru%20%3F%20%27%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u044F%u0437%u044B%u043A%20%u0438%u043D%u0442%u0435%u0440%u0444%u0435%u0439%u0441%u0430%27%20%3A%20%27Changing%20the%20interface%20language%27%29%20+%20%27%5Cn%27+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28ru%20%3F%20%27%u041B%3A%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043D%u0430%20%22en-US%27%20%3A%20%27L%3A%20switch%20to%20%22ru%22%27%29%20+%20%27%5Cn%27+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28ru%20%3F%20%27%u0421%3A%20%u043C%u0435%u043D%u044E%27%20%3A%20%27M%3A%20menu%27%29%20+%20%27%5Cn%27%20+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28ru%20%3F%20%27%u041F%3A%20%u0432%u0441%u0435%20%u0440%u0443%u0441%u0438%u0444%u0438%u043A%u0430%u0446%u0438%u0438%20Firefox%27%20%3A%20%27R%3A%20all%20russification%20firefox%27%29%3B%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%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ...................... this.onclick =e=> { // действие при клике ЛКМ .... if ( e.button == 0 ) { var ru = getLocale(); if ( custombuttons.confirmBox(null, (ru ? 'Переключить на en-US' : 'Switch to ru'), (ru ? 'Рестарт' : 'Restart'), (ru ? 'Отмена' : 'Cancel')) ) { cbu.setPrefs(s, (ru ? "en-US" : "ru")); setTimeout(()=> Services.startup.quit(Services.startup.eAttemptQuit | Services.startup.eRestart), 0); } } // действие при клике СКМ .... if ( e.button == 1 ) gShowPopup(this); // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); var tab = gBrowser.getBrowserForTab(gBrowser.selectedTab = gBrowser.addTab("http://mozilla-russia.org/products/firefox/history.html#nightly-ru")); tab.addEventListener("pageshow", function c(e) { this.removeEventListener(e.type, c); setTimeout(()=> { var version = parseInt(Services.appinfo.version); gFindBar._find(version); // найти версию на странице // запустить подсветку версии goDoCommand("cmd_selectNone"); var finder = gBrowser.finder || gFindBar; var lighted = (finder._highlightDoc || finder._highlight).bind(finder); lighted(true, version); }, 0) }); } }; var s = "general.useragent.locale"; function getLocale() { return (cbu.getPrefs(s) == "ru") }; // Установить нужную иконку кнопки при старте браузера или при изменениях настроек в about:config ...................... function toggleImage() { self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon").src = getLocale() ? self.image : "data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAADBwcIALzAyADk6OwAlJSYCCQkNAAAAAAAAAAIcAAATTQAAG2UAABFYAAABKgAAAAMBAQEABQUFAgQEBgEAAAAAT09RAMLCwgAyNDEAPkBAAxoaGQAZGB0tLSVcpTkmi+s+KJ/+Pimk/z4on/83JonxLSVXuRAREUgAAAAABQUIAQAAAAFPT1EAvb3CACYjNgMnJy0AU1RUY83N0ffo5vT/6+v0/vDw9f/x8ff+8PD2/+vr9f/o5/X/yMnN/zw8O4oAAAABAAAAAU9PUAC5tsUDDAQxAAQAQl4xGqT/OyCy/jcbsvs8H77+PiDE/z8gxf8+IMT/PB++/jcbsvw8IbP8MBij/wMBJoUAAAAAUVBUAszMzwBlZmEhtrLK7sG64v/Fv+b9ycHr/8nC7f/Kwu7/ysLv/8rC7v/Jwu3/ycLr/8W+5f7DvOT+sq/E/w4QBj9OTlAAt7PDAD8yeomLfcz/j3/S+5eF4f+Zhun/nIfx/52H9/+eiPn/nYf3/5uG8f+Yher/loTh/45+0fyNftX/HxdEqEdIRADHxdQKSjqg1lVBwP9ZQsr9XEPW/2BF5P9nSu//bE30/21O+P9sTfX/akzs/2VI3/9gRtP/XUXF/l5HxP8/MX/lUlNPG+nn5i/Y0cf39u/i///26f7/+u3///3r//z58//z7///9PD///Tw///z8P//8u////Hu/f/s6fn+6+n3/6+uvfpfX2I739DKO5ZcSf2oa1b/wIRx/8+QgP/pon3/uX6z/1gz//9lPP7/Yjr//145+/9ZN+r/VzfY/0otxf8wFLP/GgKJ/VZUZkLbycMsklZB9bF5Z//Lmoj+1p+N/+Oji//uv7T/8/T///Pv/v/z7///8u////Hv///x7/z/8O36/uzr+P+ysL71ZWRmLeLU0AaVXUnRuIl5/9Cnmf3WqJr/57KZ/9Cnvv+gj/7/p5P6/6WS+f+jkvP/opHs/56O4/+hk9z9hnXU/z0vftJcXFwI3szGAJBVQX+4joD/1bWp+tizp//juab/2LbE/7+0/v/Dtfr/wrX5/8G09v+/s/H/vbHs/7205Pusn+D/GhBKgFNQXwDfzsgAjlI9Fql6auTawbj/2r20+969sf/lz83/6+v8/+zp9//r6fj/6+n3/+rn9//p5/T76+n7/66sv+BHSj4Ug4ODAODPygOXX0wAmmVSSL6bj/rk0s3/59HF+9C8zfyvo+n+s6fo/rKl5/6ypuX8s6ji+76z6P9xX7v2BgBIQicgRQB2cYsD4M/KAJhfTQOfblwAmGFORbeRg+bgzcb/9Ovn/v////////7///////7+/v709Pj/29vc31dTaT0SA0wABwBOA1pPiADfzccAkldDAJpmVAKWXkoAkllGFKFsUneXd5LKf3DK75aHzPaFdcbuWESxxj0pmHGAfo0QRkRPAAcARgIAAEMAVk+DAPXw7gDfzcYA4dHMAN/PyQLh0c0B49LIAMm4yQSrodogsKXaLa2j2R6vpdkCuLDYANjY3gHJyMwDtLDHALKtxwDMydoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage) ); // Подсказка для кнопки ...................... this.onmouseover =()=> { var ru = getLocale(); this.tooltipText = (ru ? 'Переключить язык интерфейса' : 'Changing the interface language') + '\n'+ (ru ? 'Л: переключить на "en-US' : 'L: switch to "ru"') + '\n'+ (ru ? 'С: меню' : 'M: menu') + '\n' + (ru ? 'П: все русификации Firefox' : 'R: all russification firefox'); }; |
slbgz > 21-07-2011 15:16:29 |
Button Stacker 3(Firefox) Кнопка создает кнопку-сборку кнопок. В кнопках, объединенных в сборку, работает только левый клик, также нельзя добавлять в сборку кнопки-меню. Автор: squeaky Код кнопки (Сохранить файл как... , убрать расширение .txt, оставить .7z, распаковать архив и установить согласно инструкции) Код Инициализация |
slbgz > 21-07-2011 19:08:08 |
ТoggleToolbars (Firefox) - Переключатель группы панелей. Кнопка предназначена для быстрого скрытия/показа группы панелей, как стандартных, так и созданных пользователем, одним кликом левой кнопки мыши. Выбор группы панелей, которые будут скрываться/показываться кнопкой, осуществляется закомментированием соотв. строчек в «шапке» кода. Полезна, кроме прочего, для Button Stacker 3 для скрытия кнопок, объединенных в сборки, для этого соотв. кнопки нужно перетянуть на нужные панели, а названия этих панелей добавить в «шапку» секции «код» ТoggleToolbars. Автор кода: Infocatcher скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%20%u2022%205%20%u0434%u043E%u0434%u0430%u0442%u043A%u043E%u0432%u0438%u0445%20%u043F%u0430%u043D%u0435%u043B%u0456%u0432%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/bmp%3Bbase64%2CQk02AwAABQFyYTYAAAAoAAAAEAAAABAAAAABABgAAAAAAAADAAAnAAAAJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4eHh7+/v7+/v7e3t7e3t7+/v8PDw8PDw8PDw8PDw8PDw8PDw8PDw4eHhAAAAAAAA4eHh7+/v7+/v7+/v8PDw8fHx8vLy8vLy8fHx8fHx8PDw7+/v8PDw4+PjAAAAAAAA5ubm8fHx8PDw7+/v8vLy8/Pz9PT08/Pz8/Pz8/Pz8vLy8fHx8PDw5eXlAAAAAAAAmbe+1tjY1NrbpsPK7e7uw8vMrsLH8PDwu8bJusjM9PT0tsrOv83RxcXFAAAAAAAAPZarO0BBhay1Zcbfub/EMD5BZJur3t/idoiSMUlPzM3Qf8PXTpmrPDs/AAAAAAAA1NXXXkhyPUJGxcfLUURhXVte1tTaq27lv7TKTk5OVThvtrPCMDQ5ZzqPAAAAAAAAiK7JubXVSEVKLi4vOTk7nrHBmrbQxL3SqLrSeZ+1Li83Lys0QklWt67CAAAAAAAAacP62dnhkIqMAAABdW5uqrzKe67O2NbWmLXJjbPNbGprAAEDeoqX0MvLAAAAAAAA8PD0s2ZmMxQVOjs9KxUVq5iY2dbVq0lIwKiqr6qrLx8fODc5OB8hoUFBAAAAAAAAvtKaYVZOLTIdpbmEYGJcQ0U8rKyT4sfGzc61RUo/ZGNirr6SJC4PZU9MAAAAAAAAfZxJOT1JkJ2GpMZsvcDNSEtOgZFq3+L0kZuISk1KwMDXsc2GhJpnOz1SAAAAAAAA6+zuYGDwlZX36uzxWlr6pqbw2druT0/6u7vvysvuTU371NXzvb70SEjyAAAAAAAAtaCLwsDqwLnQtaCOwcHyv7XAt6WYwML4vK+wuqqlwML5uamhvLCzwsP4AAAALw4LhkEoxZGLs3twiEQsy5mVqW5gjks20KGdoWZVl1ZDz56clVRAoWNT0qSgAAAAAAAAGQYGGgUFGAUFFwUGFwUGGAUFGAUGFwUFFwYGFwUFFwUFFgUFFgUFGAUGAAAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.tooltipText%20%3D%20%22%20%20%20%20%20%20%20%20%20%20%20%20%20%u041F%u0435%u0440%u0435%u043C%u0438%u043A%u0430%u0447%20%u0433%u0440%u0443%u043F%u0438%20%u043F%u0430%u043D%u0435%u043B%u0456%u0432%3A%22+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5Cn%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%22+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5Cn%20%20%20%20%20%20%20%20%u041B%u0456%u0432%u0438%u0439%20%u043A%u043B%u0430%u0446%20%20-%3E%20%u0423%u0432%u0456%u043C%u043A%u043D%u0443%u0442%u0438/%u0432%u0438%u043C%u043A%u043D%u0443%u0442%u0438%22+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5Cn%20%20%20%20%20%20%20%20%u041F%u0440%u0430%u0432%u0438%u0439%20%20%20%20-%u201C-%20-%3E%20CB%20%u043C%u0435%u043D%u044E/%u0414%u043E%u043F%u043E%u043C%u043E%u0433%u0430%22+%0A%09%09%20%22%5CnShift+%u041F%u0440%u0430%u0432%u0438%u0439%20%20%20%20-%u201C-%20-%3E%20CB%20%u043C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BtoggleToolbars%28%5B%0A//%20%20%20%20%22toolbar-menubar%22%2C%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043C%u0435%u043D%u044E%0A//%20%20%20%20%22aios-toolbar%22%2C%20%20%20%20%20%20%20%20%20%20//%20All-in-One%20Sidebar%20%28AiOS%29%0A//%20%20%20%20%22PersonalToolbar%22%2C%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%0A//%20%20%20%20%22TabsToolbar%22%2C%20%20%20%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%0A%20%20%20%20%22nav-bar%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043D%u0430%u0432%u0456%u0433%u0430%u0446%u0456%u0457%0A//%20%20%20%20%22FindToolbar%22%2C%20%20%20%20%20%20%20%20%20%20//%20%u0441%u0442%u0440%u0456%u0447%u043A%u0430%20%u043F%u043E%u0448%u0443%u043A%u0443%0A%20%20%20%20%22addon-bar%22%2C%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0434%u043E%u0434%u0430%u0442%u043A%u0456%u0432%20%28%u0441%u0442%u0440%u0456%u0447%u043A%u0430%20%u0441%u0442%u0430%u043D%u0443%29%0A%20%20%20%20%22%u041C%u043E%u044F%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%2C%0A%20%20%20%20%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u043A%u043D%u043E%u043F%u043E%u043A%201%22%2C%0A%20%20%20%20%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u043A%u043D%u043E%u043F%u043E%u043A%202%22%2C%0A%20%20%20%20%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u043A%u043D%u043E%u043F%u043E%u043A%203%22%0A//%20%20%20%20%2C%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u043A%u043D%u043E%u043F%u043E%u043A%204%22%0A%5D/*%2C%20show*/%29%3B%0Afunction%20toggleToolbar%28tbId%2C%20show%2C%20multiple%29%20%7B%0A%20%20%20%20var%20tb%20%3D%20tbId%20%3D%3D%20%22FindToolbar%22%20%26%26%20window.gFindBar%0A%20%20%20%20%20%20%20%20%7C%7C%20document.getElementById%28%22__customToolbar_%22%20+%20tbId.replace%28/%20/%2C%20%22_%22%29%29%0A%20%20%20%20%20%20%20%20%7C%7C%20document.getElementById%28tbId%29%3B%0A%20%20%20%20if%28%21tb%29%20%7B%0A%20%20%20%20%20%20%20%20Components.utils.reportError%28%3C%3E%5BCustom%20Buttons%5D%20Toolbar%20%22%7BtbId%7D%22%20not%20found%21%3C/%3E%29%3B%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20var%20hideAttr%20%3D%20tb.getAttribute%28%22type%22%29%20%3D%3D%20%22menubar%22%0A%20%20%20%20%20%20%20%20%3F%20%22autohide%22%0A%20%20%20%20%20%20%20%20%3A%20tb.localName%20%3D%3D%20%22findbar%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%3F%20%22hidden%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20%22collapsed%22%3B%0A%20%20%20%20var%20hide%20%3D%20show%20%3D%3D%20undefined%0A%20%20%20%20%20%20%20%20%3F%20tb.getAttribute%28hideAttr%29%20%21%3D%20%22true%22%0A%20%20%20%20%20%20%20%20%3A%20%21show%3B%0A%20%20%20%20tb.setAttribute%28hideAttr%2C%20hide%29%3B%0A%20%20%20%20document.persist%28tbId%2C%20hideAttr%29%3B%0A%20%20%20%20%21multiple%20%26%26%20toggleToolbarsDone%28%29%3B%0A%7D%0Afunction%20toggleToolbarsDone%28%29%20%7B%0A%20%20%20%20if%28%22PlacesToolbarHelper%22%20in%20window%29%20%7B%20//%20Firefox%204%0A%20%20%20%20%20%20%20%20PlacesToolbarHelper.init%28%29%3B%0A%20%20%20%20%20%20%20%20BookmarksMenuButton.updatePosition%28%29%3B%0A%20%20%20%20%20%20%20%20updateAppButtonDisplay%28%29%3B%0A%20%20%20%20%7D%0A%7D%0Afunction%20toggleToolbars%28toolbars%2C%20show%29%20%7B%0A%20%20%20%20toolbars.forEach%28function%28tbId%29%20%7B%0A%20%20%20%20%20%20%20%20toggleToolbar%28tbId%2C%20show%2C%20true%29%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20toggleToolbarsDone%28%29%3B%0A%7D%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%u2022%0A%20%20%20%u0422oggleToolbars%20-%20%u041F%u0435%u0440%u0435%u043C%u0438%u043A%u0430%u0447%20%u0433%u0440%u0443%u043F%u0438%20%u043F%u0430%u043D%u0435%u043B%u0456%u0432%0A%0A%u041F%u0440%u0438%u0437%u043D%u0430%u0447%u0435%u043D%u043D%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20-%20%u0448%u0432%u0438%u0434%u043A%u0435%20%u043F%u0440%u0438%u0445%u043E%u0432%u0443%u0432%u0430%u043D%u043D%u044F%20%u0433%u0440%u0443%u043F%u0438%20%u043F%u0430%u043D%u0435%u043B%u0456%u0432%2C%20%u044F%u043A%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u0438%u0445%2C%20%u0442%u0430%u043A%20%u0456%20%u0441%u0442%u0432%u043E%u0440%u0435%u043D%u0438%u0445%20%u043A%u043E%u0440%u0438%u0441%u0442%u0443%u0432%u0430%u0447%u0435%u043C%2C%20%u043E%u0434%u043D%u0438%u043C%20%u043A%u043B%u0430%u0446%u043E%u043C%20%u043B%u0456%u0432%u043E%u0457%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043C%u0438%u0448%u0456.%20%u041F%u0440%u0430%u0446%u044E%u0454%20%AB%u0443%20%u0437%u0432%u2019%u044F%u0437%u0446%u0456%BB%20%u0437%20%u043A%u043D%u043E%u043F%u043A%u0430%u043C%u0438%20%AB%u0421%u0445%u043E%u0432%u0430%u0442%u0438/%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u0438%20%u043F%u0430%u043D%u0435%u043B%u044C%BB%20%28%A9%20okkamas_knife%29.%20%u0417%u0430%u043F%u0430%u043C%u2019%u044F%u0442%u043E%u0432%u0443%u0454%20%u0432%u043B%u0430%u0441%u043D%u0438%u0439%20%u0441%u0442%u0430%u043D.%0A%u0412%u0438%u0431%u0456%u0440%20%u043F%u0430%u043D%u0435%u043B%u0456%u0432%2C%20%u0432%u0456%u0434%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u043D%u044F%20%u043A%u043E%u0442%u0440%u0438%u0445%20%u0432%u043C%u0438%u043A%u0430%u0454/%u0432%u0438%u043C%u0438%u043A%u0430%u0454%20%u043A%u043D%u043E%u043F%u043A%u0430%2C%20%u0437%u0434%u0456%u0439%u0441%u043D%u044E%u0454%u0442%u044C%u0441%u044F%20%u0434%u043E%u0434%u0430%u0432%u0430%u043D%u043D%u044F%u043C%20%u043F%u043E%u0442%u0440%u0456%u0431%u043D%u0438%u0445%20%u0456%20%u0437%u0430%u043A%u043E%u043C%u0435%u043D%u0442%u043E%u0432%u0443%u0432%u0430%u043D%u043D%u044F%u043C%20%u043D%u0435%u043F%u043E%u0442%u0440%u0456%u0431%u043D%u0438%u0445%20%u0441%u0442%u0440%u0456%u0447%u043E%u043A%20%u0443%20%AB%u0448%u0430%u043F%u0446%u0456%BB%20%u043A%u043E%u0434%u0443%20%28%u0432%u043A%u043B%u0430%u0434%u043A%u0430%20Code%29%3A%0A%0A%0A%0A//%20%20%20%20%22toolbar-menubar%22%2C%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043C%u0435%u043D%u044E%0A//%20%20%20%20%22aios-toolbar%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0456%u043D%u0441%u0442%u0440%u0443%u043C%u0435%u043D%u0442%u0456%u0432%20%u0431%u0456%u0447%u043D%u043E%u0457%20%u043F%u0430%u043D%u0435%u043B%u0456%20%28%u0434%u043E%u0434%u0430%u0442%u043E%u043A%20All-in-One%20Sidebar%29%0A//%20%20%20%20%22PersonalToolbar%22%2C%20%20%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%0A//%20%20%20%20%22TabsToolbar%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%0A%20%20%20%20%22nav-bar%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043D%u0430%u0432%u0456%u0433%u0430%u0446%u0456%u0457%0A//%20%20%20%20%22FindToolbar%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0441%u0442%u0440%u0456%u0447%u043A%u0430%20%u043F%u043E%u0448%u0443%u043A%u0443%20%28Ctrl+f%29%0A%20%20%20%20%22addon-bar%22%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0434%u043E%u0434%u0430%u0442%u043A%u0456%u0432%20%28%u0441%u0442%u0440%u0456%u0447%u043A%u0430%20%u0441%u0442%u0430%u043D%u0443%29%0A//%20%20%20%20%22%u041C%u043E%u044F%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%2C%0A%20%20%20%20%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u043A%u043D%u043E%u043F%u043E%u043A%201%22%2C%0A%20%20%20%20%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u043A%u043D%u043E%u043F%u043E%u043A%202%22%2C%0A%20%20%20%20%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u043A%u043D%u043E%u043F%u043E%u043A%203%22%2C%0A//%20%20%20%20%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u043A%u043D%u043E%u043F%u043E%u043A%204%22%0A%0A%0A%u0410%u0432%u0442%u043E%u0440%20%u043A%u043E%u0434%u0443%3A%20Infocatcher%0A%u041E%u0444%u043E%u0440%u043C%u043B%u0435%u043D%u043D%u044F%20%u0456%20Help%3A%20slbgz%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:toggleToolbars([ // "toolbar-menubar", // панель меню // "aios-toolbar", // All-in-One Sidebar (AiOS) // "PersonalToolbar", // панель закладок // "TabsToolbar", // панель вкладок "nav-bar", // панель навігації // "FindToolbar", // стрічка пошуку // "addon-bar", // панель додатків (стрічка стану) // "Моя панель закладок", "Панель кнопок 1", // "Панель кнопок 2", "Панель кнопок 3" // ,"Панель кнопок 4" ]/*, show*/); function toggleToolbar(tbId, show, multiple) { var tb = tbId == "FindToolbar" && window.gFindBar || document.getElementById("__customToolbar_" + tbId.replace(/ /, "_")) || document.getElementById(tbId); if(!tb) { Components.utils.reportError(<>[Custom Buttons] Toolbar "{tbId}" not found!</>); return; } var hideAttr = tb.getAttribute("type") == "menubar" ? "autohide" : tb.localName == "findbar" ? "hidden" : "collapsed"; var hide = show == undefined ? tb.getAttribute(hideAttr) != "true" : !show; tb.setAttribute(hideAttr, hide); document.persist(tbId, hideAttr); !multiple && toggleToolbarsDone(); } function toggleToolbarsDone() { if("PlacesToolbarHelper" in window) { // Firefox 4 PlacesToolbarHelper.init(); BookmarksMenuButton.updatePosition(); updateAppButtonDisplay(); } } function toggleToolbars(toolbars, show) { toolbars.forEach(function(tbId) { toggleToolbar(tbId, show, true); }); toggleToolbarsDone(); } |
slbgz > 24-07-2011 22:59:37 |
ProfileManager (для расширения ProfileSwitcher( Firefox 2.0-5.* - Thunderbird 2.0-5.*)/ссылка на дом. страницу автора). Быстрый вызов менеджера профилей, создание, переименование, удаление, добавление профилей, запуск и работа с несколькими профилями одновременно. скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EProfileManager%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE6IQ0oiVUrc6uCXaS7mXq/waGFxsOhgsW7l3SyqH5ei1pBMEkAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAACjbDiE4biI+fnkv//+8M3///TW///23v//9df//vDO//vnwv/20KT+vY1jyCcbEhoAAAAAAAAAAAAAAAAAAAAC3ahv+/XPnP/316T/++Ky//3qvv/+7cL//eu+//vjtP/42KX/9dCc//DCjP+ncUlQAAAAAAAAAAAAAAAAAAAAANaaW9Xxw4n/9c6X//fXo//53az/+uCv//nerP/42KT/9c+Y//LEiv/qsXX+gVY2JgAAAAAAAAAAAAAAAAAAAADGgD6M77t9//HDiP/0y5L/9dCZ//bSnP/10Jr/9MuT//HEif/vu33/2Jpf1gAAAAMAAAAAAAAAAAAAAAAAAAAAqlYOLOCiYf7vvYL/8cSN//LHkP/yx5D/8seQ//HEjf/vv4b/67Bv/8F/R3YAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGezas7r2H//PNov/zz6X/9NCn//PPpv/zzaP/8ceZ/9mUU+d+TicPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqVUMHNSOTOzz0rH/8cyo//HIo//xyqb/9Ne6/+SpcP61bjFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACdVBVs4653//vpyP//+OX//vHT//TKnP+tbzm9AAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByOQkV1J1i6Pjbrf/85rj//uu///znuv/53K3/7L2H/W5DIGEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsWYkd+66ff/zyZD/9tSf//jYpf/31aD/9MuT/++9gf+6f0fOAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMZ7NqfrrWv/77t+//HDiP/yxo3/8cOK/++8gP/rr27/zopK8AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEdCyf6att/+69if/wwo//8MOS//DCkP/uvor/67J4/8mAPOgAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsV0UV+ewfP/xyqX/8syn//LNqf/yzaj/8cul/+/CmP+3aSWiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKFPCgLJhUq79dzG//fizv/34s//9+LO//fhzf/VnW3nkUkNHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqVQMCsSAR5Les4716cit/+G6mP3MkV61oVAMIwAAAAAAAAAAAAAAAAAAAAAAAAAAwAesQcADrEGAA6xBwAOsQcADrEHAB6xB4AesQeAPrEHwD6xB4A+sQeAHrEHgB6xB4AesQeAPrEHgD6xB8B+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BprofileLauncher.runScript%28this%29%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%0A%u041A%u043D%u043E%u043F%u043A%u0430%20%u0432%u0438%u043A%u043B%u0438%u043A%u0443%20%u041C%u0435%u043D%u0435%u0434%u0436%u0435%u0440%u0430%20%u043F%u0440%u043E%u0444%u0456%u043B%u0456%u0432%20%u0434%u043B%u044F%20%u0434%u043E%u0434%u0430%u0442%u043A%u0443%20ProfileSwitcher%0Ahttps%3A//nic-nac-project.org/%7Ekaosmos/profileswitcher-en.html%0A%0A%u0410%u0432%u0442%u043E%u0440%20%u0434%u043E%u0434%u0430%u0442%u043A%u0443%3A%20Paolo%20Kaosmos%0Ahttps%3A//addons.mozilla.org/en-US/firefox/user/235043/%0A%0A%u041A%u043D%u043E%u043F%u043A%u0430%3A%20slbgz%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: |
bunda1 > 01-09-2011 17:27:21 |
Find( Firefox ) ЛКМ => Если есть выделенный текст на текущей странице, то искать выделенный текст, если нет выделенного, искать на странице текст из буфера обмена. Искать дальше. Код кнопки и инициализаци и для Firefox 3.6 - 26 Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EFind%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20....................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%20....%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20str%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20str%20%29%20gFindBar._find%28%20str%20%29%3D%3D%200%20%3F%20gFindBar.%20_findAgain%28%20false%20%29%20%3A%20disableIcon%28%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20....%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20....%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20var%20str%20%3D%20getSelect%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20str%20%29%20gFindBar._find%28%20str%20%29%3D%3D%200%20%3F%20gFindBar.%20_findAgain%28%20true%20%29%20%3A%20disableIcon%28%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%20....................%20%0Athis.oncontextmenu%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A%0A//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%20....................%20%20%0Avar%20button%20%3D%20this%3B%20%0A%0A%0A%0A//%20%u0412%u0440%u0435%u043C%u0435%u043D%u043D%u043E%20%u043E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20....................%20%20%0Afunction%20disableIcon%28%29%20%7B%0A%20%20%20button.style.filter%20%3D%20%27url%28%22chrome%3A//mozapps/skin/extensions/extensions.svg%23greyscale%22%29%27%3B%0A%20%20%20setTimeout%28function%28%29%20%7B%20button.style.filter%20%3D%20%27%27%20%7D%2C%20600%29%0A%7D%3B%0A%0A%0A%0A/*%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u0434%u0430%u0441%u0442%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%2C%20%0A%20%20%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0435%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20...................................%20*/%0Afunction%20getSelect%28%29%20%7B%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20....%0A%20%20var%20selection%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%0A%20%20//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20%7B%0A%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20var%20selection%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%0A%20%20//%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20....%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20//%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%u0441%20%u043E%u0431%u043E%u0438%u0445%20%u043A%u043E%u043D%u0446%u043E%u0432%20%u0442%u0435%u043A%u0441%u0442%u0430%20....%0A%20%20if%20%28%20selection%20%21%3D%3D%20%27%27%20%29%20var%20selection%20%3D%20selection.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%20%20%0A%20%20if%20%28%20selection%20%3D%3D%20%27%27%29%20%7B%20%0A%20%20%20%20%20%20%20var%20notification%20%3D%20%22%u0412%u044B%u0434%u0435%u043B%u0438%u0442%u0435%20%u0438%u043B%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u0443%u0439%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%21%22%0A%20%20%20%20%20%20%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%0A%20%20%20%20%20%20%20.showAlertNotification%28%20button.image%2C%20button.label%2C%20notification%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%0A%20%20return%20%28%20selection%20%3D%3D%20%27%27%29%3F%20false%3A%20selection%3B%0A%7D%3B%0A%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20....................%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u0418%u0441%u043A%u0430%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%u0430/%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u0434%u0430%u043B%u0435%u0435%20%5Cn%u0421%3A%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u0418%u0441%u043A%u0430%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%u0430/%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043D%u0430%u0437%u0430%u0434%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки .................... this.onclick = function(e) { // действие при клике ЛКМ .... if ( e.button == 0 ) { var str = getSelect(); if ( str ) gFindBar._find( str )== 0 ? gFindBar. _findAgain( false ) : disableIcon(); } // действие при клике СКМ .... if ( e.button == 1 ) gShowPopup(this); // действие при клике ПКМ .... if ( e.button == 2 ) { var str = getSelect(); if ( str ) gFindBar._find( str )== 0 ? gFindBar. _findAgain( true ) : disableIcon(); } }; // Блокируем контекстное меню при клике ПКМ без модификаторов .................... this.oncontextmenu = function(e) { if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); e.stopPropagation(); } }; // Объявляем переменные для этой вкладки .................... var button = this; // Временно отключить иконку кнопки .................... function disableIcon() { button.style.filter = 'url("chrome://mozapps/skin/extensions/extensions.svg#greyscale")'; setTimeout(function() { button.style.filter = '' }, 500) }; /* Функция отдаст выделенный текст из страницы или текстового поля, если текст не выделен из буфера обмена, если нет текста отдаст 'false' ................................... */ function getSelect() { // выделенный текст из страницы .... var selection = document.commandDispatcher.focusedWindow.getSelection().toString(); // выделенный текст из текстового поля .... if ( selection == '' ) { var theBox = document.commandDispatcher.focusedElement; if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selection = theBox.value.substring(startPos, endPos); } }; // текст из буфера обмена .... if ( selection == '' ) var selection = gClipboard.read(); // убираем пробелы с обоих концов текста .... if ( selection !== '' ) var selection = selection.toString().replace(/^\s+|\s+$/g,""); if ( selection == '') { var notification = "Выделите или скопируйте текст!" Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService) .showAlertNotification( button.image, button.label, notification, false, "", null, ""); }; return ( selection == '')? false: selection; }; // Подсказка для кнопки .................... this.tooltipText = "Л: Искать выделенный текста/из буфера далее \nС: CB Меню \nП: Искать выделенный текста/из буфера назад"; Код кнопки для Firefox 27+ Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EFind%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20....................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%0A%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20....%0A%20%20%20%20if%20%28e.button%20%3D%3D%201%29%20%7B%20gShowPopup%28this%29%3B%20return%3B%20%7D%0A%0A%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%20....................%0A%20%20%20%20if%20%28e.button%20%3D%3D%202%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%20%7C%7C%20e.altKey%20%7C%7C%20e.metaKey%29%20return%3B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%20%u0438%u043B%u0438%20%u041F%u041A%u041C%20....%0A%20%20%20%20var%20str%20%3D%20getSelect%28%29%3B%0A%20%20%20%20if%20%28%21str%29%20return%3B%0A%20%20%20%20var%20fastFind%20%3D%20gBrowser.finder._fastFind%3B%0A%0A%20%20%20%20fastFind.find%28str%2C%20false%29%20%3D%3D%20fastFind.FIND_FOUND%0A%20%20%20%20%3F%20fastFind.findAgain%28e.button%2C%20false%29%0A%20%20%20%20%3A%20disableIcon%28%29%3B%0A%7D%3B%0Athis.ondblclick%20%3D%20function%28e%29%20e.button%20%21%3D%202%3B%0A%0A%0A//%20%u0412%u0440%u0435%u043C%u0435%u043D%u043D%u043E%20%u043E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20....................%20%20%0Afunction%20disableIcon%28%29%20%7B%0A%20%20%20self.style.filter%20%3D%20%27url%28%22chrome%3A//mozapps/skin/extensions/extensions.svg%23greyscale%22%29%27%3B%0A%20%20%20setTimeout%28function%28%29%20%7B%20self.style.filter%20%3D%20%27%27%20%7D%2C%20600%29%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%27false%27%20................................%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%20//%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0A%20%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20%7B%20%20%20%20%0A%20%20%20%20%20%20%20%20var%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20%20%20%20%20%20if%20%28%20theBox%20%26%26%20%28theBox.type%20%3D%3D%20%22text%22%20%7C%7C%20theBox.type%20%3D%3D%20%22textarea%22%29%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20var%20startPos%20%3D%20theBox.selectionStart%3B%0A%09%20%20%20%20%20var%20endPos%20%3D%20theBox.selectionEnd%3B%0A%09%20%20%20%20%20var%20sel%20%3D%20theBox.value.substring%28startPos%2C%20endPos%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%20%0A%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20var%20sel%20%3D%20gClipboard.read%28%29%3B%20//%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.showAlertNotification%28%20self.image%2C%20self.label%2C%20%22%u0412%u044B%u0434%u0435%u043B%u0438%u0442%u0435%20%u0438%u043B%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u0443%u0439%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%21%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%20%29%3B%0A%20%20%0A%20%20return%20%28%20sel%20%3D%3D%20%27%27%20%29%20%3F%20false%20%3A%20sel.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%20//%20%u0443%u0431%u0438%u0440%u0430%u0435%u043C%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%u0441%20%u043A%u043E%u043D%u0446%u043E%u0432%20%u0442%u0435%u043A%u0441%u0442%u0430%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20....................%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u0418%u0441%u043A%u0430%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%u0430/%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u0434%u0430%u043B%u0435%u0435%20%5Cn%u0421%3A%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u0418%u0441%u043A%u0430%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%u0430/%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043D%u0430%u0437%u0430%u0434%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
bunda1 > 01-09-2011 18:39:05 |
Поиск по сайту в Google( Firefox24+ ) от 07.03.2017. ЛКМ => Поиск по сайту(выделенного или введённого текста), Код кнопки и код для инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%u0432%20Google%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..................%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20text%20%3D%20getSelect%28%29%20%7C%7C%20custombuttons.promptBox%28%27%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%u0432%20Google%27%2C%20%27B%u0432%u0435%u0434%u0438%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%20....%27%29%5B1%5D%3B%0A%20%20%20%20%20%20%20%20text%20%21%3D%3D%20%27%27%20%26%26%20searchInWebsite%28text%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20e.button%20%3D%3D%201%20%26%26%20searchInWebsite%28gClipboard.read%28%29%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%u0432%20Google%20..................%0Afunction%20searchInWebsite%28text%29%20%7B%20%0A%20%20%20var%20text%20%3D%20escape%28%20convertFromUnicode%28%22UTF-8%22%2C%20text%29%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20//var%20domain%20%3D%20Services.eTLD.getBaseDomain%28%20gBrowser.currentURI%20%29%3B%0A%20%20%20var%20domain%20%3D%20encodeURIComponent%28content.document.domain%29%3B%0A%20%20%20var%20url%20%3D%20%22http%3A//www.google.com/search%3Fas_q%3D%22%20+%20text%20+%20%22%26as_sitesearch%3D%22%20+%20domain%3B%0A%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28url%29%3B%20%0A%7D%3B%0A%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20..................%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20false%20..................%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20var%20sel%20%3D%20gBrowser.contentDocument.defaultView.getSelection%28%29.toString%28%29%0A%20%20%20return%20%28sel%20%3D%3D%20%27%27%29%20%3F%20false%20%3A%20sel.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..................%0Athis.tooltipText%20%3D%20%22%u041F%u043E%u0438%u0441%u043A%20%u043F%u043E%20%u0441%u0430%u0439%u0442%u0443%20%5Cn%u041B%3A%20%u041F%u043E%u0438%u0441%u043A%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0438%u043B%u0438%20%u0432%u0432%u0435%u0434%u0451%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%5Cn%u0421%3A%20%u041F%u043E%u0438%u0441%u043A%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%5Cn%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки .................. this.onclick =e=> { if ( e.button == 0 ) { var text = getSelect() || custombuttons.promptBox('Поиск по сайту в Google', 'Bведите текст ....')[1]; text !== '' && searchInWebsite(text); } e.button == 1 && searchInWebsite(gClipboard.read()); }; // Поиск по сайту в Google .................. function searchInWebsite(text) { var text = escape( convertFromUnicode("UTF-8", text) ); //var domain = Services.eTLD.getBaseDomain( gBrowser.currentURI ); var domain = encodeURIComponent(content.document.domain); var url = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + domain; gBrowser.selectedTab = gBrowser.addTab(url); }; // Конвертировать текст в юникод .................. function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; // Получить выделенный текст из страницы или false .................. function getSelect() { var sel = gBrowser.contentDocument.defaultView.getSelection().toString() return (sel == '') ? false : sel.toString().replace(/^\s+|\s+$/g,""); }; // Подсказка для кнопки .................. this.tooltipText = "Поиск по сайту \nЛ: Поиск выделенного или введённого текста \nС: Поиск текста из буфера обмена \nП: CB меню"; |
ignorecheats > 27-09-2011 20:03:39 |
Select Search Engine (Firefox) скрытый текст Код кнопки Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ESelect%20Search%20Engine%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABEElEQVQ4jaWSPU7DQBCF3wGo7DZp4qtEQqJJlSu4jLgBNS0dRDR0QARSumyPRJogkIJiWiToYhrSEPJR7Hptx/kDRhrNm93nb3ZXFsD4psPRwR4AzbjHxd0ru4a8kEgvbf1NePfzbQdJfro52UcS8fHQDyjWCuDz7QpJTOYLZk5nH0zmi/8Dzg/DEqgCmL1fW/PXNwADf4V7AMbuis24txrw1xBJAlHgMizoLdkI4CVBREEZWTKGK9bKqa3G3QDO2G7Z2ljqAYyxPmPgI4XHpw2A7ES+d/unZzlwM2BNnwEKb1QFGJNPabdg9GB1v2993W71BNOamNZEWpfXy5nW8/3U9UQBkqTyy677F6rrkvQDptjzJ/PSbekAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bfunction%20searchService%28%29%20%7B%0Areturn%20Components.classes%5B%22@mozilla.org/browser/search-service%3B1%22%5D%0A.getService%28Components.interfaces.nsIBrowserSearchService%29%3B%0A%7D%0A%0A%20this.selectEngine%20%3D%20function%28aNode%2C%20aEvent%29%20%7B%0A%20%20var%20engine%20%3D%20aEvent.target.engine%3B%0A%20%20var%20ss%20%3D%20searchService%28%29%3B%0A%20%20ss.currentEngine%20%3D%20ss.getEngineByName%28engine.name%29%3B%0A%20%20aNode.engine%20%3D%20engine%3B%0A%20%20aNode.image%20%3D%20aEvent.target.getAttribute%28%22src%22%29%3B%0A%7D%0A%0Athis.populateMenu%20%3D%20function%28aNode%29%20%7B%0A%20%20var%20ss%20%3D%20searchService%28%29%3B%0A%20%20var%20engines%20%3D%20ss.getVisibleEngines%28%7B%20%7D%29%3B%0A%20%20const%20kXULNS%20%3D%20%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3B%0A%0A%20%20while%28aNode.firstChild%20%26%26%20aNode.firstChild.localName%20%21%3D%20%22menuseparator%22%29%20%7B%0A%20%20%20%20aNode.removeChild%28aNode.firstChild%29%3B%0A%20%20%7D%0A%0A%20%20for%28var%20i%20%3D%20engines.length%20-%201%3B%20i%20%3E%3D%200%3B%20i--%29%20%7B%0A%20%20%20%20var%20mi%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuitem%22%29%3B%0A%20%20%20%20mi.id%20%3D%20%22cb-search-%22%20+%20engines%5Bi%5D.name%3B%0A%20%20%20%20mi.className%20%3D%20%22menuitem-iconic%20searchbar-engine-menuitem%22%3B%0A%20%20%20%20mi.setAttribute%28%22label%22%2C%20engines%5Bi%5D.name%29%3B%0A%20%20%20%20if%28engines%5Bi%5D.iconURI%29%0A%20%20%20%20%20%20mi.setAttribute%28%22src%22%2C%20engines%5Bi%5D.iconURI.spec%29%3B%0A%20%20%20%20mi.engine%20%3D%20engines%5Bi%5D%3B%0A%20%20%20%20if%28mi.engine%20%3D%3D%20ss.currentEngine%29%0A%20%20%20%20%20%20mi.style.fontWeight%20%3D%20%22bold%22%3B%0A%20%20%20%20mi.setAttribute%28%22onclick%22%2C%0A%20%20%20%20%20%20%22event.preventDefault%28%29%3Bevent.stopPropagation%28%29%3BparentNode.parentNode.selectEngine%28parentNode.parentNode%2C%20event%29%3B%22%29%3B%0A%20%20%20%20aNode.insertBefore%28mi%2C%20aNode.firstChild%29%3B%0A%20%20%7D%0A%7D%0A%0Athis.currentEngine%20%3D%20searchService%28%29.currentEngine%3B%0A%0Avar%20ss%20%3D%20searchService%28%29%3B%0Athis.engine%20%3D%20ss.currentEngine%3B%0Athis.image%20%3D%20this.engine.iconURI.spec%3B%0A%0Avar%20mp%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Amp.setAttribute%28%22onpopupshowing%22%2C%20%22parentNode.populateMenu%28this%29%22%29%3B%0Amp.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0Avar%20managerSeparator%20%3D%20mp.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0AmanagerSeparator.id%20%3D%20%22cb-searchbutton-separator%22%0Avar%20managerItem%20%3D%20mp.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0AmanagerItem.setAttribute%28%22label%22%2C%20%22Manage%20Search%20Engines%22%29%3B%0AmanagerItem.setAttribute%28%22oncommand%22%2C%0A%20%20%22openDialog%28%27chrome%3A//browser/content/search/engineManager.xul%27%2C%20%22%20+%0A%20%20%22%27engineManager%27%2C%20%27chrome%2C%20dialog%3Dno%27%29%22%29%3B%0A%20%20%0Athis.type%20%3D%20%22menu%22%3B%0A%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код инициализации: Выделить код Код:function searchService() { return Components.classes["@mozilla.org/browser/search-service;1"] .getService(Components.interfaces.nsIBrowserSearchService); } this.selectEngine = function(aNode, aEvent) { var engine = aEvent.target.engine; var ss = searchService(); ss.currentEngine = ss.getEngineByName(engine.name); aNode.engine = engine; aNode.image = aEvent.target.getAttribute("src"); } this.populateMenu = function(aNode) { var ss = searchService(); var engines = ss.getVisibleEngines({ }); const kXULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; while(aNode.firstChild && aNode.firstChild.localName != "menuseparator") { aNode.removeChild(aNode.firstChild); } for(var i = engines.length - 1; i >= 0; i--) { var mi = document.createElementNS(kXULNS, "menuitem"); mi.id = "cb-search-" + engines[i].name; mi.className = "menuitem-iconic searchbar-engine-menuitem"; mi.setAttribute("label", engines[i].name); if(engines[i].iconURI) mi.setAttribute("src", engines[i].iconURI.spec); mi.engine = engines[i]; if(mi.engine == ss.currentEngine) mi.style.fontWeight = "bold"; mi.setAttribute("onclick", "event.preventDefault();event.stopPropagation();parentNode.parentNode.selectEngine(parentNode.parentNode, event);"); aNode.insertBefore(mi, aNode.firstChild); } } this.currentEngine = searchService().currentEngine; var ss = searchService(); this.engine = ss.currentEngine; this.image = this.engine.iconURI.spec; var mp = this.appendChild(document.createElement("menupopup")); mp.setAttribute("onpopupshowing", "parentNode.populateMenu(this)"); mp.setAttribute("oncommand", "event.stopPropagation()"); var managerSeparator = mp.appendChild(document.createElement("menuseparator")); managerSeparator.id = "cb-searchbutton-separator" var managerItem = mp.appendChild(document.createElement("menuitem")); managerItem.setAttribute("label", "Manage Search Engines"); managerItem.setAttribute("oncommand", "openDialog('chrome://browser/content/search/engineManager.xul', " + "'engineManager', 'chrome, dialog=no')"); this.type = "menu"; Изменен тип кнопки на кнопку без бокового дропмейкера как более удобный в пользовании и более компактный, за помощь и код спасибо bunda1. |
ignorecheats > 28-09-2011 17:36:51 |
Go plus! (Firefox) ЛКМ => функция Go(Перейти) - открыть URL из строки адреса или Reload(Обновить страницу). Примечания скрытый текст 1. Логика поиска текста "текущим" поисковиком по ПКМ. Поиск текста, набранного в адресной строке, имеет приоритет перед другими поисками (выделенного текста, текста из буфера обмена). Для того, чтобы осуществялся поиск выделенного на странице или из буфера обмена, - не изменять содержимое адресной строки (в строке должен оставаться URL). Поиск текста из буфера обмена происходит при отсутствии выделенного на странице текста, иначе производится поиск выделенного. От местоположения курсора (фокуса) поиск независим. 2. Если включен и установлен через about:config (параметром keyword.URL) дефолтный поисковый запрос После установки Select Search Engine и Go plus! панель(строку) поиска и кнопку "Обновить" можно "удалить" 3. Настройки в "шапке" кода: скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EGo%20plus%21%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWJFY/97e3v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAABsAP8AHQD/oK2g/97e3v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAABZtFn/AHgA/wBBAP8ANwD/3t7e/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAbrhu/xKaEv8AkwD/AHsA/wBXAP8PXA//3t7e/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAHLGcv8TohP/BaQF/xixGP8RqxH/AIQA/wBeAP8+hT7/3t7e/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAB5xnn/GKIY/wqeCv8ZpRn/GK8Y/xq+Gv8SthL/AJIA/wBzAP+AuoD/3t7e/wAAAP8AAAD/AAAAAAAAAAAAAAAAbrRu/xCIEP8Lhgv/FosW/xaKFv8Wjxb/GJwY/xurG/8OpA7/AIoA/wCIAP/K/cr/3t7e/wAAAAAAAAAAAAAAAIDGgP8ZnRn/EJgQ/xycHP8bmxv/Gpga/xuUG/8ckhz/HJgc/w2YCv8AhgD/AHQA/wByAP/e3t7/AAAAAAAAAACBzIH/HaUd/xWjFP8ipyH/Iacg/yKnIf8ipyL/FKQU/wWcB/8apBr/Q7ZC/064UP/F7MX/3t7e/wAAAAAAAAAAjdaN/yKvIv8YrBr/JrAo/yivKf8drB//CqgL/xSrFv82tjb/UsRU/8Hsw//e3t7/AAAAAAAAAAAAAAAAAAAAAI7cjv8mtyb/IrUh/yi5J/8SshL/FrMW/zK8NP9XzVf/k+GT/97e3v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACY4Zj/Kr8q/xK6Ev8Xuhf/LMEs/0jJSP9o1mf/3t7e/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkeOR/xnEGf8dwx3/QdBB/17aXv/T9tP/3t7e/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIjliP850Tn/W9tb/6nuqf/e3t7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl4WX/RNtE/97e3v8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3t7e/+z/7P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn/OsQYfzrEGDwKxBgMCsQYAzrEGAA6xBgAOsQYABrEGAAaxBgAesQYAfrEGAf6xBgP+sQYP/rEGP/6xBn/+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.tooltipText%20%3D%20%22L%3DGO/RELOAD%20%7C%20M%3DOPEN%20select./clipb.%7C%20R%3DSEARCH%20typed/sel/clipb.%7C%20Sh+L%3DH.RELOAD%22%3B%0A//this.setAttribute%28%22style%22%2C%20%22padding-left%3A%200px%20%21important%3B%22%29%3B%0A//this.setAttribute%28%22style%22%2C%20%22padding-left%3A%200px%20%21important%3B%20padding-right%3A%202px%20%21important%3B%22%29%3B%0Aconst%20IN_NEW_TAB%20%3D%20true%3B%0Aconst%20IN_BACKGROUND%20%3D%20false%3B%0A%0Athis.onclick%20%3D%20function%28event%29%0A%7B%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%0A%20%20%20%7B%20%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20goDoCommand%28%22cmd_copy%22%29%3B%0A%20%20%20%20%20%20var%20strokaadresa%20%3D%20gURLBar.value%3B%0A%20%20%20%20%20%20var%20nsa%3Dstrokaadresa.substring%280%2C4%29%3B%0A%20%20%20%20%20%20if%20%28nsa%3D%3D%22http%22%29%20%7Bvar%20str%3DreadFromClipboard%28%29%3B%7D%0A%20%20%20%20%20%20%20%20else%20%7B%20if%20%28nsa%3D%3D%22ftp%3A%22%29%20%7Bvar%20str%3DreadFromClipboard%28%29%3B%7D%20else%20%7Bvar%20str%3DgURLBar.value%3B%7D%20%7D%3B%0A%20%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28str%2C%20null%29%3B%0A%20%20%20%20%20%20getBrowser%28%29.selectedTab%3DgetBrowser%28%29.addTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20IN_BACKGROUND%2C%20false%29%3B%0A%20%20%20%7D%3B%20%20%0A%20%20%20if%28event.button%20%3D%3D%201%29%0A%20%20%20%7B%20%20goDoCommand%28%22cmd_copy%22%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20str%20%3D%20readFromClipboard%28%29%3B%0A%20%20%20%20%20%20if%20%28%21str%29%20return%3B%0A%20%20%20%20%20%20if%20%28IN_NEW_TAB%29%20getBrowser%28%29.selectedTab%3DgetBrowser%28%29.addTab%28str%2C%20null%2C%20null%2C%20null%2C%20IN_BACKGROUND%2C%20false%29%3B%20else%20gBrowser.loadURI%28str%29%3B%0A%20%20%20%7D%3B%20%20%0A%20%20%20if%28event.button%20%3D%3D%200%29%0A%20%20%20%7B%20%20if%28%21event.shiftKey%29%0A%20%20%20%20%20%20%7B%20%20var%20str%20%3D%20gURLBar.value%3B%0A%20%20%20%20%20%20%20%20%20var%20tab%20%3D%20gBrowser.mCurrentTab%3B%0A%20%20%20%20%20%20%20%20%20gBrowser.duplicateTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%20gBrowser.mTabContainer.selectedIndex++%3B%0A%20%20%20%20%20%20%20%20%20gBrowser.removeTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%20gBrowser.loadURI%28str%29%3B%0A%20%20%20%20%20%20%7D%20%20else%20BrowserReloadSkipCache%28%29%3B%0A%20%20%20%7D%3B%20%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код инициализации: Выделить код Код:this.tooltipText = "L=GO/RELOAD | M=OPEN select./clipb.| R=SEARCH typed/sel/clipb.| Sh+L=H.RELOAD"; //this.setAttribute("style", "padding-left: 0px !important;"); //this.setAttribute("style", "padding-left: 0px !important; padding-right: 2px !important;"); const IN_NEW_TAB = true; const IN_BACKGROUND = false; this.onclick = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { event.preventDefault(); event.stopPropagation(); goDoCommand("cmd_copy"); var strokaadresa = gURLBar.value; var nsa=strokaadresa.substring(0,4); if (nsa=="http") {var str=readFromClipboard();} else { if (nsa=="ftp:") {var str=readFromClipboard();} else {var str=gURLBar.value;} }; var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission(str, null); getBrowser().selectedTab=getBrowser().addTab(submission.uri.spec, null, null, submission.postData, IN_BACKGROUND, false); }; if(event.button == 1) { goDoCommand("cmd_copy"); var str = readFromClipboard(); if (!str) return; if (IN_NEW_TAB) getBrowser().selectedTab=getBrowser().addTab(str, null, null, null, IN_BACKGROUND, false); else gBrowser.loadURI(str); }; if(event.button == 0) { if(!event.shiftKey) { var str = gURLBar.value; var tab = gBrowser.mCurrentTab; gBrowser.duplicateTab(tab); gBrowser.mTabContainer.selectedIndex++; gBrowser.removeTab(tab); gBrowser.loadURI(str); } else BrowserReloadSkipCache(); }; };
|
ignorecheats > 29-09-2011 11:09:58 |
Go plus focus (Firefox) Примечание скрытый текст Кнопка требует большей внимательности для того, чтобы получить в результате поиска именно то, чего хотелось, зато не зависит от состояния адресной строки - можно, например, начать набирать в адресной строке текст для поиска, затем передумать )) и выделить другой текст на странице или скопировать в буфер и осуществить его поиск. (Кнопка Go plus! в такой ситуации требует сначала восстановить адрес, например, по контекстному меню ПКМ в поле адреса, а затем уже искать выделенное/из буфера, иначе будет флегматично искать то, что было набрано в адресной строке, не обращая внимание на фокус (движения мыши, жесты, клики по странице и т.п. суету )) )). Остальные подробности см. в Примечаниях к кнопке Go plus!, пп. 2, 3. скрытый текст Код кнопки Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EGo%20plus%20focus%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALlC//8zT6P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAx1P8ALcL/VG2//561//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAANN7/ADPb/wAwz/8ALL3/gpTR/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAADXj/////////////////wAy1v8ALsT/qLbj/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAA37f//////////////////////ADfr/wAz2/8AMMz/zNTt/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAANuj/ADny/wA69////////////wA8//8AO/z/ADny/wA14/8nUNn/5Oj3/wAAAP8AAAD/AAAAAAAAAAAAAAAAADXj/wA25v8ANuj///////////8AN+3/ADn1/wA6+v8AOvf/ADny/wA26P9Wd+P/nrX//wAAAAAAAAAAAAAAAAU66/8AOPD///////////8AOPD/ADjw/wA36/8AN+v/ADjw/wA58v8AN+3/ADft/wA58v+1xPX/AAAAAAAAAAAFPPD///////////8AOvf/ADr3/wA69/8AOvf/ADr6/wA6+v8AOvf/ADn1/wA08v9ykff/nrX//wAAAAAAAAAAD0X3//////////////////////8APP//ADz//wA8//8AOvr/ADb6/2SE+v+etf//AAAAAAAAAAAAAAAAAAAAAApD//8APP//////////////////ADz//wA8//8APP//M2P//9Td/P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUS///ADz//wA8//8APP//ADz//wA8//8KQ///rcD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEv//wA8//8APP//ADz//wA8//91lf//nrX//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRL//8APP//ADz//0dy///m6///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPR///ADz//73M//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuMj//561//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAn/OsQYfzrEGDwKxBgMCsQYAzrEGAA6xBgAOsQYABrEGAAaxBgAesQYAfrEGAf6xBgP+sQYP/rEGP/6xBn/+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.tooltipText%20%3D%20%22L%3DGO/RELOAD%20%7C%20M%3DOPEN%20select./clipb.%7C%20R%3DSEARCH%20typed/sel/clipb.%7C%20Sh+L%3DH.RELOAD%22%3B%0A//this.setAttribute%28%22style%22%2C%20%22padding-left%3A%200px%20%21important%3B%22%29%3B%0A//this.setAttribute%28%22style%22%2C%20%22padding-left%3A%200px%20%21important%3B%20padding-right%3A%202px%20%21important%3B%22%29%3B%0Aconst%20IN_NEW_TAB%20%3D%20true%3B%0Aconst%20IN_BACKGROUND%20%3D%20false%3B%0A%0Athis.onclick%20%3D%20function%28event%29%0A%7B%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%0A%20%20%20%7B%20%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20goDoCommand%28%22cmd_copy%22%29%3B%0A%20%20%20%20%20%20if%28gURLBar.focused%29%20%7Bvar%20str%20%3D%20gURLBar.value%3B%7D%20%20else%20%7Bvar%20str%20%3D%20readFromClipboard%28%29%3B%7D%0A%20%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28str%2C%20null%29%3B%0A%20%20%20%20%20%20getBrowser%28%29.selectedTab%3DgetBrowser%28%29.addTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20IN_BACKGROUND%2C%20false%29%3B%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20if%28event.button%20%3D%3D%201%29%0A%20%20%20%7B%20%20goDoCommand%28%22cmd_copy%22%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20str%20%3D%20readFromClipboard%28%29%3B%0A%20%20%20%20%20%20if%20%28%21str%29%20return%3B%0A%20%20%20%20%20%20if%20%28IN_NEW_TAB%29%20getBrowser%28%29.selectedTab%3DgetBrowser%28%29.addTab%28str%2C%20null%2C%20null%2C%20null%2C%20IN_BACKGROUND%2C%20false%29%3B%20else%20gBrowser.loadURI%28str%29%3B%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20if%28event.button%20%3D%3D%200%29%0A%20%20%20%7B%20%20if%28%21event.shiftKey%29%0A%20%20%20%20%20%20%7B%20%20var%20str%20%3D%20gURLBar.value%3B%0A%20%20%20%20%20%20%20%20%20var%20tab%20%3D%20gBrowser.mCurrentTab%3B%0A%20%20%20%20%20%20%20%20%20gBrowser.duplicateTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%20gBrowser.mTabContainer.selectedIndex++%3B%0A%20%20%20%20%20%20%20%20%20gBrowser.removeTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%20gBrowser.loadURI%28str%29%3B%0A%20%20%20%20%20%20%7D%20%20else%20BrowserReloadSkipCache%28%29%3B%0A%20%20%20%7D%3B%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код инициализации Выделить код Код:this.tooltipText = "L=GO/RELOAD | M=OPEN select./clipb.| R=SEARCH typed/sel/clipb.| Sh+L=H.RELOAD"; //this.setAttribute("style", "padding-left: 0px !important;"); //this.setAttribute("style", "padding-left: 0px !important; padding-right: 2px !important;"); const IN_NEW_TAB = true; const IN_BACKGROUND = false; this.onclick = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { event.preventDefault(); event.stopPropagation(); goDoCommand("cmd_copy"); if(gURLBar.focused) {var str = gURLBar.value;} else {var str = readFromClipboard();} var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission(str, null); getBrowser().selectedTab=getBrowser().addTab(submission.uri.spec, null, null, submission.postData, IN_BACKGROUND, false); }; if(event.button == 1) { goDoCommand("cmd_copy"); var str = readFromClipboard(); if (!str) return; if (IN_NEW_TAB) getBrowser().selectedTab=getBrowser().addTab(str, null, null, null, IN_BACKGROUND, false); else gBrowser.loadURI(str); }; if(event.button == 0) { if(!event.shiftKey) { var str = gURLBar.value; var tab = gBrowser.mCurrentTab; gBrowser.duplicateTab(tab); gBrowser.mTabContainer.selectedIndex++; gBrowser.removeTab(tab); gBrowser.loadURI(str); } else BrowserReloadSkipCache(); }; }; Update. Заменил код (ЛКМ) на более корректный. Заменил иконку. 01.10.2011 |
ignorecheats > 30-09-2011 01:35:16 |
Bookmarks | Manager | Add (Firefox) ЛКМ=> открыть закладки в боковой панели скрытый текст Код кнопки Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EBookmarks%20%7C%20Bookmarks%20Manager%20%7C%20Add%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEL62XsAAP8AQvrZAEL62QBC+tkAQvrZAEL62QBC+tkAQvrZAEL62QBC+tkAQvrZAEL62QBC+tkAAAAAAEz72XsAAP97AAD/MbP9/zGz/f8xs/3/MbP9/zGz/f8xs/3/MbP9/zGz/f8xs/3/MbP9/zGz/f8xtP3/AEz72XsAAP97AAD/ewAA/3sAAP97AAD/ewAA/3sAAP97AAD/ewAA/3sAAP97AAD/ewAA/3sAAP97AAD/Lbj9/wBW+9kAYPvZewAA/3sAAP8qfvv/UZb8/1GW/P8qfvv/Kn77/yp++/8qfvv/UZb8/1GW/P8qfvv/Kn77/yq7/f8AYPvZAGv82Sa//v97AAD/JoX8/0GU/P/x9///d7L9/yaF/P8mhfz/d7L9//H3//9BlPz/JoX8/yaF/P8mv/7/AGv82QB1/Nkjw/7/I438/yON/P8jjfz/1ur+//////+62/7/utv+///////W6v7/I438/yON/P8jjfz/I8P+/wB1/NkAf/zZH8j+/x+V/P8flfz/H5X8/4HD/f//////////////////////gcP9/x+V/P8flfz/H5X8/x/I/v8Af/zZAIn92RzL/v8cnP3/HJz9/xyc/f+b1P7//////////////////////5vU/v8cnP3/HJz9/xyc/f8cy/7/AIn92QCT/dkY0P7/GKT9/yap/f/F6P7/////////////////////////////////xej+/yap/f8YpP3/GND+/wCT/dkAnf3ZFdP+/zK2/f+35f7/xer//8Xq///T7//////////////T7///xer//8Xq//+35f7/Mrb9/xXT/v8Anf3ZAKf92RHX/v8Rs/3/EbP9/xGz/f8Rs/3/L739////////////L739/xGz/f8Rs/3/EbP9/xGz/f8R1/7/AKf92QCx/tkO2///Drv+/w67/v8Ou/7/Drv+/w67/v/S8v//0vL//w67/v8Ou/7/Drv+/w67/v8Ou/7/Dtv//wCx/tkAu/7ZCuD//wrD/v8Kw/7/CsP+/wrD/v8Kw/7/dd3+/3Xd/v8Kw/7/CsP+/wrD/v8Kw/7/CsP+/wrg//8Au/7ZAMX+2Qfj//8Hyv7/B8r+/wfK/v8Hyv7/B8r+/ybR/v8l0P7/B8r+/wfK/v8Hyv7/B8r+/wfK/v8H4///AMX+2QDQ/9kD6P//A+f//wPn//8D5///A+f//wPn//8D5///A+f//wPn//8D5///A+f//wPn//8D5///A+j//wDQ/9kAAAAAANn/2QDZ/9kA2f/ZANn/2QDZ/9kA2f/ZANn/2QDZ/9kA2f/ZANn/2QDZ/9kA2f/ZANn/2QDZ/9kAAAAAgAGsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBgAGsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.setAttribute%28%22style%22%2C%20%22padding-left%3A%202px%20%21important%3B%20padding-right%3A%202px%20%21important%3B%20padding-top%3A%200px%20%21important%3B%20padding-bottom%3A%200px%20%21important%3B%20%20margin-top%3A%204px%20%21important%3B%20margin-bottom%3A%204px%20%21important%3B%22%29%3B%0Athis.tooltipText%20%3D%20%22L%3DBookmarks%20%7C%20M%3DB.Manager%20%7C%20R%3DAdd%20Bookmark%20As%20%7C%20Sh+L%3DAll%20Tabs%20to%20Bookmarks%22%3B%0A%0A%0Athis.%20onclick%20%3D%20function%20%28event%29%0A%7B%20%20%20if%20%28event.%20button%20%3D%3D%200%20%26%26%20%21event.shiftKey%29%20toggleSidebar%28%27viewBookmarksSidebar%27%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%201%29%20toOpenWindowByType%28%27bookmarks%3Amanager%27%2C%20%27chrome%3A//browser/content/bookmarks/bookmarksManager.xul%27%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%0A%20%20%20%20%7B%20%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20addBookmarkAs%28document.getElementById%28%27content%27%29%2C%20false%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%200%20%26%26%20event.shiftKey%29%20addBookmarkAs%28document.getElementById%28%27content%27%29%2C%20true%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код Инициализации Выделить код Код:this.setAttribute("style", "padding-left: 2px !important; padding-right: 2px !important; padding-top: 0px !important; padding-bottom: 0px !important; margin-top: 4px !important; margin-bottom: 4px !important;"); this.tooltipText = "L=Bookmarks | M=B.Manager | R=Add Bookmark As | Sh+L=All Tabs to Bookmarks"; this. onclick = function (event) { if (event. button == 0 && !event.shiftKey) toggleSidebar('viewBookmarksSidebar'); if (event. button == 1) toOpenWindowByType('bookmarks:manager', 'chrome://browser/content/bookmarks/bookmarksManager.xul'); if (event. button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { event.preventDefault(); event.stopPropagation(); addBookmarkAs(document.getElementById('content'), false); }; if (event. button == 0 && event.shiftKey) addBookmarkAs(document.getElementById('content'), true); }; Работает в Firefox 2.0.0.20, должна работать и в других версиях, не проверял... |
ignorecheats > 03-10-2011 09:53:08 |
Новые версии Go plus! и Go plus focus. скрытый текст Код кнопки Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EGo%20plus%21%B2%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAD/AJwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAJwA/wCcAP8AnAD/AJwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAACcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAACcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/ANdx/wAAAP8AAAD/AAAAAAAAAAAAnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8A13H/ANdx/wAAAAAAAAAAAJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AP+A/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wD/gP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wAAAAAAAAAAAJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AAAAAAAAAAAAAAAAAAAAAACcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAJwA/wCcAP8AnAD/AJwA/wCcAP8AnAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAACcAP8AnAD/AJwA/wCcAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAP8AnAD/AJwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/P/OsQQ/zrEEDwKxBAMCsQQAzrEEAA6xBAAOsQQAArEEAAKxBAAOsQQAPrEEAOKxBAPusQQP9rEEP+qxBP/ysQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.tooltipText%20%3D%20%22GO/RELOAD/OPEN/SEARCH%20%7C%20Ctrl+MouseRightClick%20for%20Button%20HELP%22%3B%0Athis.setAttribute%28%22style%22%2C%20%22padding-left%3A%200px%20%21important%3B%22%29%3B%0Aconst%20IN_NEW_TAB%20%3D%20true%3B%20%20const%20IN_BACKGROUND%20%3D%20false%3B%20%20var%20br%20%3D%20getBrowser%28%29%3B%20%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%20%20var%20str%20%3D%20gURLBar.value%3B%20var%20loc%20%3D%20%28str%20%3D%3D%20content.location%29%3B%0A%20%20%20this.prDef%20%3D%20function%28%29%20%7B%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%20%7D%3B%0A%20%20%20this.nonfocus%20%3D%20function%28%29%20%7BgoDoCommand%28%22cmd_copy%22%29%3B%20str%3DreadFromClipboard%28%29%3B%20%7D%3B%0A%20%20%20%0A%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20loc%20%26%26%20%21event.altKey%29%20%7B%20if%20%28event.shiftKey%29%20%7B%20BrowserReloadSkipCache%28%29%3B%7D%20else%20BrowserReload%28%29%3B%20%20%7D%3B%0A%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20%21loc%20%26%26%20%21event.altKey%29%20br.loadURI%28str%29%3B%20%20%20//%20for%20edited%20url%20%26%20for%20mouse%20without%20middle%20button...%0A%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20event.altKey%29%20this.AltWeb%28str%29%3B%20%20%20%20%20%20//%20for%20current/edited%20url%20%26%20for%20mouse%20without%20middle%20button...%0A%0A%20%20%20if%28event.button%20%3D%3D%201%20%26%26%20%21event.altKey%29%20%7B%20this.nonfocus%28%29%3B%20if%20%28%21str%29%20return%3B%0A%20%20%20%20%20if%20%28IN_NEW_TAB%29%20br.selectedTab%3Dbr.addTab%28str%2C%20null%2C%20null%2C%20null%2C%20IN_BACKGROUND%2C%20false%29%3B%20%20else%20br.loadURI%28str%29%3B%20%7D%3B%0A%20%20%20if%28event.button%20%3D%3D%201%20%26%26%20event.altKey%29%20%7B%20this.nonfocus%28%29%3B%20if%20%28%21str%29%20return%3B%20this.AltWeb%28str%29%3B%20%7D%3B%20%0A%0A%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%20this.prDef%28%29%3B%20if%28loc%29%20this.nonfocus%28%29%3B%20%0A%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28str%2C%20null%29%3B%0A%20%20%20%20%20br.selectedTab%3Dbr.addTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20IN_BACKGROUND%2C%20false%29%3B%20%7D%3B%0A%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20event.shiftKey%29%20%7B%20this.prDef%28%29%3B%20if%28loc%29%20this.nonfocus%28%29%3B%20this.SearchInWebsite%28str%29%3B%20%7D%3B%0A%7D%3B%0A%0Athis.AltWeb%20%3D%20function%28addr%29%20%7B%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/search%3Fq%3Dcache%3A%22%20+%20addr%29%3B%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%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//liveweb.archive.org/%22%20+%20addr%29%3B%20%7D%3B%0Athis.SearchInWebsite%20%3D%20function%28text%29%0A%7B%20%20%20%20%20%20%20var%20doc%20%3D%20br.contentDocument%3B%0A%20%20%20%20%20%20%20%20try%20%7B%20var%20url%20%3D%20doc.%20location.%20hostname%3B%20%7D%20%20catch%28e%29%20%7B%20var%20url%20%3D%20%22%22%3B%20%7D%20%20%0A%20%20%20%20%20%20%20%20text%20%3D%20escape%20%28convertFromUnicode%20%28%22UTF-8%22%2C%20text%29%29%3B%0A%20%20%20%20%20%20%20%20url%20%3D%20encodeURIComponent%20%28url%29%3B%0A%20%20%20%20%20%20%20%20var%20searchUrl%20%3D%20%22http%3A//www.google.com/search%3Fas_q%3D%22%20+%20text%20+%20%22%26as_sitesearch%3D%22%20+%20url%3B%20%20%0A//%20%20%20%20%20%20%20%20var%20searchUrl%20%3D%20%22http%3A//www.google.com.ua/search%3Fnum%3D100%26hl%3Duk%26safe%3Doff%26q%3D%22%20+%20text%20+%20%22%26as_sitesearch%3D%22%20+%20url%3B%0A//%20%20%20%20%20%20%20%20var%20searchUrl%20%3D%20%22http%3A//www.google.ru/search%3Fq%3D%22%20+%20text%20+%20%22%20site%3A%22%20+%20url%20+%20%22%26tbo%3D1%26prmdo%3D1%26sa%3DX%22%3B%0A%20%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28searchUrl%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B______________________________________________________________________________________________________%0A%0A%20%20%20%20%20%20%20%20%20%20Left%20%20%3D%20GO/RELOAD%0A%20Shift+Left%20%20%3D%20Hard%20RELOAD%0A%20%20%20Alt+Left%20%20%3D%20SEARCH%20location%20bar%20URL%20in%20Google%20CACHE%20%26%20Archive.org%20%28in%202%20NEW%20Tabs%29%0A%0A%20%20%20%20%20Medium%20%3D%20OPEN%20URL%20%28selected%20on%20page%20%22text%22%20url%20OR%20from%20clipboard%29%20%28in%20NEW%20Tab%29%0AAlt+Medium%3D%20SEARCH%20URL%20%28selected%20/%20from%20clipboard%29%20in%20Google%20CACHE%20%26%20Archive.org%20%28in%202%20NEW%20Tabs%29%0A%20%20%0A%20%20%20%20%20%20%20%20%20Right%20%3D%20SEARCH%20the%20text%20%28typed%20in%20location%20bar%20OR%20selected/from%20clipboard%29%20by%20selected%20Search%20Engine%20%28in%20NEW%20Tab%29%0AShift+Right%20%3D%20SEARCH%20the%20text%20%28typed%20in%20location%20bar%20OR%20selected/from%20clipboard%29%20in%20current%20Website%20by%20Google%20%28in%20NEW%20Tab%29%0A%0A%20Ctrl+Right%20%3D%20CB%20menu%0A______________________________________________________________________________________________________%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код Инициализации Выделить код Код:this.tooltipText = "GO/RELOAD/OPEN/SEARCH | Ctrl+MouseRightClick for Button HELP"; this.setAttribute("style", "padding-left: 0px !important;"); const IN_NEW_TAB = true; const IN_BACKGROUND = false; var br = getBrowser(); this.onclick = function(event) { var str = gURLBar.value; var loc = (str == content.location); this.prDef = function() { event.preventDefault(); event.stopPropagation(); }; this.nonfocus = function() {goDoCommand("cmd_copy"); str=readFromClipboard(); }; if(event.button == 0 && loc && !event.altKey) { if (event.shiftKey) { BrowserReloadSkipCache();} else BrowserReload(); }; if(event.button == 0 && !loc && !event.altKey) br.loadURI(str); // for edited url & for mouse without middle button... if(event.button == 0 && event.altKey) this.AltWeb(str); // for current/edited url & for mouse without middle button... if(event.button == 1 && !event.altKey) { this.nonfocus(); if (!str) return; if (IN_NEW_TAB) br.selectedTab=br.addTab(str, null, null, null, IN_BACKGROUND, false); else br.loadURI(str); }; if(event.button == 1 && event.altKey) { this.nonfocus(); if (!str) return; this.AltWeb(str); }; if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { this.prDef(); if(loc) this.nonfocus(); var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission(str, null); br.selectedTab=br.addTab(submission.uri.spec, null, null, submission.postData, IN_BACKGROUND, false); }; if(event.button == 2 && event.shiftKey) { this.prDef(); if(loc) this.nonfocus(); this.SearchInWebsite(str); }; }; this.AltWeb = function(addr) { br.selectedTab = br.addTab("http://www.google.com/search?q=cache:" + addr); br.selectedTab = br.addTab("http://liveweb.archive.org/" + addr); }; this.SearchInWebsite = function(text) { var doc = br.contentDocument; try { var url = doc. location. hostname; } catch(e) { var url = ""; } text = escape (convertFromUnicode ("UTF-8", text)); url = encodeURIComponent (url); var searchUrl = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + url; // var searchUrl = "http://www.google.com.ua/search?num=100&hl=uk&safe=off&q=" + text + "&as_sitesearch=" + url; // var searchUrl = "http://www.google.ru/search?q=" + text + " site:" + url + "&tbo=1&prmdo=1&sa=X"; br.selectedTab = br.addTab(searchUrl); }; Go plus² focus(Firefox) скрытый текст Код кнопки Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EGo%20plus%B2%20focus%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAD/AJwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAJwA/wCcAP8AnAD/AJwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAACcAP8AnAD/AJwA/wCbAP8AmgD/AJgA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AnAD/AJwA/wCQAP8AkAD/AJAA/wCZAP8AmAD/AJUA/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AJwA/wCcAP8AgwD//////wBqAP8AdwD/AIMA/wCNAP8AnAD/ALcA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAACcAP8AkAD/AHcA//////////////////////8AdwD/AIMA/wCPAP8AmwD/AP/Q/wAAAP8AAAD/AAAAAAAAAAAAnAD/AIMA//////8AXgD/AF4A/wBeAP8AXgD///////////8AkAD/AJUA/wChAP8A/8b/AP/M/wAAAAAAAAAAAJwA/wB3AP//////AF4A////////////AF4A//////8AagD/AJAA/wCcAP8AlQD/AI0A/wCNAP8AfAD/AP+3/wCQAP8AagD//////wBeAP///////////wBeAP//////AHcA/wCcAP8AnAD/AJwA/wCcAP8AmgD/AH4A/wD/tf8AkAD///////////8AXgD/AF4A/wBeAP8AXgD//////wCDAP8AnAD/AJwA/wCdAP8AoAD/AKQA/wAAAAAAAAAAAJAA/wCDAP8AdwD//////////////////////wB3AP8AkAD/AJsA/wCcAP8ApgD/AAAAAAAAAAAAAAAAAAAAAACcAP8AnAD/AJAA/wCDAP8AdwD/AGoA//////8AgQD/AJgA/wCYAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AnAD/AJwA/wCcAP8AnAD/AJwA/wCMAP8AigD/AIUA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAJwA/wCcAP8AnAD/AJwA/wCaAP8AmAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAACcAP8AnAD/AJwA/wCcAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAP8AnAD/AJwA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/P/OsQQ/zrEEDwKxBAMCsQQAzrEEAA6xBAAOsQQAArEEAAKxBAAOsQQAPrEEAOKxBAPusQQP9rEEP+qxBP/ysQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.tooltipText%20%3D%20%22GO/RELOAD/OPEN/SEARCH%20%7C%20Ctrl+MouseRightClick%20for%20Button%20HELP%22%3B%0Athis.setAttribute%28%22style%22%2C%20%22padding-left%3A%200px%20%21important%3B%22%29%3B%0Aconst%20IN_NEW_TAB%20%3D%20true%3B%20%20const%20IN_BACKGROUND%20%3D%20false%3B%20%20var%20br%20%3D%20getBrowser%28%29%3B%20%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%20%20var%20str%20%3D%20gURLBar.value%3B%20var%20loc%20%3D%20%28str%20%3D%3D%20content.location%29%3B%0A%20%20%20this.prDef%20%3D%20function%28%29%20%7B%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%20%7D%3B%0A%20%20%20this.nonfocus%20%3D%20function%28%29%20%7BgoDoCommand%28%22cmd_copy%22%29%3B%20str%3DreadFromClipboard%28%29%3B%20%7D%3B%0A%20%20%20%0A%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20loc%29%20%7B%20%20if%20%28event.shiftKey%29%20%7B%20BrowserReloadSkipCache%28%29%3B%7D%20else%20BrowserReload%28%29%3B%20%20%7D%3B%0A%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20%21loc%29%20br.loadURI%28str%29%3B%20%20%20//%20for%20edited%20url%20%26%20for%20mouse%20without%20middle%20button...%0A%0A%20%20%20if%28event.button%20%3D%3D%201%20%26%26%20%21event.altKey%29%20%7B%20this.nonfocus%28%29%3B%20if%20%28%21str%29%20return%3B%0A%20%20%20%20%20if%20%28IN_NEW_TAB%29%20br.selectedTab%3Dbr.addTab%28str%2C%20null%2C%20null%2C%20null%2C%20IN_BACKGROUND%2C%20false%29%3B%20%20else%20br.loadURI%28str%29%3B%20%7D%3B%0A%20%20%20if%28event.button%20%3D%3D%201%20%26%26%20event.altKey%29%20%0A%20%20%20%7B%20if%28%21gURLBar.focused%29%20%7B%20this.nonfocus%28%29%3B%20if%20%28%21str%29%20return%3B%20this.AltWeb%28str%29%3B%20%7D%20%20else%20this.AltWeb%28str%29%3B%20%7D%3B%20%0A%0A%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%20this.prDef%28%29%3B%0A%20%20%20%20%20if%28%21gURLBar.focused%29%20this.nonfocus%28%29%3B%20%0A%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28str%2C%20null%29%3B%0A%20%20%20%20%20br.selectedTab%3Dbr.addTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20IN_BACKGROUND%2C%20false%29%3B%20%7D%3B%0A%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20event.shiftKey%29%20%7B%20this.prDef%28%29%3B%20if%28%21gURLBar.focused%29%20this.nonfocus%28%29%3B%20this.SearchInWebsite%28str%29%3B%20%7D%3B%0A%7D%3B%0A%0Athis.AltWeb%20%3D%20function%28addr%29%20%7B%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/search%3Fq%3Dcache%3A%22%20+%20addr%29%3B%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%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//liveweb.archive.org/%22%20+%20addr%29%3B%20%7D%3B%0Athis.SearchInWebsite%20%3D%20function%28text%29%0A%7B%20%20%20%20%20%20%20var%20doc%20%3D%20br.contentDocument%3B%0A%20%20%20%20%20%20%20%20try%20%7B%20var%20url%20%3D%20doc.%20location.%20hostname%3B%20%7D%20%20catch%28e%29%20%7B%20var%20url%20%3D%20%22%22%3B%20%7D%20%20%0A%20%20%20%20%20%20%20%20text%20%3D%20escape%20%28convertFromUnicode%20%28%22UTF-8%22%2C%20text%29%29%3B%0A%20%20%20%20%20%20%20%20url%20%3D%20encodeURIComponent%20%28url%29%3B%0A%20%20%20%20%20%20%20%20var%20searchUrl%20%3D%20%22http%3A//www.google.com/search%3Fas_q%3D%22%20+%20text%20+%20%22%26as_sitesearch%3D%22%20+%20url%3B%20%20%0A//%20%20%20%20%20%20%20%20var%20searchUrl%20%3D%20%22http%3A//www.google.com.ua/search%3Fnum%3D100%26hl%3Duk%26safe%3Doff%26q%3D%22%20+%20text%20+%20%22%26as_sitesearch%3D%22%20+%20url%3B%0A//%20%20%20%20%20%20%20%20var%20searchUrl%20%3D%20%22http%3A//www.google.ru/search%3Fq%3D%22%20+%20text%20+%20%22%20site%3A%22%20+%20url%20+%20%22%26tbo%3D1%26prmdo%3D1%26sa%3DX%22%3B%0A%20%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28searchUrl%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B_________________________________________________________________________________________________________%0A%0A%20%20%20%20%20%20%20%20%20%20Left%20%20%3D%20GO/RELOAD%0A%20Shift+Left%20%20%3D%20Hard%20RELOAD%0A%0A%20%20%20%20%20Medium%20%3D%20OPEN%20URL%20%28selected%20on%20page%20%22text%22%20url%20OR%20from%20clipboard%29%20%28NEW%20Tab%29%0AAlt+Medium%3DSEARCH%20URL%28from%20location%20bar%28if%20focused%29%20OR%20selected/from%20clipboard%29%20in%20Google%20CACHE%20%26%20Archive.org%20%282%20NEW%20Tabs%29%0A%0A%20%20%20%20%20%20%20%20%20Right%20%3D%20SEARCH%20the%20text%20%28typed%20in%20location%20bar%28if%20focused%29%20OR%20selected/from%20clipboard%29%20by%20selected%20Search%20Engine%0AShift+Right%20%3D%20SEARCH%20the%20text%20%28typed%20in%20location%20bar%28if%20focused%29%20OR%20selected/from%20clipboard%29%20in%20current%20Website%20by%20Google%0A%0A%20Ctrl+Right%20%3D%20CB%20menu%0A_________________________________________________________________________________________________________%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код Инициализации Выделить код Код:this.tooltipText = "GO/RELOAD/OPEN/SEARCH | Ctrl+MouseRightClick for Button HELP"; this.setAttribute("style", "padding-left: 0px !important;"); const IN_NEW_TAB = true; const IN_BACKGROUND = false; var br = getBrowser(); this.onclick = function(event) { var str = gURLBar.value; var loc = (str == content.location); this.prDef = function() { event.preventDefault(); event.stopPropagation(); }; this.nonfocus = function() {goDoCommand("cmd_copy"); str=readFromClipboard(); }; if(event.button == 0 && loc) { if (event.shiftKey) { BrowserReloadSkipCache();} else BrowserReload(); }; if(event.button == 0 && !loc) br.loadURI(str); // for edited url & for mouse without middle button... if(event.button == 1 && !event.altKey) { this.nonfocus(); if (!str) return; if (IN_NEW_TAB) br.selectedTab=br.addTab(str, null, null, null, IN_BACKGROUND, false); else br.loadURI(str); }; if(event.button == 1 && event.altKey) { if(!gURLBar.focused) { this.nonfocus(); if (!str) return; this.AltWeb(str); } else this.AltWeb(str); }; if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { this.prDef(); if(!gURLBar.focused) this.nonfocus(); var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission(str, null); br.selectedTab=br.addTab(submission.uri.spec, null, null, submission.postData, IN_BACKGROUND, false); }; if(event.button == 2 && event.shiftKey) { this.prDef(); if(!gURLBar.focused) this.nonfocus(); this.SearchInWebsite(str); }; }; this.AltWeb = function(addr) { br.selectedTab = br.addTab("http://www.google.com/search?q=cache:" + addr); br.selectedTab = br.addTab("http://liveweb.archive.org/" + addr); }; this.SearchInWebsite = function(text) { var doc = br.contentDocument; try { var url = doc. location. hostname; } catch(e) { var url = ""; } text = escape (convertFromUnicode ("UTF-8", text)); url = encodeURIComponent (url); var searchUrl = "http://www.google.com/search?as_q=" + text + "&as_sitesearch=" + url; // var searchUrl = "http://www.google.com.ua/search?num=100&hl=uk&safe=off&q=" + text + "&as_sitesearch=" + url; // var searchUrl = "http://www.google.ru/search?q=" + text + " site:" + url + "&tbo=1&prmdo=1&sa=X"; br.selectedTab = br.addTab(searchUrl); }; Все остальные функции и управление обеими кнопок - полностью совпадают с кнопками Go plus! и Go plus focus. Описание, примечания, интерфейс - см. эти кнопки. Примечание скрытый текст Есть возможность в коде кнопки выбрать поисковую строку Google для поиска по сайту, путем раскомментирования нужной строки - 1 из 3 вариантов по порядку: var searchUrl = ... - стандартный поиск google.com // var searchUrl = ... - поиск google.com.ua с выключенными фильтрами, без "живого поиска" и с сотней результатов на страницу // var searchUrl = ... - поиск google.ru с выключенными фильтрами, без "живого поиска" и с сотней результатов на страницу Update. Добавил поиск в кеше Google и в Archive.org, "причесал" код и описание. Новые иконки. ) 04.10.2011 |
ignorecheats > 06-10-2011 18:50:26 |
togglelogin (Firefox) Выйти с сайта и снова вернуться на ту же страницу сайта с другим логином. скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3Etogglelogin%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQx/wCEMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIQx/wCEMf8AhDH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wCEMf8AhDH/AIQx/wAAAAAAAAAAAIQx/wCEMf8AhDH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhDH/AIQx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEMf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITH//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEx//8hMf//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhMf//ITH//yEx//8AAAAAAAAAACEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//ITH//yEx//8hMf//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhMf//ITH//yEx//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAITH//yEx//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEx//8AAAAAAAAAAAAAAAAAAAAA9/+sQef/rEHH/6xBAACsQQAArEHH/6xB5/+sQff/rEH/76xB/+esQf/jrEEAAKxBAACsQf/jrEH/56xB/++sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20logout%20%3D%20%22https%3A//mail.google.com/mail/%3Flogout%22%3B%20%0Avar%20t%20%3D%202000%3B%0A%0Avar%20str%20%3D%20gURLBar.value%3B%20getBrowser%28%29.loadURI%28logout%29%3B%0Awindow.setTimeout%28function%28%29%20%7B%20getBrowser%28%29.loadURI%28str%29%3B%20%7D%2C%20t%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var logout = "https://mail.google.com/mail/?logout"; var t = 2000; var str = gURLBar.value; getBrowser().loadURI(logout); window.setTimeout(function() { getBrowser().loadURI(str); }, t); |
slbgz > 07-10-2011 14:14:01 |
Go plus!³ [Selected] (Firefox) ЛКМ = Перейти по адресу {...} [«Paste and Go»] (.+.) Дополнительные функции, сочетания модификаторов и клавиш мыши ____________________________________________________________________ Shift+ЛКМ = Обновить страницу из сети (Hard RELOAD) Shift+СКМ = Искать Карту Google для текста {...} (.+.) Shift+ПКМ = Искать текст {...} с помощью Google [.-.] (.+.) {...} = {ВЫДЕЛЕННОЕ в адресной строке ИЛИ выделенное на странице ИЛИ из буфера обмена при отсутствии выделенного} Примечания 1. При оперировании «аргументом» из адресной строки (url или текст) выделение является также обязательным. Для быстрого выделения всего содержимого адресной строки одним кликом параметр browser.urlbar.clickSelectsAll в about:config должен быть установлен в значение true 2. Если включен и установлен через about:config (параметром keyword.URL) дефолтный поисковый запрос Для поиска выделенного на странице текста или текста из буфера обмена - 2 возможности одновременно: а) и б). 3. При поиске набранного в адресной строке и выделенного на странице текста используется буфер обмена. После установки Select Search Engine и Go plus!³ стандартную 4. Настройки в "шапке" кода: Закомментировав строчку « || !(this.label == "Go plus!³") » получаем по сочетанию (Ctrl+Alt+Right) вызов Button HELP для всех установленных кнопок. Индикация содержимого буфера обмена при наведении указателя мыши на кнопку работает только в Firefox 3.6 ++ Код Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EGo%20plus%21%B3%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.setAttribute%28%22style%22%2C%20%22padding-left%3A%200px%20%21important%3B%22%29%3B%0Avar%20br%20%3D%20getBrowser%28%29%3B%20var%20lang%20%3D%20custombuttons.getPref%28%22general.useragent.locale%22%29%3B%0Avar%20substr2%20%3D%20lang.substring%282%2C3%29%3B%20var%20substr3%20%3D%20lang.substring%283%2C4%29%3B%0Aif%20%28substr2%20%3D%3D%20%22-%22%29%20lang%3Dlang.substring%280%2C2%29%3B%20if%20%28substr3%20%3D%3D%20%22-%22%29%20lang%3Dlang.substring%280%2C3%29%3B%0Aconst%20IN_NEW_TAB%20%3D%20true%3B%20%20%0Aconst%20IN_BACKGROUND%20%3D%20false%3B%20%20%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%20var%20sel%3D%22%22%3B%20%0A%20%20this.ret%20%3D%20function%28%29%20%7B%20goDoCommand%28%22cmd_copy%22%29%3B%20sel%3DreadFromClipboard%28%29%3B%20if%20%28%21sel%29%20return%3B%20%7D%3B%0A%20%20this.evprevret%20%3D%20function%28%29%20%7B%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%20this.ret%28%29%3B%20%7D%3B%0A%20%20%20%20%20%20%0A%20%20if%28event.button%20%3D%3D%200%20%26%26%20event.shiftKey%29%20BrowserReloadSkipCache%28%29%3B%0A%20%20if%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%26%26%20%21event.altKey%20%26%26%20%21event.shiftKey%29%20BrowserReload%28%29%3B%0A%20%20if%28event.button%20%3D%3D%200%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.altKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.metaKey%29%20%7B%20this.ret%28%29%3B%20%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28sel%2C%20null%2C%20null%2C%20null%2C%20IN_BACKGROUND%2C%20false%29%3B%20%7D%3B%0A%20%20if%28event.button%20%3D%3D%200%20%26%26%20event.altKey%20%26%26%20%21event.ctrlKey%29%20%7B%20this.ret%28%29%3B%20%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/search%3Fq%3Dcache%3A%22%20+%20sel%29%3B%20%7D%3B%0A%20%20if%28event.button%20%3D%3D%200%20%26%26%20event.altKey%20%26%26%20event.ctrlKey%29%20%7B%20this.ret%28%29%3B%20sel%3DencodeURIComponent%28sel%29%3B%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/codesearch%23search/%26q%3D%22+sel+%22%26type%3Dcs%22%29%3B%20%7D%3B%0A%20%0A%20%20if%28event.button%20%3D%3D%201%29%20%7B%20this.ret%28%29%3B%20sel%3DencodeURIComponent%28sel%29%3B%0A%20%20%20%20if%28%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//translate.google.com/translate%3Fu%3D%22+sel+%22%26hl%3D%22+lang+%22%26ie%3DUTF-8%26sl%3Dauto%26tl%3D%22+lang%29%3B%0A%20%20%20%20if%28event.shiftKey%29%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//maps.google.com/maps%3Fhl%3D%22+lang+%22%26biw%3D1280%26bih%3D555%26q%3D%22+sel%29%3B%0A%20%20%20%20if%28event.ctrlKey%20%26%26%20%21event.altKey%29%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//translate.google.com.ua/translate_t%3Fhl%3D%22+lang+%22%23auto%7C%22+lang+%22%7C%22+sel%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20if%28event.altKey%20%26%26%20event.ctrlKey%29%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.youtube.com/results%3Fsearch_type%3Dvideos%26suggested_categories%3D10%26uni%3D3%26search_duration%3Dlong%26search_query%3D%22+sel%29%3B%0A%20%20%7D%3B%20%0A%20%20if%28%28event.button%20%3D%3D%201%29%20%26%26%20event.altKey%20%26%26%20%21event.ctrlKey%29%20%7B%20this.ret%28%29%3B%20%0A%20%20%20%20%20if%28%21%28lang%20%3D%3D%20%22uk%22%29%20%26%26%20%21%28lang%20%3D%3D%20%22ru%22%29%20%26%26%20%21%28lang%20%3D%3D%20%22be%22%29%29%20sel%3DencodeURIComponent%28sel%29%3B%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/%22+%22search%3Fq%3D%22+sel+%22%26tbm%3Dvid%26source%3Dlnt%26tbs%3Ddur%3Al%26sa%3DX%26ei%3D%22%29%3B%20%7D%3B%0A%20%20%20%0A%20%20%20%20if%28event.button%20%3D%3D%202%29%20%7B%0A%20%20%20%20if%28%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%20%20this.evprevret%28%29%3B%0A%20%20%20%20%20%20%20var%20ss%20%3D%20Cc%5B%22@mozilla.org/browser/search-service%3B1%22%5D.getService%28Ci.nsIBrowserSearchService%29%3B%0A%20%20%20%20%20%20%20var%20submission%20%3D%20ss.currentEngine.getSubmission%28sel%2C%20null%29%3B%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28submission.uri.spec%2C%20null%2C%20null%2C%20submission.postData%2C%20IN_BACKGROUND%2C%20false%29%3B%20%0A%20%20%20%20%7D%3B%20%0A%20%20%20%20if%28event.shiftKey%29%20%7B%20%20this.evprevret%28%29%3B%20if%28%21%28lang%20%3D%3D%20%22uk%22%29%20%26%26%20%21%28lang%20%3D%3D%20%22ru%22%29%20%26%26%20%21%28lang%20%3D%3D%20%22be%22%29%29%20%7B%20sel%3DencodeURIComponent%28sel%29%3B%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com/search%3Fq%3D%22+sel%29%3B%20%7D%20else%20%0A%20%20%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.google.com.ua/search%3Fnum%3D100%26hl%3D%22+lang+%22%26safe%3Doff%26q%3D%22+sel+%22%26btnG%3D%u041F%u043E%u0448%u0443%u043A%22%29%3B%20%7D%3B%0A%20%20%20%20if%28event.ctrlKey%20%26%26%20%21event.altKey%29%20%7B%20%20this.evprevret%28%29%3B%20this.SearchInWebsite%28sel%29%3B%20%7D%3B%0A%20%20%20%20if%28event.altKey%20%26%26%20%21event.ctrlKey%29%20%7B%20%20this.evprevret%28%29%3B%20sel%3DencodeURIComponent%28sel%29%3B%20%0A%20%20%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28%22http%3A//www.archive.org/search.php%3Fquery%3D%22%20+%20sel%29%3B%20%7D%3B%0A%20%20%7D%3B%0A%7D%3B%0A%0Athis.SearchInWebsite%20%3D%20function%28text%29%20%7B%20var%20doc%20%3D%20br.contentDocument%3B%20try%20%7B%20var%20url%3Ddoc.location.hostname%3B%20%7D%20catch%28e%29%20%7B%20var%20url%3D%22%22%3B%20%7D%20%20%0A%20%20%20%20%20text%3Descape%28convertFromUnicode%20%28%22UTF-8%22%2C%20text%29%29%3B%20url%3DencodeURIComponent%28url%29%3B%20%0A%20%20%20%20%20var%20searchUrl%3D%22http%3A//www.google.com.ua/search%3Fnum%3D100%26hl%3D%22+lang+%22%26safe%3Doff%26q%3D%22+text+%22%26as_sitesearch%3D%22+url%3B%0A%20%20%20%20%20br.selectedTab%20%3D%20br.addTab%28searchUrl%29%3B%0A%7D%3B%0A%0AaddEventListener%28%22contextmenu%22%2C%0A%20%20%20function%28event%29%20%7B%20var%20btn%3Devent.target%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28%21%28event.ctrlKey%20%26%26%20event.altKey%29%20%7C%7C%20btn.id.substr%280%2C%2020%29%20%21%3D%20%22custombuttons-button%22%20%7C%7C%20%21btn.hasAttribute%28%22Help%22%29%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%7C%7C%20%21%28this.label%20%3D%3D%20%22Go%20plus%21%B3%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20custombuttons.uChelpButton%28btn%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20%0A%20%20%20true%29%3B%0A%0Avar%20go3tip%20%3D%20%22GO/RELOAD/SEARCH/TRANSLATE%20%7C%20Ctrl+Alt+Right%3DButton%20HELP%22%3B%0Avar%20ios%20%3D%20Components.classes%5B%22@mozilla.org/network/io-service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIIOService%29%3B%0Avar%20sss%20%3D%20Components.classes%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIStyleSheetService%29%3B%0Avar%20css%20%3D%20%27@namespace%20url%28%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%29%3B%27%3B%0Acss%20+%3D%20%27tooltip%5Blabel%5E%3D%22%27%20+%20go3tip%20+%20%27%5C%5C000a%5C%5C000a%22%5D%20%7B%27%3B%0Acss%20+%3D%20%22max-width%3A%20none%20%21important%3B%22%3B%0Acss%20+%3D%20%22-moz-appearance%3A%20none%20%21important%3B%22%3B%0Acss%20+%3D%20%22color%3A%20%23009%20%21important%3B%22%3B%0Acss%20+%3D%20%22background%3A%20%23eee%20%21important%3B%22%3B%0Acss%20+%3D%20%22font-family%3A%20monospace%20%21important%3B%22%3B%0Acss%20+%3D%20%22border%3A%201px%20solid%20%23777%20%21important%3B%22%3B%0Acss%20+%3D%20%22%7D%22%3B%0Avar%20uss%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%2C%20null%2C%20null%29%3B%0A//%20comment%20out%20the%20next%20line%20to%20disable%20style%0Aif%20%28%21sss.sheetRegistered%28uss%2C%20sss.AGENT_SHEET%29%29%20sss.loadAndRegisterSheet%28uss%2C%20sss.AGENT_SHEET%29%3B%0Athis.onDestroy%20%3D%20function%28reason%29%20%7B%0A%20%20if%20%28reason%20%3D%3D%20%22update%22%29%20%7B%0A%20%20%20%20var%20uss%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%2C%20null%2C%20null%29%3B%0A%20%20%20%20if%20%28sss.sheetRegistered%28uss%2C%20sss.AGENT_SHEET%29%29%20sss.unregisterSheet%28uss%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%7D%0A%20%20if%20%28reason%20%3D%3D%20%22delete%22%29%20%7B%0A%20%20%20%20var%20uss%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28css%29%2C%20null%2C%20null%29%3B%0A%20%20%20%20if%20%28sss.sheetRegistered%28uss%2C%20sss.AGENT_SHEET%29%29%20sss.unregisterSheet%28uss%2C%20sss.AGENT_SHEET%29%3B%0A%20%20%20%20alert%28%22style%20sheet%20unregistered%22%29%3B%0A%20%20%7D%0A%7D%0Athis.showClipboard%20%3D%20function%28%29%20%7B%0A%20%20var%20text%20%3D%20custombuttons.cbService.readFromClipboard%28%29%3B%0A%20%20this.tooltipText%20%3D%20text%20%3F%20go3tip%20+%20%22%5Cn%5Cn%22%20+%20text%20%3A%20go3tip%3B%0A%7D%0Athis.setAttribute%28%22onmouseover%22%2C%20%22this.showClipboard%28%29%22%29%3B%0A%0Athis.setAttribute%28%27author%27%2C%27slbgz%27%29%3B%20%20%20//Many%20thanks%20to%20bunda1%2C%20infocatcher%20and%20morat%20for%20some%20strings%20of%20code.%0Athis.setAttribute%28%27version%27%2C%2720111015.3.3%27%29%3B%0Athis.setAttribute%28%27homepage%27%2C%20%27http%3A//custombuttons.mozdev.org/drupal/content/go-plus-3%27%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BThis%20button%20together%20with%20the%20button%20%ABSelect%20Search%20Engine%BB%20and%20with%20the%20Location%20bar%20are%20the%20full%20replacement%20of%20the%20buttons%20Go%2C%20Reload%20and%20Search%20bar%20which%20can%20be%20hidden...%20for%20Firefox%20in%20Your%20subnotebook%20or%20netbook.%0APlease%2C%20place%20this%20button%20next%20to%20Location%20bar...%20or%20wheresoever.%0A___________________________________________________________________________________________%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Left%20%3D%20GO%20to%20%7B...%7D%20URL%20%5B%ABPaste%20and%20Go%BB%5D%20%28.+.%29%0A%20%20%20%20%20%20%20%20Medium%20%3D%20Google%20TRANSLATE%20the%20%7B...%7D%20page%20%28.+.%29%0A%20%20%20%20%20%20%20%20%20%20%20%20Right%20%3D%20SEARCH%20the%20text%20%7B...%7D%20with%20selected%20Search%20Engine%20%28.+.%29%0Aonmouseover%20%3D%20Button%20tip%20+%20Clipboard%20content%0A___________________________________________________________________________________________%0A%0A%20%20%20%20Shift+Left%20%3D%20Hard%20RELOAD%20page%0A%20%20%20%20%20%20Ctrl+Left%20%3D%20RELOAD%20page%0A%20%20%20%20%20%20%20Alt+Left%20%3D%20SEARCH%20URL%20%7B...%7D%20in%20Google%20CACHE%20%28.+.%29%0ACtrl+Alt+Left%20%3D%20SEARCH%20the%20CODE%20%7B...%7D%20with%20Google%20codesearch%20%28.+.%29%0A___________________________________________________________________________________________%0A%20%20%20%20%20%0A%20%20%20%20Shift+Medium%20%3D%20SEARCH%20the%20Google%20MAPs%20for%20text%20%7B...%7D%20%28.+.%29%0A%20%20%20%20%20%20Ctrl+Medium%20%3D%20Google%20TRANSLATE%20the%20text%20%7B...%7D%20%28.+.%29%0A%20%20%20%20%20%20%20Alt+Medium%20%3D%20SEARCH%20the%20long%20VIDEO%20for%20text%20%7B...%7D%20with%20GOOGLE%20%28.+.%29%0ACtrl+Alt+Medium%20%3D%20SEARCH%20the%20long%20VIDEO%20for%20text%20%7B...%7D%20in%20YOUTUBE%20%28.+.%29%0A___________________________________________________________________________________________%0A%0A%20%20%20%20Shift+Right%20%3D%20SEARCH%20the%20text%20%7B...%7D%20with%20Google%20%5B.-.%5D%20%28.+.%29%0A%20%20%20%20%20%20Ctrl+Right%20%3D%20SEARCH%20the%20text%20%7B...%7D%20in%20current%20Website%20with%20Google%20%5B.-.%5D%20%28.+.%29%0A%20%20%20%20%20%20%20Alt+Right%20%3D%20SEARCH%20%5Bany%5D%20%7B...%7D%20in%20Archive.org%20%28.+.%29%0ACtrl+Alt+Right%20%3D%20Button%20Help%20%28this%20window%29%0A___________________________________________________________________________________________%0A*%29%20%20%20%20%20%7B...%7D%20%3D%20%7B%20%3CSELECTED%20in%20URLbar%3E%20OR%20%3Cselected%20on%20page%20content%3E%20ELSE%20%3Cfrom%20clipboard%3E%20%7D%0A%20%20%20%20%20%20%20%20%5B.-.%5D%20%3D%20%5B%20with%20filters%20off%2C%20no%20livesearch%2C%20100%20results%20per%20page%2C%20except%20non%20Cyrillic%20locales%20%5D%20%0A%20%20%20%20%20%20%20%20%28.+.%29%20%3D%20%28in%20NEW%20Tab%29%0A___________________________________________________________________________________________%0A**%29%20%20Please%2C%20use%20the%20%ABMaster%20edit%20button%BB%20or%20%ABEdit%20a%20button%BB%20buttons%20for%20edit%20this%20button.%0A***%29%20Comments%20the%20string%3A%20%AB%20%7C%7C%20%21%28this.label%20%3D%3D%20%22Go%20plus%21%B3%22%29%20%BB%20will%20made%20%28Ctrl+Alt+Right%3DButton%20HELP%29%20for%20all%20Your%20buttons.%0A****%29%20Button%20was%20tested%20for%20EN%2C%20UA%2C%20RU%20%26%20BY%20locales%2C%20and%20was%20not%20tested%20for%20another%20language.%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this.setAttribute("style", "padding-left: 0px !important;"); var br = getBrowser(); var lang = custombuttons.getPref("general.useragent.locale"); var substr2 = lang.substring(2,3); var substr3 = lang.substring(3,4); if (substr2 == "-") lang=lang.substring(0,2); if (substr3 == "-") lang=lang.substring(0,3); const IN_NEW_TAB = true; const IN_BACKGROUND = false; this.onclick = function(event) { var sel=""; this.ret = function() { goDoCommand("cmd_copy"); sel=readFromClipboard(); if (!sel) return; }; this.evprevret = function() { event.preventDefault(); event.stopPropagation(); this.ret(); }; if(event.button == 0 && event.shiftKey) BrowserReloadSkipCache(); if(event.button == 0 && event.ctrlKey && !event.altKey && !event.shiftKey) BrowserReload(); if(event.button == 0 && !event.ctrlKey && !event.altKey && !event.shiftKey && !event.metaKey) { this.ret(); br.selectedTab = br.addTab(sel, null, null, null, IN_BACKGROUND, false); }; if(event.button == 0 && event.altKey && !event.ctrlKey) { this.ret(); br.selectedTab = br.addTab("http://www.google.com/search?q=cache:" + sel); }; if(event.button == 0 && event.altKey && event.ctrlKey) { this.ret(); sel=encodeURIComponent(sel); br.selectedTab = br.addTab("http://www.google.com/codesearch#search/&q="+sel+"&type=cs"); }; if(event.button == 1) { this.ret(); sel=encodeURIComponent(sel); if(!event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) br.selectedTab = br.addTab("http://translate.google.com/translate?u="+sel+"&hl="+lang+"&ie=UTF-8&sl=auto&tl="+lang); if(event.shiftKey) br.selectedTab = br.addTab("http://maps.google.com/maps?hl="+lang+"&biw=1280&bih=555&q="+sel); if(event.ctrlKey && !event.altKey) br.selectedTab = br.addTab("http://translate.google.com.ua/translate_t?hl="+lang+"#auto|"+lang+"|"+sel); if(event.altKey && event.ctrlKey) br.selectedTab = br.addTab("http://www.youtube.com/results?search_type=videos&suggested_categories=10&uni=3&search_duration=long&search_query="+sel); }; if((event.button == 1) && event.altKey && !event.ctrlKey) { this.ret(); if(!(lang == "uk") && !(lang == "ru") && !(lang == "be")) sel=encodeURIComponent(sel); br.selectedTab = br.addTab("http://www.google.com/"+"search?q="+sel+"&tbm=vid&source=lnt&tbs=dur:l&sa=X&ei="); }; if(event.button == 2) { if(!event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { this.evprevret(); var ss = Cc["@mozilla.org/browser/search-service;1"].getService(Ci.nsIBrowserSearchService); var submission = ss.currentEngine.getSubmission(sel, null); br.selectedTab = br.addTab(submission.uri.spec, null, null, submission.postData, IN_BACKGROUND, false); }; if(event.shiftKey) { this.evprevret(); if(!(lang == "uk") && !(lang == "ru") && !(lang == "be")) { sel=encodeURIComponent(sel); br.selectedTab = br.addTab("http://www.google.com/search?q="+sel); } else br.selectedTab = br.addTab("http://www.google.com.ua/search?num=100&hl="+lang+"&safe=off&q="+sel+"&btnG=Пошук"); }; if(event.ctrlKey && !event.altKey) { this.evprevret(); this.SearchInWebsite(sel); }; if(event.altKey && !event.ctrlKey) { this.evprevret(); sel=encodeURIComponent(sel); br.selectedTab = br.addTab("http://www.archive.org/search.php?query=" + sel); }; }; }; this.SearchInWebsite = function(text) { var doc = br.contentDocument; try { var url=doc.location.hostname; } catch(e) { var url=""; } text=escape(convertFromUnicode ("UTF-8", text)); url=encodeURIComponent(url); var searchUrl="http://www.google.com.ua/search?num=100&hl="+lang+"&safe=off&q="+text+"&as_sitesearch="+url; br.selectedTab = br.addTab(searchUrl); }; addEventListener("contextmenu", function(event) { var btn=event.target; if(!(event.ctrlKey && event.altKey) || btn.id.substr(0, 20) != "custombuttons-button" || !btn.hasAttribute("Help") // || !(this.label == "Go plus!³") ) return; event.preventDefault(); event.stopPropagation(); custombuttons.uChelpButton(btn); }, true); var go3tip = "GO/RELOAD/SEARCH/TRANSLATE | Ctrl+Alt+Right=Button HELP"; var ios = Components.classes["@mozilla.org/network/io-service;1"]. getService(Components.interfaces.nsIIOService); var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]. getService(Components.interfaces.nsIStyleSheetService); var css = '@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");'; css += 'tooltip[label^="' + go3tip + '\\000a\\000a"] {'; css += "max-width: none !important;"; css += "-moz-appearance: none !important;"; css += "color: #009 !important;"; css += "background: #eee !important;"; css += "font-family: monospace !important;"; css += "border: 1px solid #777 !important;"; css += "}"; var uss = ios.newURI("data:text/css," + encodeURIComponent(css), null, null); // comment out the next line to disable style if (!sss.sheetRegistered(uss, sss.AGENT_SHEET)) sss.loadAndRegisterSheet(uss, sss.AGENT_SHEET); this.onDestroy = function(reason) { if (reason == "update") { var uss = ios.newURI("data:text/css," + encodeURIComponent(css), null, null); if (sss.sheetRegistered(uss, sss.AGENT_SHEET)) sss.unregisterSheet(uss, sss.AGENT_SHEET); } if (reason == "delete") { var uss = ios.newURI("data:text/css," + encodeURIComponent(css), null, null); if (sss.sheetRegistered(uss, sss.AGENT_SHEET)) sss.unregisterSheet(uss, sss.AGENT_SHEET); alert("style sheet unregistered"); } } this.showClipboard = function() { var text = custombuttons.cbService.readFromClipboard(); this.tooltipText = text ? go3tip + "\n\n" + text : go3tip; } this.setAttribute("onmouseover", "this.showClipboard()"); this.setAttribute('author','slbgz'); //Many thanks to bunda1, infocatcher and morat for some strings of code. this.setAttribute('version','20111015.3.3'); this.setAttribute('homepage', 'http://custombuttons.mozdev.org/drupal/content/go-plus-3'); 10.10.2011. Добавлены несколько поисков и Переводчик Google. 15.10.2011. Добавлена возможность открытия сразу перевода страницы без предварительной загрузки страницы-оригинала. Поменяны местами функции по ЛКМ и Ctrl+ЛКМ. Исправлена работа в английской локали, описание и примечания. 16.10.2011. Добавлена индикация содержимого буфера обмена при наведении на кнопку указателя мыши (FF 3.6 ++) |
slbgz > 16-10-2011 03:41:10 |
Find 2(Firefox <3.6) ЛКМ = Найти следующее Код Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EFIND%202%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAUezAAFHvfABR73wAUezD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAUezAAFHvvMj6r/ztItv8AFHvvABR7MP///wD///8A////AP///wD///8A////AP///wD///8A////AAAUezAAFHvvOEOw/2du4/+Ml/H/ZHLC/wAUe7////8A////AP///wD///8A////AP///wD///8A////AAAUeyAAFHvvOEOw/2lw4/+Ml/H/tb/5/09dq/8AFHuv////AP///wD///8A////AP///wD///8A////AP///wAAFHtAESKL/2lw4/+Ml/H/tb/5/09dq/8AFHvvABR7MP///wD///8ATU1NME1NTa9NTU3/TU1N/01NTf9NTU2/VlhgzxgpfP81Raf/tb/5/09dq/8AFHvvABR7MP///wD///8ATU1NYE1NTf+ceXL/5K6g///Qw//01cz/vK2o/1hXVv92eH7/EyN3/wAUe/8AFHvfABR7MP///wD///8ATU1NME1NTf/Agnj/7KeZ//3Cs///2M7//+zn///29P/ezcj/WFZW/1tbW68AFHtA////AP///wD///8A////AE1NTZ+NZF7/2YyA/+ynmf/9wrP//9jN///r5v//9PL//+jh/7yknf9NTU3P////AP///wD///8A////AP///wBNTU3vvXVr/9WGev/noJL/+Lqq///Owf//3NL//+DY///az///y73/TU1N/01NTRD///8A////AP///wD///8ATU1N/9CCd//owLr/4ZuP/+6qm//6vKz//si5///Lvf/+x7j/+Lmp/2FZV/9NTU1A////AP///wD///8A////AE1NTd/ElY7/+e/t/+i8tf/lpJn/6qWW//Cun//ysaH/8K2e/+iilP9NTU3/////AP///wD///8A////AP///wBNTU2fhW5q/9aMgv////////////DQyv/ek4b/35WI/92Shf+ldW3/TU1Nz////wD///8A////AP///wD///8ATU1NIE1NTe+riIH/6sG7////////////2p2U/899cv+2c2r/VVBP/01NTUD///8A////AP///wD///8A////AP///wBNTU1gTU1N74dyb//KoZr/5rWu/8aKgf+OZmH/VVBP/01NTWD///8A////AP///wD///8A////AP///wD///8A////AE1NTSBNTU2fTU1N301NTf9NTU3vTU1Nr01NTUD///8A////AP///wD///8A////AP///wD///8A/+EAAP/AAAD/gAAA/wAAAP8AAADAAQAAgAMAAAAPAAAAHwAAAA8AAAAPAAAAHwAAAB8AAAAfAACAPwAAwH8AAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.tooltipText%20%3D%20%22L%3DFIND%20NEXT%20%7C%20M%3DCB%20menu%20%7C%20R%3DFIND%20PREVIOUS%22%3B%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%20%0A%20%20%20var%20t%3D%22%22%3B%20goDoCommand%28%22cmd_copy%22%29%3B%20t%20%3D%20readFromClipboard%28%29%3B%20if%20%28%21t%29%20return%3B%0A%20%20%20%20%0A%20%20%20gFindBar.find%28t%29%3B%20%0A%20%20%20%0A%20%20%20if%28event.button%20%3D%3D%200%29%20gFindBar.onFindAgainCmd%28%29%3B%20%20%09%0A%0A%20%20%20if%28event.button%20%3D%3D%201%29%20%7B%20this.showPopup%28this%29%3B%20return%3B%20%7D%3B%0A%0A%20%20%20if%28event.button%20%3D%3D%202%29%20%7B%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%20gFindBar.onFindPreviousCmd%28%29%3B%20%7D%3B%0A%7D%3B%0A%0Athis.showPopup%20%3D%20function%28node%29%20%7B%0A%20%20var%20popup%20%3D%20document.getElementById%28%22custombuttons-contextpopup%22%29%3B%0A%20%20var%20x%20%3D%20node.boxObject.x%3B%0A%20%20var%20y%20%3D%20node.boxObject.y%20+%20node.boxObject.height%3B%0A%20%20document.popupNode%20%3D%20node%3B%0A%20%20popup.showPopup%28node%2C%20x%2C%20y%2C%20%22popup%22%2C%20null%2C%20null%29%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this.tooltipText = "L=FIND NEXT | M=CB menu | R=FIND PREVIOUS"; this.onclick = function(event) { var t=""; goDoCommand("cmd_copy"); t = readFromClipboard(); if (!t) return; gFindBar.find(t); if(event.button == 0) gFindBar.onFindAgainCmd(); if(event.button == 1) { this.showPopup(this); return; }; if(event.button == 2) { event.preventDefault(); event.stopPropagation(); gFindBar.onFindPreviousCmd(); }; }; this.showPopup = function(node) { var popup = document.getElementById("custombuttons-contextpopup"); var x = node.boxObject.x; var y = node.boxObject.y + node.boxObject.height; document.popupNode = node; popup.showPopup(node, x, y, "popup", null, null); }; |
slbgz > 16-10-2011 15:57:39 |
Рано или поздно это случится - вы заблокируете одну из кнопок и потеряете к ней доступ. Master Edit Button(Firefox) Выбрать кнопку из меню и отредактировать ее. Код Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EMaster%20Edit%20Button%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAv9PT0//JGib/yt1s/86irmtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAL/XJvU/6XP9f+oz+z/R4rA/yt1s/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPABH/HWyS/8vj+f9gqez/P5fo/xRmwf8VX6n/K3Wz/88AEf/PABH/zwAR/88AEf/PABH/zwAR/88AEf/PABH/zwAR/x1skv/I4fL/0ef6/zN8tP8wmML/bMPc/0mbz/8zgsf//5Rn//+UZ///lGf//5Rn//+UZ///lGf/zwAR/88AEf//lGf/JYi4/6/L4f9mqMj/X9z1/0PW9P+N7vr/XLPm/zqO2f//lGf//5Rn//+UZ///lGf//5Rn/88AEf/PABH//5Rn//+UZ/8liLj/veby/7L0/P9f3PX/Q9b0/43u+v9cs+b/Oo7Z//+UZ///lGf//5Rn//+UZ//PABH/zwAR//+UZ///lGf//5Rn/yaPvv/C7fj/svT8/1/c9f9D1vT/je76/1yz5v86jtn//5Rn//+UZ///lGf/zwAR/88AEf//lGf//5Rn//+UZ///lGf/Lrnk/8Lt+P+y9Pz/X9z1/0PW9P+N7vr/XLPm/zqO2f//lGf//5Rn/88AEf/PABH//5Rn//+UZ///lGf//5Rn//+UZ/8uueT/wu34/7L0/P9f3PX/Q9b0/43u+v9cs+b/trOz8f+UZ//PABH/zwAR//+UZ///lGf//5Rn//+UZ///lGf//5Rn/y655P/C7fj/svT8/2fZ9f9uz/P/trOz/Kc1/+O2s7PxzwAR/88AEf//lGf//5Rn//+UZ///lGf//5Rn//+UZ///lGf/Lrnk/8Lt+P+n4vj/trOz+Kc1/8SnNf/EpzX/hKc1/+PPABH//5Rn//+UZ///lGf//5Rn//+UZ///lGf//5Rn//+UZ/8uueT/trOz8ac1/4SnNf+EpzX/hKc1/4SnNf/xzwAR/88AEf/PABH/zwAR/88AEf/PABH/zwAR/88AEf/PABH/zwAR/7azs/GnNf/xpzX/hKc1/4SnNf/xpzX/4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuueQJtrOzv6c1//GnNf//pzX/4zSj3hkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQYP/rEGB/6xBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEH/wKxB//+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0Avar%20data%20%3D%20%3Cwindow%0A%20%20title%3D%7Bthis.label%7D%0A%20%20onload%3D%7B%22opener.document.getElementById%28%5C%22%22%20+%20this.id%20+%20%22%5C%22%29.load%28%29%22%7D%0A%20%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3E%0A%20%20%20%20%3Ckeyset%3E%0A%20%20%20%20%20%20%3Ckey%20keycode%3D%22VK_ESCAPE%22%20oncommand%3D%22close%28%29%22/%3E%0A%20%20%20%20%3C/keyset%3E%0A%20%20%20%20%3Cvbox%20flex%3D%221%22%3E%0A%20%20%20%20%20%20%3Clistbox%20id%3D%22listbox%22%20flex%3D%221%22%3E%0A%20%20%20%20%20%20%20%20%3Clisthead%3E%0A%20%20%20%20%20%20%20%20%20%20%3Clistheader%20label%3D%22Id%22%20width%3D%22200%22/%3E%0A%20%20%20%20%20%20%20%20%20%20%3Clistheader%20label%3D%22Label%22/%3E%0A%20%20%20%20%20%20%20%20%3C/listhead%3E%0A%20%20%20%20%20%20%20%20%3Clistcols%3E%0A%20%20%20%20%20%20%20%20%20%20%3Clistcol/%3E%0A%20%20%20%20%20%20%20%20%20%20%3Clistcol%20flex%3D%221%22/%3E%0A%20%20%20%20%20%20%20%20%3C/listcols%3E%0A%20%20%20%20%20%20%3C/listbox%3E%0A%20%20%20%20%20%20%3Chbox%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20label%3D%22Edit%22%20oncommand%3D%7B%22opener.document.getElementById%28%5C%22%22%20+%20this.id%20+%20%22%5C%22%29.edit%28%29%22%7D/%3E%0A%20%20%20%20%20%20%3C/hbox%3E%0A%20%20%20%20%3C/vbox%3E%0A%3C/window%3E%3B%0Avar%20bool%20%3D%20XML.prettyPrinting%3B%0AXML.prettyPrinting%20%3D%20false%3B%0Adata%20%3D%20%27%3C%3Fxml%20version%3D%221.0%22%3F%3E%3C%3Fxml-stylesheet%20href%3D%22chrome%3A//global/skin/%22%20type%3D%22text/css%22%3F%3E%27%20+%20data.toXMLString%28%29%3B%0AXML.prettyPrinting%20%3D%20bool%3B%0Avar%20dialog%3B%0Athis.leftclick%20%3D%20function%28event%29%20%7B%0A%20%20var%20url%20%3D%20%22data%3Aapplication/vnd.mozilla.xul+xml%3Btext/plain%2C%22%20+%20data%3B%0A%20%20var%20feature%20%3D%20%22chrome%2Ccenterscreen%2Cwidth%3D500%2Cheight%3D600%2Cdialog%3Dno%22%3B%0A%20%20dialog%20%3D%20window.openDialog%28url%2C%20%22%22%2C%20feature%29%3B%0A%7D%0Athis.midclick%20%3D%20function%28event%29%20%7B%0A%20%20var%20os%20%3D%20Components.classes%5B%22@mozilla.org/observer-service%3B1%22%5D.%0A%20%20%20%20getService%28Components.interfaces.nsIObserverService%29%3B%0A%20%20var%20cancelQuit%20%3D%20Components.classes%5B%22@mozilla.org/supports-PRBool%3B1%22%5D.%0A%20%20%20%20createInstance%28Components.interfaces.nsISupportsPRBool%29%3B%0A%20%20os.notifyObservers%28cancelQuit%2C%20%22quit-application-requested%22%2C%20%22restart%22%29%3B%0A%20%20if%20%28cancelQuit.data%29%20%7B%0A%20%20%20%20alert%28%22Abort%20Restart%20Process%22%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20var%20appStartup%20%3D%20Components.classes%5B%22@mozilla.org/toolkit/app-startup%3B1%22%5D.%0A%20%20%20%20%20%20getService%28Components.interfaces.nsIAppStartup%29%3B%0A%20%20%20%20appStartup.quit%28appStartup.eAttemptQuit%20%7C%20appStartup.eRestart%29%3B%0A%20%20%7D%0A%7D%0Athis.load%20%3D%20function%28%29%20%7B%0A%20%20var%20nodeList%20%3D%20document.getElementsByTagName%28%22toolbarbutton%22%29%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20nodeList.length%3B%20i++%29%20%7B%0A%20%20%20%20if%20%28nodeList%5Bi%5D.id.search%28%22custombuttons-button%22%29%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20var%20item%20%3D%20document.createElement%28%22listitem%22%29%3B%0A%20%20%20%20%20%20var%20cell%20%3D%20document.createElement%28%22listcell%22%29%3B%0A%20%20%20%20%20%20cell.setAttribute%28%22label%22%2C%20nodeList%5Bi%5D.id%29%3B%0A%20%20%20%20%20%20item.appendChild%28cell%29%3B%0A%20%20%20%20%20%20var%20cell%20%3D%20document.createElement%28%22listcell%22%29%3B%0A%20%20%20%20%20%20cell.setAttribute%28%22label%22%2C%20nodeList%5Bi%5D.label%29%3B%0A%20%20%20%20%20%20item.appendChild%28cell%29%3B%0A%20%20%20%20%20%20dialog.document.getElementById%28%22listbox%22%29.appendChild%28item%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20dialog.document.getElementById%28%22listbox%22%29.focus%28%29%3B%0A%20%20dialog.document.getElementById%28%22listbox%22%29.selectAll%28%29%3B%0A%7D%0Athis.edit%20%3D%20function%28%29%20%7B%0A%20%20var%20label%20%3D%20dialog.document.getElementById%28%22listbox%22%29.selectedItem.firstChild.getAttribute%28%22label%22%29%3B%0A%20%20dialog.close%28%29%3B%0A%20%20custombuttons.editButton%28document.getElementById%28label%29%29%3B%0A%7D%0Athis.setAttribute%28%22onclick%22%2C%20%22custombuttons.gQuot.mHandler%28event%2C%20this%29%22%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var data = <window title={this.label} onload={"opener.document.getElementById(\"" + this.id + "\").load()"} xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <keyset> <key keycode="VK_ESCAPE" oncommand="close()"/> </keyset> <vbox flex="1"> <listbox id="listbox" flex="1"> <listhead> <listheader label="Id" width="200"/> <listheader label="Label"/> </listhead> <listcols> <listcol/> <listcol flex="1"/> </listcols> </listbox> <hbox> <button label="Edit" oncommand={"opener.document.getElementById(\"" + this.id + "\").edit()"}/> </hbox> </vbox> </window>; var bool = XML.prettyPrinting; XML.prettyPrinting = false; data = '<?xml version="1.0"?><?xml-stylesheet href="chrome://global/skin/" type="text/css"?>' + data.toXMLString(); XML.prettyPrinting = bool; var dialog; this.leftclick = function(event) { var url = "data:application/vnd.mozilla.xul+xml;text/plain," + data; var feature = "chrome,centerscreen,width=500,height=600,dialog=no"; dialog = window.openDialog(url, "", feature); } this.midclick = function(event) { var os = Components.classes["@mozilla.org/observer-service;1"]. getService(Components.interfaces.nsIObserverService); var cancelQuit = Components.classes["@mozilla.org/supports-PRBool;1"]. createInstance(Components.interfaces.nsISupportsPRBool); os.notifyObservers(cancelQuit, "quit-application-requested", "restart"); if (cancelQuit.data) { alert("Abort Restart Process"); } else { var appStartup = Components.classes["@mozilla.org/toolkit/app-startup;1"]. getService(Components.interfaces.nsIAppStartup); appStartup.quit(appStartup.eAttemptQuit | appStartup.eRestart); } } this.load = function() { var nodeList = document.getElementsByTagName("toolbarbutton"); for (var i = 0; i < nodeList.length; i++) { if (nodeList[i].id.search("custombuttons-button") == 0) { var item = document.createElement("listitem"); var cell = document.createElement("listcell"); cell.setAttribute("label", nodeList[i].id); item.appendChild(cell); var cell = document.createElement("listcell"); cell.setAttribute("label", nodeList[i].label); item.appendChild(cell); dialog.document.getElementById("listbox").appendChild(item); } } dialog.document.getElementById("listbox").focus(); dialog.document.getElementById("listbox").selectAll(); } this.edit = function() { var label = dialog.document.getElementById("listbox").selectedItem.firstChild.getAttribute("label"); dialog.close(); custombuttons.editButton(document.getElementById(label)); } this.setAttribute("onclick", "custombuttons.gQuot.mHandler(event, this)"); Edit a button(Firefox) Ввести id номер кнопки в диалоговом окне и отредактировать кнопку Код Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EEdit%20a%20button%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAADG0lEQVR42gEQA+/8AP///////////////////////////////////////////////////////////////wD////q6uqOjougoKC4uLjKysrZ2dnm5ub29vb////////ejYasHxi1S0v16ur///8A////oKC2mpqxenqAZGRmZmZodnZ5dnZ1eXl4s7S179XQ5E8q9GxDuCUWtElJ////AP///5eXyra3woF+gWxlaWFibYCAkHd3iHh3jVxuV8bL1POSefJiOMc2H6MdHf///wD///+YmMjd2+Lj5OLWs6iztLOjoqGkoqatrqxWwCWZv4rS1N/Bd2q0JRfmurn///8A////mZjD3er94vr/7ruw3/j/4PL/3+//cc1LhvNVkP5daaFbZm1tvsLD////////AP///5mZwefq+/T///W6qun4/+70/4bPZHnnSpX7Y2zTSSSOFYrCiP///////////wD///+cnMHd4/nv/f/1t6j1+/+k2Zls3DuW/mR02k0vlh53t3T///////////////8A////n5/Cz9j14Pb/6q6k4PT/crtOlv9ie+FSM5weX6dc/f39////////////////AP///6amxdDS7+n6/+uso930/6ieZkKpJCuaEzJ9Ns7N5P///////////////////wD///+trcrExub0/v/9saDi5/BTS0JqcXiNsrbK2f6/vdn///////////////////8A////tLTNsrre3fb/6KWd0OP4xsnW8/f/3ev/zeD/r6/O////////////////////AP///7y80a2x1+D3/+ijmdjx/87h+d3s//H1/+fm+qCgxP///////////////////wD////FxdinqdD/////qZjU2PCzsdOamb2amsKurszf3+3///////////////////8A////09PhfHysl5i+n6HEwsLX4uLr+/v9////////////////////////////////AP///////////////////////////////////////////////////////////////zU5bGjjW0b7AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0Avar%20Cb%20%3D%20custombuttons%3B%0Avar%20bnum%20%3D%20prompt%28%27Enter%20Button%20%23%27%29%3B%0Avar%20bid%20%3D%20%27custombuttons-button%27%20+%20String%28bnum%29%3B%0Athis.oBtn%20%3D%20document.getElementById%28bid%29%3B%0A%0ACb.alertSlide%28%22Edit%20%22%20+%20this.oBtn.label%2C%20%22ID%20%22%20+this.oBtn.id%29%3B%0Aif%20%28%20this.oBtn%20%29%20%7B%0A%09Cb.editButton%20%28%20this.oBtn%20%29%3B%0A%7D%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var Cb = custombuttons; var bnum = prompt('Enter Button #'); var bid = 'custombuttons-button' + String(bnum); this.oBtn = document.getElementById(bid); Cb.alertSlide("Edit " + this.oBtn.label, "ID " +this.oBtn.id); if ( this.oBtn ) { Cb.editButton ( this.oBtn ); } Troubleshoot Custom Buttons [tree](Firefox) В окне со списком кнопок возможны несколько действий с каждой кнопкой... и сортировка списка кнопок. Автор: morat Код Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ETroubleshoot%20Custom%20Buttons%20%5Btree%5D%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAhpJREFUOMvN0UtI1FEUx/HvnfufV874n0lHfJQjlWTS6EKIxCFqE0S0yxaBLoooCIxoUbaIQCxykT1oE0Utgh6Q0M4kCiE3qYuIFmG+KPMx5gzTjP7Hmfu/LSIz0B606awu9xw+91x+8I8lVmsMXmfzghF+hMMXZO7tkWgrT/9KfnPb35uc6tbz0090363qT6NX8a0051jpcuQujYHqQztQM+SscTZs31cykqL1j4DhHjwJwh0F4RrG+zsZHrhBQTCBWR45+eoCFb8FrBFOldYdrshOP6D2wBi7jhrEPj5jY7TKm9SOS78EPjyk1C6sO+MJrMUpv5DvC1BU4CftVLi8s4S2rG980U50VeBznIvFkf2+XGYSb5FJTZXENN1URhRKzVC50yFiyMt6WXry++HdTbYZ6/Zcyy8OC61iCKlJZd4TDBWyu8Eia8cx3HG8edmy7pAe7XrJ6+UbiFQu70rJ1r0OlY2DSLOYs2hqLub4MReZxQTSGUfINJX1NqZJe9dZ8paA520cDESa67VKg7AQIoMhU/Q/HmKodwCnN4l0LeJ0f3utoYmyqQlOLwHaX36uaFMUpdJAFhxZvMzRcS/I+Tt1yDUC6f7x4WAZhGs5AWAAGJ6QaRgC2+UCIUEIMp58enomUa4JwEIaP8e3kGR+CZgcGmzpu9/WKQ3h1/Y8WufQ2gIy2HpWaTRag7axlUanZoklpmjhv6ivwhPCjfsi85IAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20data%20%3D%20%3Cwindow%20title%3D%7Bthis.label%7D%20onload%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.load%28%29%27%7D%0A%20%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3E%0A%20%20%20%20%3Ckeyset%3E%0A%20%20%20%20%20%20%3Ckey%20keycode%3D%22VK_ESCAPE%22%20oncommand%3D%22close%28%29%22/%3E%0A%20%20%20%20%3C/keyset%3E%0A%20%20%20%20%3Cvbox%20flex%3D%221%22%3E%0A%20%20%20%20%20%20%3Ctree%20id%3D%22tree%22%20hidecolumnpicker%3D%22true%22%20seltype%3D%22single%22%20flex%3D%221%22%3E%0A%20%20%20%20%20%20%20%20%3Ctreecols%3E%0A%20%20%20%20%20%20%20%20%20%20%3Ctreecol%20id%3D%22firstColumn%22%20label%3D%22Id%22%20width%3D%22200%22%20sortDirection%3D%22ascending%22%0A%20%20%20%20%20%20%20%20%20%20%20%20onclick%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.reorder%28this%29%27%7D/%3E%0A%20%20%20%20%20%20%20%20%20%20%3Ctreecol%20id%3D%22secondColumn%22%20label%3D%22Image%20%26amp%3B%20Label%22%20flex%3D%221%22%20sortDirection%3D%22ascending%22%0A%20%20%20%20%20%20%20%20%20%20%20%20onclick%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.reorder%28this%29%27%7D/%3E%0A%20%20%20%20%20%20%20%20%3C/treecols%3E%0A%20%20%20%20%20%20%20%20%3Ctreechildren%20id%3D%22treechildren%22/%3E%0A%20%20%20%20%20%20%3C/tree%3E%0A%20%20%20%20%20%20%3Cseparator%20class%3D%22thin%22/%3E%0A%20%20%20%20%20%20%3Chbox%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20label%3D%22Edit%22%20oncommand%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.edit%28%29%27%7D/%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20label%3D%22Delete%22%20oncommand%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.remove%28%29%27%7D/%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20label%3D%22Attributes%22%20oncommand%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.attr%28%29%27%7D/%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20label%3D%22Properties%22%20oncommand%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.prop%28%29%27%7D/%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20label%3D%22URI%22%20oncommand%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.link%28%29%27%7D/%3E%0A%20%20%20%20%20%20%20%20%3Cbutton%20label%3D%22DOMi%22%20oncommand%3D%7B%27opener.document.getElementById%28%22%27%20+%20this.id%20+%20%27%22%29.inspect%28%29%27%7D/%3E%0A%20%20%20%20%20%20%3C/hbox%3E%0A%20%20%20%20%3C/vbox%3E%0A%3C/window%3E%3B%0Avar%20bool%20%3D%20XML.prettyPrinting%3B%0AXML.prettyPrinting%20%3D%20false%3B%0Adata%20%3D%20%27%3C%3Fxml%20version%3D%221.0%22%3F%3E%3C%3Fxml-stylesheet%20href%3D%22chrome%3A//global/skin/%22%20type%3D%22text/css%22%3F%3E%27%20+%20data.toXMLString%28%29%3B%0AXML.prettyPrinting%20%3D%20bool%3B%0Avar%20dialog%3B%0Afunction%20getImage%28s%29%20%7B%0A%20%20if%20%28s%20%3D%3D%20%22custombuttons-stdicon-1%22%29%20return%20%22chrome%3A//custombuttons/skin/button.png%22%3B%0A%20%20if%20%28s%20%3D%3D%20%22custombuttons-stdicon-2%22%29%20return%20%22chrome%3A//custombuttons/skin/stdicons/rbutton.png%22%3B%0A%20%20if%20%28s%20%3D%3D%20%22custombuttons-stdicon-3%22%29%20return%20%22chrome%3A//custombuttons/skin/stdicons/gbutton.png%22%3B%0A%20%20if%20%28s%20%3D%3D%20%22custombuttons-stdicon-4%22%29%20return%20%22chrome%3A//custombuttons/skin/stdicons/bbutton.png%22%3B%0A%20%20return%20%22http%3A//forum.mozilla-russia.org/uploaded/custombuttons_button.png%22%3B%0A%7D%0Afunction%20openTab%28arr%29%20%7B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i++%29%20%7B%0A%20%20%20%20var%20converter%20%3D%20Components.classes%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.%0A%20%20%20%20%20%20createInstance%28Components.interfaces.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20%20converter.charset%20%3D%20%22UTF-8%22%3B%0A%20%20%20%20arr%5Bi%5D%20%3D%20converter.ConvertFromUnicode%28arr%5Bi%5D%29%3B%0A%20%20%20%20arr%5Bi%5D%20%3D%20arr%5Bi%5D.replace%28/%26/g%2C%20%22%26amp%3B%22%29%3B%0A%20%20%20%20arr%5Bi%5D%20%3D%20arr%5Bi%5D.replace%28/%3E/g%2C%20%22%26gt%3B%22%29%3B%0A%20%20%20%20arr%5Bi%5D%20%3D%20arr%5Bi%5D.replace%28/%3C/g%2C%20%22%26lt%3B%22%29%3B%0A%20%20%20%20arr%5Bi%5D%20%3D%20arr%5Bi%5D.replace%28/%22/g%2C%20%22%26quot%3B%22%29%3B%0A%20%20%20%20arr%5Bi%5D%20%3D%20arr%5Bi%5D.replace%28/%27/g%2C%20%22%26apos%3B%22%29%3B%0A%20%20%7D%0A%20%20var%20data%20%3D%20%27%3C%21DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204.01//EN%22%3E%27%3B%0A%20%20data%20+%3D%20%22%3Chtml%3E%3Chead%3E%3Ctitle%3E%22%20+%20arr%5B1%5D%20+%20%22%3C/title%3E%22%3B%0A%20%20data%20+%3D%20%27%3Cmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text/html%3B%20charset%3DUTF-8%22%3E%27%3B%0A%20%20data%20+%3D%20%22%3C/head%3E%3Cbody%3E%3Cpre%3E%22%20+%20arr.join%28%22%5Cn%5Cn%22%29%20+%20%22%3C/pre%3E%3C/body%3E%3C/html%3E%22%3B%0A%20%20var%20info%20%3D%20Components.classes%5B%22@mozilla.org/xre/app-info%3B1%22%5D.%0A%20%20%20%20getService%28Components.interfaces.nsIXULAppInfo%29%3B%0A%20%20if%20%28info.name%20%3D%3D%20%22Firefox%22%20%7C%7C%20info.name%20%3D%3D%20%22SeaMonkey%22%29%20%7B%0A%20%20%20%20gBrowser.addTab%28%22data%3Atext/html%3Bcharset%3Dutf-8%3Bbase64%2C%22%20+%20btoa%28data%29%29%3B%0A%20%20%7D%0A%20%20if%20%28info.name%20%3D%3D%20%22Thunderbird%22%29%20%7B%0A%20%20%20%20openContentTab%28%22data%3Atext/html%3Bcharset%3Dutf-8%3Bbase64%2C%22%20+%20btoa%28data%29%29%3B%0A%20%20%7D%0A%7D%0Athis.leftclick%20%3D%20function%28event%29%20%7B%0A%20%20var%20url%20%3D%20%22data%3Aapplication/vnd.mozilla.xul+xml%3Btext/plain%2C%22%20+%20data%3B%0A%20%20var%20feature%20%3D%20%22chrome%2Ccenterscreen%2Cwidth%3D600%2Cheight%3D200%2Cdialog%3Dno%22%3B%0A%20%20dialog%20%3D%20window.openDialog%28url%2C%20%22%22%2C%20feature%29%3B%0A%7D%0Athis.load%20%3D%20function%28%29%20%7B%0A%20%20var%20nodeList%20%3D%20document.getElementsByTagName%28%22toolbarbutton%22%29%3B%0A%20%20var%20children%20%3D%20dialog.document.getElementById%28%22treechildren%22%29%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20nodeList.length%3B%20i++%29%20%7B%0A%20%20%20%20if%20%28nodeList%5Bi%5D.id.search%28%22custombuttons-button%22%29%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20var%20item%20%3D%20document.createElement%28%22treeitem%22%29%3B%0A%20%20%20%20%20%20var%20row%20%3D%20document.createElement%28%22treerow%22%29%3B%0A%20%20%20%20%20%20var%20cell%20%3D%20document.createElement%28%22treecell%22%29%3B%0A%20%20%20%20%20%20cell.setAttribute%28%22label%22%2C%20nodeList%5Bi%5D.id%29%3B%0A%20%20%20%20%20%20row.appendChild%28cell%29%3B%0A%20%20%20%20%20%20var%20cell%20%3D%20document.createElement%28%22treecell%22%29%3B%0A%20%20%20%20%20%20cell.setAttribute%28%22src%22%2C%20nodeList%5Bi%5D.image%20%7C%7C%20getImage%28nodeList%5Bi%5D.cbStdIcon%29%29%3B%0A%20%20%20%20%20%20cell.setAttribute%28%22label%22%2C%20String.fromCharCode%2832%2C%2032%29%20+%20nodeList%5Bi%5D.label%29%3B%0A%20%20%20%20%20%20row.appendChild%28cell%29%3B%0A%20%20%20%20%20%20item.appendChild%28row%29%3B%0A%20%20%20%20%20%20children.appendChild%28item%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20dialog.document.getElementById%28%22tree%22%29.focus%28%29%3B%0A%20%20dialog.document.getElementById%28%22tree%22%29.view.selection.select%280%29%3B%0A%7D%0Athis.reorder%20%3D%20function%28node%29%20%7B%0A%20%20var%20nodeList%20%3D%20document.getElementsByTagName%28%22toolbarbutton%22%29%3B%0A%20%20var%20orderArr%20%3D%20new%20Array%28%29%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20nodeList.length%3B%20i++%29%20%7B%0A%20%20%20%20if%20%28nodeList%5Bi%5D.id.search%28%22custombuttons-button%22%29%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20var%20item%20%3D%20document.createElement%28%22treeitem%22%29%3B%0A%20%20%20%20%20%20var%20row%20%3D%20document.createElement%28%22treerow%22%29%3B%0A%20%20%20%20%20%20var%20cell%20%3D%20document.createElement%28%22treecell%22%29%3B%0A%20%20%20%20%20%20cell.setAttribute%28%22label%22%2C%20nodeList%5Bi%5D.id%29%3B%0A%20%20%20%20%20%20row.appendChild%28cell%29%3B%0A%20%20%20%20%20%20var%20cell%20%3D%20document.createElement%28%22treecell%22%29%3B%0A%20%20%20%20%20%20cell.setAttribute%28%22src%22%2C%20nodeList%5Bi%5D.image%20%7C%7C%20getImage%28nodeList%5Bi%5D.cbStdIcon%29%29%3B%0A%20%20%20%20%20%20cell.setAttribute%28%22label%22%2C%20String.fromCharCode%2832%2C%2032%29%20+%20nodeList%5Bi%5D.label%29%3B%0A%20%20%20%20%20%20row.appendChild%28cell%29%3B%0A%20%20%20%20%20%20item.appendChild%28row%29%3B%0A%20%20%20%20%20%20orderArr.push%28%5BnodeList%5Bi%5D.id.substring%2820%29%2C%20nodeList%5Bi%5D.label%2C%20item%5D%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20var%20id%20%3D%20node.getAttribute%28%22id%22%29%3B%0A%20%20var%20sortDirection%20%3D%20node.getAttribute%28%22sortDirection%22%29%3B%0A%20%20if%20%28id%20%3D%3D%20%22firstColumn%22%20%26%26%20sortDirection%20%3D%3D%20%22ascending%22%29%20orderArr.sort%28function%28a%2C%20b%29%20%7B%20return%20a%5B0%5D%20-%20b%5B0%5D%20%7D%29%3B%0A%20%20if%20%28id%20%3D%3D%20%22firstColumn%22%20%26%26%20sortDirection%20%3D%3D%20%22descending%22%29%20orderArr.sort%28function%28a%2C%20b%29%20%7B%20return%20b%5B0%5D%20-%20a%5B0%5D%20%7D%29%3B%0A%20%20if%20%28id%20%3D%3D%20%22secondColumn%22%20%26%26%20sortDirection%20%3D%3D%20%22ascending%22%29%20orderArr.sort%28function%28a%2C%20b%29%20%7B%20return%20a%5B1%5D%20%3E%20b%5B1%5D%20%7D%29%3B%0A%20%20if%20%28id%20%3D%3D%20%22secondColumn%22%20%26%26%20sortDirection%20%3D%3D%20%22descending%22%29%20orderArr.sort%28function%28a%2C%20b%29%20%7B%20return%20a%5B1%5D%20%3C%20b%5B1%5D%20%7D%29%3B%0A%20%20node.setAttribute%28%22sortDirection%22%2C%20sortDirection%20%3D%3D%20%22descending%22%20%3F%20%22ascending%22%20%3A%20%22descending%22%29%3B%0A%20%20var%20children%20%3D%20dialog.document.getElementById%28%22treechildren%22%29%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20children.childNodes.length%3B%20i++%29%20%7B%0A%20%20%20%20children.appendChild%28orderArr%5Bi%5D%5B2%5D%29%3B%0A%20%20%20%20children.removeChild%28children.firstChild%29%3B%0A%20%20%7D%0A%20%20dialog.document.getElementById%28%22tree%22%29.focus%28%29%3B%0A%20%20dialog.document.getElementById%28%22tree%22%29.view.selection.select%280%29%3B%0A%7D%0Athis.edit%20%3D%20function%28%29%20%7B%0A%20%20var%20id%20%3D%20dialog.document.getElementById%28%22tree%22%29.view.getCellText%28%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.view.selection.currentIndex%2C%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.columns.getColumnAt%280%29%29%3B%0A%20%20custombuttons.editButton%28document.getElementById%28id%29%29%3B%0A%20%20dialog.close%28%29%3B%0A%7D%0Athis.remove%20%3D%20function%28%29%20%7B%0A%20%20var%20id%20%3D%20dialog.document.getElementById%28%22tree%22%29.view.getCellText%28%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.view.selection.currentIndex%2C%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.columns.getColumnAt%280%29%29%3B%0A%20%20custombuttons.removeButton%28document.getElementById%28id%29%29%3B%0A%20%20dialog.close%28%29%3B%0A%7D%0Athis.attr%20%3D%20function%28%29%20%7B%0A%20%20var%20id%20%3D%20dialog.document.getElementById%28%22tree%22%29.view.getCellText%28%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.view.selection.currentIndex%2C%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.columns.getColumnAt%280%29%29%3B%0A%20%20var%20node%20%3D%20document.getElementById%28id%29%3B%0A%20%20var%20out%20%3D%20new%20Array%28%29%3B%0A%20%20out.push%28%27windowtype%3D%22%27%20+%20document.documentElement.getAttribute%28%22windowtype%22%29%20+%20%27%22%20id%3D%22%27%20+%20id%20+%20%27%22%27%29%3B%0A%20%20out.push%28%22Attributes%22%29%3B%0A%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20node.attributes.length%3B%20i++%29%20%7B%0A%20%20%20%20if%20%28node.attributes%5Bi%5D.nodeName%20%3D%3D%20%22cb-oncommand%22%20%7C%7C%0A%20%20%20%20%20%20%20%20node.attributes%5Bi%5D.nodeName%20%3D%3D%20%22cb-init%22%20%20%20%20%20%20%7C%7C%0A%20%20%20%20%20%20%20%20node.attributes%5Bi%5D.nodeName%20%3D%3D%20%22Help%22%29%20%7B%0A%20%20%20%20%20%20out.push%28node.attributes%5Bi%5D.nodeName%20+%20%22%20%22%20+%20typeof%20node.attributes%5Bi%5D.nodeValue%20+%20%22%5Cn%22%20+%20%22%5Bomitted%5D%22%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20out.push%28node.attributes%5Bi%5D.nodeName%20+%20%22%20%22%20+%20typeof%20node.attributes%5Bi%5D.nodeValue%20+%20%22%5Cn%22%20+%20node.attributes%5Bi%5D.nodeValue%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20openTab%28out%29%3B%0A%20%20dialog.close%28%29%3B%0A%7D%0Athis.prop%20%3D%20function%28%29%20%7B%0A%20%20var%20id%20%3D%20dialog.document.getElementById%28%22tree%22%29.view.getCellText%28%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.view.selection.currentIndex%2C%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.columns.getColumnAt%280%29%29%3B%0A%20%20var%20node%20%3D%20document.getElementById%28id%29%3B%0A%20%20var%20out%20%3D%20new%20Array%28%29%3B%0A%20%20out.push%28%27windowtype%3D%22%27%20+%20document.documentElement.getAttribute%28%22windowtype%22%29%20+%20%27%22%20id%3D%22%27%20+%20id%20+%20%27%22%27%29%3B%0A%20%20out.push%28%22Properties%22%29%3B%0A%20%20for%20%28var%20i%20in%20node%29%20%7B%0A%20%20%20%20if%20%28i%20%3D%3D%20%22cbCommand%22%20%20%7C%7C%0A%20%20%20%20%20%20%20%20i%20%3D%3D%20%22cbInitCode%22%20%7C%7C%0A%20%20%20%20%20%20%20%20i%20%3D%3D%20%22Help%22%20%20%20%20%20%20%20%7C%7C%0A%20%20%20%20%20%20%20%20i%20%3D%3D%20%22URI%22%29%20%7B%0A%20%20%20%20%20%20out.push%28i%20+%20%22%20%22%20+%20typeof%20node%5Bi%5D%20+%20%22%5Cn%22%20+%20%22%5Bomitted%5D%22%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20out.push%28i%20+%20%22%20%22%20+%20typeof%20node%5Bi%5D%20+%20%22%5Cn%22%20+%20node%5Bi%5D%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20openTab%28out%29%3B%0A%20%20dialog.close%28%29%3B%0A%7D%0Athis.link%20%3D%20function%28%29%20%7B%0A%20%20var%20id%20%3D%20dialog.document.getElementById%28%22tree%22%29.view.getCellText%28%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.view.selection.currentIndex%2C%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.columns.getColumnAt%280%29%29%3B%0A%20%20var%20out%20%3D%20new%20Array%28%29%3B%0A%20%20out.push%28%27windowtype%3D%22%27%20+%20document.documentElement.getAttribute%28%22windowtype%22%29%20+%20%27%22%20id%3D%22%27%20+%20id%20+%20%27%22%27%29%3B%0A%20%20out.push%28%22URI%22%29%3B%0A%20%20out.push%28unescape%28document.getElementById%28id%29.URI%29%29%3B%0A%20%20openTab%28out%29%3B%0A%20%20dialog.close%28%29%3B%0A%7D%0Athis.inspect%20%3D%20function%28%29%20%7B%0A%20%20if%20%28typeof%28inspectDOMDocument%29%20%3D%3D%20%22undefined%22%29%20%7B%0A%20%20%20%20custombuttons.alertBox%28this.label%2C%20%22DOM%20Inspector%20is%20not%20enabled%20or%20installed.%22%29%3B%0A%20%20%20%20return%3B%0A%20%20%7D%0A%20%20var%20id%20%3D%20dialog.document.getElementById%28%22tree%22%29.view.getCellText%28%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.view.selection.currentIndex%2C%0A%20%20%20%20dialog.document.getElementById%28%22tree%22%29.columns.getColumnAt%280%29%29%3B%0A%20%20inspectDOMNode%28document.getElementById%28id%29%29%3B%0A%20%20dialog.close%28%29%3B%0A%7D%0Athis.setAttribute%28%22onclick%22%2C%20%22custombuttons.gQuot.mHandler%28event%2C%20this%29%22%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var data = <window title={this.label} onload={'opener.document.getElementById("' + this.id + '").load()'} xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> <keyset> <key keycode="VK_ESCAPE" oncommand="close()"/> </keyset> <vbox flex="1"> <tree id="tree" hidecolumnpicker="true" seltype="single" flex="1"> <treecols> <treecol id="firstColumn" label="Id" width="200" sortDirection="ascending" onclick={'opener.document.getElementById("' + this.id + '").reorder(this)'}/> <treecol id="secondColumn" label="Image & Label" flex="1" sortDirection="ascending" onclick={'opener.document.getElementById("' + this.id + '").reorder(this)'}/> </treecols> <treechildren id="treechildren"/> </tree> <separator class="thin"/> <hbox> <button label="Edit" oncommand={'opener.document.getElementById("' + this.id + '").edit()'}/> <button label="Delete" oncommand={'opener.document.getElementById("' + this.id + '").remove()'}/> <button label="Attributes" oncommand={'opener.document.getElementById("' + this.id + '").attr()'}/> <button label="Properties" oncommand={'opener.document.getElementById("' + this.id + '").prop()'}/> <button label="URI" oncommand={'opener.document.getElementById("' + this.id + '").link()'}/> <button label="DOMi" oncommand={'opener.document.getElementById("' + this.id + '").inspect()'}/> </hbox> </vbox> </window>; var bool = XML.prettyPrinting; XML.prettyPrinting = false; data = '<?xml version="1.0"?><?xml-stylesheet href="chrome://global/skin/" type="text/css"?>' + data.toXMLString(); XML.prettyPrinting = bool; var dialog; function getImage(s) { if (s == "custombuttons-stdicon-1") return "chrome://custombuttons/skin/button.png"; if (s == "custombuttons-stdicon-2") return "chrome://custombuttons/skin/stdicons/rbutton.png"; if (s == "custombuttons-stdicon-3") return "chrome://custombuttons/skin/stdicons/gbutton.png"; if (s == "custombuttons-stdicon-4") return "chrome://custombuttons/skin/stdicons/bbutton.png"; return "http://forum.mozilla-russia.org/uploaded/custombuttons_button.png"; } function openTab(arr) { for (var i = 0; i < arr.length; i++) { var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]. createInstance(Components.interfaces.nsIScriptableUnicodeConverter); converter.charset = "UTF-8"; arr[i] = converter.ConvertFromUnicode(arr[i]); arr[i] = arr[i].replace(/&/g, "&"); arr[i] = arr[i].replace(/>/g, ">"); arr[i] = arr[i].replace(/</g, "<"); arr[i] = arr[i].replace(/"/g, """); arr[i] = arr[i].replace(/'/g, "'"); } var data = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">'; data += "<html><head><title>" + arr[1] + "</title>"; data += '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'; data += "</head><body><pre>" + arr.join("\n\n") + "</pre></body></html>"; var info = Components.classes["@mozilla.org/xre/app-info;1"]. getService(Components.interfaces.nsIXULAppInfo); if (info.name == "Firefox" || info.name == "SeaMonkey") { gBrowser.addTab("data:text/html;charset=utf-8;base64," + btoa(data)); } if (info.name == "Thunderbird") { openContentTab("data:text/html;charset=utf-8;base64," + btoa(data)); } } this.leftclick = function(event) { var url = "data:application/vnd.mozilla.xul+xml;text/plain," + data; var feature = "chrome,centerscreen,width=600,height=200,dialog=no"; dialog = window.openDialog(url, "", feature); } this.load = function() { var nodeList = document.getElementsByTagName("toolbarbutton"); var children = dialog.document.getElementById("treechildren"); for (var i = 0; i < nodeList.length; i++) { if (nodeList[i].id.search("custombuttons-button") == 0) { var item = document.createElement("treeitem"); var row = document.createElement("treerow"); var cell = document.createElement("treecell"); cell.setAttribute("label", nodeList[i].id); row.appendChild(cell); var cell = document.createElement("treecell"); cell.setAttribute("src", nodeList[i].image || getImage(nodeList[i].cbStdIcon)); cell.setAttribute("label", String.fromCharCode(32, 32) + nodeList[i].label); row.appendChild(cell); item.appendChild(row); children.appendChild(item); } } dialog.document.getElementById("tree").focus(); dialog.document.getElementById("tree").view.selection.select(0); } this.reorder = function(node) { var nodeList = document.getElementsByTagName("toolbarbutton"); var orderArr = new Array(); for (var i = 0; i < nodeList.length; i++) { if (nodeList[i].id.search("custombuttons-button") == 0) { var item = document.createElement("treeitem"); var row = document.createElement("treerow"); var cell = document.createElement("treecell"); cell.setAttribute("label", nodeList[i].id); row.appendChild(cell); var cell = document.createElement("treecell"); cell.setAttribute("src", nodeList[i].image || getImage(nodeList[i].cbStdIcon)); cell.setAttribute("label", String.fromCharCode(32, 32) + nodeList[i].label); row.appendChild(cell); item.appendChild(row); orderArr.push([nodeList[i].id.substring(20), nodeList[i].label, item]); } } var id = node.getAttribute("id"); var sortDirection = node.getAttribute("sortDirection"); if (id == "firstColumn" && sortDirection == "ascending") orderArr.sort(function(a, b) { return a[0] - b[0] }); if (id == "firstColumn" && sortDirection == "descending") orderArr.sort(function(a, b) { return b[0] - a[0] }); if (id == "secondColumn" && sortDirection == "ascending") orderArr.sort(function(a, b) { return a[1] > b[1] }); if (id == "secondColumn" && sortDirection == "descending") orderArr.sort(function(a, b) { return a[1] < b[1] }); node.setAttribute("sortDirection", sortDirection == "descending" ? "ascending" : "descending"); var children = dialog.document.getElementById("treechildren"); for (var i = 0; i < children.childNodes.length; i++) { children.appendChild(orderArr[i][2]); children.removeChild(children.firstChild); } dialog.document.getElementById("tree").focus(); dialog.document.getElementById("tree").view.selection.select(0); } this.edit = function() { var id = dialog.document.getElementById("tree").view.getCellText( dialog.document.getElementById("tree").view.selection.currentIndex, dialog.document.getElementById("tree").columns.getColumnAt(0)); custombuttons.editButton(document.getElementById(id)); dialog.close(); } this.remove = function() { var id = dialog.document.getElementById("tree").view.getCellText( dialog.document.getElementById("tree").view.selection.currentIndex, dialog.document.getElementById("tree").columns.getColumnAt(0)); custombuttons.removeButton(document.getElementById(id)); dialog.close(); } this.attr = function() { var id = dialog.document.getElementById("tree").view.getCellText( dialog.document.getElementById("tree").view.selection.currentIndex, dialog.document.getElementById("tree").columns.getColumnAt(0)); var node = document.getElementById(id); var out = new Array(); out.push('windowtype="' + document.documentElement.getAttribute("windowtype") + '" id="' + id + '"'); out.push("Attributes"); for (var i = 0; i < node.attributes.length; i++) { if (node.attributes[i].nodeName == "cb-oncommand" || node.attributes[i].nodeName == "cb-init" || node.attributes[i].nodeName == "Help") { out.push(node.attributes[i].nodeName + " " + typeof node.attributes[i].nodeValue + "\n" + "[omitted]"); } else { out.push(node.attributes[i].nodeName + " " + typeof node.attributes[i].nodeValue + "\n" + node.attributes[i].nodeValue); } } openTab(out); dialog.close(); } this.prop = function() { var id = dialog.document.getElementById("tree").view.getCellText( dialog.document.getElementById("tree").view.selection.currentIndex, dialog.document.getElementById("tree").columns.getColumnAt(0)); var node = document.getElementById(id); var out = new Array(); out.push('windowtype="' + document.documentElement.getAttribute("windowtype") + '" id="' + id + '"'); out.push("Properties"); for (var i in node) { if (i == "cbCommand" || i == "cbInitCode" || i == "Help" || i == "URI") { out.push(i + " " + typeof node[i] + "\n" + "[omitted]"); } else { out.push(i + " " + typeof node[i] + "\n" + node[i]); } } openTab(out); dialog.close(); } this.link = function() { var id = dialog.document.getElementById("tree").view.getCellText( dialog.document.getElementById("tree").view.selection.currentIndex, dialog.document.getElementById("tree").columns.getColumnAt(0)); var out = new Array(); out.push('windowtype="' + document.documentElement.getAttribute("windowtype") + '" id="' + id + '"'); out.push("URI"); out.push(unescape(document.getElementById(id).URI)); openTab(out); dialog.close(); } this.inspect = function() { if (typeof(inspectDOMDocument) == "undefined") { custombuttons.alertBox(this.label, "DOM Inspector is not enabled or installed."); return; } var id = dialog.document.getElementById("tree").view.getCellText( dialog.document.getElementById("tree").view.selection.currentIndex, dialog.document.getElementById("tree").columns.getColumnAt(0)); inspectDOMNode(document.getElementById(id)); dialog.close(); } this.setAttribute("onclick", "custombuttons.gQuot.mHandler(event, this)"); |
slbgz > 16-10-2011 19:37:51 |
Button Archive TIDY test(Firefox) авторы: squeaky, SCClockDr Код Выделить код Код:// See the initialise tab for user options /* Using the Button Archive List button ==================================== Click on any item to toggle it from:- Show button (green background) to Don't show button (red background) Once done, click on the "See final list" button at the bottom of the menu to check your list before posting. In the (final) check list popup you can return to the edit list or copy your final list to the clipboard using the buttons at the bottom of the list. */ this.togglecheck(event); Примечание. Подсказка об особенностях кнопки - здесь. |
slbgz > 17-10-2011 10:17:06 |
Два аналога кнопки Bookmarks | Manager | Add для новых версий Фокса. My Bookmarks(Firefox 3.6++) ЛКМ = открыть Менеджер закладок Код Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EMy%20Bookmarks%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+rsA2fq7ANn6uwDZ+rsA2fq7ANn6uwDZ+rsA2fq7ANn6uwDZ+rsA2fq7ANn6uwDZ+rsA2fq7ANkAAAAA+rMA2fx7MP/8fjD//H4w//x+MP/8fjD//H4w//x+MP/8fjD//H4w//x+MP/8fjD//H4w//x+MP/8ezD/+rMA2fqnANn8di3/+rYt//q2Lf/6ti3/+rYt//q2Lf/6ti3/+rYt//q2Lf/6ti3/+rYt//q2Lf/6ti3//HYt//qnANn6ngDZ/HEr//qqKv/6qir//LtR//y7Uf/6qir/+qoq//qqKv/6qir//LtR//y7Uf/6qir/+qoq//xxK//6ngDZ/JcA2f9rJv/8nyb//J8m//yrQv//+vL//MV3//yfJv/8nyb//MV3///68v/8q0L//J8m//yfJv//ayb//JcA2fyLANn/YiT//Jcj//yXI//8lyP//+vW////////37r//9+6////////69b//Jcj//yXI//8lyP//2Ik//yLANn8ggDZ/1of//yKHv/8ih7//Ioe//y9gf///////////////////////L2B//yKHv/8ih7//Ioe//9aH//8ggDZ/HoA2f9VHP/8gRz//IEc//yBHP//x5z////////////////////////HnP/8gRz//IEc//yBHP//VRz//HoA2fxtANn/SRf//HMX//x8Jv//3cf//////////////////////////////////93H//x8Jv/8cxf//0kX//xtANn8ZQDZ/0MU//x9Mv//0rj//9vE///bxP//5NT/////////////5NT//9vE///bxP//0rj//H0y//9DFP/8ZQDZ/FgA2f89Ev/8YBL//GAS//xgEv/8YBL//HQw/////////////HQw//xgEv/8YBL//GAS//xgEv//PRL//FgA2f9RANn/NQ3//1cP//9XD///Vw///1cP//9XD///39H//9/R//9XD///Vw///1cP//9XD///Vw///zUN//9RANn/SADZ/y8K//9LCv//Swr//0sK//9LCv//Swr//5h1//+Ydf//Swr//0sK//9LCv//Swr//0sK//8vCv//SADZ/zwA2f8pCP//QQj//0EI//9BCP//QQj//0EI//9VJv//WSb//0EI//9BCP//QQj//0EI//9BCP//KQj//zwA2f8zANn/HAP//yAD//8gA///IAP//yAD//8gA///IAP//yAD//8gA///IAP//yAD//8gA///IAP//xwD//8zANkAAAAA/yoA2f8qANn/KgDZ/yoA2f8qANn/KgDZ/yoA2f8qANn/KgDZ/yoA2f8qANn/KgDZ/yoA2f8qANkAAAAAgAGsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBgAGsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.tooltipText%20%3D%20%22L%3DBookmarks%20Manager%20%7C%20M%3DBookmarks%20%7C%20R%3DAll%20Tabs%20to%20Bookmarks%22%3B%0A%0Athis.%20onclick%20%3D%20function%20%28event%29%0A%7B%20%20%20if%20%28event.%20button%20%3D%3D%200%29%20PlacesCommandHook.showPlacesOrganizer%28%27AllBookmarks%27%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%201%29%20toggleSidebar%28%27viewBookmarksSidebar%27%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%20%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%20event.stopPropagation%28%29%3B%20document.getElementById%28%22Browser%3ABookmarkAllTabs%22%29.doCommand%28%29%3B%20%7D%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this.tooltipText = "L=Bookmarks Manager | M=Bookmarks | R=All Tabs to Bookmarks"; this. onclick = function (event) { if (event. button == 0) PlacesCommandHook.showPlacesOrganizer('AllBookmarks'); if (event. button == 1) toggleSidebar('viewBookmarksSidebar'); if (event. button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { event.preventDefault(); event.stopPropagation(); document.getElementById("Browser:BookmarkAllTabs").doCommand(); }; }; My Bookmarks menu(Firefox 3.6++) Кнопка-меню с теми же функциями, что и кнопка выше. Код Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EMy%20Bookmarks%20menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlWNA/5RiP/+UYT7/k2A9/5NfPP+SXzz/kl47/5FdOv+QXDn/kFw4/49bN/+PWjb/AAAAAAAAAAAAAAAAAAAAAJVjQf/au5v/2bmY/9i2lf/WtJL/1bKP/9SvjP/TrYn/0qqG/9Gog//QpoD/j1s3/wAAAAAAAAAAAAAAAAAAAACWZEH/272d/5x9W//Kn3P/yJxu/8eYav/FlWb/w5Jh/8KOXf/Ai1n/0KiD/5BbOP9RNiL/AAAAAAAAAAAAAAAAlmRC/9y/n/+ggmD/g262/8mfcv9yWLD/xphp/8WUZf/DkWH/wY5c/9Gqhf+QXDj/UDcj/wAAAAAAAAAAAAAAAJdlQ//dwaL/o4Vk/0ZC8/9bTNL/KSDs/8eabf/Gl2j/xJRk/8OQX//Sq4f/kFw5/1E3JP8AAAAAAAAAAAAAAACXZkT/3cOk/6aJaf9KRvT/bW31/ywk7f/JnXD/x5ps/8aWZ//Ek2P/062J/5FdOv9RNyT/AAAAAAAAAAAAAAAAmGZE/97Fpv+qjmz/TUr1/6Kp+v8wKO7/yqB0/8idb//HmWv/xZZn/9SvjP+RXjv/UTgk/wAAAAAAAAAAAAAAAJhnRf/fxqj/rZJx/1FP9v+lrPr/NC3v/8ujd//Kn3P/yJxu/8eYav/VsY7/kl47/1I4Jf8AAAAAAAAAAAAAAACZaEb/4Mir/7CWdf9VU/b/qK/6/zcx8P/Npnv/y6J2/8mfcv/Im27/1rOQ/5JfPP9SOSX/AAAAAAAAAAAAAAAAmWhG/+HKrf+0mnr/WFf3/6qy+v87NfH/zqh+/8ylev/LoXb/yZ5x/9e1kv+TYD3/Ujkl/wAAAAAAAAAAAAAAAJppR//izK//uJ9+/1xc+P+ttfv/Pzrx//Xt5P/17eT/9e3k/8qhdP/XtpX/k2A9/1M5Jv8AAAAAAAAAAAAAAACaaUj/486x/7ujg/9gYPn/sLn7/0I+8v/RroX/z6qB/82nfP/Mo3j/2LiX/5RhPv9TOib/AAAAAAAAAAAAAAAAm2pJ/+TQtP/ItZz/Y2T6/7O8+/9GQvP/3sSl/93Bov/cv5//2ryc/9m6mf+UYT//Uzom/wAAAAAAAAAAAAAAAJtrSf/l0bb/mmlI/2dp+/+2v/v/Skb0/5hmRP+XZUP/lmRC/5ZkQf+VY0D/lWJA/1Q6J/8AAAAAAAAAAAAAAACcbEr/m2pJ/7KOdP9rbfv/XFz4/01K9f/y7en/9O/r//Xw7f/28vD/9/Tx//j18/9UOyf/AAAAAAAAAAAAAAAAoWtR/5trSv+bakn/mmpI/5ppR/+ZaEb/mWdF/5hmRf+XZkT/l2VD/5ZkQv+WY0H/lGI//wAAAAAAAAAAgAesQYAHrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%0A%0A%20%20%20%20%20%3Cmenuitem%20label%3D%22Bookmarks%20Manager%22%0A%20%20%20%20%20%20%20class%3D%22menuitem-iconic%22%20%0A%20%20%20%20%20%20%20image%3D%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlWNA/5RiP/+UYT7/k2A9/5NfPP+SXzz/kl47/5FdOv+QXDn/kFw4/49bN/+PWjb/AAAAAAAAAAAAAAAAAAAAAJVjQf/au5v/2bmY/9i2lf/WtJL/1bKP/9SvjP/TrYn/0qqG/9Gog//QpoD/j1s3/wAAAAAAAAAAAAAAAAAAAACWZEH/272d/5x9W//Kn3P/yJxu/8eYav/FlWb/w5Jh/8KOXf/Ai1n/0KiD/5BbOP9RNiL/AAAAAAAAAAAAAAAAlmRC/9y/n/+ggmD/g262/8mfcv9yWLD/xphp/8WUZf/DkWH/wY5c/9Gqhf+QXDj/UDcj/wAAAAAAAAAAAAAAAJdlQ//dwaL/o4Vk/0ZC8/9bTNL/KSDs/8eabf/Gl2j/xJRk/8OQX//Sq4f/kFw5/1E3JP8AAAAAAAAAAAAAAACXZkT/3cOk/6aJaf9KRvT/bW31/ywk7f/JnXD/x5ps/8aWZ//Ek2P/062J/5FdOv9RNyT/AAAAAAAAAAAAAAAAmGZE/97Fpv+qjmz/TUr1/6Kp+v8wKO7/yqB0/8idb//HmWv/xZZn/9SvjP+RXjv/UTgk/wAAAAAAAAAAAAAAAJhnRf/fxqj/rZJx/1FP9v+lrPr/NC3v/8ujd//Kn3P/yJxu/8eYav/VsY7/kl47/1I4Jf8AAAAAAAAAAAAAAACZaEb/4Mir/7CWdf9VU/b/qK/6/zcx8P/Npnv/y6J2/8mfcv/Im27/1rOQ/5JfPP9SOSX/AAAAAAAAAAAAAAAAmWhG/+HKrf+0mnr/WFf3/6qy+v87NfH/zqh+/8ylev/LoXb/yZ5x/9e1kv+TYD3/Ujkl/wAAAAAAAAAAAAAAAJppR//izK//uJ9+/1xc+P+ttfv/Pzrx//Xt5P/17eT/9e3k/8qhdP/XtpX/k2A9/1M5Jv8AAAAAAAAAAAAAAACaaUj/486x/7ujg/9gYPn/sLn7/0I+8v/RroX/z6qB/82nfP/Mo3j/2LiX/5RhPv9TOib/AAAAAAAAAAAAAAAAm2pJ/+TQtP/ItZz/Y2T6/7O8+/9GQvP/3sSl/93Bov/cv5//2ryc/9m6mf+UYT//Uzom/wAAAAAAAAAAAAAAAJtrSf/l0bb/mmlI/2dp+/+2v/v/Skb0/5hmRP+XZUP/lmRC/5ZkQf+VY0D/lWJA/1Q6J/8AAAAAAAAAAAAAAACcbEr/m2pJ/7KOdP9rbfv/XFz4/01K9f/y7en/9O/r//Xw7f/28vD/9/Tx//j18/9UOyf/AAAAAAAAAAAAAAAAoWtR/5trSv+bakn/mmpI/5ppR/+ZaEb/mWdF/5hmRf+XZkT/l2VD/5ZkQv+WY0H/lGI//wAAAAAAAAAAgAesQYAHrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQQ%3D%3D%22%0A%20%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.bookmarksManager%28event%29%22%7D/%3E%20%0A%0A%20%20%20%20%20%3Cmenuitem%20label%3D%22Open%20Bookmarks%20In%20Side%20Bar%22%0A%20%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xMS8wNdiEE10AAAAldEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1YIDIwMDSHdqzPAAABq0lEQVQ4y8VTSy8DURS+RTcWaql2/gVha2svaVKCnYhEhEhpLSRdSFQqmnos/AASsWHjuakmhA190ZY2rWkZ7VSNIp97brWmiA2JSb7M5HyPc05yhgFgvwH7s4Beq3u6z+YO9NkW8DPcAdJWBPCnutviCkViMTwXcgKFJ6UIVcGTmoWqZgQuryIgLXm0ATXmsXm8POchy0mkpTBSUghKJoasfI2MHIV8G0b2PsZDZJCWPNoAvWnUidcXFZn7BI6DadylwtwY5sYLyKkgUjc+SIkzqI8ySEueioDOYQeMDoPAjieCnJKE58SDrYNdbO5v48C7J7hGR/33AUT2H/UIUTTq5534FLcBvoofknSORPwUZc2MgUy1wkv7EDGnWDEYN5WnaHDUVcDIO1OdNM7shAgRk1DxEOsYy3dh6nEAy7BjhcMHL06xh32sYg0uUSOONKQlD3lZR79dfGwU3Fh8sJUnoF0rwWuz9VjKTwotadrNI2L/JgIVLMdDxVTGmlkVa3lHG711etZC3PiHplXotGdZ6s6Jxs8ny+s6LV/SfL1tDfnt7X/i2b//jW8TQI5LK3NhrAAAAABJRU5ErkJggg%3D%3D%22%0A%20%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.openBookmarksSideBar%28event%29%22%7D/%3E%20%20%20%20%20%20%20%20%20%0A%20%0A%20%20%20%20%20%3Cmenuitem%20label%3D%22Bookmark%20All%20Tabs%22%0A%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20image%3D%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMq0H/Ea1i/x2ztf8ds7X/HbO1/xm1tf8ZsLL/GYSt/xoco/8YHaP/Ghyi/zc/bP8wcSz/gX9d/3ROMtD/+v8BTduD/xitSv8wkXD/Z9vm/2bb4/9i2uP/WdXe/yaztf81bZn/Z2Hb/1VxgP8TlRL/D6gN/xOVEv+Rm27/VDsnxlTeif8YrUr/GnhJ/zfK3v8wytv/NdDe/2DY4P8ms7X/JG2E/3GUjP8hrCL/BtMF/wDbAP8G0wX/Iawi/4Sec/9X3o//HK1K/xpwOf8+yd7/O8nb/z3M2/9l1OD/KLi4/yR5ff8/aVv/Hr0f/wLnBP8A7wD/AucE/x69H/9RllP/Xd6T/x2tTf8acDn/SMrg/0DJ3v9DzN7/adXg/yy1uP8keX3/cJaL/y7CLv8f+R//DPsM/x/5H/8uwi7/n4Rk/2Tel/8drU3/GnA5/1PL4P9Lyt7/Tsje/3DV4P8stbj/JHl9/11M1P9XiXn/bvV7/0X5Rv9u9Xv/d8iD/1hALP9p4J//Ia1N/xpwOf9YzOD/U87g/1PL4P911+b/Lri4/yR5ff9kU9b/V4l5/271e/9F+Ub/bvV7/3fIg/9XPyv/bOCg/yGwUf8acDn/YtLj/1/P4/9f0eP/eNXj/y+4uv8keX3/a1zb/1eJef9u9Xv/RflG/271e/93yIP/Vj0p/3TjpP8jsFL/GnA5/2fH1v9lytv/aNHj/37Z5v8ytbj/JHl9/3Nk2f9yjoX/V3R+/1J2gf+525b/wLuN/1Y9Kf9/46r/JLJT/xpwOf/c8/f/2vH1/2zP4P+J3ej/Mri6/yR5ff95atn/kIfg/y4wq/8iH2n/1reV/5hoRv9WPSn/g+au/yeyVv8acDn/d8rZ/3LQ4P911eb/jt3o/zS4uv8keX3/gHLb/5OK4/8wMqv/Ih9p/9i6mv+YaUf/Vj0p/4rms/8pslf/GnA5/6Ti7f+i4Ov/mdvo/5Xd6P82uLr/JHl9/6OX5v+ZkOD/MzWr/yIfaf/avp//mWpJ/1Y9Kf8ktVT/HK1M/xpwOf9IvsL/SL7C/0jAwv8yuLr/KLW4/yR5ff9DRbX/LzGt/ycpqP8iH2n/m2pI/5VjQP9WPSn/4evk//Dw8P8acDn/0+fo/8/n6P/M5eb/4evq//Dw8P8keX3/ysrg/+Hi6//w8PD/Ih9p/+vn5f/v7+//Vj0p/yq1Vv8esE//G6FI/0y+wv9Lu7//SMDC/za6uv8tuLr/Kamr/0VHtf80OK3/KSur/yUnnP+cbEv/lmVC/4dbO/8hsFH/IKtP/ySfXP8yuLr/Mri6/y+4uv8vuLr/LbO1/y6OpP8sL6v/LC6o/yoso/86MYn/l2ZE/5JjQv+DXD3eAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%0A%20%20%20%20%20%20onclick%3D%7B%22document.getElementById%28%27%22%20+%20this.id%20+%20%22%27%29.bookmarkAllTabs%28event%29%22%7D/%3E%20%0A%0A%3C/menupopup%3E%3B%0A%0Avar%20bool%20%3D%20XML.prettyPrinting%3B%0AXML.prettyPrinting%20%3D%20false%3B%0Avar%20el%20%3D%20new%20DOMParser%28%29.parseFromString%28menu.toXMLString%28%29%2C%20%22application/xml%22%29.documentElement%3B%0AXML.prettyPrinting%20%3D%20bool%3B%0Athis.appendChild%28el%29%3B%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0Athis.bookmarksManager%20%3D%20function%28event%29%20%7B%20PlacesCommandHook.showPlacesOrganizer%28%27AllBookmarks%27%29%3B%20%7D%3B%0Athis.openBookmarksSideBar%20%3D%20function%28event%29%20%7B%20toggleSidebar%28%27viewBookmarksSidebar%27%29%3B%20%7D%3B%0Athis.bookmarkAllTabs%20%3D%20function%28event%29%20%7B%20document.getElementById%28%22Browser%3ABookmarkAllTabs%22%29.doCommand%28%29%3B%20%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var menu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" xmlns:cb="http://xsms.nm.ru/custombuttons/"> <menuitem label="Bookmarks Manager" class="menuitem-iconic" image="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlWNA/5RiP/+UYT7/k2A9/5NfPP+SXzz/kl47/5FdOv+QXDn/kFw4/49bN/+PWjb/AAAAAAAAAAAAAAAAAAAAAJVjQf/au5v/2bmY/9i2lf/WtJL/1bKP/9SvjP/TrYn/0qqG/9Gog//QpoD/j1s3/wAAAAAAAAAAAAAAAAAAAACWZEH/272d/5x9W//Kn3P/yJxu/8eYav/FlWb/w5Jh/8KOXf/Ai1n/0KiD/5BbOP9RNiL/AAAAAAAAAAAAAAAAlmRC/9y/n/+ggmD/g262/8mfcv9yWLD/xphp/8WUZf/DkWH/wY5c/9Gqhf+QXDj/UDcj/wAAAAAAAAAAAAAAAJdlQ//dwaL/o4Vk/0ZC8/9bTNL/KSDs/8eabf/Gl2j/xJRk/8OQX//Sq4f/kFw5/1E3JP8AAAAAAAAAAAAAAACXZkT/3cOk/6aJaf9KRvT/bW31/ywk7f/JnXD/x5ps/8aWZ//Ek2P/062J/5FdOv9RNyT/AAAAAAAAAAAAAAAAmGZE/97Fpv+qjmz/TUr1/6Kp+v8wKO7/yqB0/8idb//HmWv/xZZn/9SvjP+RXjv/UTgk/wAAAAAAAAAAAAAAAJhnRf/fxqj/rZJx/1FP9v+lrPr/NC3v/8ujd//Kn3P/yJxu/8eYav/VsY7/kl47/1I4Jf8AAAAAAAAAAAAAAACZaEb/4Mir/7CWdf9VU/b/qK/6/zcx8P/Npnv/y6J2/8mfcv/Im27/1rOQ/5JfPP9SOSX/AAAAAAAAAAAAAAAAmWhG/+HKrf+0mnr/WFf3/6qy+v87NfH/zqh+/8ylev/LoXb/yZ5x/9e1kv+TYD3/Ujkl/wAAAAAAAAAAAAAAAJppR//izK//uJ9+/1xc+P+ttfv/Pzrx//Xt5P/17eT/9e3k/8qhdP/XtpX/k2A9/1M5Jv8AAAAAAAAAAAAAAACaaUj/486x/7ujg/9gYPn/sLn7/0I+8v/RroX/z6qB/82nfP/Mo3j/2LiX/5RhPv9TOib/AAAAAAAAAAAAAAAAm2pJ/+TQtP/ItZz/Y2T6/7O8+/9GQvP/3sSl/93Bov/cv5//2ryc/9m6mf+UYT//Uzom/wAAAAAAAAAAAAAAAJtrSf/l0bb/mmlI/2dp+/+2v/v/Skb0/5hmRP+XZUP/lmRC/5ZkQf+VY0D/lWJA/1Q6J/8AAAAAAAAAAAAAAACcbEr/m2pJ/7KOdP9rbfv/XFz4/01K9f/y7en/9O/r//Xw7f/28vD/9/Tx//j18/9UOyf/AAAAAAAAAAAAAAAAoWtR/5trSv+bakn/mmpI/5ppR/+ZaEb/mWdF/5hmRf+XZkT/l2VD/5ZkQv+WY0H/lGI//wAAAAAAAAAAgAesQYAHrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQYADrEGAA6xBgAOsQQ==" onclick={"document.getElementById('" + this.id + "').bookmarksManager(event)"}/> <menuitem label="Open Bookmarks In Side Bar" class="menuitem-iconic" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xMS8wNdiEE10AAAAldEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1YIDIwMDSHdqzPAAABq0lEQVQ4y8VTSy8DURS+RTcWaql2/gVha2svaVKCnYhEhEhpLSRdSFQqmnos/AASsWHjuakmhA190ZY2rWkZ7VSNIp97brWmiA2JSb7M5HyPc05yhgFgvwH7s4Beq3u6z+YO9NkW8DPcAdJWBPCnutviCkViMTwXcgKFJ6UIVcGTmoWqZgQuryIgLXm0ATXmsXm8POchy0mkpTBSUghKJoasfI2MHIV8G0b2PsZDZJCWPNoAvWnUidcXFZn7BI6DadylwtwY5sYLyKkgUjc+SIkzqI8ySEueioDOYQeMDoPAjieCnJKE58SDrYNdbO5v48C7J7hGR/33AUT2H/UIUTTq5534FLcBvoofknSORPwUZc2MgUy1wkv7EDGnWDEYN5WnaHDUVcDIO1OdNM7shAgRk1DxEOsYy3dh6nEAy7BjhcMHL06xh32sYg0uUSOONKQlD3lZR79dfGwU3Fh8sJUnoF0rwWuz9VjKTwotadrNI2L/JgIVLMdDxVTGmlkVa3lHG711etZC3PiHplXotGdZ6s6Jxs8ny+s6LV/SfL1tDfnt7X/i2b//jW8TQI5LK3NhrAAAAABJRU5ErkJggg==" onclick={"document.getElementById('" + this.id + "').openBookmarksSideBar(event)"}/> <menuitem label="Bookmark All Tabs" class="menuitem-iconic" image="data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMq0H/Ea1i/x2ztf8ds7X/HbO1/xm1tf8ZsLL/GYSt/xoco/8YHaP/Ghyi/zc/bP8wcSz/gX9d/3ROMtD/+v8BTduD/xitSv8wkXD/Z9vm/2bb4/9i2uP/WdXe/yaztf81bZn/Z2Hb/1VxgP8TlRL/D6gN/xOVEv+Rm27/VDsnxlTeif8YrUr/GnhJ/zfK3v8wytv/NdDe/2DY4P8ms7X/JG2E/3GUjP8hrCL/BtMF/wDbAP8G0wX/Iawi/4Sec/9X3o//HK1K/xpwOf8+yd7/O8nb/z3M2/9l1OD/KLi4/yR5ff8/aVv/Hr0f/wLnBP8A7wD/AucE/x69H/9RllP/Xd6T/x2tTf8acDn/SMrg/0DJ3v9DzN7/adXg/yy1uP8keX3/cJaL/y7CLv8f+R//DPsM/x/5H/8uwi7/n4Rk/2Tel/8drU3/GnA5/1PL4P9Lyt7/Tsje/3DV4P8stbj/JHl9/11M1P9XiXn/bvV7/0X5Rv9u9Xv/d8iD/1hALP9p4J//Ia1N/xpwOf9YzOD/U87g/1PL4P911+b/Lri4/yR5ff9kU9b/V4l5/271e/9F+Ub/bvV7/3fIg/9XPyv/bOCg/yGwUf8acDn/YtLj/1/P4/9f0eP/eNXj/y+4uv8keX3/a1zb/1eJef9u9Xv/RflG/271e/93yIP/Vj0p/3TjpP8jsFL/GnA5/2fH1v9lytv/aNHj/37Z5v8ytbj/JHl9/3Nk2f9yjoX/V3R+/1J2gf+525b/wLuN/1Y9Kf9/46r/JLJT/xpwOf/c8/f/2vH1/2zP4P+J3ej/Mri6/yR5ff95atn/kIfg/y4wq/8iH2n/1reV/5hoRv9WPSn/g+au/yeyVv8acDn/d8rZ/3LQ4P911eb/jt3o/zS4uv8keX3/gHLb/5OK4/8wMqv/Ih9p/9i6mv+YaUf/Vj0p/4rms/8pslf/GnA5/6Ti7f+i4Ov/mdvo/5Xd6P82uLr/JHl9/6OX5v+ZkOD/MzWr/yIfaf/avp//mWpJ/1Y9Kf8ktVT/HK1M/xpwOf9IvsL/SL7C/0jAwv8yuLr/KLW4/yR5ff9DRbX/LzGt/ycpqP8iH2n/m2pI/5VjQP9WPSn/4evk//Dw8P8acDn/0+fo/8/n6P/M5eb/4evq//Dw8P8keX3/ysrg/+Hi6//w8PD/Ih9p/+vn5f/v7+//Vj0p/yq1Vv8esE//G6FI/0y+wv9Lu7//SMDC/za6uv8tuLr/Kamr/0VHtf80OK3/KSur/yUnnP+cbEv/lmVC/4dbO/8hsFH/IKtP/ySfXP8yuLr/Mri6/y+4uv8vuLr/LbO1/y6OpP8sL6v/LC6o/yoso/86MYn/l2ZE/5JjQv+DXD3eAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==" onclick={"document.getElementById('" + this.id + "').bookmarkAllTabs(event)"}/> </menupopup>; var bool = XML.prettyPrinting; XML.prettyPrinting = false; var el = new DOMParser().parseFromString(menu.toXMLString(), "application/xml").documentElement; XML.prettyPrinting = bool; this.appendChild(el); this.type = "menu"; this.orient = "horizontal"; this.bookmarksManager = function(event) { PlacesCommandHook.showPlacesOrganizer('AllBookmarks'); }; this.openBookmarksSideBar = function(event) { toggleSidebar('viewBookmarksSidebar'); }; this.bookmarkAllTabs = function(event) { document.getElementById("Browser:BookmarkAllTabs").doCommand(); }; В кнопке использованы некоторые элементы кода и иконки из кнопки mrbunnylamakins. |
slbgz > 19-10-2011 21:32:05 |
Close this toolbar(Firefox) Скрыть панель (автонастраиваемая) Аналог кнопки СкрытьПоказать панель Код Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EClose%20this%20toolbar%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%2CR0lGODlhDgAOAPcAAL0pAL0xEL05GL1CIcYpAMYxAMYxCMY5EMY5GMZjStY5ENZrUtZzWt4xAN5CGN5CId5KGN5KId5KKd5SId5SKd5SMec5AOc5COdCCOdCEOdKEOdKGOdKIedSGOdSIedSKedSMedaKedaMedaOedjMedjOedjQudjSudrSudrUudzUudzWud7Wu9CCO9SGO9SIe9aIe9aKe9zWu97Y++EY++Ea++Mc++Ue++chO+cjPetlPe1nPe1pfe9pfe9rffGtffGvffOvffOxvfWxvfWzv/Ovf/n3v/n5//v5//v7////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ywAAAAADgAOAAAIvwB12KixQkUKFChOmBhRQQKDGzpyDKzBgsWKFShMVBhQI8eNgQxWpDiBIgXDASxs3DjyI4UJjT6MnFxRowYQJUI0ClHCowKFASkqrtgJ5CaQCBF+nrho8KaSHxM4IB1gIoXBFEGUPP3QAUIEBCNOWN0Z5OaPDhsgHKhQ9QfOEiWy7uiQIUCEESqO+DBRgkQIHkY8YADgoMKIjCNKhAjhIQQGCwAURJDg0+eECBAwXGgAYIGAz6AFHDAQAACABAEBADs%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0A%0A%0Aconst%20toolbar%20%3D%20document.getElementById%28this.parentNode.id%29%3B%0A%0Atoolbar.collapsed%20%3D%20true%3B%0A%0Atoolbar.setAttribute%28%22persist%22%2C%20%22collapsed%22%29%3B%0A%0A%0A%0A//%20MANY%20thanks%20to%20nicholas%20for%20help%20with%20this%20attribute%0Athis.setAttribute%28%22style%22%2C%20%22padding-bottom%3A%200px%20%21important%3B%20padding-left%3A%202px%20%21important%3B%20padding-right%3A%202px%20%21important%3B%20padding-top%3A%200px%20%21important%3B%22%29%3B%0A%0A%0Athis.thisbar%20%3D%20document.getElementById%28this.parentNode.id%29%3B%0A%0Avar%20checkcb%20%3D%20this.thisbar.id%0A%0A%20//%20alert%28%22thisbar%20%3D%20%22%20+%20this.thisbar.id%29%3B%0A%0A%20var%20rExp%20%3D%20/__customToolbar_/%3B%0A%0A%20%20if%28rExp.test%28checkcb%29%29%0A%20%20%7B%0A%20%20%20%20checkcb%20%3D%20checkcb.substring%2816%2C%20checkcb.length%29%3B%0A%20%20%7D%0A%20%20%20%20%0Athis.tooltipText%20%3D%20%22Close%20%22%20+%20checkcb%20+%20%22%20toolbar%22%3B%0A%0A%0A%0A%0A%0A%0A/*----------------------%20Button%20Code%20Block%20End%20-----------------------*/%0A%20%20%20%20%0A%20%20%20%20%0A%0Athis.setAttribute%28%22author%22%2C%22squeaky%22%29%3B%0Athis.setAttribute%28%22version%22%2C%2220080308.1.2%22%29%3B%0Athis.setAttribute%28%22homepage%22%2C%22http%3A//custombuttons2.com/forum/viewtopic.php%3Ff%3D35%26t%3D728%22%29%3B%0Athis.setAttribute%28%22dependency%22%2C%22FF2.0*%2CCB2%202.0.5*%22%29%3B%0Athis.setAttribute%28%22status%22%2C%22Complete%22%29%3B%0Athis.setAttribute%28%22public%22%2Ctrue%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%0A%0A//%20If%20you%20would%20like%20your%20browser%20to%20always%20start%20with%0A//%20this%20toolbar%20collapsed%3A-%0A//%20un%20comment%20the%20code%20in%20the%20initialisation%20tab%0A//%0A//%20Thanks%20to%20ithinc%20for%20the%20%22persist%22%20line.%0A%0Aconst%20toolbar%20%3D%20document.getElementById%28this.parentNode.id%29%3B%0A%0A%20%20toolbar.collapsed%20%3D%20true%3B%0A%0A%20%20toolbar.setAttribute%28%22persist%22%2C%20%22collapsed%22%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%0A/*%20+++-----------------------%20help%20information%20for%20this%20button%20-----------------------+++%20*/%0A%0ANo%20help%20developed%20for%20%0A%3Clabel%3E%20button%0Acustombuttons-button%3Cid%3E.%0A%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:/*Code*/ // If you would like your browser to always start with // this toolbar collapsed:- // un comment the code in the initialisation tab // // Thanks to ithinc for the "persist" line. const toolbar = document.getElementById(this.parentNode.id); toolbar.collapsed = true; toolbar.setAttribute("persist", "collapsed"); Инициализация: Выделить код Код:/*Initialization code*/ const toolbar = document.getElementById(this.parentNode.id); toolbar.collapsed = true; toolbar.setAttribute("persist", "collapsed"); // MANY thanks to nicholas for help with this attribute this.setAttribute("style", "padding-bottom: 0px !important; padding-left: 2px !important; padding-right: 2px !important; padding-top: 0px !important;"); this.thisbar = document.getElementById(this.parentNode.id); var checkcb = this.thisbar.id // alert("thisbar = " + this.thisbar.id); var rExp = /__customToolbar_/; if(rExp.test(checkcb)) { checkcb = checkcb.substring(16, checkcb.length); } this.tooltipText = "Close " + checkcb + " toolbar"; /*---------------------- Button Code Block End -----------------------*/ this.setAttribute("author","squeaky"); this.setAttribute("version","20080308.1.2"); this.setAttribute("homepage","http://custombuttons2.com/forum/viewtopic.php?f=35&t=728"); this.setAttribute("dependency","FF2.0*,CB2 2.0.5*"); this.setAttribute("status","Complete"); this.setAttribute("public",true); |
Inko7 > 27-10-2011 12:36:42 |
Popap-Toolbar!(Firefox) - Всплывающая панель ЛКМ => Показать / Скрыть панель После нажатия ЛКМ по элементам (кнопкам) всплывающей панели через 2сек произойдет ее автозакрытие. скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EPopap-Toolbar%21%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAABh0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjM2qefiJQAAAhdJREFUOE+tk01oE1EUhTN/eTN1pVgNQWJHKFm40apdmUmMXTQQEHGjkCyEoiuraE3sShCLIsUfsqzdKSqtVmgVqS5iKQQEuyiKNAu7KUImXcWYWuhwvHfMDKModuGFDx7vvXPueXeYUOg/lU0+zb/QEehh0XqVyBBKsHfzw4WTqOaPoJpL+RiKDLq0JXCxPP2q7Oi6vvbbfqjJ4uU+E8tHd/sYshQ0sCKRyLeb4zMIC533f0nR5M6uOB3zCRqc2qnXX5crGC5NIT80Ci2sz5CJ7qX7l4GVzWTW7j99i8K9KQzdmSQDsUHi45s1WJyde+cMl57j8t1nLpxC1cLffQMeGEcOQofeDL7S4LirD4n5jHGLPxVP+09s5tw1yREVokEsEAOEGvzWtN5D1IkuQgqe5foObG18mj7nrLy5hOpE3ske2r4uNOlMwGQHrVcHxwahCa1FazNoUlmaverYL47Bnkih9shCZbQHHUJepEsG4YutEQv9N/oR3RVtCSHYxK3Gl/nrsCdTsB8nUHuQwMdSL4yw7LTnUi+OFZEcSSJ+JY54MY50IQ1FUziJWwufX150ak+SqD1MYGX8MOau7WODpXaCLo5tnjXRXehG7HQMqqGCprDXMxjI9nauz9/aj/e3D7ribM82CFU6Txe09ltNSZVa0RNRyIL+kZ9i2TNQeWD8Zp1ic2cWK7L7fq946qakSBzbF/8A350C1KoJvKcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0A%20%0A//%20%u0412%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0442%u0443%u043B%u0431%u0430%u0440%u0430%0Avar%20popupToolbarName%20%3D%20%22MButtons%22%3B%0A%0Avar%20popupToolbarId%20%3D%20%22__customToolbar_%22%20+%20popupToolbarName.replace%28%22%20%22%2C%20%22_%22%29%3B%0Avar%20contextPopupId%20%3D%20%22popuptoolbar-contextpopup%22%3B%0A%20%0Athis.type%20%3D%20%22menu%22%3B%0Athis._init%20%3D%20function%28%29%20%7B%0A%20%20popupToolbarName%20%3D%20this.label%3B%0A%20%20popupId%20%3D%20popupToolbarName.replace%28%22%20%22%2C%20%22%22%29.toLowerCase%28%29%20+%20%22-%22%20+%20this.type%20+%20%22popup%22%3B%0A%20%20var%20popupToolbar%20%3D%20document.getElementById%28popupToolbarId%29%3B%0A%20%20if%20%28popupToolbar%29%20%7B%0A%20%20%20%20popupToolbar.setAttribute%28%22collapsed%22%2C%20%22true%22%29%3B%0A%20%20%20%20document.persist%28popupToolbarId%2C%20%22collapsed%22%29%3B%0A%20%20%7D%0A%20%0A%20%20var%20popup%20%3D%20document.getElementById%28popupId%29%3B%0A%20%20if%20%28popup%29%20%7B%0A%20%20%20%20popup.hidePopup%28%29%3B%0A%20%20%20%20popup.parentNode.removeChild%28popup%29%3B%0A%20%20%7D%0A%20%0A%20%20popup%20%3D%20document.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20popup.setAttribute%28%22id%22%2C%20popupId%29%3B%0A%20%20popup.setAttribute%28%22position%22%2C%20%22after_start%22%29%3B%0A%20%0A%20%20if%20%28this.type%20%3D%3D%20%22menu%22%29%20%7B%0A%20%20%20%20while%20%28this.firstChild%20%26%26%20this.firstChild.localName%20%3D%3D%20%22menupopup%22%29%20%7B%0A%20%20%20%20%20%20this.firstChild.hidePopup%28%29%3B%0A%20%20%20%20%20%20this.removeChild%28this.firstChild%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20this.appendChild%28popup%29%3B%0A%20%20%20%20popup.setAttribute%28%22onpopupshowing%22%2C%20%27this.parentNode.setPopup%28event%29%3B%27%29%3B%0A%20%20%7D%0A%20%20else%20%7B%0A%20%20%20%20popup.setAttribute%28%22onpopupshowing%22%2C%20%27document.popupNode.setPopup%28event%29%3B%27%29%3B%0A%20%20%7D%0A%20%0A%20%20popup.setAttribute%28%22onpopupshown%22%2C%20%27%7B%5C%0A%20%20%20%20window.addEventListener%28%22popuphidden%22%2C%20function%28e%29%20%7B%5C%0A%20%20%20%20%20%20var%20popup%20%3D%20document.getElementById%28popupId%29%3B%5C%0A%20%20%20%20%20%20if%20%28e.target%20%3D%3D%20popup%29%20%7B%5C%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popuphidden%22%2C%20arguments.callee%2C%20false%29%3B%5C%0A%20%20%20%20%20%20%20%20return%3B%5C%0A%20%20%20%20%20%20%7D%5C%0A%20%20%20%20%20%20var%20popupNode%20%3D%20document.popupNode%3B%5C%0A%20%20%20%20%20%20while%20%28popupNode%20%26%26%20popupNode%20%21%3D%20popup%29%20popupNode%20%3D%20popupNode.parentNode%3B%5C%0A%20%20%20%20%20%20if%20%28popupNode%20%3D%3D%20popup%29%20popup.hidePopup%28%29%3B%5C%0A%20%20%20%20%7D%2C%20false%29%3B%5C%0A%20%20%7D%27.replace%28%22popupId%22%2C%20%27%22%27%20+%20popupId%20+%20%27%22%27%29%29%3B%0A%20%0A%20%20popup.setAttribute%28%22onpopuphidden%22%2C%20%27%7B%5C%0A%20%20%20%20var%20popup%20%3D%20event.target%3B%5C%0A%20%20%20%20if%20%28popup.firstChild%20%26%26%20popup.firstChild.localName%20%3D%3D%20%22toolbar%22%29%20%7B%5C%0A%20%20%20%20%20%20var%20popupToolbar%20%3D%20popup.firstChild%3B%5C%0A%20%20%20%20%20%20popupToolbar.removeAttribute%28%22style%22%29%3B%5C%0A%20%20%20%20%20%20popupToolbar.setAttribute%28%22collapsed%22%2C%20%22true%22%29%3B%5C%0A%20%20%20%20%20%20document.persist%28popupToolbar.id%2C%20%22collapsed%22%29%3B%5C%0A%20%20%20%20%20%20var%20navbox%20%3D%20document.getElementById%28%22navigator-toolbox%22%29%3B%5C%0A%20%20%20%20%20%20var%20nextElement%20%3D%20navbox.firstChild%3B%5C%0A%20%20%20%20%20%20while%20%28nextElement%20%26%26%20nextElement.localName%20%21%3D%20%22toolbarset%22%29%20%7B%5C%0A%20%20%20%20%20%20%20%20if%20%28Number%28nextElement.getAttribute%28%22customindex%22%29%29%20%3E%20Number%28popupToolbar.getAttribute%28%22customindex%22%29%29%29%5C%0A%20%20%20%20%20%20%20%20%20%20break%3B%5C%0A%20%20%20%20%20%20%20%20nextElement%20%3D%20nextElement.nextSibling%3B%5C%0A%20%20%20%20%20%20%7D%5C%0A%20%20%20%20%20%20navbox.insertBefore%28popupToolbar%2C%20nextElement%29%3B%5C%0A%20%20%20%20%20%20popupToolbar.firstPermanentChild%20%3D%20null%3B%5C%0A%20%20%20%20%20%20popupToolbar.lastPermanentChild%20%3D%20null%3B%5C%0A%20%20%20%20%20%20popupToolbar.currentSet%20%3D%20popupToolbar.getAttribute%28%22currentset%22%29%3B%5C%0A%20%20%20%20%7D%5C%0A%20%20%20%20while%20%28popup.lastChild%20%26%26%20popup.lastChild.localName%20%3D%3D%20%22menuitem%22%29%5C%0A%20%20%20%20%20%20popup.removeChild%28popup.lastChild%29%3B%5C%0A%20%20%7D%27%29%3B%0A%20%0A%20%20var%20contextPopup%20%3D%20document.getElementById%28contextPopupId%29%3B%0A%20%20if%20%28contextPopup%29%20%7B%0A%20%20%20%20contextPopup.hidePopup%28%29%3B%0A%20%20%20%20contextPopup.parentNode.removeChild%28contextPopup%29%3B%0A%20%20%7D%0A%20%0A%20%20contextPopup%20%3D%20document.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20contextPopup.setAttribute%28%22id%22%2C%20contextPopupId%29%3B%0A%20%20contextPopup.setAttribute%28%22position%22%2C%20%22at_pointer%22%29%3B%0A%20%20contextPopup.setAttribute%28%22onpopupshowing%22%2C%20%27document.popupNode.setContextPopup%28event%29%3B%27%29%3B%0A%20%0A%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20menuitem.setAttribute%28%22label%22%2C%20%22Show%20Context%20Menu%20With%20Toolbar%22%29%3B%0A%20%20menuitem.setAttribute%28%22type%22%2C%20%22checkbox%22%29%3B%0A%20%20menuitem.setAttribute%28%22checked%22%2C%20this.getBoolPref%28%27showContextWithToolbar%27%29%29%3B%0A%20%20menuitem.setAttribute%28%22oncommand%22%2C%20%22document.popupNode.setBoolPref%28%27showContextWithToolbar%27%2C%20this.getAttribute%28%27checked%27%29%20%3D%3D%20%27true%27%29%3B%22%29%3B%0A%20%20contextPopup.appendChild%28menuitem%29%3B%0A%20%20contextPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%20%0A//%20%20this.tooltipText%20%3D%20this.label%3B%0A%20%20%20%20this.tooltipText%20%3D%20%22%22%3B%0A%7D%0A%20%0Athis.setBoolPref%20%3D%20function%28name%2C%20value%29%20%7B%0A%20%20var%20prefs%20%3D%20Cc%5B%22@mozilla.org/preferences-service%3B1%22%5D.getService%28Ci.nsIPrefBranch%29%3B%0A%20%20prefs.setBoolPref%28%22custombuttons.popuptoolbar.%22%20+%20name%2C%20value%29%3B%0A%7D%0A%20%0Athis.getBoolPref%20%3D%20function%28name%29%20%7B%0A%20%20var%20prefs%20%3D%20Cc%5B%22@mozilla.org/preferences-service%3B1%22%5D.getService%28Ci.nsIPrefBranch%29%3B%0A%20%20return%20prefs.getPrefType%28%22custombuttons.popuptoolbar.%22%20+%20name%29%0A%20%20%20%20%20%20%20%20%26%26%20prefs.getBoolPref%28%22custombuttons.popuptoolbar.%22%20+%20name%29%3B%0A%7D%0A%20%0Athis.setPopup%20%3D%20function%28event%29%20%7B%0A%20%20if%20%28this.getBoolPref%28%27showContextWithToolbar%27%29%29%20%7B%0A%20%20%20%20document.popupNode%20%3D%20this%3B%0A%20%20%20%20this.setContextPopup%28event%29%3B%0A%20%20%7D%0A%20%0A%20%20var%20popup%20%3D%20event.target%3B%0A%20%20var%20popupToolbar%20%3D%20document.getElementById%28popupToolbarId%29%3B%0A%20%20if%20%28popupToolbar%20%26%26%20popupToolbar.parentNode%20%21%3D%20popup%20%26%26%20this.parentNode%20%21%3D%20popupToolbar%29%20%7B%0A%20%20%20%20popup.insertBefore%28popupToolbar%2C%20popup.firstChild%29%3B%0A%20%20%20%20popupToolbar.setAttribute%28%22collapsed%22%2C%20%22false%22%29%3B%0A%20%20%20%20if%20%28%21this.getBoolPref%28%27showContextWithToolbar%27%29%29%0A%20%20%20%20%20%20popupToolbar.setAttribute%28%22style%22%2C%20%22border%3A%20none%20%21important%3B%22%29%3B%0A%20%20%7D%0A%20%0A%20%20if%20%28%21popup.firstChild%29%20%7B%0A%20%20%20%20document.popupNode%20%3D%20this%3B%0A%20%20%20%20this.setContextPopup%28event%29%3B%0A%20%20%7D%0A%7D%0A%20%0Athis.setContextPopup%20%3D%20function%28event%29%20%7B%0A%20%20var%20contextPopup%20%3D%20event.target%3B%0A%20%20while%20%28contextPopup.lastChild%20%26%26%20contextPopup.lastChild.localName%20%3D%3D%20%22menuitem%22%29%0A%20%20%20%20contextPopup.removeChild%28contextPopup.lastChild%29%3B%0A%20%0A%20%20var%20toolbars%20%3D%20document.getElementById%28%22navigator-toolbox%22%29.getElementsByTagName%28%22toolbar%22%29%3B%0A%20%20for%20%28var%20i%3D0%3B%20i%3Ctoolbars.length%3B%20i++%29%20%7B%0A%20%20%20%20var%20toolbarname%20%3D%20toolbars%5Bi%5D.getAttribute%28%22toolbarname%22%29%3B%0A%20%20%20%20var%20toolbarid%20%3D%20toolbars%5Bi%5D.getAttribute%28%22id%22%29%3B%0A%20%20%20%20var%20menuitem%20%3D%20contextPopup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20%20menuitem.setAttribute%28%22label%22%2C%20toolbarname%29%3B%0A%20%20%20%20menuitem.setAttribute%28%22type%22%2C%20%22radio%22%29%3B%0A%20%20%20%20menuitem.setAttribute%28%22name%22%2C%20%22toolbars-radio%22%29%3B%0A%20%20%20%20menuitem.setAttribute%28%22checked%22%2C%20%28this.label%20%3D%3D%20toolbarname%29%29%3B%0A%20%20%20%20menuitem.setAttribute%28%22disabled%22%2C%20%28%22__customToolbar_%22%20+%20toolbarname.replace%28%22%20%22%2C%20%22_%22%29%20%21%3D%20toolbarid%29%20%7C%7C%20%28this.parentNode%20%3D%3D%20toolbars%5Bi%5D%29%29%3B%0A%20%20%20%20menuitem.setAttribute%28%22oncommand%22%2C%20%22document.popupNode.setToolbar%28this.label.toString%28%29%29%3B%22%29%3B%0A%20%20%7D%0A%7D%0A%20%0Athis.setToolbar%20%3D%20function%28toolbarname%29%20%7B%0A%20%20var%20toolbar%20%3D%20document.getElementById%28%22__customToolbar_%22%20+%20toolbarname.replace%28%22%20%22%2C%20%22_%22%29%29%3B%0A%20%20if%20%28toolbar%20%26%26%20toolbar%20%21%3D%20this.parentNode%29%20%7B%0A%20%20%20%20this.label%20%3D%20toolbarname%3B%0A%20%20%20%20if%20%28toolbar.firstChild%20%26%26%20toolbar.firstChild.image%29%0A//%20%20%20%20%20%20this.image%20%3D%20toolbar.firstChild.image%3B%0A%20%0A%20%20%20%20this._init%28%29%3B%0A%20%20%7D%0A%7D%0A%20%0Avar%20that%20%3D%20this%3B%0Athis.hideDropMarker%20%3D%20function%28%29%20%7B%0A%20%20var%20dropMarker%20%3D%20document.getAnonymousElementByAttribute%28that%2C%20%22class%22%2C%20%22toolbarbutton-menu-dropmarker%22%29%3B%0A%20%20if%20%28dropMarker%29%20%7B%0A%20%20%20%20dropMarker.setAttribute%28%22hidden%22%2C%20%22true%22%29%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20setTimeout%28that.hideDropMarker%2C%2010%29%3B%0A%20%20%7D%0A%7D%0A%20%0Athis.showPopup%20%3D%20function%28event%29%20%7B%0A%20%20document.popupNode%20%3D%20this%3B%0A%20%20document.getElementById%28popupId%29.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%7D%0A%20%0Athis.showContextPopup%20%3D%20function%28event%29%20%7B%0A%20%20document.popupNode%20%3D%20this%3B%0A%20%20document.getElementById%28contextPopupId%29.showPopup%28this%2C%20event.screenX%2C%20event.screenY%2C%20%22context%22%2C%20%22none%22%2C%20%22none%22%29%3B%0A%7D%0A%20%0Athis.leftclick%20%3D%20this.showPopup%3B%0A//%20this.rightclick%20%3D%20this.showContextPopup%3B%0A%20%0Aif%20%28this.type%20%3D%3D%20%22menu%22%29%20%7B%0A%20%20this.leftclick%20%3D%20this.hideDropMarker%3B%0A%20%20this.hideDropMarker%28%29%3B%0A%7D%0A%20%0Athis._init%28%29%3B%0A%20%0Athis.setAttribute%28%27onclick%27%2C%20%27if%20%28event.target%20%3D%3D%20event.currentTarget%29%20gQuot%28event%2C%20this%29%3B%27%29%3B%0A%20%0A%0A%0A//%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u0437%u0430%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u043C%u0435%u043D%u044E%20%u043F%u043E%u0441%u043B%u0435%20%u043A%u043B%u0438%u043A%u0430%20%u041B%u041A%u041C%20%u043F%u043E%20%u0435%u0433%u043E%20%u044D%u043B%u0435%u043C%u0435%u043D%u0442%u0430%u043C%20%28%u043A%u043D%u043E%u043F%u043A%u0430%u043C%29%20/%20%u0438%u043D%u0442%u0435%u0440%u0432%u0430%u043B%202%u0441%u0435%u043A%0A%0Adocument.getElementById%28popupToolbarId%29.addEventListener%28%22click%22%2C%20openfalse%2C%20true%29%3B%0Afunction%20openfalse%28event%29%20%7B%0A%09%20%20%20%20if%28event.button%20%3D%3D%200%29%20%7B%0A%0A%09%09setTimeout%28function%28%29%20%7B%0A%09%09var%20popup%20%3D%20document.getElementById%28popupId%29%3B%0A%09%09window.removeEventListener%28%22popuphidden%22%2C%20arguments.callee%2C%20false%29%3B%0A%09%09var%20popupNode%20%3D%20document.popupNode%3B%0A%09%09popup.hidePopup%28%29%3B%7D%2C%202000%29%3B%0A%09%09%0A%09%09%7D%3B%0A%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:/*Initialization code*/ // Ввести название тулбара var popupToolbarName = "MButtons"; var popupToolbarId = "__customToolbar_" + popupToolbarName.replace(" ", "_"); var contextPopupId = "popuptoolbar-contextpopup"; this.type = "menu"; this._init = function() { popupToolbarName = this.label; popupId = popupToolbarName.replace(" ", "").toLowerCase() + "-" + this.type + "popup"; var popupToolbar = document.getElementById(popupToolbarId); if (popupToolbar) { popupToolbar.setAttribute("collapsed", "true"); document.persist(popupToolbarId, "collapsed"); } var popup = document.getElementById(popupId); if (popup) { popup.hidePopup(); popup.parentNode.removeChild(popup); } popup = document.getElementById("mainPopupSet").appendChild(document.createElement("menupopup")); popup.setAttribute("id", popupId); popup.setAttribute("position", "after_start"); if (this.type == "menu") { while (this.firstChild && this.firstChild.localName == "menupopup") { this.firstChild.hidePopup(); this.removeChild(this.firstChild); } this.appendChild(popup); popup.setAttribute("onpopupshowing", 'this.parentNode.setPopup(event);'); } else { popup.setAttribute("onpopupshowing", 'document.popupNode.setPopup(event);'); } popup.setAttribute("onpopupshown", '{\ window.addEventListener("popuphidden", function(e) {\ var popup = document.getElementById(popupId);\ if (e.target == popup) {\ window.removeEventListener("popuphidden", arguments.callee, false);\ return;\ }\ var popupNode = document.popupNode;\ while (popupNode && popupNode != popup) popupNode = popupNode.parentNode;\ if (popupNode == popup) popup.hidePopup();\ }, false);\ }'.replace("popupId", '"' + popupId + '"')); popup.setAttribute("onpopuphidden", '{\ var popup = event.target;\ if (popup.firstChild && popup.firstChild.localName == "toolbar") {\ var popupToolbar = popup.firstChild;\ popupToolbar.removeAttribute("style");\ popupToolbar.setAttribute("collapsed", "true");\ document.persist(popupToolbar.id, "collapsed");\ var navbox = document.getElementById("navigator-toolbox");\ var nextElement = navbox.firstChild;\ while (nextElement && nextElement.localName != "toolbarset") {\ if (Number(nextElement.getAttribute("customindex")) > Number(popupToolbar.getAttribute("customindex")))\ break;\ nextElement = nextElement.nextSibling;\ }\ navbox.insertBefore(popupToolbar, nextElement);\ popupToolbar.firstPermanentChild = null;\ popupToolbar.lastPermanentChild = null;\ popupToolbar.currentSet = popupToolbar.getAttribute("currentset");\ }\ while (popup.lastChild && popup.lastChild.localName == "menuitem")\ popup.removeChild(popup.lastChild);\ }'); var contextPopup = document.getElementById(contextPopupId); if (contextPopup) { contextPopup.hidePopup(); contextPopup.parentNode.removeChild(contextPopup); } contextPopup = document.getElementById("mainPopupSet").appendChild(document.createElement("menupopup")); contextPopup.setAttribute("id", contextPopupId); contextPopup.setAttribute("position", "at_pointer"); contextPopup.setAttribute("onpopupshowing", 'document.popupNode.setContextPopup(event);'); var menuitem = document.createElement("menuitem"); menuitem.setAttribute("label", "Show Context Menu With Toolbar"); menuitem.setAttribute("type", "checkbox"); menuitem.setAttribute("checked", this.getBoolPref('showContextWithToolbar')); menuitem.setAttribute("oncommand", "document.popupNode.setBoolPref('showContextWithToolbar', this.getAttribute('checked') == 'true');"); contextPopup.appendChild(menuitem); contextPopup.appendChild(document.createElement("menuseparator")); // this.tooltipText = this.label; this.tooltipText = ""; } this.setBoolPref = function(name, value) { var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); prefs.setBoolPref("custombuttons.popuptoolbar." + name, value); } this.getBoolPref = function(name) { var prefs = Cc["@mozilla.org/preferences-service;1"].getService(Ci.nsIPrefBranch); return prefs.getPrefType("custombuttons.popuptoolbar." + name) && prefs.getBoolPref("custombuttons.popuptoolbar." + name); } this.setPopup = function(event) { if (this.getBoolPref('showContextWithToolbar')) { document.popupNode = this; this.setContextPopup(event); } var popup = event.target; var popupToolbar = document.getElementById(popupToolbarId); if (popupToolbar && popupToolbar.parentNode != popup && this.parentNode != popupToolbar) { popup.insertBefore(popupToolbar, popup.firstChild); popupToolbar.setAttribute("collapsed", "false"); if (!this.getBoolPref('showContextWithToolbar')) popupToolbar.setAttribute("style", "border: none !important;"); } if (!popup.firstChild) { document.popupNode = this; this.setContextPopup(event); } } this.setContextPopup = function(event) { var contextPopup = event.target; while (contextPopup.lastChild && contextPopup.lastChild.localName == "menuitem") contextPopup.removeChild(contextPopup.lastChild); var toolbars = document.getElementById("navigator-toolbox").getElementsByTagName("toolbar"); for (var i=0; i<toolbars.length; i++) { var toolbarname = toolbars[i].getAttribute("toolbarname"); var toolbarid = toolbars[i].getAttribute("id"); var menuitem = contextPopup.appendChild(document.createElement("menuitem")); menuitem.setAttribute("label", toolbarname); menuitem.setAttribute("type", "radio"); menuitem.setAttribute("name", "toolbars-radio"); menuitem.setAttribute("checked", (this.label == toolbarname)); menuitem.setAttribute("disabled", ("__customToolbar_" + toolbarname.replace(" ", "_") != toolbarid) || (this.parentNode == toolbars[i])); menuitem.setAttribute("oncommand", "document.popupNode.setToolbar(this.label.toString());"); } } this.setToolbar = function(toolbarname) { var toolbar = document.getElementById("__customToolbar_" + toolbarname.replace(" ", "_")); if (toolbar && toolbar != this.parentNode) { this.label = toolbarname; if (toolbar.firstChild && toolbar.firstChild.image) // this.image = toolbar.firstChild.image; this._init(); } } var that = this; this.hideDropMarker = function() { var dropMarker = document.getAnonymousElementByAttribute(that, "class", "toolbarbutton-menu-dropmarker"); if (dropMarker) { dropMarker.setAttribute("hidden", "true"); } else { setTimeout(that.hideDropMarker, 10); } } this.showPopup = function(event) { document.popupNode = this; document.getElementById(popupId).showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); } this.showContextPopup = function(event) { document.popupNode = this; document.getElementById(contextPopupId).showPopup(this, event.screenX, event.screenY, "context", "none", "none"); } this.leftclick = this.showPopup; // this.rightclick = this.showContextPopup; if (this.type == "menu") { this.leftclick = this.hideDropMarker; this.hideDropMarker(); } this._init(); this.setAttribute('onclick', 'if (event.target == event.currentTarget) gQuot(event, this);'); // автоматически закрывает меню после клика ЛКМ по его элементам (кнопкам) / интервал 2сек document.getElementById(popupToolbarId).addEventListener("click", openfalse, true); function openfalse(event) { if(event.button == 0) { setTimeout(function() { var popup = document.getElementById(popupId); window.removeEventListener("popuphidden", arguments.callee, false); var popupNode = document.popupNode; popup.hidePopup();}, 2000); }; }; За советы спасибо bunda1 Добавлено: |
bunda1 > 28-10-2011 21:46:20 |
Многоцветное автовыделение( Firefox 24+ ) от 07.10.2016. ЛКМ => Bключить/выключить, Код кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041C%u043D%u043E%u0433%u043E%u0446%u0432%u0435%u0442%u043D%u043E%u0435%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD+//4B////APX69AV9vWaPVJsR9GabDPiQrDGn6OzRG////wD+/v0B////AP///gL///0B////AP///wD///8A////AP3+/gP///8ActGnhRyqVP83q0r8PqMu/kqZDf9yoh7Wu8t8YNjan07m4bM9+ffqCf///wD///4B////AP///wD8/v8C//7/AOL5/A4d1NrUFc/G/yHEov0qt3b/NKtM/UGeHv9WlAD/eJcB/peZAP+nphzH5+bAIP///wD+/v8A/fz/A/3+/wH///8A5/b+CyG8/c4Jz/z/ENfm/RrLuf8nu4b/M61S/UGgJvtbnBH8fqAQ/IKXAP+lrjax/v76AP7+/gH///8A7fD9CNni/Bb///8Ac7/4dQCn9/8P1f38ENbh/xzIsf8ouoD/NKtL/0GeHf9enA79dJ0M/4yiGOrx8d0c/f3/AJaT7105O+TOHTjn5GuP8n7u9v4AOK/3ugW/+/8N2vX9FdDN/yDDoP8rtXD/N6c//kqdGPpcnBD/dqIZ3/L05BCVht5rLhXE/zMj0f0nKuL/EkHp7+Dm/Bq64/wyBKz4/w/W/fwP1+X/Gsq4/ya+kPwwsWH+M58o/jSSAP+exXNr////AFkwrepXMrT8SjPG9icg2v8xRunM8fX+BfL5/gcdpPbOBMH8/w/b9vwX0dH+FcKk/yS3evFZum2rpdOaUPj79gD///8BZy6R8lsqn/8/Hbb/NSfS6MPE+DDj7PwI8vP9ALHe/DQXs/nWAs/9/wDV5v9C1Mmwye/jI////wD///8B////AP7+/gG/oclQgVSpuIhuy4/OyfIheHbpgx815+4vZ+7C2uf8Fuz5/we+8P83y/f8Jvb9/QL///8A8vv4CZPUpGO837Y5////AP///wD6+f0D////AIVy1IsgEsz/Lini+Qow5/+Gq/Vq////AM/t/Ruo6/4+6/z9C////wB817lzE6dQ/zGeJfOs05lI/Pv9Bf///wDXy+knTCOu7UYvxf89KtH4Fhrh/4yb9GTB3/sjCJH07QC9+v854Pio9///AFHOsrMktnX/NKtO/0KoPsz9/P0D////AMey2ElWJaL/UzG4+k0vv/4sGs/5vLn1Mkl68aoLcvD/G6j4+QDH+v+29f8xY9zUkA/Eo/8swpH3JL6M/P38/gL///8A08DcNF8kkPlgNar9Sh2m/3texp/i4PsPKTDk7hxP7P8eefD7Apb1/47Z/E2x8vw2AMrv/wXN5/8O0Ova////AP///wH8+/wAoHe0iWkukfN+U66v8+31C9PL7iA3H8n6KSzi/yNF6/sMVe3/rc35PP///wB/zv1qM7L7u53e/j7///8A////AP///wD7+fsB6NzqD/n2+gT///8A7uf0EV80rONFKcD/LCTU/zxC47/u8P4D////Af7+/gH//f4A///+AP///wD///8A//7/AP79/gL///8A/v7/Av38/gT///8AsZHEZmAplv5gOrPQzMbwKf///wD9/f4C/f//A/7//wL9/v8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20%0A%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%20....%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%3B%0A%20%20%20%20%20%20%20%20cbu.getPrefs%28s%29%20%3F%20doHighlight%28%29%20%3A%20clearHighlight%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20....%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20toggleHighlightValue%28%27add%27%29%3B%0A%20%20%20%20%20%0A%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20....%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20toggleHighlightValue%28%27clear%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%0A%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20Ctrl%20+%20%u041F%u041A%u041C%20....%20.%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%u0421%u043F%u0440%u0430%u0432%u043A%u0430%0A%20%20%20%20%20%20%20%20function%20observer%28subject%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20subject.addEventListener%28%22load%22%2C%20%28e%2C%20doc%20%3D%20e.target%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20doc.URL.startsWith%28%22chrome%3A//custombuttons%22%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.ww.unregisterNotification%28observer%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20doc.getElementsByTagName%28%22tabs%22%29%5B0%5D.children%5B2%5D.click%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20Services.ww.registerNotification%28observer%29%3B%0A%0A%20%20%20%20%20%20%20%20custombuttons.editButton%28this%29%3B%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%0A%20%20%20%20%20%20%20%20%7D%20%0A%7D%3B%0A%0A%0A//%20%u0426%u0432%u0435%u0442%u0430%20%u0434%u043B%u044F%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u0435%2C%20%u043C%u043E%u0436%u043D%u043E%20%u043C%u0435%u043D%u044F%u0442%u044C%20%u0438%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0442%u044C%20..........%0Avar%20colors%20%3D%20%5B%22%23FFFF00%22%2C%20%22%23FF0000%22%2C%20%22%2366FFFF%22%2C%20%22%2366FF99%22%2C%20%22%23FFA500%22%2C%20%22%23FF00FF%22%5D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...........%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%0A%20%20%20var%20array%20%3D%20getArray%28%29.map%28str%3D%3E%20%7B%20return%20str.slice%280%2C50%29%20+%20%28str.length%20%3E%2050%20%3F%20%22...%22%20%3A%20%22%22%29%20%7D%29%3B%0A%20%20%20this.tooltipText%20%3D%20self.label%20+%20%22%5Cn%u041B%3A%20B%u043A%u043B%u044E%u0447%u0438%u0442%u044C/%u0432%u044B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%5Cn%u0421%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%5Cn%u041F%3A%20%u0421%u0431%u0440%u043E%u0441%u0438%u0442%u044C%20%u0432%u0435%u0441%u044C%20%u0442%u0435%u043A%u0441%u0442%5CnShift+%u041F%3A%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Cn%u0422%u0435%u043A%u0441%u0442%20%u0434%u043B%u044F%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%3A%20%5Cn%22%20+%20array.join%28%22%5Cn%22%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%20..........%0Avar%20s%20%3D%20%22CB.autoHighlight%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29.%0A%20%20%20src%20%3D%20cbu.getPrefs%28s%29%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAD///8A/v7+AP39/QH9/f0B/f39Af39/QH///8AmJiYKQAAALEDAwPqAAAA1gAAAGm7u7sA////Afv7+wD///8A////AP39/QH9/f0D////AP///wD7+/sB////AKKiogoAAADJAAAA/wAAAP0BAQH+AAAA/wsLC3HDw8MA////Bfb29gP+/v4A////Aefn5wDT09MJ1tbWCdTU1AT///8AXFxcSwAAAPsEBAT/AAAA/gAAAPwFBQX/AAAA63Nzczvu7u4A/Pz8Avz8/AHr6+sJMjIyZgAAAL8CAgLCAAAApsbGxhhoaGhLAAAA/gUFBf8AAAD+AAAA/wAAAP0DAwP/AAAA6hMTE5eHh4cr3d3dACsrK4gAAAD/AwMD/gMDA/wAAAD/Hh4emy0tLQwAAADwAQEB/wAAAP4AAAD/AAAA/wAAAP8BAQH9AwMD/wAAAOcrKys5AwMD7gYGBv4AAAD7BAQE/QAAAP9KSkp5////ABUVFcIAAAD/AQEB/QAAAP8AAAD/AAAA/wAAAP4BAQH6BwcH/wICAr8BAQGfAAAA/wEBAf8AAADrBQUFeMbGxgX///8AGhoawQAAAP8BAQH+AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9BgYG66+vrwc1NTVCDw8PPgAAADUREREt0tLSF+7u7gAdHR27AAAA/wICAvsBAQH9AQEB/QEBAf0BAQH8AQEB+wICAv8BAQHC////AsHBwQAICAhzAAAA6AQEBP8AAADqWlpaL25ubj8AAAD4AgIC/wAAAP4AAAD/AAAA/wAAAP4CAgL/AAAA3VtbWznHx8cABgYGbwAAAP8BAQH+AAAA+AUFBf8AAAB18PDwAIyMjDwYGBiuGRkZwxgYGJQTExNzFhYWdQUFBWRgYGAb////ALS0tBwAAADXBQUF/wAAAPgFBQX/AAAA90tLSzunp6cApqamDaurqwP///8A////AP///wD///8A////AP///wD7+/sBtLS0LQAAAOwLCwv/CQkJ+wAAAP88PDyLkJCQDAICAqYAAADdAAAAkJCQkAP///8AW1tbLUlJSXFnZ2cR////AP7+/gHNzc0HDAwMpAAAAP8AAADuJycneRMTEw8PDw/AAQEB/wsLC/8AAAD6cnJyPHR0dB4AAADiAAAA/yAgIJX///8A/v7+Av///wC7u7sPgoKCRYqKii3T09MACgoKaAAAAP8BAQH4AgIC/AAAAP8vLy9GKysreQAAAP8FBQX/BwcH3LS0tAj///8A/f39Af39/QH///8A////AOzs7AYDAwPEAAAA/wAAAPsCAgL/AAAA8mtrawlMTEygAAAA/wgICP8AAADpampqGP///wD///8A/Pz8Afn5+QT+/v4B7e3tBAQEBMEAAAD/AQEB/QAAAP8TExNv////AFJSUosAAAD/AwMD/wEBAauurq4A////Av///wD///8A/v7+AP///wLv7+8AAwMDSwAAAOADAwPZAAAAZZOTkwP///8AT09PIQAAALYAAAC3oaGhIf///wD9/f0BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%29%3B%20%0A%0A%0A//%20%u0410%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u0432%u044B%u0434%u0435%u043B%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0438%u0441%u043A%u043E%u043C%u044B%u0435%20%u0442%u0435%u043A%u0441%u0442%u044B%20%u0440%u0430%u0437%u043D%u044B%u043C%u0438%20%u0446%u0432%u0435%u0442%u0430%u043C%u0438%20..........%0Afunction%20doHighlight%28node%20%3D%20content.document.body%29%20%7B%0A%20%20%20if%20%28%20%21cbu.getPrefs%28s%29%20%7C%7C%20%21node%29%20return%3B%0A%20%20%20%0A%20%20%20//%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u043D%u0435%20%u043F%u0443%u0441%u0442%u043E%u0439%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0439%20%u0443%u0437%u0435%u043B%0A%20%20%20if%20%28%20node.nodeName%20%3D%3D%20%22%23text%22%20%26%26%20node.data.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%20%21%3D%20%22%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20var%20data%20%3D%20node.data.toLowerCase%28%29%2C%20highlightText%20%3D%20getArray%28%29%3B%20%0A%20%20%20%20%20%20%20%20var%20arr%20%3D%20highlightText.filter%28str%3D%3E%20%7B%20return%20%7Edata.indexOf%28str%29%20%7D%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%20arr%20%21%3D%20%22%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20arr.reverse%28%29.forEach%28str%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20parentNode%20%3D%20node.parentNode%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20color%20%3D%20colors%5BhighlightText.indexOf%28str%29%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20parentNode.className%20%3D%3D%20_id%20%29%20%7B%20//%20%u0435%u0441%u043B%u0438%20%u043D%u0430%u0434%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u043C%20%u0443%u0437%u043B%u043E%u043C%20%u043A%u043D%u043E%u043F%u043A%u0430%20%u0443%u0436%u0435%20%u0441%u043E%u0437%u0434%u0430%u043B%u0430%20span%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20parentNode.style.backgroundColor%20%3D%20color%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20span%20%3D%20content.document.createElement%28%22span%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20span.style.backgroundColor%20%3D%20color%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20span.className%20%3D%20_id%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20middle%20%3D%20node.splitText%28data.indexOf%28str%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20middle.splitText%28str.length%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20node.parentNode.insertBefore%28span%2C%20middle%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20span.appendChild%28middle%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%20node.nodeType%20%3D%3D%201%20%26%26%20node.firstChild%20%26%26%20%21/script%7Cstyle/.test%28node.localName%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5B...node.childNodes%5D.forEach%28node%3D%3E%20doHighlight%28node%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0AdoHighlight%28%29%3B%0A%0A%0A//%20%u041E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0441%u043B%u0435%u0434%u0438%u0442%20%u0437%u0430%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u043E%u0439%20%u0438%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%u043C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u043A%u0430%u044E%u0442%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u0435%20..........%0Avar%20listener%20%3D%20%7B%20%0A%20%20%20onStateChange%3A%20function%28wpr%2C%20req%2C%20flag%29%20%7B%0A%20%20%20%20%20%20if%20%28%20gBrowser.currentURI.spec.startsWith%28%22http%22%29%20%26%26%20flag%20%26%20Ci.nsIWebProgressListener.STATE_STOP%20%29%0A%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20doHighlight%28%29%2C%200%29%3B%0A%20%20%20%7D%2C%0A%20%20%20%20%20%20%0A%20%20%20onLocationChange%3A%20function%28wpr%2C%20req%29%20%7B%0A%20%20%20%20%20%20if%20%28%20gBrowser.currentURI.spec.startsWith%28%22http%22%29%20%26%26%20%21req%20%26%26%20wpr.document.readyState%20%3D%3D%20%22complete%22%20%29%0A%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20doHighlight%28%29%2C%200%29%3B%0A%20%20%20%7D%20%20%20%20%20%20%20%0A%7D%3B%0AgBrowser.addProgressListener%28listener%29%3B%0AaddDestructor%28%28%29%3D%3E%20gBrowser.removeProgressListener%28listener%29%20%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u0431%u0440%u0430%u0442%u044C%20%u0432%u0441%u0435%20%u043E%u0442%u043A%u0440%u044B%u0442%u044B%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u0435%20..........%0Afunction%20clearHighlight%28reason%20%3D%20false%29%20%7B%0A%20%20%20if%20%28%20reason%20%3D%3D%20%27destructor%27%20%29%20return%3B%0A%20%20%20%0A%20%20%20for%20%28%20var%20br%20of%20gBrowser.browsers%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%5B...br.contentDocument.querySelectorAll%28%27SPAN%5Bclass%3D%27%20+%20_id%20+%20%27%5D%27%29%5D%0A%20%20%20%20%20%20%20%20%20.forEach%28el%3D%3E%20el.style%20%3D%20%22%22%20%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%20%0AaddDestructor%28clearHighlight%29%3B%0A%0A%20%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0438%u043B%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0434%u043B%u044F%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%20..........%0Afunction%20toggleHighlightValue%28arg%29%20%7B%20%0A%20%20if%20%28%20arg%20%3D%3D%20%27clear%27%20%29%0A%20%20%20%20%20%20%20var%20text%20%3D%20%27%27%2C%20notification%20%3D%20%22%u0422%u0435%u043A%u0441%u0442%20%u0434%u043B%u044F%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%20%u0443%u0434%u0430%u043B%u0451%u043D%22%3B%0A%20%20%0A%20%20if%20%28%20arg%20%3D%3D%20%27add%27%20%29%20%7B%20%20%0A%20%20%20%20%20%20%20var%20sel%20%3D%20getSelect%28%29%2C%20array%20%3D%20getArray%28%29%3B%20%0A%20%20%20%20%20%20%20var%20array%20%3D%20%28array%20%3D%3D%20%22%22%29%20%3F%20%22%22%20%3A%20array.join%28%22%5Cn%22%29%20+%20%22%5Cn%22%3B%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20if%20%28%20sel%20%29%20%7B%20var%20text%20%3D%20array%20+%20sel%20%7D%0A%20%20%20%20%20%20%20else%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20val%20%3D%20custombuttons.promptBox%28self.label%2C%20%27B%u0432%u0435%u0434%u0438%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%20%u0434%u043B%u044F%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%3A%27%29%5B1%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20val%20%3D%3D%20%22%22%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20text%20%3D%20array%20+%20val.split%28%22%7C%22%29.join%28%22%5Cn%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20goDoCommand%28%22cmd_selectNone%22%29%3B%0A%20%20%20%20%20%20%20var%20notification%20%3D%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0442%u0435%u043A%u0441%u0442%20%u0434%u043B%u044F%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%3A%20%5Cn%22%20+%20%28sel%20%3F%20sel%20%3A%20val.replace%28/%5C%7C/g%2C%22%5Cn%22%29%29%3B%0A%20%20%20%20%20%20%20%7D%0A%20%20%20%0A%20%20saveTextToHelp%28text.toLowerCase%28%29%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%0A%20%20cbu.setPrefs%28s%2C%20%28arg%20%3D%3D%20%27add%27%29%29%3B%0A%20%20cbu.getPrefs%28s%29%20%3F%20doHighlight%28%29%20%3A%20clearHighlight%28%29%3B%0A%20%20%0A%20%20var%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%20%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%20notification%29%3B%0A%20%20setTimeout%28%28%29%3D%3E%20alertsService.closeAlert%28%29%2C%201500%29%3B%0A%7D%3B%0A%0A%0A//%20%u0417%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%27%u0421%u043F%u0440%u0430%u0432%u043A%u0430%27%20..........%0Afunction%20saveTextToHelp%28text%29%20%7B%0A%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20dir.initWithPath%28dir.path%20+%20%22%5C%5Cextensions%5C%5Ccustombuttons@xsms.org%5C%5Ccomponents%5C%5CCustomButtonsService.js%22%29%3B%0A%20%20%20var%20url%20%3D%20Services.io.newFileURI%28dir%29.spec%2C%20cbs%20%3D%20%7B%7D%3B%0A%20%20%20Services.scriptloader.loadSubScript%28url%2C%20cbs%29%3B%0A%20%20%20var%20AO%20%3D%20new%20cbs.AppObject%28%29%2C%20btn%20%3D%20AO.getButton%28_id%29%3B%0A%0A%20%20%20self.setAttribute%28%22Help%22%2C%20text%29%3B%0A%20%20%20btn.setAttribute%28%22Help%22%2C%20text%29%3B%0A%20%20%20AO.overlay.saveOverlayToProfile%28%29%3B%20%20%20%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%27%u0421%u043F%u0440%u0430%u0432%u043A%u0430%27%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u0441%20%u0442%u0435%u043A%u0441%u0442%u0430%u043C%u0438%20%u0434%u043B%u044F%20%u0430%u0432%u0442%u043E%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%20..........%0Afunction%20getArray%28%29%20%7B%0A%20%20%20return%20%28custombutton.buttonGetHelp%28self%29%29.toLowerCase%28%29.split%28%22%5Cn%22%29.filter%28el%3D%3E%20/%5CS/.test%28el%29%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20false%20..........%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20var%20el%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20try%20%7B%20return%20el.value.substring%28el.selectionStart%2C%20el.selectionEnd%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29%3B%0A%20%20%20return%20%28sel%20%3D%3D%20%27%27%29%20%3F%20false%20%3A%20sel.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
bunda1 > 02-02-2012 20:47:27 |
Переключить джетпак( Firefox 7+ ) от 29.07.2013. ЛКМ => Включить / выключить джетпак. СКМ => CB меню, ПКМ => Открыть меню с джетпаками. Код кнопки и код для инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAADAwMAAQMEBgEDBQoBAwUIAQUHCwEDBQcAAAABAAAAAQEEBwkBBAYKAQMFCQEDBQgAAAECAAAAAgAAAAEAAAABAAAAAAwOEAUQdam9E5TV6BOPzt8Si8jfBBsnLwAAAAUAAAAABjFHUROT1OoTj87dEo3M4wMbJzQAAAAAAAECCQAAAAQAAAABAAQGCRGY1uAXvf//Fr3//xKc29AABAYAAAMFBAAAAAADGCIXFLH48RW6//8Vt///BCU1OwAAAAAAAwQEAAAAAAAAAAAABAUJDpTN2w+2/v8Osvj9Eanp6AIWHhcAAAAAAAAAAAUwQTkSt/3/ErP5+xK0+v8DJDI7AAAAAAACAgMAAQICAAAAAAADBQkPodbgINL//x/H/PwOwP//DJTIwwU9U0YGSGFVDaXf3A++//8Pufr8D7v+/wQuPj4CHCYoAh4oKQAAAAAAAAABAAYICwxqjJUUVGtdJ3aSiCzG+/oKxP//Dsj//w3I//8Nwv7+DL39/wy+/f8Mvv3/C6vk4A26+PsNv/7/BU9oZAAAAAAAAAAAAAAAAAACAwMAAAAAFm2JgBDN//8Jvff5CsD6/ArB/P0Kwv7/CsL+/wrC/v8IxP//CsD7+wnJ//8Io9XZAQMEBAAAAAAAAgIDAQkMDAEAAAACQFJGB9D//wfE+/0Hxv7/B8b+/wfG/v8Hxv7/B8b+/w7O//8EyP39DNX//x6nzM4AAAAAAAEBAQAEBQIAAQICAAAAAAV6mpEH1f//B8j8/AfK//8Hyv//B8r//wfK//8Fyv//H6XJwDK94+kxvuXoDj5LQwAAAAABBwgMEoOirhFxi34Ujq6lG9L//xrO//8azv//Gs7//xrO//8bzv//G87//RvP//8FKTM6BAUEBQMLDg4AAAAAAAAAAQEEBQklstXgLub//yzZ/f0r0P79MNH//zDR//8w0f//L9H//yvQ/v0r0P/7LND//worND0AAAAAAQMDBAACAgIAAAAAAQgKB0m31t1f4P//XNn9/Vvd//9H1//+Rdb//0TW//9K2P/+YN7+/2Dd//5b2v7/DioyOAAAAAABAwMDAAAAAAAAAAAAAQEAFCUqLRwwNj4aLDA6HTU9PFLF5t9b3f//XeH//0isycAZKS4wHC80PhotMzkDBwgHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQICAgAAAAAYLTQybtv8/23b+/tv4P//YsTi6QcNDxAAAAAAAAEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECAgICBAUFAAAAABgnLSmV6Pr6i+r//5Hx//+Fzd7fBQkMDAAAAAEBAwMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQECAAAAAEhja2SUx9ngjsDR1TJFTEQAAAAAAQICAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAAAAAAMEBQYDAwQEAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%20%u043E%u0442%2029.07.2013.%20................................%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%0A%20%20%20%20%20//%20%u041B%u041A%u041C%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0430%u0435%u0442%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u044B%u0439%20%u0432%20%27about%3Aconfig%27....%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21cbu.isPref%28%20jetName%20%29%20%29%20%7B%20%20%20//%20%u0435%u0441%u043B%u0438%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%20%u0434%u043B%u044F%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%u043D%u0435%20%u0443%u043A%u0430%u0437%u0430%u043D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%20button.image%2C%20button.label%2C%20%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u0435%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%20%u0434%u043B%u044F%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20button.toggle%20%3D%20false%2C%20jetpacksName%20%3D%20aPrefs.getValue%28%20jetName%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20AddonManager.getAddonsByTypes%28%5B%22extension%22%5D%2C%20function%28addons%29%20%7B%20%20//%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20addons.forEach%28function%28addon%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20addons%5Bi%5D.name%20%3D%3D%20jetpacksName%20%29%20%7B%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%20addons%5Bi%5D.userDisabled%20%3D%20%21addons%5Bi%5D.userDisabled%3B%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%20cbu.setPrefs%28%20jet%2C%20%21addons%5Bi%5D.userDisabled%20%29%3B%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%20button.toggle%20%3D%20true%3B%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%7D%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%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20button.toggle%20%3D%3D%20false%20%29%20%7B%20%20//%20%u0435%u0441%u043B%u0438%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%20%u0434%u043B%u044F%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20button.label%2C%20%22%u0414%u0436%u0435%u0442%u043F%u0430%u043A%20%u0434%u043B%u044F%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%29%3B%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u0421%u041A%u041C%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u0443%u044E%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u0443%u044E%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%20....%20%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20gShowPopup%28this%29%20%7D%3B%20%20%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20%20%20//%20%u041F%u041A%u041C%20%u0441%u043E%u0437%u0434%u0430%u0451%u0442%20%u0438%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u043C%u0435%u043D%u044E%20%u0441%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%u0430%u043C%u0438%20....%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20var%20node%20%3D%20document.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20node%20%29%20node.parentNode.removeChild%28%20node%20%29%3B%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0441%u0442%u0430%u0440%u043E%u0435%20%u043C%u0435%u043D%u044E%0A%0A%20%20%20%20%20%20%20%20%20%20var%20menuPopup%20%3D%20document.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u043E%u0432%u043E%u0435%20%u043C%u0435%u043D%u044E%0A%20%20%20%20%20%20%20%20%20%20menuPopup.id%20%3D%20this.id%20+%20%22-menuPopup%22%3B%0A%20%20%20%20%20%20%20%20%20%20AddonManager.getAddonsByTypes%28%5B%22extension%22%5D%2C%20function%28addons%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20addons.forEach%28function%28addon%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20addons%5Bi%5D.operationsRequiringRestart%20%3E%200%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%22label%22%2C%20addons%5Bi%5D.name%20%29%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%22image%22%2C%20addons%5Bi%5D.iconURL%20%7C%7C%20addons%5Bi%5D.icon64URL%20%7C%7C%20%22chrome%3A//mozapps/skin/extensions/extensionGeneric-16.png%22%29%3B%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20addons%5Bi%5D.name%20%3D%3D%20aPrefs.getValue%28%20jetName%2C%200%20%29%20%29%20mItem.setAttribute%28%27style%27%2C%20%27color%3A%20red%3B%20font-weight%3A%20bold%3B%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20mItem.addEventListener%28%27click%27%2C%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20function%20%28e%29%20%7B%20%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%20aPrefs.setValue%28%20jetName%2C%20addons%5Bi%5D.name%20%29%3B%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%20cbu.setPrefs%28%20jet%2C%20addons%5Bi%5D.isActive%20%29%3B%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%20setImage%28%20this.image%20%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28mItem%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%29%3B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%0A%7D%3B%0A%0A%0A//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20................................%0Avar%20button%20%3D%20this%3B%0Avar%20aPrefs%20%3D%20Application.prefs%3B%0Avar%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%0Avar%20num%20%3D%20_id.replace%28/custombuttons-button/g%2C%20%22%22%29%3B%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u0438%u043D%u0434%u0438%u0432%u0438%u0434%u0443%u0430%u043B%u044C%u043D%u044B%u0435%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u0434%u043B%u044F%20%27about%3Aconfig%27%20%0Avar%20jet%20%3D%20%22CB%22%20+%20num%20+%20%22.toggleJetpacks%22%3B%20%0Avar%20jetName%20%3D%20%22CB%22%20+%20num%20+%20%22.toggleJetpacks.name%22%3B%20%0Aif%20%28%20%21cbu.isPref%28%20jet%20%29%20%29%20cbu.setPrefs%28%20jet%2C%20true%20%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onmouseover%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0438%20%u043E%u0431%u0440%u0435%u0437%u0430%u0442%u044C%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0443%20....%0A%20%20%20%20%20var%20val%20%3D%20aPrefs.getValue%28%20jetName%2C%200%29%3B%0A%20%20%20%20%20val%20%3D%20%28%20val%20%3D%3D%200%20%29%20%3F%20%22%u043D%u0435%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043E%22%20%3A%20val%3B%0A%20%20%20%20%20var%20jetpacks%20%3D%20val.substring%280%2C50%29%20+%20%28%20%28val.length%20%3E%2050%29%20%3F%20%27....%27%20%3A%20%22%22%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20%20%20this.tooltipText%20%3D%20%22%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%3A%20%22%20+%20jetpacks%20+%20%20%22%5Cn%u041B%3A%20B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20-%20%u0432%u044B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%5Cn%u0421%3A%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%u0430%u043C%u0438%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%7D%3B%0A%0A%0A//%20%u0417%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043D%u0430%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0430%u0435%u043C%u043E%u0433%u043E%20%u0434%u0436%u0435%u0442%u043F%u0430%u043A%u0430%20................................%0Afunction%20setImage%28%20image%20%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20var%20link%20%3D%20custombuttons.makeButtonLink%28%22edit%22%2C%20_id%20%29%3B%0A%20%20%20var%20param%20%3D%20custombuttons.cbService.getButtonParameters%28%20link%20%29.wrappedJSObject%3B%0A%20%20%20param.image%20%3D%20image%3B%0A%20%20%20custombuttons.cbService.installButton%28%20param%20%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20................................%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20%20cbu.getPrefs%28%20jet%20%29%20%0A%20%20%20%20%3F%20button.style.filter%20%3D%20%27%27%20%20%20%20%0A%20%20%20%20%3A%20button.style.filter%20%3D%20%27url%28%22chrome%3A//mozapps/skin/extensions/extensions.svg%23greyscale%22%29%27%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28%20jet%2C%20toggleImage%2C%20false%20%29%3B%0AaddDestructor%28function%28%29%20%7B%20gPrefService.removeObserver%28%20jet%2C%20toggleImage%2C%20false%20%29%20%7D%29%3B%0A%0A%0A//%20%u0418%u043A%u043E%u043D%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043D%u0435%20%u0431%u043E%u043B%u044C%u0448%u0435%2016px%20................................%0Avar%20icon%20%3D%20document.getAnonymousElementByAttribute%28%20this%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0Aicon.style.width%20%3D%20%2216px%22%3B%20icon.style.height%20%3D%20%2216px%22%3B%0Athis.onDestroy%20%3D%20function%20%28%29%20%7B%0A%20%20%20%20%20var%20icon%20%3D%20document.getAnonymousElementByAttribute%28%20this%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20%20%20icon.style.width%20%3D%20%2216px%22%3B%20icon.style.height%20%3D%20%2216px%22%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Переключить джетпак от 29.07.2013. ................................ // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { // ЛКМ переключает джетпак указанный в 'about:config'.... if ( e.button == 0 ) { if ( !cbu.isPref( jetName ) ) { // если джетпак для переключения не указан alertsService.showAlertNotification( button.image, button.label, "Установите джетпак для переключения", false, "", null, ""); return; } button.toggle = false, jetpacksName = aPrefs.getValue( jetName, 0); AddonManager.getAddonsByTypes(["extension"], function(addons) { // переключить джетпак addons.forEach(function(addon, i) { if ( addons[i].name == jetpacksName ) { addons[i].userDisabled = !addons[i].userDisabled; cbu.setPrefs( jet, !addons[i].userDisabled ); button.toggle = true; } }); if ( button.toggle == false ) { // если джетпак для переключения не найден alertsService.showAlertNotification("chrome://global/skin/icons/error-16.png", button.label, "Джетпак для переключения не найден", false, "", null, ""); } }); } // СКМ открывает стандартную контекстную меню кнопки .... if ( e.button == 1 ) { gShowPopup(this) }; // ПКМ создаёт и открывает меню с джетпаками .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); var node = document.getElementById(this.id + "-menuPopup"); if ( node ) node.parentNode.removeChild( node ); // удалить старое меню var menuPopup = document.getElementById("mainPopupSet").appendChild(document.createElement("menupopup")); // создать новое меню menuPopup.id = this.id + "-menuPopup"; AddonManager.getAddonsByTypes(["extension"], function(addons) { addons.forEach(function(addon, i) { if ( addons[i].operationsRequiringRestart > 0 ) return; var mItem = document.createElement("menuitem"); mItem.setAttribute("label", addons[i].name ); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", addons[i].iconURL || addons[i].icon64URL || "chrome://mozapps/skin/extensions/extensionGeneric-16.png"); if ( addons[i].name == aPrefs.getValue( jetName, 0 ) ) mItem.setAttribute('style', 'color: red; font-weight: bold;'); mItem.addEventListener('click', function (e) { aPrefs.setValue( jetName, addons[i].name ); cbu.setPrefs( jet, addons[i].isActive ); setImage( this.image ); } ); menuPopup.appendChild(mItem); }); }); menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); } }; // Объявляем переменные для этой вкладки ................................ var button = this; var aPrefs = Application.prefs; var alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService); var num = _id.replace(/custombuttons-button/g, ""); // создать индивидуальные настройки для 'about:config' var jet = "CB" + num + ".toggleJetpacks"; var jetName = "CB" + num + ".toggleJetpacks.name"; if ( !cbu.isPref( jet ) ) cbu.setPrefs( jet, true ); // Подсказка для кнопки ................................ this.onmouseover = function() { // получить и обрезать подсказку .... var val = aPrefs.getValue( jetName, 0); val = ( val == 0 ) ? "не установлено" : val; var jetpacks = val.substring(0,50) + ( (val.length > 50) ? '....' : "" ); this.tooltipText = "Переключить: " + jetpacks + "\nЛ: Bключить - выключить \nС: CB Меню \nП: Открыть меню с джетпаками"; }; // Заменить иконку кнопки на иконку переключаемого джетпака ................................ function setImage( image ) { var link = custombuttons.makeButtonLink("edit", _id ); var param = custombuttons.cbService.getButtonParameters( link ).wrappedJSObject; param.image = image; custombuttons.cbService.installButton( param ); }; // Установить нужную иконку кнопки при старте браузера или при изменениях настроек ................................ function toggleImage() { cbu.getPrefs( jet ) ? button.style.filter = '' : button.style.filter = 'url("chrome://mozapps/skin/extensions/extensions.svg#greyscale")'; }; toggleImage(); gPrefService.addObserver( jet, toggleImage, false ); addDestructor(function() { gPrefService.removeObserver( jet, toggleImage, false ) }); // Иконка кнопки не больше 16px ................................ var icon = document.getAnonymousElementByAttribute( this, "class", "toolbarbutton-icon"); icon.style.width = "16px"; icon.style.height = "16px"; this.onDestroy = function () { var icon = document.getAnonymousElementByAttribute( this, "class", "toolbarbutton-icon"); icon.style.width = "16px"; icon.style.height = "16px"; }; |
bunda1 > 05-02-2012 17:58:53 |
Red Links( Firefox24+ ) от 26.08.2016. При наведении курсором на кнопку в сплывающей подсказке(тултипе) отражаются настройки кнопки: Настройки кнопки в меню кнопки: ЛКМ => Включить - выключить, ПКМ => Mеню кнопки, Двойной ПКМ => CB меню Код кнопки и инициализация: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ERed%20links%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAASw8NZZYdGuubHhv/mh4b/poeG/+aHhv/mh4b/5oeG/+aHhv/mh4b/5oeG/+aHhv/mh4b/pseG/+WHRrrSw8NZQAAAABODw1oqSEd/58fG/6eHxv/nh8b/54fG/+eHxv/nh8b/54fG/+dHxv/nh8b/54fG/+eHxv/nh8b/54fG/+fHxv+qSEd/04PDWeeHhvjpB8c/6EfHP2iHxz/oh8c/6IfHP+iHxv/oh8b/6UgHf+lIB3/ox8c/6IfG/+iHxz/oh8c/6IfHP+hHxz9pB8c/54eG+OnIBz9ph8c/6cfHP+nHxz/px8c/6YfHP+pIB3/qSMg/50dGv+cHBn/pyIf/6ohHf+mHxz/px8c/6cfHP+nHxz/ph8c/6cgHP2rIBz+qyAc/6sgHP+rIBz/qiAc/68iHv+iHhr/cwMC/2sCAv9rAwP/bQEA/5obGP+vIh7/qiAc/6sgHP+rIBz/qyAc/6sgHP6vIBz/ryAc/68gHP+uIBz/syId/50bGP9pAAD/oGFg/+LMzP/kz8//p2xr/2gBAP+hHBn/tCMe/64gHP+vIBz/ryAc/68gHP+zIRz/syEc/7IhHP+1Ih3/qR8b/2cAAP+yfn3///////v8/P/7+/v//////7uMjP9rAAD/rB8a/7YjHf+yIRz/syEc/7MhHP+4IR3/uCEd/7chHf+/JiL/hwYE/51fX///////9fLy/6xPTf+iQ0L/7+np//////+2h4f/dwQD/7YiHv+3IR3/uCEd/7ghHf+8Ih3/vCId/7siHf/BJSD/hAkH/9jBwf//////mUlI/5MHA/9rAAD/iDc2/+/j4///////oWVk/6MPCv/IKiX/uiId/7wiHf/AIh3/wCId/78iHf/HJSD/lA4L/9XBwf//////kkRD/14AAP+8j47/3sXF/5xVVf/Ts7L/izc3/3kAAP+cEA3/xSQe/8AjHv/GIh3/xiId/8YiHf/JJiH/uBIO/6xkY///////+PHx/4w6Of/Ts7L//////+bT0/91Ghn/awsK/9nBwf+0ior/nAoG/84lIP/LIx3/yyMd/8sjHf/KIx3/0SYg/7IQC/+zfX3///////Pq6f+bVFP/38nJ///////p2dn/jTw7/+3e3v//////uomJ/6kMB//QIx3/0CMd/9AjHf/QIx3/zyMd/9gnIf+mCQX/q3l5///////QsLD/cQ4N/+LNzf//////487O/55XVv/y6Of//////8WVlP/VIx3+1SMd/9UjHf/VIx3/1SMd/9QkHf/bJh//qw4J/7xkYv+MNTT/bQYF/4o2Nv/dxMT//////658fP+CKir/+PLy//////7cIxz92iMc/9sjHP/bIxz/2yMc/9sjHP/ZIxz/5igg/8ETDv9gAAD/2r29//fy8f+aU1L/t3x8/7w7N/9mAAD/rHp6//////3aIhvj4SQc/98jHP3gIxz/4CMc/+AjHP/gIxz/3yMc/+EoIf+EBwX/rX5+///////u6un/njU0/4IAAP95ISD96tnZ//T39+NxEg5o9yce/+ckHP7kJBz/5SQc/+UkHP/lJBz/5CQc/+klHf/dIxz/cgAA/616ev//////8+3u/69/f//l09P+/////318fGcBAAAAcRINZeQjG+vsJBz/6iQc/uskHP/rJBz/6yQc/+kkHP/yJh7/0iEb/2cAAP+3hIT//////v/////39/fre3p6ZQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%0A%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041B%u041A%u041C%20....%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%0A%20%20%20%20%20%20%20%20addColorForLinks%28%20cbu.setPrefs%28%22CB.RedLinks%22%2C%20%21cbu.getPrefs%28%22CB.RedLinks%22%29%29%20%29%3B%0A%20%20%20%20%20%0A%20%20%20//%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20....%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20menu.showPopup%28%20this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0432%20about%3Aconfig%20%u0435%u0441%u043B%u0438%20%u043E%u043D%u0438%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%20..............%0Acbu.isPref%28%22CB.RedLinks%22%2C%20false%29%3B%0Acbu.isPref%28%22CB.RedLinks.internalColor%22%2C%20%22red%22%29%3B%0Acbu.isPref%28%22CB.RedLinks.externalColor%22%2C%20%22green%22%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%0A%20%20%20this.tooltipText%20%3D%20self.label%20+%20%22%5Cn%u041B%3A%20%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20-%20%u0432%u044B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%5Cn%u041F%3A%20M%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%20%5Cn%u0414%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%22%20+%20%22%5Cn%5Cn%22%20+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u0426%u0432%u0435%u0442%20%u0432%u043D%u0435%u0448%u043D%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%3A%20%22%20+%20cbu.getPrefs%28%22CB.RedLinks.externalColor%22%29%20+%20%22%5Cn%22%20+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u0426%u0432%u0435%u0442%20%u0432%u043D%u0443%u0442%u0440%u0435%u043D%u043D%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%3A%20%22%20+%20cbu.getPrefs%28%22CB.RedLinks.internalColor%22%29%3B%0A%7D%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%u043C%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Avar%20array%20%3D%20%5B%0A%20%20%20%7B%20label%3A%20%27%u0426%u0432%u0435%u0442%20%u0432%u043D%u0435%u0448%u043D%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%3A%20%27%2C%20value%3A%20%27CB.RedLinks.externalColor%27%2C%20default%3A%20%27red%27%7D%2C%0A%20%20%20%7B%20label%3A%20%27%u0426%u0432%u0435%u0442%20%u0432%u043D%u0443%u0442%u0440%u0435%u043D%u043D%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%3A%20%27%2C%20value%3A%20%27CB.RedLinks.internalColor%27%2C%20default%3A%20%27green%27%7D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0Avar%20menu%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28m%3D%3E%20%7B%0A%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m.label%20+%20cbu.getPrefs%28m.value%29%29%3B%20%20%20%20%20%0A%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20var%20color%20%3D%20custombuttons.promptBox%28mItem.label%2C%20%27%u041E%u0442%u043C%u0435%u043D%u0430%20%u0432%u0435%u0440%u043D%u0451%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%27%29%5B1%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20m.default%3B%0A%20%20%20%20%20%20cbu.setPrefs%28m.value%2C%20color%29%3B%0A%20%20%20%20%20%20mItem.label%20%3D%20m.label%20+%20color%3B%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20addColorForLinks%28%29%3B%0A%20%20%20%7D%0A%20%20%20menu.appendChild%28mItem%29%3B%0A%7D%29%3B%0Amenu.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Avar%20s%20%3D%20%22CB.RedLinks%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29.%0A%20%20%20src%20%3D%20%21cbu.getPrefs%28s%29%0A%20%20%20%3F%20self.image%20%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw1LZR0aluseG5v/Hhua/h4bmv8eG5r/Hhua/x4bmv8eG5r/Hhua/x4bmv8eG5r/Hhua/h4bm/8dGpbrDw1LZQAAAAAPDU5oIR2p/x8bn/4fG57/Hxue/x8bnv8fG57/Hxue/x8bnv8fG53/Hxue/x8bnv8fG57/Hxue/x8bnv8fG5/+IR2p/w8NTmceG57jHxyk/x8cof0fHKL/Hxyi/x8cov8fG6L/Hxui/yAdpf8gHaX/Hxyj/x8bov8fHKL/Hxyi/x8cov8fHKH9Hxyk/x4bnuMgHKf9Hxym/x8cp/8fHKf/Hxyn/x8cpv8gHan/IyCp/x0anf8cGZz/Ih+n/yEdqv8fHKb/Hxyn/x8cp/8fHKf/Hxym/yAcp/0gHKv+IByr/yAcq/8gHKv/IByq/yIer/8eGqL/AwJz/wICa/8DA2v/AQBt/xsYmv8iHq//IByq/yAcq/8gHKv/IByr/yAcq/4gHK//IByv/yAcr/8gHK7/Ih2z/xsYnf8AAGn/YWCg/8zM4v/Pz+T/bGun/wEAaP8cGaH/Ix60/yAcrv8gHK//IByv/yAcr/8hHLP/IRyz/yEcsv8iHbX/Hxup/wAAZ/9+fbL///////z8+//7+/v//////4yMu/8AAGv/Hxqs/yMdtv8hHLL/IRyz/yEcs/8hHbj/IR24/yEdt/8mIr//BgSH/19fnf//////8vL1/09NrP9DQqL/6env//////+Hh7b/BAN3/yIetv8hHbf/IR24/yEduP8iHbz/Ih28/yIdu/8lIMH/CQeE/8HB2P//////SUiZ/wcDk/8AAGv/NzaI/+Pj7///////ZWSh/w8Ko/8qJcj/Ih26/yIdvP8iHcD/Ih3A/yIdv/8lIMf/DguU/8HB1f//////REOS/wAAXv+Pjrz/xcXe/1VVnP+zstP/NzeL/wAAef8QDZz/JB7F/yMewP8iHcb/Ih3G/yIdxv8mIcn/Eg64/2RjrP//////8fH4/zo5jP+zstP//////9PT5v8aGXX/Cwpr/8HB2f+KirT/Cgac/yUgzv8jHcv/Ix3L/yMdy/8jHcr/JiDR/xALsv99fbP//////+rp8/9UU5v/ycnf///////Z2en/PDuN/97e7f//////iYm6/wwHqf8jHdD/Ix3Q/yMd0P8jHdD/Ix3P/ych2P8JBab/eXmr//////+wsND/Dg1x/83N4v//////zs7j/1dWnv/o5/L//////5WUxf8jHdX+Ix3V/yMd1f8jHdX/Ix3V/yQd1P8mH9v/Dgmr/2RivP81NIz/BgVt/zY2iv/ExN3//////3x8rv8qKoL/8vL4//////4jHNz9Ixza/yMc2/8jHNv/Ixzb/yMc2/8jHNn/KCDm/xMOwf8AAGD/vb3a//Lx9/9TUpr/fHy3/zs3vP8AAGb/enqs//////0iG9rjJBzh/yMc3/0jHOD/Ixzg/yMc4P8jHOD/Ixzf/ygh4f8HBYT/fn6t///////q6e7/NTSe/wAAgv8hIHn92dnq//f39OMSDnFoJx73/yQc5/4kHOT/JBzl/yQc5f8kHOX/JBzk/yUd6f8jHN3/AABy/3p6rf//////7e7z/39/r//T0+X+/////3x8fWcAAAEAEg1xZSMb5OskHOz/JBzq/iQc6/8kHOv/JBzr/yQc6f8mHvL/IRvS/wAAZ/+EhLf//////v/////39/frenp7ZQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%0A%0A//%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u0446%u0432%u0435%u0442%20%u0432%u043D%u0443%u0442%u0440%u0435%u043D%u043D%u0438%u0445%20%u0438%20%u0432%u043D%u0435%u0448%u043D%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20..........%0Afunction%20addColorForLinks%28%29%20%7B%0A%20%20%20var%20currHost%20%3D%20gBrowser.currentURI.host%3B%0A%20%20%20var%20run%20%3D%20cbu.getPrefs%28%22CB.RedLinks%22%29%3B%0A%0A%20%20%20function%20colorizeLinks%28win%29%20%7B%0A%20%20%20%20%20%20var%20doc%20%3D%20win.document%2C%20links%20%3D%20doc.links%3B%0A%20%20%20%20%20%20if%20%28%20%28run%20%7C%7C%20%22flag%22%20in%20doc%29%20%26%26%20links%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20run%20%3F%20doc.flag%20%3D%20true%20%3A%20delete%20doc.flag%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20Array.forEach%28links%2C%20function%28link%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%22previousColor%22%20in%20link%29%20link.style.color%20%3D%20link.previousColor%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20link.previousColor%20%3D%20link.style.color%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20run%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20link.style.color%20%3D%20%28link.host%20%3D%3D%20currHost%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20cbu.getPrefs%28%22CB.RedLinks.internalColor%22%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20cbu.getPrefs%28%22CB.RedLinks.externalColor%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20else%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%22previousColor%22%20in%20link%29%20delete%20link.previousColor%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20win.frames.length%3B%20i++%29%20colorizeLinks%28win.frames%5Bi%5D%29%3B%0A%20%20%20%7D%3B%0A%20%20%20colorizeLinks%28content%29%3B%20%20%20%0A%7D%3B%0A%0A%0A//%20%u041E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0441%u043B%u0435%u0434%u0438%u0442%20%u0437%u0430%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u043E%u0439%20%u0438%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%u043C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20..............%0Avar%20listener%20%3D%20%7B%20%0A%20%20%20onStateChange%3A%20function%28wpr%2C%20req%2C%20flag%29%20%7B%0A%20%20%20%20%20%20if%20%28%20gBrowser.currentURI.spec.startsWith%28%22http%22%29%20%26%26%20flag%20%26%20Ci.nsIWebProgressListener.STATE_STOP%20%29%0A%20%20%20%20%20%20%20%20%20%20%20addColorForLinks%28%29%3B%0A%20%20%20%7D%2C%0A%20%20%20%20%20%20%0A%20%20%20onLocationChange%3A%20function%28wpr%2C%20req%29%20%7B%0A%20%20%20%20%20%20if%20%28%20gBrowser.currentURI.spec.startsWith%28%22http%22%29%20%26%26%20%21req%20%26%26%20wpr.document.readyState%20%3D%3D%20%22complete%22%29%0A%20%20%20%20%20%20%20%20%20%20%20addColorForLinks%28%29%3B%0A%20%20%20%7D%20%20%20%20%20%20%20%0A%7D%3B%0AgBrowser.addProgressListener%28listener%29%3B%0AaddDestructor%28function%28%29%20gBrowser.removeProgressListener%28listener%29%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки .............. this.onclick =e=> { // действие при клике ЛКМ .... if ( e.button == 0 ) addColorForLinks( cbu.setPrefs("CB.RedLinks", !cbu.getPrefs("CB.RedLinks")) ); // действие при клике ПКМ .... if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); menu.showPopup( this, -1, -1, "popup", "bottomleft", "topleft"); } }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() }; // Создать настройки кнопки в about:config если они не существует .............. cbu.isPref("CB.RedLinks", false); cbu.isPref("CB.RedLinks.internalColor", "red"); cbu.isPref("CB.RedLinks.externalColor", "green"); // Подсказка для кнопки .............. this.onmouseover =()=> { this.tooltipText = self.label + "\nЛ: Включить - выключить \nП: Mеню кнопки \nДП: CB меню" + "\n\n" + "Цвет внешних ссылок: " + cbu.getPrefs("CB.RedLinks.externalColor") + "\n" + "Цвет внутренних ссылок: " + cbu.getPrefs("CB.RedLinks.internalColor"); }; // Создать меню с настройками для кнопки .............. var array = [ { label: 'Цвет внешних ссылок: ', value: 'CB.RedLinks.externalColor', default: 'red'}, { label: 'Цвет внутренних ссылок: ', value: 'CB.RedLinks.internalColor', default: 'green'}, ] var menu = self.appendChild(document.createElement("menupopup")); array.forEach(m=> { var mItem = document.createElement("menuitem"); mItem.setAttribute("label", m.label + cbu.getPrefs(m.value)); mItem.onclick =()=> { var color = custombuttons.promptBox(mItem.label, 'Отмена вернёт значение по умолчанию')[1] || m.default; cbu.setPrefs(m.value, color); mItem.label = m.label + color; addColorForLinks(); } menu.appendChild(mItem); }); menu.setAttribute("onclick", "event.stopPropagation()"); // Установить нужную иконку кнопки при старте браузера или при изменениях настроек кнопки .............. var s = "CB.RedLinks"; function toggleImage() { self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon"). src = !cbu.getPrefs(s) ? self.image : "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw1LZR0aluseG5v/Hhua/h4bmv8eG5r/Hhua/x4bmv8eG5r/Hhua/x4bmv8eG5r/Hhua/h4bm/8dGpbrDw1LZQAAAAAPDU5oIR2p/x8bn/4fG57/Hxue/x8bnv8fG57/Hxue/x8bnv8fG53/Hxue/x8bnv8fG57/Hxue/x8bnv8fG5/+IR2p/w8NTmceG57jHxyk/x8cof0fHKL/Hxyi/x8cov8fG6L/Hxui/yAdpf8gHaX/Hxyj/x8bov8fHKL/Hxyi/x8cov8fHKH9Hxyk/x4bnuMgHKf9Hxym/x8cp/8fHKf/Hxyn/x8cpv8gHan/IyCp/x0anf8cGZz/Ih+n/yEdqv8fHKb/Hxyn/x8cp/8fHKf/Hxym/yAcp/0gHKv+IByr/yAcq/8gHKv/IByq/yIer/8eGqL/AwJz/wICa/8DA2v/AQBt/xsYmv8iHq//IByq/yAcq/8gHKv/IByr/yAcq/4gHK//IByv/yAcr/8gHK7/Ih2z/xsYnf8AAGn/YWCg/8zM4v/Pz+T/bGun/wEAaP8cGaH/Ix60/yAcrv8gHK//IByv/yAcr/8hHLP/IRyz/yEcsv8iHbX/Hxup/wAAZ/9+fbL///////z8+//7+/v//////4yMu/8AAGv/Hxqs/yMdtv8hHLL/IRyz/yEcs/8hHbj/IR24/yEdt/8mIr//BgSH/19fnf//////8vL1/09NrP9DQqL/6env//////+Hh7b/BAN3/yIetv8hHbf/IR24/yEduP8iHbz/Ih28/yIdu/8lIMH/CQeE/8HB2P//////SUiZ/wcDk/8AAGv/NzaI/+Pj7///////ZWSh/w8Ko/8qJcj/Ih26/yIdvP8iHcD/Ih3A/yIdv/8lIMf/DguU/8HB1f//////REOS/wAAXv+Pjrz/xcXe/1VVnP+zstP/NzeL/wAAef8QDZz/JB7F/yMewP8iHcb/Ih3G/yIdxv8mIcn/Eg64/2RjrP//////8fH4/zo5jP+zstP//////9PT5v8aGXX/Cwpr/8HB2f+KirT/Cgac/yUgzv8jHcv/Ix3L/yMdy/8jHcr/JiDR/xALsv99fbP//////+rp8/9UU5v/ycnf///////Z2en/PDuN/97e7f//////iYm6/wwHqf8jHdD/Ix3Q/yMd0P8jHdD/Ix3P/ych2P8JBab/eXmr//////+wsND/Dg1x/83N4v//////zs7j/1dWnv/o5/L//////5WUxf8jHdX+Ix3V/yMd1f8jHdX/Ix3V/yQd1P8mH9v/Dgmr/2RivP81NIz/BgVt/zY2iv/ExN3//////3x8rv8qKoL/8vL4//////4jHNz9Ixza/yMc2/8jHNv/Ixzb/yMc2/8jHNn/KCDm/xMOwf8AAGD/vb3a//Lx9/9TUpr/fHy3/zs3vP8AAGb/enqs//////0iG9rjJBzh/yMc3/0jHOD/Ixzg/yMc4P8jHOD/Ixzf/ygh4f8HBYT/fn6t///////q6e7/NTSe/wAAgv8hIHn92dnq//f39OMSDnFoJx73/yQc5/4kHOT/JBzl/yQc5f8kHOX/JBzk/yUd6f8jHN3/AABy/3p6rf//////7e7z/39/r//T0+X+/////3x8fWcAAAEAEg1xZSMb5OskHOz/JBzq/iQc6/8kHOv/JBzr/yQc6f8mHvL/IRvS/wAAZ/+EhLf//////v/////39/frenp7ZQEBAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage) ); // Изменить цвет внутренних и внешних ссылок на текущей странице .......... function addColorForLinks() { var currHost = gBrowser.currentURI.host; var run = cbu.getPrefs("CB.RedLinks"); function colorizeLinks(win) { var doc = win.document, links = doc.links; if ( (run || "flag" in doc) && links ) { run ? doc.flag = true : delete doc.flag; Array.forEach(links, function(link) { if ("previousColor" in link) link.style.color = link.previousColor; link.previousColor = link.style.color; if ( run ) { link.style.color = (link.host == currHost) ? cbu.getPrefs("CB.RedLinks.internalColor") : cbu.getPrefs("CB.RedLinks.externalColor"); } else if ("previousColor" in link) delete link.previousColor; }) } for (var i = 0; i < win.frames.length; i++) colorizeLinks(win.frames[i]); }; colorizeLinks(content); }; // Обработчик следит за загрузкой и переключением вкладки .............. var listener = { onStateChange: function(wpr, req, flag) { if ( gBrowser.currentURI.spec.startsWith("http") && flag & Ci.nsIWebProgressListener.STATE_STOP ) addColorForLinks(); }, onLocationChange: function(wpr, req) { if ( gBrowser.currentURI.spec.startsWith("http") && !req && wpr.document.readyState == "complete") addColorForLinks(); } }; gBrowser.addProgressListener(listener); addDestructor(function() gBrowser.removeProgressListener(listener)); |
bunda1 > 02-04-2012 21:04:01 |
Переключать проигрывания анимации(gif)( Firefox24+ ) от 08.06.2016. ЛКМ => Включить или выключить gif-анимацию. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u0430%u043D%u0438%u043C%u0430%u0446%u0438%u044E%28gif%29%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%u0445%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAADAFBMVEUAAADT09PU1NTPz8+d3X45whyHh4fOzs6EhITR0dHS0tKDg4NB8Rs19AyC52s14RCBgYHS0tKCgoI1zRSAgIDS0tI62RkzuRd+fn7Q0NA5yhorsBB9fX061hkusxIkqQlWVlaWlpa/v786yhsrrxAjnwpjY2OMjIyNjY2SkpKTk5OTk5OTk5OTk5Nbo008nCghnQkhnQg2miJTm0WNjY2NjY02ow3o6OjMzMzHx8fJycnDw8NM+SXR0dEpoxDFxcXS0tLLy8vIyMjQ0NA5xRxN+yU4ux7CwsI72RnKyspSvR7BwcFI9iIqpBGG6HBJ+x+Y3Yk75RbAwMDNzc1d+TU5wx096hc/tRs+3BOGy3cyrRpB4h1HnjRc+zTT09MppBFw8VNj5EZPvBqd3X5myFQspxQ74hfGxsZPtR4jjwckkAfPz89S9iyd5IxU2DdR1zbExMRQ0jY62Rk4sh8smQqGhoY9+BJLtDRL+SYkkAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACU2kAXAAABAHRSTlMA19fn/v0e5zfnrTf9UPKjN9I35jfn/eY35/ajN/bmUAE4/vnpfQMTZpKkrLa80ef4996ycif//////////////////////////////////////////////////////////////////////////////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8GAuXAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAOpJREFUGJU9zGdTAjEQgOGNir2iYu8KgoA95fodHUQ6KmIX7L3/e/fU8f2Q7D6TCQA09xFCGuwIaQdoSv53dmgMAtBLxliSneJJDaMNgVGM/Vyq+ge4vtov1NAIArVHds2uvmjophE/pb/t7L5nju9aAGvlvFDYLkfT6ehWtw0dCZNncy8PnEduO7sQnJKUOAnfm2bk4MjRg9ArLOu5JEmfRc1y9CMM6BciHBe4C+EaQhiWH/WnuFLU9LeP0TGE8VQstlfZ12S5OjE5BTA9M5vPp85rdUWZm19wA3gWvb4lfyC4vLK6tr6x+Q2vMzR/vIyeZQAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20cbu.setPrefs%28s%2C%20cbu.getPrefs%28s%29%20%3D%3D%20%22normal%22%20%3F%20%22none%22%20%3A%20%22normal%22%29%3B%0A%20%20%20cbu.getPrefs%28s%29%20%3D%3D%20%22normal%22%20%3F%20BrowserReload%28%29%20%3A%20setTimeout%28%28%29%3D%3E%20BrowserStop%28%29%2C%2050%29%3B%0A%7D%3B%0A%0Avar%20s%20%3D%20%22image.animation_mode%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20icon.src%20%3D%20cbu.getPrefs%28s%29%20%3D%3D%20%22normal%22%20%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABblBMVEUAAADq6urr6+vm5ubnuaPgTC2enp7l5eWbm5vo6Ojp6emampr0Zkf2WjjupJPwUjCYmJjp6emZmZnpSSeXl5fp6enoVzjiPx2VlZXn5+fkTi7bNhSUlJTnVjfdORfVLgxtbW2tra3W1tbjUDHaNhTLLQ16enqjo6OkpKSpqamqqqqqqqqqqqqqqqq3dWjBSjLJKwzJKwvARCu1aVqkpKSkpKTORBH////j4+Pe3t7g4ODa2tr7cVLo6OjNNBXc3Nzp6eni4uLf39/n5+fhTi/8clPdSSvZ2dnoWDnh4eHdZi3Y2Nj4bU/ONRbvqJj8bk3ouK3sXT7X19fk5OT7gWLgTS/uYULdTiHtWTHYpJnVPiDoZEbAWEH8gWLq6urONBb1lH7qhW/gYiXnuaPUhnfQOBnrXD3d3d3bYSa7Lgq8Lwrm5ub4d1ntvbLgdV7fc13b29vbcVzoVznZRSfFOQ2dnZ36Yj/LYkv7cVO8MAsi43WXAAAANnRSTlMA19fn/v0e5zfnrTf9UPKjN9I35jfn/eY35/ajN/bmUAE4/vnpfQMTZpKkrLa80ef4996yciec+O5uAAAA5ElEQVR4Xj3M1XLDMBBA0VVTJ2nKzMzMIrPDjGVmZv77rt2Z3oeV9oxGAOBvJoRUuRESAqhO/Xd2aLUD0GvGWIqd4qSWVYPAKMa8Q9c98NZ394Ue7kag7pXdspsfGr7z4af0r63tz/zxQwCwIOflcm4zls3GMg0u1CZtXii+PXEeva+rR2iRMnkSebTt6MGR0ojQJBzndUPK74rhKK0IbeaViCQE7kJ0dCJ0qc/mS0KrGObHV08vQl86Ht/Z3TNUdb9/YBBgaHikVEqfX1xq2ujY+ATA5NT0zOzc/MLi0vLK6tr6L68zNH+FfEIKAAAAAElFTkSuQmCC%22%3B%20%20%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%0A%0A%0A%0A%0A%20%20%20%20%20%20%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация Выделить код Код:this._handleClick =()=> { cbu.setPrefs(s, cbu.getPrefs(s) == "normal" ? "none" : "normal"); cbu.getPrefs(s) == "normal" ? BrowserReload() : setTimeout(()=> BrowserStop(), 50); }; var s = "image.animation_mode"; function toggleImage() { var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon"); icon.src = cbu.getPrefs(s) == "normal" ? self.image : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABblBMVEUAAADq6urr6+vm5ubnuaPgTC2enp7l5eWbm5vo6Ojp6emampr0Zkf2WjjupJPwUjCYmJjp6emZmZnpSSeXl5fp6enoVzjiPx2VlZXn5+fkTi7bNhSUlJTnVjfdORfVLgxtbW2tra3W1tbjUDHaNhTLLQ16enqjo6OkpKSpqamqqqqqqqqqqqqqqqq3dWjBSjLJKwzJKwvARCu1aVqkpKSkpKTORBH////j4+Pe3t7g4ODa2tr7cVLo6OjNNBXc3Nzp6eni4uLf39/n5+fhTi/8clPdSSvZ2dnoWDnh4eHdZi3Y2Nj4bU/ONRbvqJj8bk3ouK3sXT7X19fk5OT7gWLgTS/uYULdTiHtWTHYpJnVPiDoZEbAWEH8gWLq6urONBb1lH7qhW/gYiXnuaPUhnfQOBnrXD3d3d3bYSa7Lgq8Lwrm5ub4d1ntvbLgdV7fc13b29vbcVzoVznZRSfFOQ2dnZ36Yj/LYkv7cVO8MAsi43WXAAAANnRSTlMA19fn/v0e5zfnrTf9UPKjN9I35jfn/eY35/ajN/bmUAE4/vnpfQMTZpKkrLa80ef4996yciec+O5uAAAA5ElEQVR4Xj3M1XLDMBBA0VVTJ2nKzMzMIrPDjGVmZv77rt2Z3oeV9oxGAOBvJoRUuRESAqhO/Xd2aLUD0GvGWIqd4qSWVYPAKMa8Q9c98NZ394Ue7kag7pXdspsfGr7z4af0r63tz/zxQwCwIOflcm4zls3GMg0u1CZtXii+PXEeva+rR2iRMnkSebTt6MGR0ojQJBzndUPK74rhKK0IbeaViCQE7kJ0dCJ0qc/mS0KrGObHV08vQl86Ht/Z3TNUdb9/YBBgaHikVEqfX1xq2ujY+ATA5NT0zOzc/MLi0vLK6tr6L68zNH+FfEIKAAAAAElFTkSuQmCC"; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage) ); |
Indomito > 05-04-2012 23:16:51 |
Password(Firefox,Thunderbird) Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EPassword%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0Athis.tooltipText%20%3D%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043E%u043A%u043D%u043E%20%AB%u0421%u043E%u0445%u0440%u0430%u043D%u0451%u043D%u043D%u044B%u0435%20%u043F%u0430%u0440%u043E%u043B%u0438%BB%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0AopenWindow%28%22Toolkit%3APasswordManager%22%2C%20%22chrome%3A//passwordmgr/content/passwordManager.xul%22%2C%20%22%22%2C%20null%29%3B%0Areturn%3B%0A%0Afunction%20openWindow%28aWindowType%2C%20aURL%2C%20aFeatures%2C%20aParams%29%20%7B%0A%20%20%20%20%3Bvar%20wm%20%3D%20Components.classes%5B%27@mozilla.org/appshell/window-mediator%3B1%27%5D.getService%28Components.interfaces.nsIWindowMediator%29%3B%0A%20%20%20%20%3Bvar%20win%20%3D%20aWindowType%20%3F%20wm.getMostRecentWindow%28aWindowType%29%20%3A%20null%3B%0A%20%20%20%20win%20%3D%20window.openDialog%28aURL%2C%20%22_blank%22%2C%20features%2C%20aParams%29%3B%0A%20%20%20%20if%20%28win%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%22initWithParams%22%20in%20win%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20win.initWithParams%28aParams%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20win.focus%28%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20var%20features%20%3D%20%22resizable%2Cdialog%3Dno%2Ccenterscreen%22%20+%20%28aFeatures%20%21%3D%20%22%22%20%3F%20%22%2C%22%20+%20aFeatures%20%3A%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20var%20parentWindow%20%3D%20this.instantApply%20%7C%7C%20%21window.opener%20%7C%7C%20window.opener.closed%20%3F%20window%20%3A%20window.opener%3B%0A%20%20%20%20%20%20%20%20win%20%3D%20parentWindow.openDialog%28aURL%2C%20%22_blank%22%2C%20features%2C%20aParams%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20win%3B%0A%7D%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код (секция Код) Выделить код Код:/*CODE*/ openWindow("Toolkit:PasswordManager", "chrome://passwordmgr/content/passwordManager.xul", "", null); return; function openWindow(aWindowType, aURL, aFeatures, aParams) { ;var wm = Components.classes['@mozilla.org/appshell/window-mediator;1'].getService(Components.interfaces.nsIWindowMediator); ;var win = aWindowType ? wm.getMostRecentWindow(aWindowType) : null; win = window.openDialog(aURL, "_blank", features, aParams); if (win) { if ("initWithParams" in win) { win.initWithParams(aParams); } win.focus(); } else { var features = "resizable,dialog=no,centerscreen" + (aFeatures != "" ? "," + aFeatures : ""); var parentWindow = this.instantApply || !window.opener || window.opener.closed ? window : window.opener; win = parentWindow.openDialog(aURL, "_blank", features, aParams); } return win; } Код (секция Инициализация) За идею кода спасибо -Infocatcher |
Indomito > 05-04-2012 23:47:38 |
AntiMalware(Firefox) Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EAntiMalware%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Aconst%20cTitle%20%3D%20%22%u041E%u0448%u0438%u0431%u043A%u0430%22%0Aconst%20cMsg%20%3D%20%22%u041D%u0435%u0432%u0435%u0440%u043D%u044B%u0439%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u043B%u0438%20%u043E%u0448%u0438%u0431%u043A%u0430%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0438%22%0Avar%20domainName%20%3D%20%22%22%3B%0Atry%20%7B%0A%20%20%20%20domainName%20%3D%20content.location.hostname%3B%0A%20%20%20%20getBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28%22http%3A//antivirus-alarm.ru/proverka/%3Furl%3D%22+domainName%29%3B%0A%7D%0Acatch%28e%29%20%7B%0A%20custombuttons.%20alertBox%20%28cTitle%2C%20cMsg%29%3B%20%0A%7D%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код (секция Код) Выделить код Код:/*CODE*/ const cTitle = "Ошибка" const cMsg = "Неверный адрес или ошибка передачи" var domainName = ""; try { domainName = content.location.hostname; getBrowser (). selectedTab = getBrowser (). addTab ("http://antivirus-alarm.ru/proverka/?url="+domainName); } catch(e) { custombuttons. alertBox (cTitle, cMsg); }; Код (секция Инициализация) P.S. Для запуска в Thunderbird надо исправить открытие вкладки. |
Indomito > 06-04-2012 01:57:36 |
Open URLs(Thunderbird) Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EOpen%20URLs%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0Afunction%20TabsUrl%28OpenUrl%29%7B%0Avar%20inBackground%20%3D%20false%3B%0Avar%20cnConf%20%3D%20OpenUrl%3B%0Avar%20tabmail%20%3D%20document.%20getElementById%20%28%22tabmail%22%29%3B%0Atabmail.%20openTab%0A%20%20%20%28%0A%20%20%20%20%20%20%22contentTab%22%2C%0A%09%7B%20background%3A%20inBackground%2C%0A%09%20%20contentPage%3A%20cnConf%0A%09%7D%0A%20%20%20%20%29%0A%7D%3B%0A%0A//var%20NumMenu%20%3D%201%20//%20%u0427%u0438%u0441%u043B%u043E%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432%20%u0432%20%u043C%u0435%u043D%u044E%0Avar%20OpenMenu%20%3D%0A%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%0A%20%20%20%20%20%20%20oncommand%3D%22this.parentNode.openadres%28event%29%22%3E%0A%0A%20%20%20%20%3Cmenuitem%20%0A%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20value%3D%22https%3A//www.google.com%22%20%0A%20%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY1MjI5QkVERDU1MjExRTBCREIxRkM2NDg5MzRDQTQyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY1MjI5QkVFRDU1MjExRTBCREIxRkM2NDg5MzRDQTQyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjUyMjlCRUJENTUyMTFFMEJEQjFGQzY0ODkzNENBNDIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjUyMjlCRUNENTUyMTFFMEJEQjFGQzY0ODkzNENBNDIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz65gakZAAAIYUlEQVR42rxY628U1x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%22%20%20%20%20%20%0A%20%20%20%20%20%20label%3D%22Google%22/%3E%0A%20%20%20%20%3Cmenuitem%20%20%0A%20%20%20%20%20%20class%3D%22menuitem-iconic%22%0A%20%20%20%20%20%20value%3D%22http%3A//forum.mozilla-russia.org%22%20%0A%20%20%20%20%20%20image%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAACSNJREFUWEfFV3lUVNcZf2/ezDxmmBmGZTZmYDYQ2YZFhl0wVq20ao6xJGijVAGTtGntseDRRpO0WI1ZWhUNHquk5iQ1opJUrE2a2MbWGIW2KjFpUlE2DYgs1sg2M+99/e7jDQ7ahi5/9I/fuW/u8n2/b713KACg/p+YcsOXgef5iTEQgWtTYcoN/0ypHxzH0V6vl8GR8a+T3wgJzk0i9F8RCLRGFDoJgXtH7tyReUZHJp0XyU2S9R8R+LKDBK2XL2uerd5ckpKd8wYbob+sNUc1zV744K69+/fPuTUwIPXv8/l8tF/WvfKmVE4sGBoepp5YW7myaO6ct+fPnXvCPeuBg6kzC+sZlu2iUEQSTcHqcAX82KSCpQoKyJxab/hozZrvVV66dEkjkpAEyp2SwLjbPcTV9NbnnnvkQdy6w6yCZyPksEXHwg6jAo7HG6Elw+7ryHJ4W902ri/H6eMK4rzNM6xcYbB0nIha/fHJ996LJTI9Hg9zb5LepzQgwQhrwY0zc7JfzVJKuWKDdviPLovvGZvOWxNr8P4lLZqD/Fh+TWQIj8p4Kyvlj8QbeU9eDH89y8G5Q5RjhASip2bnzlwii+ROIIlJbMRkYwIT7Nenz1hs6uAOuYTmXFqV70LONH6tSSNYtzRCBevMWriQFg1vxptAMq4MfhQdxo8iiU1RoUBTlFecH66urn5IDMdEck4oJ1mOI+1X/PtzzZaK8vK1yyPDuv7kMsPROD0XrdXAU4l22OcIh9oYHZzCeaLQESSFwxgOQobMV+F4K8cBr8UZiGcICZ9EIhG8VLpixWpRH4NEqElZ2t93k95Ws6voa/PmvlaiU/e/Ga2C2yjoQno0V4lC9zjC+ReitdCT7YDhXCdsd0SA6GIB5QYNfIHzN7LscD3TDqddFl6GSsV1TiqV+sj3I8XFWwWPY/+gxsbGhCZyuKEhM0xvOFckp+C4QwuDOU7oy4v1XMbk+hwF/i7ZzK+zhPLvJJnhA5cFrmTYoDHBBOnBcvhGuAoqjBp4AnE+LQqu4lpXpg3+jN8KmiYeEKxHL9xOTUnZbzGbP3744eIN/f39jNDNPjx71qRh2Z6XraFwpyDO05sb47nitnNX3Ta+I9POozKSVAAFsbAHXVyGlt7E35czrHANLe1Dj9xCwr04t8UaDq043+G2CaONFaqBp2nah+BSUlJ+3tnZSZ06dcp+8eJFmRCC4keXb9Shay64HWPteBAtEBS34TcSgd68WOhKMUGVmHyHphvhO6YQgQDZfwVH8t2JVj8QooB3kyKhG71G1v46wyqEhpxjJBIhBAUFBW+IucZQQx4vlZsQ94dFGpZfodf4BrIdPBF2BQ/fyI2F/owoeMsghaqCLFhS+i1QShlIVsphmkIGJDRt6O42kQj5bZIxsNupg370ymeofCg3Bupi9UIOkGqQS6U3HA7HiYULF64fHBxkqN7RMWqxK+HTdpcJWjMdXHdODD+IFg+gNSctQbAtdRrs3PITqN5ZA+bISNAiAWLFKyiUuP4qKieuRuLwgj1cWKu2hsEAJu/fcB6J8F8PVQo5IJVIRnG8nZ2VtbOhocHe09OjEDyQHutsOZdg4K65jL73rSq+JkLKP243wuaqKqh76xgsKFkGRrTsp1gBxMKvoJsHs8dzgITpDmb+SUxOg2ycHMkTUgnXxisB5DQmISYjWfvqvHlPb9iwYXVdXV3yRCecV1T0ohM/n5xT6Kl8/DH+Z68cgPoPzvEbtmwFtz6MLw+mSCx57Hx8RjALn+A3UUA80I1KVurV8GGKBU4kRsJ8rQKuCglowxJ2wiq9WihDViK5qVAqL+L32NmzZyOI3pGREUZoCFdaW9VGq+394hWlcPzoEd9vtm32/GJOjrc+SuVFJd7RWQlcT7ZTSCgMkxeTjv8oPRoa4k0CoWU6lVAFe2P08A4mICFHyvAMklLQ4xWA8R/55rJlqzZu3Pik0WA41t3drca7QUouCKHtXuvoUMXGOF9nke06vN3qwiXwIl44+RIKwnEuSkLxdpmEJ9ViCZJxOqmEl+I3uQf+jspJEn6GIbmOyklO9OD4NnqEGe8BnFwu79br9c379u3Lb25qMrS1taknQuDvhEiGev3QocKlZeVVSx5d/v3v/vCpipdq9yzd/nLtrOO/fTf5dFNz0oLFDz1NjQv1LQ4L5rEj8q1iFXRiOEhOCKWM+AKJuVUsRwgg+ubPn//YgQMHsgMvv4m7gDQkHCe9cv4VystWVZK4moJkvubUKJJsfLuo2K+ctOLS8fiT2ufdbveRXbt2LWrv6JAQgzH0d6/jwCuY3NkkNvdAeOeREQ/LBvr6aI1e31SolPGe/BgfKTfSmrF5TRD4HEk9ExUGS8JVXrsyyBsREXGpq7OTJQ8TcglNeGAqawPdJYZJuDs2P//8kgg8/lKMwbsoTMn72y+GgMcmxpNuCvg4qYkxCOWXlpT4ant7u4Z42v9gnfDAv6PY7yHiOjLie1BNyeQ3iHsbEyI50nBIdXSh5QO5Tu+tvGnct/GZhuvDFRUVPxgdHZ0kz4/7XkFEAQFJSOIq8WV0LzEhaTNzchpDaIp72hY+9kl6tA/d7mvB8qyzaSEVbTNGW48dOXw4iewlcffLDNQpCPS/TqbyRF9fn4De3l6ajLNnz97hfwu48H5IVbGgk0lvOabH/3L7nr2F/F259L3y/GGYcMnQ0BDV0tJCNTY20ps2bZKsX79eVlRUxObl5Sny8/ODExMT1RqNRosIxYemDqFiGGYpKm/HJvMpjr9CrEUkOx0OZtGCBdTMmTOD8ayisrJShu2XOXjwIH3mzBlqYGDgbgiIu1euXEmzLIuPF0qJCEFgv6EiEVZEDCIe4UKkI7IQeYgC7HB5SGIOXrOzZAzjkjLMdESyuI+M0xB2hAWhR4QighFyNI4mRgsxOXr0KFVWVsakpaWxFoslGF8uIQhMcsqIiEI4RGEJomAMMTUDkYnIEOEOUByHwOtFMIAYokN5WrPZrEpPT2dLSkqY+vp6Ic/uizXe0dT58+cFYNeisXkwu3fvlpaWlsqKi4vlCBYRJEIRgCBxTU724jkpOVtbW0s3NTUJ8gJdP6kK8F1IDeO/H8JoqmT8X0F0EF1EJ9H9D/WzkyfvPjkFAAAAAElFTkSuQmCC%22%20%20%20%20%20%0A%20%20%20%20%20%20label%3D%22%u0424%u043E%u0440%u0443%u043C%20Mozilla%22/%3E%0A%3C/menupopup%3E%3B%0A%0AOpenMenu%20%3D%20custombuttonsUtils.%20makeXML%20%28OpenMenu%29%3B%0A//OpenMenu.%20childNodes%20%5B1%5D.%20setAttribute%20%28%22checked%22%2C%20%22true%22%29%3B%20//%u0443%u0431%u0440%u0430%u043B%20%u043F%u0440%u043E%u0432%u0435%u0440%u043A%u0443%20%u0442.%u043A.%20%u043E%u043D%u0430%20%u043E%u0448%u0438%u0431%u043E%u0447%u043D%u0430%0Athis.%20orient%20%3D%20%22horizontal%22%3B%0Athis.%20type%20%3D%20%22menu%22%3B%0Athis.%20appendChild%20%28OpenMenu%29%3B%0Athis.%20openadres%20%3D%20function%20%28MyEvets%29%0A%7B%0A%20%20%20%20var%20url%20%3D%20MyEvets.%20target.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20TabsUrl%28url%29%3B%0A%7D%3B%0A%0A//%20%u041E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u043A%u043E%u0433%u0434%u0430%20%u043A%u0443%u0440%u0441%u043E%u0440%20%u043C%u044B%u0448%u043A%u0438%20%u043D%u0430%u0434%20%u043A%u043D%u043E%u043F%u043A%u043E%u0439%0Athis.%20onmouseover%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20this.%20open%20%3D%20true%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код (секция Код) Код (секция Инициализация) Выделить код Код:/*Initialization Code*/ function TabsUrl(OpenUrl){ var inBackground = false; var cnConf = OpenUrl; var tabmail = document. getElementById ("tabmail"); tabmail. openTab ( "contentTab", { background: inBackground, contentPage: cnConf } ) }; //var NumMenu = 1 // Число пунктов в меню var OpenMenu = <menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" oncommand="this.parentNode.openadres(event)"> <menuitem class="menuitem-iconic" value="https://www.google.com" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyBpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBXaW5kb3dzIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkY1MjI5QkVERDU1MjExRTBCREIxRkM2NDg5MzRDQTQyIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkY1MjI5QkVFRDU1MjExRTBCREIxRkM2NDg5MzRDQTQyIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RjUyMjlCRUJENTUyMTFFMEJEQjFGQzY0ODkzNENBNDIiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RjUyMjlCRUNENTUyMTFFMEJEQjFGQzY0ODkzNENBNDIiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz65gakZAAAIYUlEQVR42rxY628U1xX/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" label="Google"/> <menuitem class="menuitem-iconic" value="http://forum.mozilla-russia.org" image="data:image/png;base64,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" label="Форум Mozilla"/> </menupopup>; OpenMenu = custombuttonsUtils. makeXML (OpenMenu); //OpenMenu. childNodes [1]. setAttribute ("checked", "true"); //убрал проверку т.к. она ошибочна this. orient = "horizontal"; this. type = "menu"; this. appendChild (OpenMenu); this. openadres = function (MyEvets) { var url = MyEvets. target. getAttribute ("value"); TabsUrl(url); }; // Открывает список когда курсор мышки над кнопкой this. onmouseover = function (event) { this. open = true; }; |
humnmind > 17-05-2012 17:20:41 |
Linkification(Firefox) Пример для теста скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ELinkification%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANtJREFUeNrskz0Lg0AMhpN6i6B/z0lcnOyki47iqDg4SHVxESd/nOAHCIKcvdCDtmg7uJVmuASeNx/k7pBzDmfsAiftBwowcdR1fbs7540VlmVdv3Esy5KgaZqwrisRRVGgaRoSPcSHHNM05bZtQ1VVBDVNA1VVd8ed5xmmaaJY5rBhGKDrOhA+iiKM45g/d5MmuuZ5DkEQYBiGXOawvu+pqvCu6/JlWcDzvP2FMUYaEcscMUGRZZnj+z7ouk7CcRwhSZKXHRxxFE/ZMIzdLbdtS7fwieP/L8AmwABkrYI7KtvK5gAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*%0A%20%20%20%20Linkification%0A%20%20%20%20Original%20script%20by%20Misha%20Splurov%0A%20%20%20%20http%3A//userscripts.org/scripts/show/67744%0A*/%0A%0A//%20%28c%29%20http%3A//data.iana.org/TLD/tlds-alpha-by-domain.txt%0Avar%20domains%20%3D%20%5B%0A%20%20%22ac%22%2C%20%22ad%22%2C%20%22ae%22%2C%20%22aero%22%2C%20%22af%22%2C%20%22ag%22%2C%20%22ai%22%2C%20%22al%22%2C%20%22am%22%2C%20%22an%22%2C%20%22ao%22%2C%20%22aq%22%2C%0A%20%20%22ar%22%2C%20%22arpa%22%2C%20%22as%22%2C%20%22asia%22%2C%20%22at%22%2C%20%22au%22%2C%20%22aw%22%2C%20%22ax%22%2C%20%22az%22%2C%20%22ba%22%2C%20%22bb%22%2C%20%22bd%22%2C%0A%20%20%22be%22%2C%20%22bf%22%2C%20%22bg%22%2C%20%22bh%22%2C%20%22bi%22%2C%20%22biz%22%2C%20%22bj%22%2C%20%22bm%22%2C%20%22bn%22%2C%20%22bo%22%2C%20%22br%22%2C%20%22bs%22%2C%0A%20%20%22bt%22%2C%20%22bv%22%2C%20%22bw%22%2C%20%22by%22%2C%20%22bz%22%2C%20%22ca%22%2C%20%22cat%22%2C%20%22cc%22%2C%20%22cd%22%2C%20%22cf%22%2C%20%22cg%22%2C%20%22ch%22%2C%0A%20%20%22ci%22%2C%20%22ck%22%2C%20%22cl%22%2C%20%22cm%22%2C%20%22cn%22%2C%20%22co%22%2C%20%22com%22%2C%20%22coop%22%2C%20%22cr%22%2C%20%22cu%22%2C%20%22cv%22%2C%20%22cx%22%2C%0A%20%20%22cy%22%2C%20%22cz%22%2C%20%22de%22%2C%20%22dj%22%2C%20%22dk%22%2C%20%22dm%22%2C%20%22do%22%2C%20%22dz%22%2C%20%22ec%22%2C%20%22edu%22%2C%20%22ee%22%2C%20%22eg%22%2C%0A%20%20%22er%22%2C%20%22es%22%2C%20%22et%22%2C%20%22eu%22%2C%20%22fi%22%2C%20%22fj%22%2C%20%22fk%22%2C%20%22fm%22%2C%20%22fo%22%2C%20%22fr%22%2C%20%22ga%22%2C%20%22gb%22%2C%0A%20%20%22gd%22%2C%20%22ge%22%2C%20%22gf%22%2C%20%22gg%22%2C%20%22gh%22%2C%20%22gi%22%2C%20%22gl%22%2C%20%22gm%22%2C%20%22gn%22%2C%20%22gov%22%2C%20%22gp%22%2C%20%22gq%22%2C%0A%20%20%22gr%22%2C%20%22gs%22%2C%20%22gt%22%2C%20%22gu%22%2C%20%22gw%22%2C%20%22gy%22%2C%20%22hk%22%2C%20%22hm%22%2C%20%22hn%22%2C%20%22hr%22%2C%20%22ht%22%2C%20%22hu%22%2C%0A%20%20%22id%22%2C%20%22ie%22%2C%20%22il%22%2C%20%22im%22%2C%20%22in%22%2C%20%22info%22%2C%20%22int%22%2C%20%22io%22%2C%20%22iq%22%2C%20%22ir%22%2C%20%22is%22%2C%20%22it%22%2C%0A%20%20%22je%22%2C%20%22jm%22%2C%20%22jo%22%2C%20%22jobs%22%2C%20%22jp%22%2C%20%22ke%22%2C%20%22kg%22%2C%20%22kh%22%2C%20%22ki%22%2C%20%22km%22%2C%20%22kn%22%2C%20%22kp%22%2C%0A%20%20%22kr%22%2C%20%22kw%22%2C%20%22ky%22%2C%20%22kz%22%2C%20%22la%22%2C%20%22lb%22%2C%20%22lc%22%2C%20%22li%22%2C%20%22lk%22%2C%20%22lr%22%2C%20%22ls%22%2C%20%22lt%22%2C%0A%20%20%22lu%22%2C%20%22lv%22%2C%20%22ly%22%2C%20%22ma%22%2C%20%22mc%22%2C%20%22md%22%2C%20%22me%22%2C%20%22mg%22%2C%20%22mh%22%2C%20%22mil%22%2C%20%22mk%22%2C%20%22ml%22%2C%0A%20%20%22mm%22%2C%20%22mn%22%2C%20%22mo%22%2C%20%22mobi%22%2C%20%22mp%22%2C%20%22mq%22%2C%20%22mr%22%2C%20%22ms%22%2C%20%22mt%22%2C%20%22mu%22%2C%20%22museum%22%2C%0A%20%20%22mv%22%2C%20%22mw%22%2C%20%22mx%22%2C%20%22my%22%2C%20%22mz%22%2C%20%22na%22%2C%20%22name%22%2C%20%22nc%22%2C%20%22ne%22%2C%20%22net%22%2C%20%22nf%22%2C%20%22ng%22%2C%0A%20%20%22ni%22%2C%20%22nl%22%2C%20%22no%22%2C%20%22np%22%2C%20%22nr%22%2C%20%22nu%22%2C%20%22nz%22%2C%20%22om%22%2C%20%22org%22%2C%20%22pa%22%2C%20%22pe%22%2C%20%22pf%22%2C%0A%20%20%22pg%22%2C%20%22ph%22%2C%20%22pk%22%2C%20%22pl%22%2C%20%22pm%22%2C%20%22pn%22%2C%20%22pr%22%2C%20%22pro%22%2C%20%22ps%22%2C%20%22pt%22%2C%20%22pw%22%2C%20%22py%22%2C%0A%20%20%22qa%22%2C%20%22re%22%2C%20%22ro%22%2C%20%22rs%22%2C%20%22ru%22%2C%20%22rw%22%2C%20%22sa%22%2C%20%22sb%22%2C%20%22sc%22%2C%20%22sd%22%2C%20%22se%22%2C%20%22sg%22%2C%0A%20%20%22sh%22%2C%20%22si%22%2C%20%22sj%22%2C%20%22sk%22%2C%20%22sl%22%2C%20%22sm%22%2C%20%22sn%22%2C%20%22so%22%2C%20%22sr%22%2C%20%22st%22%2C%20%22su%22%2C%20%22sv%22%2C%0A%20%20%22sy%22%2C%20%22sz%22%2C%20%22tc%22%2C%20%22td%22%2C%20%22tel%22%2C%20%22tf%22%2C%20%22tg%22%2C%20%22th%22%2C%20%22tj%22%2C%20%22tk%22%2C%20%22tl%22%2C%20%22tm%22%2C%0A%20%20%22tn%22%2C%20%22to%22%2C%20%22tp%22%2C%20%22tr%22%2C%20%22travel%22%2C%20%22tt%22%2C%20%22tv%22%2C%20%22tw%22%2C%20%22tz%22%2C%20%22ua%22%2C%20%22ug%22%2C%20%22uk%22%2C%0A%20%20%22us%22%2C%20%22uy%22%2C%20%22uz%22%2C%20%22va%22%2C%20%22vc%22%2C%20%22ve%22%2C%20%22vg%22%2C%20%22vi%22%2C%20%22vn%22%2C%20%22vu%22%2C%20%22wf%22%2C%20%22ws%22%2C%0A%20%20%22ye%22%2C%20%22yt%22%2C%20%22yu%22%2C%20%22za%22%2C%20%22zm%22%2C%20%22zw%22%0A%5D%3B%0A%0A//%20%28c%29%20http%3A//yellow5.us/firefox/linkification/%0Avar%20tagsForSkip%20%3D%20%5B%0A%20%20%22a%22%2C%20%22applet%22%2C%20%22area%22%2C%20%22embed%22%2C%20%22frame%22%2C%20%22frameset%22%2C%20%22head%22%2C%20%22iframe%22%2C%0A%20%20%22img%22%2C%20%22map%22%2C%20%22meta%22%2C%20%22noscript%22%2C%20%22object%22%2C%20%22option%22%2C%20%22param%22%2C%20%22script%22%2C%0A%20%20%22select%22%2C%20%22style%22%2C%20%22textarea%22%2C%20%22title%22%0A%5D%3B%0A%0Avar%20inArray%20%3D%20function%28value%2C%20items%29%20%7B%0A%20%20for%20%28var%20i%20%3D%200%3B%20items%5Bi%5D%20%26%26%20value%20%21%3D%20items%5Bi%5D%3B%20i++%29%3B%0A%20%20return%20value%20%3D%3D%20items%5Bi%5D%3B%0A%7D%0A%0Avar%20urlsRegExp%20%3D%20/%28%5E%7C%5B%5Cs%28%29%5C%5B%5C%5D_%3A%7E+@*%22%27%3E%5D%29%28%28%3F%3Ahttps%3F%7Cftp%7Circ%29%3A%5C/%5C/%29%3F%28%5B-a-z%5Cd%3B%3A%26%3D+%24%2C%25_.%21%7E*%27%28%29%5D+@%29%3F%28%28%3F%3A%28%3F%3A25%5B0-5%5D%7C2%5B0-4%5D%5Cd%7C%5B01%5D%3F%5Cd%5Cd%3F%29%5C.%29%7B3%7D%28%3F%3A25%5B0-5%5D%7C2%5B0-4%5D%5Cd%7C%5B01%5D%3F%5Cd%5Cd%3F%29%7C%28%3F%3A%28www%7Circ%7Cftp%29%5C.%29%3F%28%3F%3A%28%3F%3A%5Ba-z%5Cd%5D%7C%5Ba-z%5Cd%5D%5Ba-z%5Cd-%5D*%5Ba-z%5Cd%5D%29%5C.%29+%28%5Ba-z%5D%7B2%2C6%7D%29%29%28%3A%5Cd+%29%3F%28%5C/%28%3F%3A%5B-%5Cw.%21%7E*%27%28%29%25%3A@%26%3D+%24%2C%3B%5C/%5D*%5B%5Cw%7E*%25@%26%3D+%24%5C/%5D%29%3F%28%3F%3A%5C%3F%28%3F%3A%5B-%5Cw%3B%5C/%3F%3A@%26%3D+%24%2C.%21%7E*%27%28%29%25%5C%5B%5C%5D%7C%5D*%5B%5Cw%5C/@%26%3D+%24%7E*%25%5D%29%3F%29%3F%28%3F%3A%23%28%3F%3A%5B-%5Cw%3B%5C/%3F%3A@%26%3D+%24%2C.%21%7E*%27%28%29%25%5D*%5B%5Cw%5C/@%26%3D+%24%7E*%25%5D%29%3F%29%3F%7C%5Cb%29/i%0A%0Avar%20linksCounter%20%3D%200%3B%0A%0Avar%20current%20%3D%20content.document.body%3B%0Awhile%20%28current%29%20%7B%0A%20%20if%20%28current.nodeName%20%3D%3D%20%22%23text%22%20%26%26%20%28match%20%3D%20current.nodeValue.match%28urlsRegExp%29%29%20%26%26%20inArray%28match%5B6%5D%2C%20domains%29%29%20%7B%0A%20%20%20%20var%20url%3B%0A%20%20%20%20if%20%28match%5B3%5D%20%26%26%20%21%20match%5B2%5D%20%26%26%20%21%20match%5B5%5D%20%26%26%20%21%20match%5B8%5D%20%26%26%20%28match%5B3%5D.indexOf%28%22%3A%22%29%20%3D%3D%20-1%20%7C%7C%20match%5B3%5D.indexOf%28%22mailto%3A%22%29%20%3D%3D%200%29%29%20%7B%0A%20%20%20%20%20%20url%20%3D%20%28match%5B3%5D.indexOf%28%22mailto%3A%22%29%20%3D%3D%20-1%20%3F%20%22mailto%3A%22%20%3A%20%22%22%29%0A%20%20%20%20%20%20%20%20%20%20+%20match%5B3%5D%0A%20%20%20%20%20%20%20%20%20%20+%20match%5B4%5D%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%20%20%20%20%20%20url%20%3D%20%28match%5B2%5D%20%3F%20match%5B2%5D%20%3A%20%28%21%20match%5B5%5D%20%7C%7C%20match%5B5%5D%20%3D%3D%20%22www%22%20%3F%20%22http%22%20%3A%20match%5B5%5D%29%20+%20%22%3A//%22%29%0A%20%20%20%20%20%20%20%20%20%20+%20%28match%5B3%5D%20%3F%20match%5B3%5D%20%3A%20%22%22%29%0A%20%20%20%20%20%20%20%20%20%20+%20match%5B4%5D%0A%20%20%20%20%20%20%20%20%20%20+%20%28match%5B7%5D%20%3F%20match%5B7%5D%20%3A%20%22%22%29%0A%20%20%20%20%20%20%20%20%20%20+%20%28match%5B8%5D%20%3F%20match%5B8%5D%20%3A%20%22%22%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28url%29%20%7B%0A%20%20%20%20%20%20var%20range%20%3D%20content.document.createRange%28%29%3B%0A%20%20%20%20%20%20range.setStart%28current%2C%20match.index%20+%20match%5B1%5D.length%29%3B%0A%20%20%20%20%20%20range.setEnd%28current%2C%20match.index%20+%20match%5B0%5D.length%29%3B%0A%20%20%20%20%20%20var%20a%20%3D%20content.document.createElement%28%22a%22%29%3B%0A%20%20%20%20%20%20a.setAttribute%28%22href%22%2C%20url%29%3B%0A%20%20%20%20%20%20a.setAttribute%28%22target%22%2C%20%22_blank%22%29%3B%0A%20%20%20%20%20%20a.setAttribute%28%22class%22%2C%20%22linkified%22%29%3B%0A%20%20%20%20%20%20a.appendChild%28range.extractContents%28%29%29%3B%0A%20%20%20%20%20%20range.insertNode%28a%29%3B%0A%20%20%20%20%20%20range.detach%28%29%3B%0A%20%20%20%20%20%20linksCounter++%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%20%20if%20%28current.tagName%20%26%26%20%21inArray%28current.tagName.toLowerCase%28%29%2C%20tagsForSkip%29%20%26%26%20current.firstChild%29%20%7B%0A%20%20%20%20current%20%3D%20current.firstChild%3B%0A%20%20%7D%0A%20%20else%20if%20%28current.nextSibling%29%20%7B%0A%20%20%20%20current%20%3D%20current.nextSibling%3B%0A%20%20%7D%0A%20%20else%20%7B%0A%20%20%20%20do%20%7B%0A%20%20%20%20%20%20current%20%3D%20current.parentNode%3B%0A%20%20%20%20%7D%20while%20%28%21current.nextSibling%20%26%26%20current.parentNode%29%3B%0A%20%20%20%20current%20%3D%20current.nextSibling%3B%0A%20%20%7D%0A%7D%0A%0A/*%0Aif%20%28linksCounter%20%3E%200%29%20%7B%0A%20%20var%20style%20%3D%20content.document.createElement%28%22style%22%29%3B%0A%20%20style.type%20%3D%20%22text/css%22%3B%0A%20%20style.appendChild%28content.document.createTextNode%28%22a.linkified%3Abefore%20%7Bcontent%3A%20%22%7E%22%3B%20color%3A%20%23e00%3B%7D%22%29%29%3B%0A%20%20content.document.getElementsByTagName%28%22head%22%29%5B0%5D.appendChild%28style%29%3B%0A%7D%0A*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:/* Linkification Original script by Misha Splurov http://userscripts.org/scripts/show/67744 */ // (c) http://data.iana.org/TLD/tlds-alpha-by-domain.txt var domains = [ "ac", "ad", "ae", "aero", "af", "ag", "ai", "al", "am", "an", "ao", "aq", "ar", "arpa", "as", "asia", "at", "au", "aw", "ax", "az", "ba", "bb", "bd", "be", "bf", "bg", "bh", "bi", "biz", "bj", "bm", "bn", "bo", "br", "bs", "bt", "bv", "bw", "by", "bz", "ca", "cat", "cc", "cd", "cf", "cg", "ch", "ci", "ck", "cl", "cm", "cn", "co", "com", "coop", "cr", "cu", "cv", "cx", "cy", "cz", "de", "dj", "dk", "dm", "do", "dz", "ec", "edu", "ee", "eg", "er", "es", "et", "eu", "fi", "fj", "fk", "fm", "fo", "fr", "ga", "gb", "gd", "ge", "gf", "gg", "gh", "gi", "gl", "gm", "gn", "gov", "gp", "gq", "gr", "gs", "gt", "gu", "gw", "gy", "hk", "hm", "hn", "hr", "ht", "hu", "id", "ie", "il", "im", "in", "info", "int", "io", "iq", "ir", "is", "it", "je", "jm", "jo", "jobs", "jp", "ke", "kg", "kh", "ki", "km", "kn", "kp", "kr", "kw", "ky", "kz", "la", "lb", "lc", "li", "lk", "lr", "ls", "lt", "lu", "lv", "ly", "ma", "mc", "md", "me", "mg", "mh", "mil", "mk", "ml", "mm", "mn", "mo", "mobi", "mp", "mq", "mr", "ms", "mt", "mu", "museum", "mv", "mw", "mx", "my", "mz", "na", "name", "nc", "ne", "net", "nf", "ng", "ni", "nl", "no", "np", "nr", "nu", "nz", "om", "org", "pa", "pe", "pf", "pg", "ph", "pk", "pl", "pm", "pn", "pr", "pro", "ps", "pt", "pw", "py", "qa", "re", "ro", "rs", "ru", "rw", "sa", "sb", "sc", "sd", "se", "sg", "sh", "si", "sj", "sk", "sl", "sm", "sn", "so", "sr", "st", "su", "sv", "sy", "sz", "tc", "td", "tel", "tf", "tg", "th", "tj", "tk", "tl", "tm", "tn", "to", "tp", "tr", "travel", "tt", "tv", "tw", "tz", "ua", "ug", "uk", "us", "uy", "uz", "va", "vc", "ve", "vg", "vi", "vn", "vu", "wf", "ws", "ye", "yt", "yu", "za", "zm", "zw" ]; // (c) http://yellow5.us/firefox/linkification/ var tagsForSkip = [ "a", "applet", "area", "embed", "frame", "frameset", "head", "iframe", "img", "map", "meta", "noscript", "object", "option", "param", "script", "select", "style", "textarea", "title" ]; var inArray = function(value, items) { for (var i = 0; items[i] && value != items[i]; i++); return value == items[i]; } var urlsRegExp = /(^|[\s()\[\]_:~+@*"'>])((?:https?|ftp|irc):\/\/)?([-a-z\d;:&=+$,%_.!~*'()]+@)?((?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:(www|irc|ftp)\.)?(?:(?:[a-z\d]|[a-z\d][a-z\d-]*[a-z\d])\.)+([a-z]{2,6}))(:\d+)?(\/(?:[-\w.!~*'()%:@&=+$,;\/]*[\w~*%@&=+$\/])?(?:\?(?:[-\w;\/?:@&=+$,.!~*'()%\[\]|]*[\w\/@&=+$~*%])?)?(?:#(?:[-\w;\/?:@&=+$,.!~*'()%]*[\w\/@&=+$~*%])?)?|\b)/i var linksCounter = 0; var current = content.document.body; while (current) { if (current.nodeName == "#text" && (match = current.nodeValue.match(urlsRegExp)) && inArray(match[6], domains)) { var url; if (match[3] && ! match[2] && ! match[5] && ! match[8] && (match[3].indexOf(":") == -1 || match[3].indexOf("mailto:") == 0)) { url = (match[3].indexOf("mailto:") == -1 ? "mailto:" : "") + match[3] + match[4]; } else { url = (match[2] ? match[2] : (! match[5] || match[5] == "www" ? "http" : match[5]) + "://") + (match[3] ? match[3] : "") + match[4] + (match[7] ? match[7] : "") + (match[8] ? match[8] : ""); } if (url) { var range = content.document.createRange(); range.setStart(current, match.index + match[1].length); range.setEnd(current, match.index + match[0].length); var a = content.document.createElement("a"); a.setAttribute("href", url); a.setAttribute("target", "_blank"); a.setAttribute("class", "linkified"); a.appendChild(range.extractContents()); range.insertNode(a); range.detach(); linksCounter++; } } if (current.tagName && !inArray(current.tagName.toLowerCase(), tagsForSkip) && current.firstChild) { current = current.firstChild; } else if (current.nextSibling) { current = current.nextSibling; } else { do { current = current.parentNode; } while (!current.nextSibling && current.parentNode); current = current.nextSibling; } } /* if (linksCounter > 0) { var style = content.document.createElement("style"); style.type = "text/css"; style.appendChild(content.document.createTextNode("a.linkified:before {content: "~"; color: #e00;}")); content.document.getElementsByTagName("head")[0].appendChild(style); } */ |
bunda1 > 03-06-2012 19:09:55 |
Открыть страницу в другом браузере( Firefox ) от 20.05.2019. Функции кликов мыши для кнопки: ЛКМ => Открыть меню с браузерамы, СКМ => Добавить в меню новый браузер, Функции кликов мыши для меню кнопки: Код кнопки и код для инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%20%u0432%20%u0434%u0440%u0443%u0433%u043E%u043C%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAACXBIWXMAAAsSAAALEgHS3X78AAAEgUlEQVQ4jU2TW2yTZQCG3+/7v/79266HraN1G8cNVoERNhk42BBmghiQBF3IMJnghYcbxUPEREiYF0bgihBREyNRQ4wENCwkBjlsyIA5WclWOe3ANrq2W1u6reu5/f//+7xQI8/tmzx5bx4yMjKCgYEByLIMAYBTirymEUYpbIrimkslzKXOpwLrV3NNceTAhZERNVfFC1mnNifGjO6i8NB4grCOjg7s378foBSVNju+3b6D+NUC/d43oGeK7dXLFlfu9BhKr244XObntvuvkPDURszNGiSjkhKTaYAtPO7tT15iQggAAASHVZJIs8sFlDqx69l1O4Lh+EeVddXPidrZN2XeZcDvswrGqnhBXXXowK2rRxtXGF0vy4XWzvOhG4wQ8o+IUCIAkYcoYrr+pXlqdo+nwQXR6BUk1WP13qhE5pRZX2cDMRRpn9U/LK870/egrfkZ66WCqir/P4IQakGHIad/LUaDbWrLIs2w+TbFyB16J75PDNg3I9V8XbKdO4GaEiffXWpqmZ8tN01Oq20ffLwuTv+1SOACvM7S+hcLtknbyzR56z0p2T9If3nYjmtTtSQV9BF51RqML1yOlP8hiQUfqU00va33RGD3a69fEZRQQgDoJmaAceu8t+/tWwxsDxK9o5OcOduICxE3ykvSSBUvhR66D1W/heyyGDG/GJLwxgSWb4q8NXh3xkgBEABQi6WqxvUr6neVzwHXbtJQO8dgQEWJG4gqZfDM3URZVzuml21DyRYdhk0JwutzWN0CT2OttJY6HApxWICG5uqad6qZVRry8s8j88j9YAJJi4JR5kZvnxfV1w+id8EupBreA1m5CNSVJZxRYTYT04JyuoTt2bNGb939KQjXthUNX8DJqAU/Oi1IbnFiY0UFgots2Onx4BQ/iC6sRX0sCclTBuR8EIQAnEAiRGYyM4MZ3PV06trz/Y81nM4UwZXOYLhlIbKPFdTHIzjh8+G3+FLkC1nU1uiQ2AMUIAlGOclnZR6OIcI4MTGiJzfoY4OlP0zbM1mJmx2KhHSxBe6KOKKBIdyOOFBpIHjaY8SOJV8AGT9ALKCEIDDBogODWj8DrBpJB+smxjPdV84Xeua3LjjCZUmzaBbmjffAVNGPl6pWIJGVYNW9KFE7IJgZah6abDYbfvq18HNsjocoVD8QuOWyrWzqyT1Qj4b/CPsU2cSy+bSWt+YwU4ihO9mJ7vhlNCndsBiMSGaYbmFWg7fX4D92OnEEACjJ+iEyYatTqI9qXBJ8x3yt492ROxQyQ07S5QLTcxmb/oKS0TebVS2dtOpWUSz19Rn9be2xV2eTPEQJqHTow70Q8T/X0vjjpuaaeRdnptPR/gujPekEXyOZjfN1JhOH0Ogn9gi15BTyKKDQ785lR949Htk7EVV7KAHlApyok5ehDn9lZdnJ9yU9l6Ys03X4ZMR/4GzCqtjleqnCXu1xs+IGU56MRrX43bHcWGimcJsQhADkhYAOAESdvIj80Dcw5vMYGQ7i4KlBdN4tIJEVIBD4L+knoRSAAPgT49/cEBl9hsIr+QAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20e.button%20%3D%3D%200%20%26%26%20menu.openPopup%28this%2C%20%22after_start%22%29%3B%0A%20%20%20e.button%20%3D%3D%201%20%26%26%20getAppPath%28%29%3B%20%20%20%20%0A%7D%3B%0A%0A%0Avar%20menu%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0AaddEventListener%28%22popuphidden%22%2C%20%28%29%3D%3E%20setTimeout%28%28%29%3D%3E%20addToHelp%28%29%2C%2050%29%2C%20true%2C%20menu%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%0Afunction%20setItemsToMenu%28newPath%20%3D%20false%29%20%7B%0A%20%20%20menu.textContent%20%3D%20%22%22%3B%0A%20%20%20%0A%20%20%20menu.onclick%20%3D%28e%2C%20el%20%3D%20e.target%2C%20but%20%3D%20e.button%29%3D%3E%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20but%20%3D%3D%200%20%26%26%20el.path%20%26%26%20openWith%28el.path%29%3B%0A%20%20%20%20%20%20but%20%3D%3D%201%20%26%26%20addToSeparator%28e%29%3B%0A%20%20%20%20%20%20%21e.ctrlKey%20%26%26%20but%20%3D%3D%202%20%26%26%20removeNode%28e%29%3B%0A%20%20%20%20%20%20e.ctrlKey%20%26%26%20but%20%3D%3D%202%20%26%26%20changeMenuitemLabel%28e%29%3B%0A%20%20%20%7D%0A%0A%20%20%20var%20array%20%3D%20newPath%20%3F%20%28getHelp%28%29%20+%20%27%2C%27%20+%20newPath%29.split%28%27%2C%27%29%20%3A%20getHelp%28%29%3B%20%20%20%20%20%20%20%0A%20%20%20array.forEach%28path%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28path%20%3D%3D%20%22%22%29%20return%3B%0A%20%20%20%20%20%20if%20%28path%20%3D%3D%20%22separator%22%29%20%7B%20menu.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20mItem%20%3D%20menu.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20%20%20%20mItem.value%20%3D%20path%3B%0A%20%20%20%20%20%20mItem.path%20%3D%20path.split%28%22%3E%22%29.shift%28%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20name%20%3D%20path.split%28%22%5C%5C%22%29.pop%28%29.replace%28%22.exe%22%2C%20%22%22%29%2C%0A%20%20%20%20%20%20%20%20%20%20name%20%3D%20%28/%3E/.test%28name%29%29%20%3F%20name.split%28%22%3E%22%29.pop%28%29%20%3A%20name%2C%0A%20%20%20%20%20%20%20%20%20%20name%20%3D%20name%5B0%5D.toUpperCase%28%29%20+%20name.slice%281%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20mItem.setAttribute%28%22label%22%2C%20name%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22tooltiptext%22%2C%20mItem.path%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20mItem.path%29%3B%0A%20%20%20%20%20%20mItem.onwheel%20%3De%3D%3E%20moveNode%28e%29%3B%0A%20%20%20%7D%29%0A%7D%3B%0AsetItemsToMenu%28%29%3B%0A%0A%0Afunction%20moveNode%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20menu.insertBefore%28el%2C%20e.deltaY%20%3E%200%20%3F%20el.nextSibling.nextSibling%20%3A%20%28el.previousSibling%20%7C%7C%20el%29%29%3B%0A%7D%3B%0A%0A%0Afunction%20addToSeparator%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20menu.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20el.nextSibling%29%3B%0A%7D%3B%0A%0A%0Afunction%20removeNode%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20el.remove%28%29%3B%0A%7D%3B%0A%0A%0Afunction%20changeMenuitemLabel%28e%2C%20el%20%3D%20e.target%29%20%7B%0A%20%20%20menu.hidePopup%28%29%3B%0A%20%20%20el.setAttribute%28%22context%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%20%20%20%0A%20%20%20var%20label%20%3D%20custombuttons.promptBox%28%27%27%2C%20%27%u0412%u0435%u0434%u0438%u0442%u0435%20%u0434%u0440%u0443%u0433%u043E%u0435%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u0443%u043D%u043A%u0442%u0430%27%29%5B1%5D%3B%0A%20%20%20if%20%28label%20%21%3D%20%27%27%29%20%7B%0A%20%20%20%20%20%20%20el.value%20%3D%20el.value.split%28%22%3E%22%29.shift%28%29%20+%20%22%3E%22%20+%20label%3B%0A%20%20%20%20%20%20%20el.setAttribute%28%27label%27%2C%20label%29%3B%0A%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%20%0Afunction%20getAppPath%28%29%20%7B%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0444%u0430%u0439%u043B%22%2C%20fp.modeOpen%29%3B%0A%20%20%20fp.appendFilters%28fp.filterApps%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%22%2C%20fp.modeOpen%29%3B%0A%20%20%20fp.open%28result%20%3D%3E%20result%20%3D%3D%20fp.returnOK%20%26%26%20setItemsToMenu%28fp.file.path%29%29%3B%0A%7D%3B%0A%0A%0Afunction%20getHelp%28%29%20%7B%20%0A%20%20%20return%20self.getAttribute%28%27Help%27%29.split%28%27%5Cn%27%29.filter%28%28path%29%3D%3E%20/%5CS/.test%28path%29%29%3B%20%0A%7D%3B%0A%0A%0Afunction%20addToHelp%28%29%20%7B%0A%20%20%20var%20paths%20%3D%20%5B...menu.children%5D.map%28%28el%29%3D%3E%20el.value%20%7C%7C%20%22separator%22%29.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20var%20link%20%3D%20custombuttons.makeButtonLink%28%22update%22%2C%20_id%29%3B%0A%20%20%20var%20params%20%3D%20custombuttons.cbService.getButtonParameters%28link%29.wrappedJSObject%3B%0A%20%20%20params.help%20%3D%20paths%3B%0A%20%20%20custombuttons.cbService.installButton%28params.wrappedJSObject%20%3D%20params%29%3B%0A%7D%3B%0A%0A%0Afunction%20openWith%28path%29%20%7B%0A%20%20%20var%20uri%20%3D%20gBrowser.currentURI.spec%3B%0A%20%20%20var%20uri%20%3D%20/.%u0440%u0444/.test%28uri%29%20%3F%20Services.io.newURI%28uri%2C%20null%2C%20null%29.asciiSpec%20%3A%20uri%3B%20%20%0A%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%21file.exists%28%29%20%26%26%20custombuttons.alertSlide%28self.label%2C%20%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%22%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5Buri%5D%2C%201%29%3B%0A%7D%3B%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%u043C%u044B%20%5Cn%u0421%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%20%u043C%u0435%u043D%u044E%20%u043D%u043E%u0432%u044B%u0439%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Cn%u0424%u0443%u043D%u043A%u0446%u0438%u0438%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043C%u0435%u043D%u044E%3A%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0443%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u0421%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041F%3A%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E%20%u0438%u043B%u0438%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20Ctrl+%u041F%3A%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u0443%u043D%u043A%u0442%u0430%20%u043C%u0435%u043D%u044E%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%20%20%u041A%u043E%u043B%u0451%u0441%u0438%u043A%u043E%u043C%20%u043C%u044B%u0448%u0438%20%u043C%u043E%u0436%u043D%u043E%20%u043F%u0435%u0440%u0435%u0434%u0432%u0438%u0433%u0430%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%u044B%20%u043C%u0435%u043D%u044E%20%u0438%u043B%u0438%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u0438%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BC%3A%5CProgram%20Files%20%28x86%29%5CInternet%20Explorer%5Ciexplore.exe%0AC%3A%5CProgram%20Files%20%28x86%29%5CGoogle%5CChrome%5CApplication%5Cchrome.exe%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this.onclick =e=> { e.button == 0 && menu.openPopup(this, "after_start"); e.button == 1 && getAppPath(); }; var menu = self.appendChild(document.createElement("menupopup")); addEventListener("popuphidden", ()=> setTimeout(()=> addToHelp(), 50), true, menu); function setItemsToMenu(newPath = false) { menu.textContent = ""; menu.onclick =(e, el = e.target, but = e.button)=> { e.preventDefault(); e.stopPropagation(); but == 0 && el.path && openWith(el.path); but == 1 && addToSeparator(e); !e.ctrlKey && but == 2 && removeNode(e); e.ctrlKey && but == 2 && changeMenuitemLabel(e); } var array = newPath ? (getHelp() + ',' + newPath).split(',') : getHelp(); array.forEach(path=> { if (path == "") return; if (path == "separator") { menu.appendChild(document.createElement("menuseparator")); return }; var mItem = menu.appendChild(document.createElement("menuitem")); mItem.value = path; mItem.path = path.split(">").shift(); var name = path.split("\\").pop().replace(".exe", ""), name = (/>/.test(name)) ? name.split(">").pop() : name, name = name[0].toUpperCase() + name.slice(1); mItem.setAttribute("label", name); mItem.setAttribute("tooltiptext", mItem.path); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", "moz-icon://file://" + mItem.path); mItem.onwheel =e=> moveNode(e); }) }; setItemsToMenu(); function moveNode(e, el = e.target) { menu.insertBefore(el, e.deltaY > 0 ? el.nextSibling.nextSibling : (el.previousSibling || el)); }; function addToSeparator(e, el = e.target) { menu.insertBefore(document.createElement("menuseparator"), el.nextSibling); }; function removeNode(e, el = e.target) { el.remove(); }; function changeMenuitemLabel(e, el = e.target) { menu.hidePopup(); el.setAttribute("context", "event.stopPropagation()"); var label = custombuttons.promptBox('', 'Ведите другое название пункта')[1]; if (label != '') { el.value = el.value.split(">").shift() + ">" + label; el.setAttribute('label', label); } }; function getAppPath() { var fp = window.makeFilePicker(); fp.init(window, "Открыть файл", fp.modeOpen); fp.appendFilters(fp.filterApps); fp.init(window, "Укажите путь к программе", fp.modeOpen); fp.open(result => result == fp.returnOK && setItemsToMenu(fp.file.path)); }; function getHelp() { return self.getAttribute('Help').split('\n').filter((path)=> /\S/.test(path)); }; function addToHelp() { var paths = [...menu.children].map((el)=> el.value || "separator").join("\n"); var link = custombuttons.makeButtonLink("update", _id); var params = custombuttons.cbService.getButtonParameters(link).wrappedJSObject; params.help = paths; custombuttons.cbService.installButton(params.wrappedJSObject = params); }; function openWith(path) { var uri = gBrowser.currentURI.spec; var uri = /.рф/.test(uri) ? Services.io.newURI(uri, null, null).asciiSpec : uri; var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath(path); !file.exists() && custombuttons.alertSlide(self.label, "Файл не существует"); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.run(false, [uri], 1); }; this.tooltipText = "Л: Открыть меню с браузерамы \nС: Добавить в меню новый браузер\ \n\nФункции кликов мыши для меню:\ \n Л: Открыть страницу\ \n С: Добавить разделитель\ \n П: Удалить пункт меню или разделитель\ \n Ctrl+П: Изменить название пункта меню\ \n Колёсиком мыши можно передвигать пункты меню или разделители"; |
bunda1 > 04-08-2012 02:09:00 |
CB Profile Password( Firefox24+ ) от 09.11.2016. ЛКМ => Защитить запуск браузера, Код кнопки и код для инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ECB%20Profile%20Password%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20CB%20Profile%20Password%20%u043E%u0442%2009.11.2016.%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20%0A%20%20%20//%20%u041B%u041A%u041C%20%u043F%u0435%u0440%u0435%u043A%u043B%u0443%u0447%u0430%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u0438%20%u0437%u0430%u043F%u0440%u0430%u0448%u0438%u0432%u0430%u0435%u0442%20%u043F%u0430%u0440%u043E%u043B%u044C%20%u0435%u0441%u043B%u0438%20%u043E%u043D%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%20....%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20var%20run%20%3D%20cbu.getPrefs%28s%29%3B%0A%20%20%20%20%20%20%20%20var%20password%20%3D%20cbu.getPrefs%28%22CB.Password.value%22%29%3B%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20if%20%28%20%21run%20%26%26%20password%20%3D%3D%20null%20%7C%7C%20password%20%3D%3D%20%27%27%20%29%20savePassword%28%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%20%20cbu.setPrefs%28s%2C%20%21run%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%09%0A%20%20%20//%20%u0421%u041A%u041C%20%u0437%u0430%u043F%u0440%u0430%u0448%u0438%u0432%u0430%u0435%u0442%20%u0438%20%u0441%u043E%u0445%u0440%u0430%u043D%u044F%u0435%u0442%20%u043F%u0430%u0440%u043E%u043B%u044C%20....%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20savePassword%28%29%3B%20%0A%7D%3B%0A%0A%0Avar%20s%20%3D%20%27CB.Password%27%3B%0Avar%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%0A%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u043F%u0430%u0440%u043E%u043B%u044C%20...............%0Afunction%20savePassword%28%29%20%7B%0A%20%20%20var%20password%20%3D%20getPassword%28%29%3B%0A%20%20%20if%20%28%20%21password%20%29%20return%3B%0A%20%20%20%0A%20%20%20cbu.setPrefs%28%22CB.Password.value%22%2C%20convertFromUnicode%28%22UTF-8%22%2C%20password%29%29%3B%20%20%20%0A%20%20%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%20%22%u041F%u0430%u0440%u043E%u043B%u044C%20%u0441%u043E%u0445%u0440%u0430%u043D%u0451%u043D%22%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0437%u0430%u043A%u043E%u0434%u0438%u0440%u043E%u0432%u0430%u043D%u043D%u044B%u0439%20%u043F%u0430%u0440%u043E%u043B%u044C%20%u0438%u043B%u0438%20false%20%u0447%u0435%u0440%u0435%u0437%20%u043C%u043E%u0434%u0430%u043B%u044C%u043D%u043E%u0435%20%u043E%u043A%u043D%u043E%20%u0447%u0435%u0440%u0435%u0437%20%u043E%u043A%u043E%u0448%u043A%u043E%20%u0434%u043B%u044F%20%u0432%u043E%u0434%u0430%20%u043F%u0430%u0440%u043E%u043B%u044F%20...............%0Afunction%20getPassword%28%29%20%7B%20%20%20%0A%20%20%20var%20check%20%3D%20%7Bvalue%3A%20true%7D%2C%20password%20%3D%20%7Bvalue%3A%20%22%22%7D%3B%0A%20%20%20Cc%5B%22@mozilla.org/embedcomp/prompt-service%3B1%22%5D.getService%28Ci.nsIPromptService%29.%0A%20%20%20promptPassword%28null%2C%20self.label%2C%20%22%u0412%u0432%u0435%u0434%u0438%u0442%u0435%20%u043F%u0430%u0440%u043E%u043B%u044C%3A%22%2C%20password%2C%20null%2C%20check%29%3B%20%0A%20%20%20if%20%28%20password.value.length%20%29%20%20%0A%20%20%20%20%20%20%20%20return%20btoa%28unescape%28encodeURIComponent%28password.value%29%29%29%20%20%20%20%20%20%20%20%20%0A%20%20%20else%20%0A%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20self.label%2C%20%22%u041F%u0430%u0440%u043E%u043B%u044C%20%u043D%u0435%20%u0431%u044B%u043B%20%u0432%u0432%u0435%u0434%u0435%u043D%22%29%3B%0A%20%20%20%20%20%20%20%20return%20false%3B%20%20%20%20%20%20%20%20%0A%7D%3B%0A%20%0A%0A//%20%u041F%u0440%u043E%u0432%u0435%u0440%u0438%u0442%u044C%20%u043F%u0430%u0440%u043E%u043B%u044C%20%u043F%u0440%u0438%20%u0437%u0430%u043F%u0443%u0441%u043A%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%20%u0432%u044B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%20%u0435%u0441%u043B%u0438%20%u043F%u0430%u0440%u043E%u043B%u044C%20%u043D%u0435%20%u0432%u0435%u0440%u043D%u044B%u0439%20...............%0Afunction%20checkingPassword%28%29%20%7B%20%0A%20%20%20cbu.setPrefs%28%22CB.Password.data%22%2C%20%22%22%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20//%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%20%u0435%u0441%u043B%u0438%20%u043F%u0430%u0440%u043E%u043B%u044C%20%u043D%u0435%20%u0431%u044B%u043B%20%u0432%u0432%u0435%u0434%u0435%u043D%20%u0438%u043B%u0438%20%u043D%u0435%20%u043F%u0440%u0430%u0432%u0438%u043B%u044C%u043D%u044B%u0439%0A%20%20%20var%20password%20%3D%20getPassword%28%29%3B%0A%20%20%20if%20%28%20%21password%20%7C%7C%20password%20%21%3D%20gPrefService.getComplexValue%28%22CB.Password.value%22%2C%20Ci.nsISupportsString%29.data%20%29%20goQuitApplication%28%29%3B%0A%7D%3B%0Acbu.getPrefs%28%22CB.Password.data%22%29%20%3D%3D%20%27shutdown%27%20%26%26%20cbu.getPrefs%28s%29%20%26%26%20cbu.getPrefs%28%22CB.Password.value%22%29%20%26%26%20checkingPassword%28%29%3B%20%20%20%20%20%20%20%0A%0A%0A//%20%u0411%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0437%u0430%u043F%u0440%u043E%u0441%20%u043F%u0430%u0440%u043E%u043B%u044F%20%u0435%u0441%u043B%u0438%20%u0440%u0435%u0441%u0442%u0430%u0440%u0442%20...............%0Avar%20stopButton%20%3D%20%7B%0A%20%20%20observe%3A%20function%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20cbu.setPrefs%28%22CB.Password.data%22%2C%20data.toString%28%29%29%3B%0A%20%20%20%7D%0A%7D%3B%0AServices.obs.addObserver%28stopButton%2C%20%22quit-application%22%2C%20false%29%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u0432%20%27about%3Aconfig%27%20...............%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29.%0A%20%20%20src%20%3D%20%21cbu.getPrefs%28s%29%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%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%22%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%29%3B%20%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20...............%0Athis.tooltipText%20%3D%20self.label%20+%20%22%5CnL%3A%20%20%u0417%u0430%u0449%u0438%u0442%u0438%u0442%u044C%20%u0437%u0430%u043F%u0443%u0441%u043A%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%5Cn%u0421%3A%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u043F%u0430%u0440%u043E%u043B%u044C%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// CB Profile Password от 09.11.2016. // Настройка функций кликов мыши для кнопки ............... this.onclick =e=> { // ЛКМ переклучает кнопку и запрашивает пароль если он не существует .... if ( e.button == 0 ) { var run = cbu.getPrefs(s); var password = cbu.getPrefs("CB.Password.value"); if ( !run && password == null || password == '' ) savePassword(); else cbu.setPrefs(s, !run); } // СКМ запрашивает и сохраняет пароль .... if ( e.button == 1 ) savePassword(); }; var s = 'CB.Password'; var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService); // Сохранить пароль ............... function savePassword() { var password = getPassword(); if ( !password ) return; cbu.setPrefs("CB.Password.value", convertFromUnicode("UTF-8", password)); alertsService.showAlertNotification(self.image, self.label, "Пароль сохранён"); }; // Получить закодированный пароль или false через модальное окно через окошко для вода пароля ............... function getPassword() { var check = {value: true}, password = {value: ""}; Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Ci.nsIPromptService). promptPassword(null, self.label, "Введите пароль:", password, null, check); if ( password.value.length ) return btoa(unescape(encodeURIComponent(password.value))) else alertsService.showAlertNotification("chrome://global/skin/icons/error-16.png", self.label, "Пароль не был введен"); return false; }; // Проверить пароль при запуске браузера и выключить браузер если пароль не верный ............... function checkingPassword() { cbu.setPrefs("CB.Password.data", ""); // закрыть браузер если пароль не был введен или не правильный var password = getPassword(); if ( !password || password != gPrefService.getComplexValue("CB.Password.value", Ci.nsISupportsString).data ) goQuitApplication(); }; cbu.getPrefs("CB.Password.data") == 'shutdown' && cbu.getPrefs(s) && cbu.getPrefs("CB.Password.value") && checkingPassword(); // Блокировать запрос пароля если рестарт ............... var stopButton = { observe: function(subject, topic, data) { cbu.setPrefs("CB.Password.data", data.toString()); } }; Services.obs.addObserver(stopButton, "quit-application", false); // Установить нужную иконку кнопки при старте браузера или при изменениях настроек в 'about:config' ............... function toggleImage() { self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon"). src = !cbu.getPrefs(s) ? self.image : "data:image/x-icon;base64,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"; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage)); // Подсказка ............... this.tooltipText = self.label + "\nL: Защитить запуск браузера \nС: Изменить пароль"; |
bunda1 > 15-08-2012 21:45:49 |
Открыть выделенный текст в внешнем текстовом редакторе( Firefox17+ ), от 29.01.2017. ЛКМ => открыть выделенный текст в внешнем текстовом редакторе. Код кнопки и вкладки код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0432%u043D%u0435%u0448%u043D%u0435%u043C%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u043C%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABuklEQVR42oXQTyiDYRwH8O+717+JgxOO40hKc5mEKJRdHGhRa8jm4kBubnLYheaETWgXGWMTLlqKA8kOJH+SaYqQrWWJse31vP9s4xlPvf1+7/O87+f59mMgraMZcHzdg1N4VzAcOE48YxVRaOI6oa8ygUHSYuSf1UY7nK4CYbOxoQHg4uRU/Pb8yi9UjdoLr1WfgnwDlcYQHK4DKHMLkcnGpSMxAqNghVpfdoEzl44OqI0PuL3ew919AMos7vt2nmBJX1FZjujLJY5XetIBJ6R7kreoKxr0/wV4SHcnbNbZatIiE1xJOsCdBLTA06dCiPT8NJRJgNZ2g11jCQ1wALFHEZhrxSoBnN7fCZrVgD4JSQCGeeD9SQSW2rFMgGCEmCQCm5GKmBZoQNc08PYsAmudWCTABiVBLUlgoibosACvQRHYMsDOJwgDnzEy/ahYP0nNyQdGlmhAmxkIS4CnH7ME2KEkKFUBo04aoB0DgtIQ9wcx1UsSBBI3f/BJyJOdB5jdNKB6AJG8mAA0bQ9jUq/C4envBEXFwPjmD0BG5H6I8cHSnUjA3/whzYKfwfg6BUiZtNXH4Z8lA19Kh9YRwR0sPwAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0417%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0444%u0430%u0439%u043B%20%u0432%20%u043F%u0430%u043F%u043A%u0435%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F%20%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0444%u0430%u0439%u043B%20%u0432%20%u0432%u043D%u0435%u0448%u043D%u0435%u043C%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0435%20..........%0Avar%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0Afile.append%28%22TextToEditor.txt%22%29%3B%0AcustombuttonsUtils.writeFile%28%20file.path%2C%20convertFromUnicode%28%22UTF-16%22%2C%20getSelect%28%29%29%20%29%3B%0Afile.launch%28%29%3B%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20..........%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20false%20..........%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20var%20el%20%3D%20document.commandDispatcher.focusedElement%3B%0A%20%20%20try%20%7B%20return%20el.value.substring%28el.selectionStart%2C%20el.selectionEnd%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29%3B%0A%20%20%20return%20%28sel%20%3D%3D%20%27%27%29%20%3F%20false%20%3A%20sel.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%0A%7D%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:// Записать выделенный текст в файл в папке профиля и открыть файл в внешнем редакторе .......... var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("TextToEditor.txt"); custombuttonsUtils.writeFile( file.path, convertFromUnicode("UTF-16", getSelect()) ); file.launch(); // Конвертировать текст в юникод .......... function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; // Получить выделенный текст из страницы или false .......... function getSelect() { var el = document.commandDispatcher.focusedElement; try { return el.value.substring(el.selectionStart, el.selectionEnd) } catch(e) {}; var sel = document.commandDispatcher.focusedWindow.getSelection(); return (sel == '') ? false : sel.toString().replace(/^\s+|\s+$/g,""); }; |
bunda1 > 22-08-2012 23:40:57 |
Открыть папки и файлы Firefox( Firefox11+ ) от 13.02.2017. ЛКМ => Открыть меню кнопки. Скриншот меню кнопки: Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0438%20%u0438%20%u0444%u0430%u0439%u043B%u044B%20Firefox%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABsAAAAoAAAAFgAAAAAAAAAADggMA0MoOjIXDxQWAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAQEBCgAAADksLCytMDAw4gAAAI0bHBuDKR8lan1IaZfSg7XS+K3f/zwtN2IAAAAAAwIDAwAAAAAAAAAAAAAAAQMDAwADAwMUAgICZUtLS+xgYWH/RURF8W1tbfpQS07/hm99/8Czu/2tsK7/IiMijwAAAAADAgMCAAAAAAAAAAAAAAAAJSUlH1dXV8ROTk7cl5eX/7Gxsfytra3/fX19/UpMS/t2enf7tLe1+7u7u/8lJCSkAAAAGQUFBQABAQECAAAAAAAAAAAfHx8tYGBg8ZiYmP+Li4v9UlJS/pubm/6xsbH+paWl/qWlpf6GhYX+xsjH/1Q9R+JxQV3LRzFAWQAAAAACAQICAAAAAAMDAwNhYWHViIiI/zMzM/xvb2/+ioqK/p2dnf7n5+f+u7u7/pycnP7IyMj+WFBT/HZkb/9JQUeTAAAAAgMDAwESEhIAWlpaj4KCgv9aWlr+SUlJ/pGRkf6RkZH+i4uL/tzc3P6AgID+ysrK/sfHx/5MTk36U1ZU/zc4N4MBAAEBAgICAgkJCQB2dna+lZWV/2lpaf05OTn+bm5u/l9fX/7AwMD++vr6/ru7u/7CwsL+ysrK/lRUVPtkY2T/SEhIaQAAAAACAgIEAAAAAwcHBwBVVVWBqamp/5ubm/qQkJD+ysrK/uDg4P7b29v+0NDQ/sPDw/7Nzc3+WFhY+2xsbP9ISEhiAAAAAAICAgQCAgIFAAAAAFtbW3bKysr/x8fH+vX19f729vb+pKSk/re3t/7FxcX+zc3N/tLS0v5cXFz7dHR0/0hISGIAAAAAAwMDBAICAgQAAAAAMTExdY2Njf91dXX6tLS0/uDg4P65ubn+wsLC/s3Nzf7W1tb+29vb/mBgYPt6enr/S0tLYgAAAAADAwMEAgICBAAAAAAtLS1zd3d3/4qKivqdnZ3+pqam/re3t/7Gxsb+1NTU/t3d3f7f39/+Y2Nj+4CAgP9OTk5iAAAAAAMDAwQCAgIEAAAAAC4uLnN/f3//jIyM+p2dnf6pqan+tra2/sfHx/7Z2dn+6Ojo/u/v7/5sbGz7g4OD/1FRUWIAAAAAAwMDBAICAgQAAAAALy8vc39/f/+JiYn6nZ2d/rCwsP7AwMD+ysrK/sfHx/60tLT+mZmZ/mBgYPuTk5P/UlJSYgAAAAADAwMEAgICBAAAAAAvLy9zhISE/5CQkPmYmJj9i4uL/XZ2dv1lZWX9XFxc/WJiYv14eHj9mpqa+snJyf9RUVFhAAAAAAMDAwQCAgIEAAAAADAwMHRoaGj/SUlJ+z09Pf86Ojr/SEhI/2JiYv99fX3/lpaW/6ysrP+8vLz70tLS/1JSUmIAAAAAAwMDBAEBAQQAAAAAIyMjVzY2Nu8wMDDjS0tL5mFhYedzc3PnfHx85oeHh+WWlpbkqKio5La1tuHNzMzzb29vWAAAAAAEBAQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20..................%0Avar%20array%20%3D%20%5B%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22Profile%22%2C%0A%20%20%20%20%20%20image%3A%20%22chrome%3A//mozapps/skin/profile/profileicon.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22ProfD%22%20%0A%20%20%20%20%20%7D%2C%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%7B%20%0A%20%20%20%20%20%20label%3A%20%22Firefox%22%2C%0A%20%20%20%20%20%20image%3A%20%22chrome%3A//branding/content/icon16.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22CurProcD%22%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22Download%22%2C%0A%20%20%20%20%20%20image%3A%20%22chrome%3A//mozapps/skin/downloads/downloadIcon.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22DfltDwnld%22%20%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20separator%3A%20%27%27%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22Extensions%22%2C%0A%20%20%20%20%20%20image%3A%20%22chrome%3A//mozapps/skin/extensions/extensionGeneric-16.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22ProfD%2Cextensions%22%20%0A%20%20%20%20%20%7D%2C%20%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22Custom%20buttons%22%2C%0A%20%20%20%20%20%20image%3A%20%22chrome%3A//custombuttons/skin/cbicon.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22ProfD%2Ccustombuttons%22%20%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22Bookmark%20backups%22%2C%0A%20%20%20%20%20%20image%3A%20%22chrome%3A//custombuttons/skin/button.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22ProfD%2Cbookmarkbackups%22%20%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22Search%20plugins%28default%29%22%2C%0A%20%20%20%20%20%20style%3A%20%22chrome%3A//global/skin/icons/Search-glass.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22CurProcD%2Csearchplugins%22%20%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22Search%20plugins%28user-defined%29%22%2C%0A%20%20%20%20%20%20style%3A%20%22chrome%3A//global/skin/icons/Search-glass.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22UsrSrchPlugns%22%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20separator%3A%20%27%27%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22Chrome%22%2C%0A%20%20%20%20%20%20image%3A%20%22chrome%3A//global/skin/dirListing/folder.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22UChrm%22%20%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22userChrome.css%22%2C%0A%20%20%20%20%20%20style%3A%20%22chrome%3A//global/skin/icons/folder-item.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22ProfD%2Cchrome%2CuserChrome.css%22%20%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22userContent.css%22%2C%0A%20%20%20%20%20%20style%3A%20%22chrome%3A//global/skin/icons/folder-item.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22ProfD%2Cchrome%2CuserContent.css%22%20%20%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22user.js%22%2C%0A%20%20%20%20%20%20style%3A%20%22chrome%3A//global/skin/icons/folder-item.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22ProfD%2C%2Cuser.js%22%20%0A%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%7B%0A%20%20%20%20%20%20label%3A%20%22prefs.js%22%2C%0A%20%20%20%20%20%20style%3A%20%22chrome%3A//global/skin/icons/folder-item.png%22%2C%0A%20%20%20%20%20%20value%3A%20%22ProfD%2C%2Cprefs.js%22%20%0A%20%20%20%20%20%7D%20%20%20%20%20%0A%5D%3B%0Avar%20version%20%3D%20parseInt%28Services.appinfo.version%29%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28m%3D%3E%20%7B%0A%20%20%20if%20%28%20%22separator%22%20in%20m%20%29%20%7B%20menuPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%20LOG%28m.label.slice%280%2C6%29%29%0A%20%20%20if%20%28%20version%20%3E%2040%20%26%26%20m.label.startsWith%28%22Search%22%29%20%29%20return%3B%0A%20%20%20var%20mItem%20%3D%20menuPopup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%20%20%20mItem.setAttribute%28%22value%22%2C%20m.value%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20%28%22image%22%20in%20m%29%20%26%26%20mItem.setAttribute%28%22image%22%2C%20m.image%29%3B%20%20%20%20%0A%20%20%20%28%22style%22%20in%20m%29%20%26%26%20mItem.setAttribute%28%22style%22%2C%20%22list-style-image%3A%20url%28%27%22+%20m.style%20+%22%27%29%3B%20-moz-image-region%3A%20rect%280%2C%2016px%2C%2016px%2C%200%29%22%29%3B%0A%7D%29%3B%0AmenuPopup.addEventListener%28%22click%22%2C%20e%3D%3E%20openFirefoxFolders%28e.target.value%29%29%3B%0A%20%0A%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u043F%u0430%u043F%u043A%u0438%20%u0438%20%u0444%u0430%u0439%u043B%u044B%20Firefox%2C%20%u0432%u044B%u0431%u043E%u0440%20%u0437%u0430%u0432%u044B%u0441%u0438%u0442%20%u043E%u0442%20%u0430%u0440%u0433%u0443%u043C%u0435%u043D%u0442%u0430%20%27value%27%20...................toString%28%29.startsWith%28%22Search%22%29%0Afunction%20openFirefoxFolders%28value%29%20%7B%0A%20%20%20var%20array%20%3D%20value.split%28%22%2C%22%29%2C%0A%20%20%20directory%20%3D%20array%5B0%5D%2C%20folders%20%3D%20array%5B1%5D%2C%20file%20%3D%20array%5B2%5D%3B%0A%0A%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28directory%2C%20Ci.nsIFile%29%3B%0A%20%20%20folders%20%26%26%20dir.append%28folders%29%3B%0A%20%20%20file%20%26%26%20%28dir.append%28file%29%2C%20dir.launch%28%29%29%3B%0A%20%20%20dir.exists%28%29%20%26%26%20%21file%20%26%26%20dir.reveal%28%29%3B%0A%7D%3B%0A%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this._handleClick =()=> menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); // Создать меню .................. var array = [ { label: "Profile", image: "chrome://mozapps/skin/profile/profileicon.png", value: "ProfD" }, { label: "Firefox", image: "chrome://branding/content/icon16.png", value: "CurProcD" }, { label: "Download", image: "chrome://mozapps/skin/downloads/downloadIcon.png", value: "DfltDwnld" }, { separator: '' }, { label: "Extensions", image: "chrome://mozapps/skin/extensions/extensionGeneric-16.png", value: "ProfD,extensions" }, { label: "Custom buttons", image: "chrome://custombuttons/skin/cbicon.png", value: "ProfD,custombuttons" }, { label: "Bookmark backups", image: "chrome://custombuttons/skin/button.png", value: "ProfD,bookmarkbackups" }, { label: "Search plugins(default)", style: "chrome://global/skin/icons/Search-glass.png", value: "CurProcD,searchplugins" }, { label: "Search plugins(user-defined)", style: "chrome://global/skin/icons/Search-glass.png", value: "UsrSrchPlugns" }, { separator: '' }, { label: "Chrome", image: "chrome://global/skin/dirListing/folder.png", value: "UChrm" }, { label: "userChrome.css", style: "chrome://global/skin/icons/folder-item.png", value: "ProfD,chrome,userChrome.css" }, { label: "userContent.css", style: "chrome://global/skin/icons/folder-item.png", value: "ProfD,chrome,userContent.css" }, { label: "user.js", style: "chrome://global/skin/icons/folder-item.png", value: "ProfD,,user.js" }, { label: "prefs.js", style: "chrome://global/skin/icons/folder-item.png", value: "ProfD,,prefs.js" } ]; var version = parseInt(Services.appinfo.version); var menuPopup = self.appendChild(document.createElement("menupopup")); array.forEach(m=> { if ( "separator" in m ) { menuPopup.appendChild(document.createElement("menuseparator")); return }; LOG(m.label.slice(0,6)) if ( version > 40 && m.label.startsWith("Search") ) return; var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m.label); mItem.setAttribute("value", m.value); mItem.setAttribute("class", "menuitem-iconic"); ("image" in m) && mItem.setAttribute("image", m.image); ("style" in m) && mItem.setAttribute("style", "list-style-image: url('"+ m.style +"'); -moz-image-region: rect(0, 16px, 16px, 0)"); }); menuPopup.addEventListener("click", e=> openFirefoxFolders(e.target.value)); // Функция открывает папки и файлы Firefox, выбор завысит от аргумента 'value' ...................toString().startsWith("Search") function openFirefoxFolders(value) { var array = value.split(","), directory = array[0], folders = array[1], file = array[2]; var dir = Services.dirsvc.get(directory, Ci.nsIFile); folders && dir.append(folders); file && (dir.append(file), dir.launch()); dir.exists() && !file && dir.reveal(); }; |
bunda1 > 25-08-2012 11:50:33 |
Блокнот в вкладке( Firefox24+ ) от 27.09.2017. ЛКМ => Открыть блокнот в табе, Код кнопки, инициализации и справки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0411%u043B%u043E%u043A%u043D%u043E%u0442%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgAAAAApKSlRRkZGh0BAQHxBQUF+QUFBfkFBQX5BQUF+QEBAfEZGRogaGho1AAAAAAABAAECAgICAgICAgQEBAUAAAAAMTEwWeLi4f//////+vr6//r6+v/6+vr//Pz8//v7+//5+fn++/v7/7CwsPdNTU2hAQEBAgAAAAAAAAAAAwMDBAAAAABvbm+x8vHy/+Df4Pfi4+P76ubr++Lh4vvk5OT7/f39+/////v////77/Dv/aysrP8BEAElKngnxDCDLdEvgSzOLX8qy0GTPu1Zq1b/WatW/lasU/9op2f/xcPF/8PEw//i5+L/8vfx//H27//p6+n/qqqq/ESaQOS67a7/teip/rbpqv+36qv/suSm/6zfoP+s36D/teOo/4bNfP93s3b/39bf/9XY1f/5/Pj/+Pv2/+vs6/+qqar/T6RK8bvjsP6t2qT8sNym/LDcpvyx3af+st6o/7LeqP+w3ab/vuaz/1mqVP+2w7b/3dvd//D07//4+/f/6+zr/6qqqv8BNwFvndiU/8Djt/y34a//ueGw/7nhsP+54bD/ueGw/7jgr//B5Lj/mtSS/3q1ev/WzNb/4ufh//f79f/p6+n/qqqq/wAAAANHk0Pbzu/F/73gtP3A47f/wOO3/8Djt//A47f/wOO4/73itf/D5rn/Y7Je/7/MwP/k4eP/+f35/+vs6/+qqqr/AAAAAAAzAGap4KP/zebG+8Tkvv/G5b//xuS//8blv//F5b7/vuK2/8LkuP+U0Yv/ZaBl/97W3v/u9e3/6+3r/6qqqv8DAQMAAAAABE6XS+Db8dT/yuPD/czmxv/N5sf/zObG/8blv//A47j/t+Cu/7vjsP9nuWP/uMW5/+zr6//s7+z/qamq/wACAAQAAAAAATQBZrTir//a6dX70ufN/9Pozv/N5sf/xuS//8Djt/+44K//u+Ow/4zNgv9uqW7/6+Tr/+ru6v+qqar/AAAAAQMBAwAAAAAHVJhS2Or25v/W59L91OjP/8zmxv/G5b//wOO3/7rhsP+w3ab/tuSp/1isU/+vva//6+rq/6qqqv8AAAAAAQIBAwAAAAAENQRkv+S7/+Pr3vvR58z/zObG/8bkv/+/4rf/ueCw/7Hep/+z4Kf/h818/3Kucv/r4uv/qKqo/gAAAAAAAAABAwEDAAAAAApVl1TU7Pbo/9HlzP3P58j/xuS//8Ljuf+64bH/s9+p/6vcoP+t4KD/Wq5U/8bSx/23tLf9AAAAAAAAAAABAgEDAAAAAAk3CWaq36b/1unR+cLjvPzF5r78t+Cv/LXgrP2w36b8odmW/Kzgn/1yxGf7gLKA/52Sne0AAAAAAAAAAAAAAAECAQIAAAEADUOCQcdwt23/Zati82GrXvVjrWD4XKlY9FqpVvZaqlX3UqZN81OnTvxYbFndGxcbNAAAAAAAAAAAAAAAAAABAQEAAAAAFBAUHTAzMGcqKipRJSclUS8wL14nJyZNKCspVy4uLlsiJCJKNjU2aQQABAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...........%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28notepad%29%3B%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%20%0A%20%20%20%20%20%20%20%20//%20%u0437%u0430%u043F%u043E%u043C%u043D%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20var%20clip%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20window.content.focus%28%29%3B%0A%20%20%20%20%20%20%20%20goDoCommand%28%22cmd_copy%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%20%u0438%20%u0432%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20%20%20%20%20%20var%20browser%20%3D%20gBrowser.getBrowserForTab%28gBrowser.selectedTab%20%3D%20gBrowser.addTab%28notepad%29%29%3B%20%0A%20%20%20%20%20%20%20%20browser.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28e.type%2C%20c%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20clip%20%26%26%20gClipboard.write%28clip%29%3B%20//%20%u0432%u0435%u0440%u043D%u0443%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%2050%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%29%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%0A//%20%u041E%u0431%u043D%u043E%u0432%u0438%u0442%u044C%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%20%u0432%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%u043F%u043E%u0441%u043B%u0435%20%u043E%u0431%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...........%0Aif%20%28%20gBrowser.currentURI.spec%20%3D%3D%20notepad%20%29%20%7B%0A%20%20%20%20%20var%20val%20%3D%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%3B%0A%20%20%20%20%20loadURI%28notepad%29%3B%0A%20%20%20%20%20setTimeout%28%28%29%3D%3E%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%20%3D%20val%2C%20500%29%3B%20%20%20%20%20%0A%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20%20%20%0A//%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%u043D%u0443%u044E%20%u0441%u0442%u0440%u043E%u043A%u0443%20%u0432%20%u043A%u043B%u0430%u0434%u043A%u0435%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%u0430%20...........%0AaddEventListener%28%22TabAttrModified%22%2C%20%28%29%3D%3E%20gBrowser.currentURI.spec%20%3D%3D%20notepad%20%26%26%20gURLBar.reset%28%29%29%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0430%u0435%u043C%20%u0430%u0434%u0440%u0435%u0441%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%u0430%20%u043A%u0430%u043A%20base64%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0421%u043F%u0440%u0430%u0432%u043A%u0430%20%u0438%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u043C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0434%u043B%u044F%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%u0430%20...........%0Avar%20notepad%20%3D%20%22data%3Atext/html%3Bbase64%2C%22%20+%20window.btoa%28self.getAttribute%28%27Help%27%29.replace%28%27selfImage%27%2C%20self.image%29%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20...........%0Athis.tooltipText%20%3D%20%22%u0411%u043B%u043E%u043A%u043D%u043E%u0442%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%5Cn%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%20%5Cn%u0421%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0431%u043B%u043E%u043A%u043D%u043E%u0442%20%u0441%20%u0442%u0435%u043A%u0441%u0442%u043E%u043C%28%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u043C%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%29%20%5Cn%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%3Cmeta%20http-equiv%3D%22Content-Type%22%20content%3D%22text/html%3B%20charset%3Dutf-8%22/%3E%3Ctitle%3ENotepad%3C/title%3E%0A%3Chead%3E%0A%20%3Clink%20rel%3D%22shortcut%20icon%22%20href%3D%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgAAAAApKSlRRkZGh0BAQHxBQUF+QUFBfkFBQX5BQUF+QEBAfEZGRogaGho1AAAAAAABAAECAgICAgICAgQEBAUAAAAAMTEwWeLi4f//////+vr6//r6+v/6+vr//Pz8//v7+//5+fn++/v7/7CwsPdNTU2hAQEBAgAAAAAAAAAAAwMDBAAAAABvbm+x8vHy/+Df4Pfi4+P76ubr++Lh4vvk5OT7/f39+/////v////77/Dv/aysrP8BEAElKngnxDCDLdEvgSzOLX8qy0GTPu1Zq1b/WatW/lasU/9op2f/xcPF/8PEw//i5+L/8vfx//H27//p6+n/qqqq/ESaQOS67a7/teip/rbpqv+36qv/suSm/6zfoP+s36D/teOo/4bNfP93s3b/39bf/9XY1f/5/Pj/+Pv2/+vs6/+qqar/T6RK8bvjsP6t2qT8sNym/LDcpvyx3af+st6o/7LeqP+w3ab/vuaz/1mqVP+2w7b/3dvd//D07//4+/f/6+zr/6qqqv8BNwFvndiU/8Djt/y34a//ueGw/7nhsP+54bD/ueGw/7jgr//B5Lj/mtSS/3q1ev/WzNb/4ufh//f79f/p6+n/qqqq/wAAAANHk0Pbzu/F/73gtP3A47f/wOO3/8Djt//A47f/wOO4/73itf/D5rn/Y7Je/7/MwP/k4eP/+f35/+vs6/+qqqr/AAAAAAAzAGap4KP/zebG+8Tkvv/G5b//xuS//8blv//F5b7/vuK2/8LkuP+U0Yv/ZaBl/97W3v/u9e3/6+3r/6qqqv8DAQMAAAAABE6XS+Db8dT/yuPD/czmxv/N5sf/zObG/8blv//A47j/t+Cu/7vjsP9nuWP/uMW5/+zr6//s7+z/qamq/wACAAQAAAAAATQBZrTir//a6dX70ufN/9Pozv/N5sf/xuS//8Djt/+44K//u+Ow/4zNgv9uqW7/6+Tr/+ru6v+qqar/AAAAAQMBAwAAAAAHVJhS2Or25v/W59L91OjP/8zmxv/G5b//wOO3/7rhsP+w3ab/tuSp/1isU/+vva//6+rq/6qqqv8AAAAAAQIBAwAAAAAENQRkv+S7/+Pr3vvR58z/zObG/8bkv/+/4rf/ueCw/7Hep/+z4Kf/h818/3Kucv/r4uv/qKqo/gAAAAAAAAABAwEDAAAAAApVl1TU7Pbo/9HlzP3P58j/xuS//8Ljuf+64bH/s9+p/6vcoP+t4KD/Wq5U/8bSx/23tLf9AAAAAAAAAAABAgEDAAAAAAk3CWaq36b/1unR+cLjvPzF5r78t+Cv/LXgrP2w36b8odmW/Kzgn/1yxGf7gLKA/52Sne0AAAAAAAAAAAAAAAECAQIAAAEADUOCQcdwt23/Zati82GrXvVjrWD4XKlY9FqpVvZaqlX3UqZN81OnTvxYbFndGxcbNAAAAAAAAAAAAAAAAAABAQEAAAAAFBAUHTAzMGcqKipRJSclUS8wL14nJyZNKCspVy4uLlsiJCJKNjU2aQQABAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%22type%3D%22image/x-icon%22%3E%0A%3C/head%3E%0A%0A%3CTEXTAREA%3E%3C/TEXTAREA%3E%0A%3Cstyle%3E%0A%0Ahtml%20%7B%0A%20%20background-color%3A%20black%3B%0A%20%20overflow%3A%20hidden%3B%0A%7D%0Atextarea%20%7B%0A%20%20background%3A%20%23383838%3B%0A%20%20overflow-y%3A%20auto%3B%0A%20%20width%3A%20100%25%3B%0A%20%20height%3A%20100%25%3B%0A%20%20border-radius%3A%202px%3B%0A%20%20border%3A%202px%20inset%20white%3B%0A%20%20color%3A%20white%3B%0A%7D%0A%3C/style%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ........... this.onclick =e=> { if ( e.button == 0 ) gBrowser.selectedTab = gBrowser.addTab(notepad); // открыть блокнот if ( e.button == 1 ) { // запомнить текст из буфера обмена и скопировать текст на странице var clip = gClipboard.read(); window.content.focus(); goDoCommand("cmd_copy"); // открыть блокнот и вставить текст из буфера обмена var browser = gBrowser.getBrowserForTab(gBrowser.selectedTab = gBrowser.addTab(notepad)); browser.addEventListener("pageshow", function c(e) { this.removeEventListener(e.type, c); setTimeout(()=> { content.document.getElementsByTagName("textarea")[0].value = gClipboard.read(); clip && gClipboard.write(clip); // вернуть текст в буфер обмена }, 50); }); }; }; // Обновить блокнот в текущей вкладке после обновления кнопки ........... if ( gBrowser.currentURI.spec == notepad ) { var val = content.document.getElementsByTagName("textarea")[0].value; loadURI(notepad); setTimeout(()=> content.document.getElementsByTagName("textarea")[0].value = val, 500); }; // Очистить адресную строку в кладке блокнота ........... addEventListener("TabAttrModified", ()=> gBrowser.currentURI.spec == notepad && gURLBar.reset()); // Получаем адрес блокнота как base64 из вкладки Справка и добавляем иконку для вкладки блокнота ........... var notepad = "data:text/html;base64," + window.btoa(self.getAttribute('Help').replace('selfImage', self.image)); // Подсказка у кнопки ........... this.tooltipText = "Блокнот в вкладке \nЛ: Открыть блокнот \nС: Открыть блокнот с текстом( выделенным или из буфера ) \nП: CB меню"; Справка: Выделить код Код:<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><title>Notepad</title> <head> <link rel="shortcut icon" href="data:image/x-icon;base64,AAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBAgAAAAApKSlRRkZGh0BAQHxBQUF+QUFBfkFBQX5BQUF+QEBAfEZGRogaGho1AAAAAAABAAECAgICAgICAgQEBAUAAAAAMTEwWeLi4f//////+vr6//r6+v/6+vr//Pz8//v7+//5+fn++/v7/7CwsPdNTU2hAQEBAgAAAAAAAAAAAwMDBAAAAABvbm+x8vHy/+Df4Pfi4+P76ubr++Lh4vvk5OT7/f39+/////v////77/Dv/aysrP8BEAElKngnxDCDLdEvgSzOLX8qy0GTPu1Zq1b/WatW/lasU/9op2f/xcPF/8PEw//i5+L/8vfx//H27//p6+n/qqqq/ESaQOS67a7/teip/rbpqv+36qv/suSm/6zfoP+s36D/teOo/4bNfP93s3b/39bf/9XY1f/5/Pj/+Pv2/+vs6/+qqar/T6RK8bvjsP6t2qT8sNym/LDcpvyx3af+st6o/7LeqP+w3ab/vuaz/1mqVP+2w7b/3dvd//D07//4+/f/6+zr/6qqqv8BNwFvndiU/8Djt/y34a//ueGw/7nhsP+54bD/ueGw/7jgr//B5Lj/mtSS/3q1ev/WzNb/4ufh//f79f/p6+n/qqqq/wAAAANHk0Pbzu/F/73gtP3A47f/wOO3/8Djt//A47f/wOO4/73itf/D5rn/Y7Je/7/MwP/k4eP/+f35/+vs6/+qqqr/AAAAAAAzAGap4KP/zebG+8Tkvv/G5b//xuS//8blv//F5b7/vuK2/8LkuP+U0Yv/ZaBl/97W3v/u9e3/6+3r/6qqqv8DAQMAAAAABE6XS+Db8dT/yuPD/czmxv/N5sf/zObG/8blv//A47j/t+Cu/7vjsP9nuWP/uMW5/+zr6//s7+z/qamq/wACAAQAAAAAATQBZrTir//a6dX70ufN/9Pozv/N5sf/xuS//8Djt/+44K//u+Ow/4zNgv9uqW7/6+Tr/+ru6v+qqar/AAAAAQMBAwAAAAAHVJhS2Or25v/W59L91OjP/8zmxv/G5b//wOO3/7rhsP+w3ab/tuSp/1isU/+vva//6+rq/6qqqv8AAAAAAQIBAwAAAAAENQRkv+S7/+Pr3vvR58z/zObG/8bkv/+/4rf/ueCw/7Hep/+z4Kf/h818/3Kucv/r4uv/qKqo/gAAAAAAAAABAwEDAAAAAApVl1TU7Pbo/9HlzP3P58j/xuS//8Ljuf+64bH/s9+p/6vcoP+t4KD/Wq5U/8bSx/23tLf9AAAAAAAAAAABAgEDAAAAAAk3CWaq36b/1unR+cLjvPzF5r78t+Cv/LXgrP2w36b8odmW/Kzgn/1yxGf7gLKA/52Sne0AAAAAAAAAAAAAAAECAQIAAAEADUOCQcdwt23/Zati82GrXvVjrWD4XKlY9FqpVvZaqlX3UqZN81OnTvxYbFndGxcbNAAAAAAAAAAAAAAAAAABAQEAAAAAFBAUHTAzMGcqKipRJSclUS8wL14nJyZNKCspVy4uLlsiJCJKNjU2aQQABAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="type="image/x-icon"> </head> <TEXTAREA></TEXTAREA> <style> html { background-color: black; overflow: hidden; } textarea { background: #383838; overflow-y: auto; width: 100%; height: 100%; border-radius: 2px; border: 2px inset white; color: white; } </style> |
bunda1 > 04-11-2012 13:00:42 |
Настройки( Firefox 17-33 ) ЛКМ => открыть настройки. Код кнопки и инициализация: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADHUlEQVR4Xl3DS2hcVRzA4d+55869M5NMppOEyctoxlgnsRgxRrSKpaQ+arG4kkJEBQmu1YUaoXQluNEuRUQ3xShiKdpiKSFpNRAosbQaY3yUGqOpcZI0Zh7JzJx7zt9FyaYffKrp0Gl2iBMkERsSJwOqWJsUZwtUTb/zvTnxlHH1CKxFRNjhcRPKurtVLcpHTelPtkcGP47yrZ/adHiy9kT+gsskjlKLwDlu5QHgZLA20HHa9GcnzGB7j7svS/Tknkc5/MDTHNyTckN3jDntHUN7RxC6AVA3q9TBr8Hqt0uH9r/DcAKKhl3f/EXjPxuoQKE9H9uZohQTNjHocz99oTYqI4JYAA/nEGe79aUNqEDDzDqt26Xr8Q7/VNjiz/jNmIZqmdvDgGyuC5eK97rt7dDV67iawRNR+01f+4vykAdFIblV/zXeknjcC/0jKu49Fe9KPRbetWvKyzhykaFpqG/AZpvHURxAgSfKv6fe05t0fe1gFFaH6WhFF1wpNIkgWcbJRS/QzyV2Zy4ke2K0PdIbY/Tws9Ld8R4mavPFRpGaM8ga0AultnR7tlp7NZ30jzZkkkirRu0Obuh08IavmE4uSag2I2S9soyi7Clnvg+u//CtXpgrsGIwQZx/W5vHYg2xsZiWprjEaCn4JLbUbNKq2XpFIcv/Qbm0LNaGqmH4FBJFOGvfre478CadLWAhJTVySTPVmdFnUil/Lkj4+WtV9frlRe6sGuDyPExPj6r43s/AWd92tX1n9g3vxSpIAEVQAolQaIxT3q6pxkoVHEAOmP4Nzk48o8KHxyGyzTaXnYieHx7k6iY0K+jMwBWgAvhADIgAU4W1eZiZO8lG8RUVPHiCmxi2udZxVotnqFptR+5/CT+vWAL6gXuBq8AVA1+e+Jut4iC+v+ohAiLgZEr/vDyg1iqjFDZfVucWPuc2oMPAR18t8OHkCnkDNxagXjuO1qsAHjsUSBAriAeiEda31vjjF1icLbP45wtM/v4Wx87Oc37mNax5H6UA8LmFWIsoBcWt43wwPUU9MsSDS9joRy5eO09ML6E9dvwPdX9rZvPeL7sAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%20%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20document.getElementById%28%27menu_preferences%27%29.click%28%29%3B%20%20%20%20%0A%7D%3B%0A%0A%0A//%20%u0421%u043B%u0435%u0434%u0438%u043C%20%u0437%u0430%u043F%u0443%u0441%u043A%u043E%u043C%20%u0432%u0441%u0435%u0445%20%u043A%u043E%u043C%u0430%u043D%u0434%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u043A%u0430%u0435%u043C%20%u043D%u0443%u0436%u043D%u044B%u0435%20%u043A%u043E%u0434%u044B%20%u0438%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20..........................%0Afunction%20commandHandler%28e%29%20%7B%0A%20%0A%20%20%20var%20command%20%3D%20e.target.getAttribute%28%22oncommand%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%27%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%27%20%u043A%u0430%u043A%20%u043D%u0435%20%u043C%u043E%u0434%u0430%u043B%u044C%u043D%u043E%u0435%20%u043E%u043A%u043D%u043E%20%u0438%20%u0434%u0430%u0442%u044C%20%u0432%u043E%u0437%u043C%u043E%u0436%u043D%u043E%u0441%u0442%u044C%20%u0437%u0430%u043A%u0440%u044B%u0442%u044C%20%u0434%u0432%u043E%u0439%u043D%u044B%u043C%20%u043A%u043B%u0438%u043A%u043E%u043C%20%u043D%u0430%20%u043E%u043A%u043E%u0448%u043A%u0435%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20....%0A%20%20%20if%20%28%20command%20%3D%3D%20%27openPreferences%28%29%3B%27%20%29%20%7B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20//%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%2C%20%u0438%u043B%u0438%20%u0444%u043E%u043A%u0443%u0441%20%u043D%u0430%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u0435%u0441%u043B%u0438%20%u043E%u043D%u0438%20%u0443%u0436%u0435%20%u043E%u0442%u043A%u0440%u044B%u0442%u044B%20....%0A%20%20%20%20%20%20%20%20var%20win%20%3D%20Cc%5B%22@mozilla.org/appshell/window-mediator%3B1%22%5D.getService%28Ci.nsIWindowMediator%29.getMostRecentWindow%28%22Browser%3APreferences%22%29%3B%0A%20%20%20%20%20%20%20%20var%20features%20%3D%20%22chrome%2C%20dialog%2C%20titlebar%2C%20toolbar%2C%20%22%20+%20%22centerscreen%2C%20minimizable%2C%20resizable%22%3B%0A%20%20%20%20%20%20%20%20if%20%28%20%21win%20%29%20var%20preferences%20%3D%20window.openDialog%28%22chrome%3A//browser/content/preferences/preferences.xul%22%2C%20%22Preferences%22%2C%20features%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%20win%20%29%20%7B%20win.focus%28%29%3B%20return%3B%20%7D%3B%20%0A%0A%20%20%20%20%20%20%20%20//%20%u043E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0437%u0430%u043A%u0440%u044B%u0432%u0430%u0435%u0442%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043F%u043E%20%u0434%u0432%u043E%u0439%u043D%u043E%u043C%u0443%20%u043A%u043B%u0438%u043A%u0443%20%u043D%u0430%20%u043E%u043A%u043E%u0448%u043A%u0435%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u0438%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20....%0A%20%20%20%20%20%20%20%20preferences.addEventListener%28%22dblclick%22%2C%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20node%20%3D%20e.target.nodeName%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20node%20%3D%3D%20%22textbox%22%20%7C%7C%20node%20%3D%3D%20%22filefield%22%20%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%22dblclick%22%2C%20arguments.callee%2C%20true%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.close%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20true%29%3B%20%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%7D%3B%0A%0Awindow.addEventListener%28%22command%22%2C%20commandHandler%2C%20true%29%3B%20%0Athis.onDestroy%20%3D%20function%28%29%20%7B%0A%20%20%20%20window.removeEventListener%28%22command%22%2C%20commandHandler%2C%20true%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ............................................... this.onclick = function(e) { if ( e.button == 0 ) document.getElementById('menu_preferences').click(); }; // Следим запуском всех команд и запускаем нужные коды и функции .......................... function commandHandler(e) { var command = e.target.getAttribute("oncommand"); // открывать 'Настройки' как не модальное окно и дать возможность закрыть двойным кликом на окошке настроек .... if ( command == 'openPreferences();' ) { e.preventDefault(); e.stopPropagation(); // открыть настройки, или фокус на настройки если они уже открыты .... var win = Cc["@mozilla.org/appshell/window-mediator;1"].getService(Ci.nsIWindowMediator).getMostRecentWindow("Browser:Preferences"); var features = "chrome, dialog, titlebar, toolbar, " + "centerscreen, minimizable, resizable"; if ( !win ) var preferences = window.openDialog("chrome://browser/content/preferences/preferences.xul", "Preferences", features, ""); if ( win ) { win.focus(); return; }; // обработчик закрывает настройки по двойному клику на окошке настроек и удаляет себя .... preferences.addEventListener("dblclick", function(e) { var node = e.target.nodeName; if ( node == "textbox" || node == "filefield" ) return; this.removeEventListener("dblclick", arguments.callee, true); this.close(); }, true); } }; window.addEventListener("command", commandHandler, true); this.onDestroy = function() { window.removeEventListener("command", commandHandler, true); }; Настройки( Firefox 33+ ) Кнопка просто открывает настройки. ЛКМ => открыть настройки. Код кнопки и вкладка Код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAADHUlEQVR4Xl3DS2hcVRzA4d+55869M5NMppOEyctoxlgnsRgxRrSKpaQ+arG4kkJEBQmu1YUaoXQluNEuRUQ3xShiKdpiKSFpNRAosbQaY3yUGqOpcZI0Zh7JzJx7zt9FyaYffKrp0Gl2iBMkERsSJwOqWJsUZwtUTb/zvTnxlHH1CKxFRNjhcRPKurtVLcpHTelPtkcGP47yrZ/adHiy9kT+gsskjlKLwDlu5QHgZLA20HHa9GcnzGB7j7svS/Tknkc5/MDTHNyTckN3jDntHUN7RxC6AVA3q9TBr8Hqt0uH9r/DcAKKhl3f/EXjPxuoQKE9H9uZohQTNjHocz99oTYqI4JYAA/nEGe79aUNqEDDzDqt26Xr8Q7/VNjiz/jNmIZqmdvDgGyuC5eK97rt7dDV67iawRNR+01f+4vykAdFIblV/zXeknjcC/0jKu49Fe9KPRbetWvKyzhykaFpqG/AZpvHURxAgSfKv6fe05t0fe1gFFaH6WhFF1wpNIkgWcbJRS/QzyV2Zy4ke2K0PdIbY/Tws9Ld8R4mavPFRpGaM8ga0AultnR7tlp7NZ30jzZkkkirRu0Obuh08IavmE4uSag2I2S9soyi7Clnvg+u//CtXpgrsGIwQZx/W5vHYg2xsZiWprjEaCn4JLbUbNKq2XpFIcv/Qbm0LNaGqmH4FBJFOGvfre478CadLWAhJTVySTPVmdFnUil/Lkj4+WtV9frlRe6sGuDyPExPj6r43s/AWd92tX1n9g3vxSpIAEVQAolQaIxT3q6pxkoVHEAOmP4Nzk48o8KHxyGyzTaXnYieHx7k6iY0K+jMwBWgAvhADIgAU4W1eZiZO8lG8RUVPHiCmxi2udZxVotnqFptR+5/CT+vWAL6gXuBq8AVA1+e+Jut4iC+v+ohAiLgZEr/vDyg1iqjFDZfVucWPuc2oMPAR18t8OHkCnkDNxagXjuO1qsAHjsUSBAriAeiEda31vjjF1icLbP45wtM/v4Wx87Oc37mNax5H6UA8LmFWIsoBcWt43wwPUU9MsSDS9joRy5eO09ML6E9dvwPdX9rZvPeL7sAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bdocument.getElementById%28%27menu_preferences%27%29.click%28%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Вкладка Код: |
Lex1 > 14-11-2012 11:46:09 |
Save snapshot to html( Firefox24+ ) от 01.12.2017. Код кнопки Выделить код Код: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%0A%20%20%3Cname%3ESave%20snapshot%20to%20html%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACaUlEQVR4AX3BTWvcVRTA4d+592am/5lp0qSxtEtRxI0oVmipuBFEEDfd1IUvCz+RO3du/QAqCgUjxULdWKFV8AUkapg0pplM5uX/cu85x7RQlDb4PPL62++8ubq68cLZjXPnY2hnKYk4JxMgZ/fpvHe6bo72tr745OO0trb+4pVLb1x7/92rFzfXIQr/a1kbX34T2Lrx2d350Uefpq4znc6y/b0Ho8oZVII5J4oC81qZTAL1YhmAXnK12LUqB1O40Br9fkQLT3DAIjQNLBsw1wBIKmahbkucTKFtjdxFioI7T4gRcnG0tJgVASSVUmKXS6hrJXeQC+QC5iD8h0NaAS2Cu6FFAxCCqkZVDWYKIjwiPEZ4SBzMCmo5AJJULWIau7ZlZ6zMZhV1q5g5j0sxcP+gpl4qZhqAmLTkBBbNnZvfjTk8zBxMWprWcAd3HhJxhoNEVSWGowsE0QBI6nIOajnEFEkp8Orl8wxHQ4QCKCJOjByL/PLbnB/u7DIYRFRLAELKucSmzuHPnTmT/TFX33qK61vbLGp479qzbG70eGR9NXHj258Yjc7h5gEIIecS6yaHxaJlWS9ZLjPf3x5z89Yuh9PMA/cnsLsPh9NMFMetYFYCEII7vRh7vapaReQUm2d6fPjBZV678hxrp3s80O9DFJBwin5/QFWtEWMvATGpFp8e3bOd8W0O9u/w1deZiy8/zysvLfj19xk//mzMF4W2c7b/2NPtv+52Kk11eHSPYyKD1bOXzMozpbRPSwjkpgiChJWAZ8UViBwTQSSnldjgVsXUm5Wm+Vz41xDoAwIETuaAAy3QAf4PtuhVEPpvXZEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%20%20%20%20var%20saveToFile%20%3D%20function%20%28fileContent%2C%20fileName%29%20%7B%0A%20%20%20%20var%20uc%20%3D%20Components.classes%5B%27@mozilla.org/intl/scriptableunicodeconverter%27%5D.createInstance%28Components.interfaces.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20%20uc.charset%20%3D%20%27utf-8%27%3B%0A%20%20%20%20fileContent%20%3D%20uc.ConvertFromUnicode%28fileContent%29%3B%0A%20%20%20%20var%20nsIFilePicker%20%3D%20Components.interfaces.nsIFilePicker%3B%0A%20%20%20%20var%20fp%20%3D%20Components.classes%5B%27@mozilla.org/filepicker%3B1%27%5D.createInstance%28nsIFilePicker%29%3B%0A%20%20%20%20fp.init%28window%2C%20%27%27%2C%20fp.modeSave%29%3B%0A%20%20%20%20fp.defaultString%20%3D%20fileName%3B%0A%20%20%20%20fp.appendFilters%28fp.filterHTML%29%3B%0A%20%20%20%20fp.appendFilters%28fp.filterAll%29%3B%0A%20%20%20%20fp.open%28function%20%28rv%29%20%7B%0A%20%20%20%20if%20%28rv%20%3D%3D%20nsIFilePicker.returnOK%20%7C%7C%20rv%20%3D%3D%20nsIFilePicker.returnReplace%29%20%7B%0A%20%20%20%20var%20stream%20%3D%20Components.classes%5B%27@mozilla.org/network/file-output-stream%3B1%27%5D.createInstance%28Components.interfaces.nsIFileOutputStream%29%3B%0A%20%20%20%20stream.init%28fp.file%2C%200x02%7C0x20%7C0x08%2C%200666%2C%200%29%3B%0A%20%20%20%20stream.write%28fileContent%2C%20fileContent.length%29%3B%0A%20%20%20%20stream.close%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20resolveURL%20%3D%20function%20%28url%2C%20base%29%20%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20var%20ioService%20%3D%20Components.classes%5B%27@mozilla.org/network/io-service%3B1%27%5D.getService%28Components.interfaces.nsIIOService%29%3B%0A%20%20%20%20var%20baseURI%20%3D%20ioService.newURI%28base%2C%20null%2C%20null%29%3B%0A%20%20%20%20var%20absURI%20%3D%20ioService.newURI%28url%2C%20null%2C%20baseURI%29%3B%0A%20%20%20%20return%20absURI.spec%3B%0A%20%20%20%20%7D%20catch%20%28e%29%20%7B%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20getSelWin%20%3D%20function%20%28w%29%20%7B%0A%20%20%20%20if%20%28w.getSelection%28%29.toString%28%29%29%20return%20w%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%2C%20f%2C%20r%3B%20f%20%3D%20w.frames%5Bi%5D%3B%20i++%29%20%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20if%20%28r%20%3D%20getSelWin%28f%29%29%20return%20r%3B%0A%20%20%20%20%7D%20catch%28e%29%20%7B%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20encodeImg%20%3D%20function%20%28src%2C%20obj%29%20%7B%0A%20%20%20%20var%20canvas%2C%20img%2C%20ret%20%3D%20src%3B%0A%20%20%20%20if%20%28/%5Ehttps%3F%3A%5C/%5C//.test%28src%29%29%20%7B%0A%20%20%20%20canvas%20%3D%20doc.createElement%28%27canvas%27%29%3B%0A%20%20%20%20if%20%28%21obj%20%7C%7C%20obj.nodeName.toLowerCase%28%29%20%21%3D%20%27img%27%29%20%7B%0A%20%20%20%20img%20%3D%20doc.createElement%28%27img%27%29%3B%0A%20%20%20%20img.src%20%3D%20src%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20img%20%3D%20obj%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20if%20%28img.complete%29%20try%7B%0A%20%20%20%20canvas.width%20%3D%20img.width%3B%0A%20%20%20%20canvas.height%20%3D%20img.height%3B%0A%20%20%20%20canvas.getContext%28%272d%27%29.drawImage%28img%2C%200%2C%200%29%3B%0A%20%20%20%20ret%20%3D%20canvas.toDataURL%28%28/%5C.jpe%3Fg/i.test%28src%29%20%3F%20%27image/jpeg%27%20%3A%20%27image/png%27%29%29%3B%0A%20%20%20%20%7D%20catch%20%28e%29%20%7B%7D%3B%0A%20%20%20%20if%20%28img%20%21%3D%20obj%29%20img.src%20%3D%20%27about%3Ablank%27%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20return%20ret%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20toSrc%20%3D%20function%20%28obj%29%20%7B%0A%20%20%20%20var%20strToSrc%20%3D%20function%20%28str%29%20%7B%0A%20%20%20%20var%20chr%2C%20ret%20%3D%20%27%27%2C%20i%20%3D%200%2C%20meta%20%3D%20%7B%27%5Cb%27%3A%20%27%5C%5Cb%27%2C%20%27%5Ct%27%3A%20%27%5C%5Ct%27%2C%20%27%5Cn%27%3A%20%27%5C%5Cn%27%2C%20%27%5Cf%27%3A%20%27%5C%5Cf%27%2C%20%27%5Cr%27%3A%20%27%5C%5Cr%27%2C%20%27%5Cx22%27%20%3A%20%27%5C%5C%5Cx22%27%2C%20%27%5C%5C%27%3A%20%27%5C%5C%5C%5C%27%7D%3B%0A%20%20%20%20while%20%28chr%20%3D%20str.charAt%28i++%29%29%20%7B%0A%20%20%20%20ret%20+%3D%20meta%5Bchr%5D%20%7C%7C%20chr%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20return%20%27%5Cx22%27%20+%20ret%20+%20%27%5Cx22%27%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20arrToSrc%20%3D%20function%20%28arr%29%20%7B%0A%20%20%20%20var%20ret%20%3D%20%5B%5D%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20arr.length%3B%20i++%29%20%7B%0A%20%20%20%20ret%5Bi%5D%20%3D%20toSrc%28arr%5Bi%5D%29%20%7C%7C%20%27null%27%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20return%20%27%5B%27%20+%20ret.join%28%27%2C%27%29%20+%20%27%5D%27%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20objToSrc%20%3D%20function%20%28obj%29%20%7B%0A%20%20%20%20var%20val%2C%20ret%20%3D%20%5B%5D%3B%0A%20%20%20%20for%20%28var%20prop%20in%20obj%29%20%7B%0A%20%20%20%20if%20%28obj.hasOwnProperty%28prop%29%20%26%26%20%28val%20%3D%20toSrc%28obj%5Bprop%5D%29%29%29%20ret.push%28strToSrc%28prop%29%20+%20%27%3A%20%27%20+%20val%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20return%20%27%7B%27%20+%20ret.join%28%27%2C%27%29%20+%20%27%7D%27%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20switch%20%28Object.prototype.toString.call%28obj%29.slice%288%2C%20-1%29%29%20%7B%0A%20%20%20%20case%20%27Array%27%3A%20return%20arrToSrc%28obj%29%3B%0A%20%20%20%20case%20%27Boolean%27%3A%0A%20%20%20%20case%20%27Function%27%3A%0A%20%20%20%20case%20%27RegExp%27%3A%20return%20obj.toString%28%29%3B%0A%20%20%20%20case%20%27Date%27%3A%20return%20%27new%20Date%28%27%20+%20obj.getTime%28%29%20+%20%27%29%27%3B%0A%20%20%20%20case%20%27Math%27%3A%20return%20%27Math%27%3B%0A%20%20%20%20case%20%27Number%27%3A%20return%20isFinite%28obj%29%20%3F%20String%28obj%29%20%3A%20%27null%27%3B%0A%20%20%20%20case%20%27Object%27%3A%20return%20objToSrc%28obj%29%3B%0A%20%20%20%20case%20%27String%27%3A%20return%20strToSrc%28obj%29%3B%0A%20%20%20%20default%3A%20return%20obj%20%3F%20%28obj.nodeType%20%3D%3D%201%20%26%26%20obj.id%20%3F%20%27document.getElementById%28%27%20+%20strToSrc%28obj.id%29%20+%20%27%29%27%20%3A%20%27%7B%7D%27%29%20%3A%20%27null%27%3B%0A%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20mainWin%20%3D%20document.commandDispatcher.focusedWindow.top%20%3D%3D%20content%20%3F%20document.commandDispatcher.focusedWindow%20%3A%20content%0A%20%20%20%20var%20selWin%20%3D%20getSelWin%28mainWin%29%2C%20win%20%3D%20selWin%20%7C%7C%20mainWin%2C%20doc%20%3D%20win.document%2C%20loc%20%3D%20win.location%3B%0A%20%20%20%20var%20ele%2C%20pEle%2C%20clone%2C%20reUrl%20%3D%20/%28url%5C%28%5Cx22%29%28.+%3F%29%28%5Cx22%5C%29%29/g%3B%0A%20%20%20%20if%20%28selWin%29%20%7B%0A%20%20%20%20var%20rng%20%3D%20win.getSelection%28%29.getRangeAt%280%29%3B%0A%20%20%20%20pEle%20%3D%20rng.commonAncestorContainer%3B%0A%20%20%20%20ele%20%3D%20rng.cloneContents%28%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20pEle%20%3D%20doc.documentElement%3B%0A%20%20%20%20ele%20%3D%20%28doc.body%20%7C%7C%20doc.getElementsByTagName%28%27body%27%29%5B0%5D%29.cloneNode%28true%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20while%20%28pEle%29%20%7B%0A%20%20%20%20if%20%28pEle.nodeType%20%3D%3D%201%29%20%7B%0A%20%20%20%20clone%20%3D%20pEle.cloneNode%28false%29%3B%0A%20%20%20%20clone.appendChild%28ele%29%3B%0A%20%20%20%20ele%20%3D%20clone%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20pEle%20%3D%20pEle.parentNode%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0A%20%20%20%20sel.appendChild%28ele%29%3B%0A%20%20%20%20for%20%28var%20el%2C%20all%20%3D%20sel.getElementsByTagName%28%27*%27%29%2C%20i%20%3D%20all.length%3B%20i--%3B%29%20%7B%0A%20%20%20%20el%20%3D%20all%5Bi%5D%3B%0A%20%20%20%20if%20%28el.style%20%26%26%20el.style.backgroundImage%29%20el.style.backgroundImage%20%3D%20el.style.backgroundImage.replace%28reUrl%2C%20function%20%28a%2C%20prev%2C%20url%2C%20next%29%20%7B%0A%20%20%20%20if%20%28%21/%5E%5Ba-z%5D+%3A/.test%28url%29%29%20url%20%3D%20resolveURL%28url%2C%20loc.href%29%3B%0A%20%20%20%20return%20prev%20+%20encodeImg%28url%29%20+%20next%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20switch%20%28el.nodeName.toLowerCase%28%29%29%20%7B%0A%20%20%20%20case%20%27link%27%3A%0A%20%20%20%20case%20%27style%27%3A%0A%20%20%20%20case%20%27script%27%3A%20el.parentNode.removeChild%28el%29%3B%20break%3B%0A%20%20%20%20case%20%27a%27%3A%0A%20%20%20%20case%20%27area%27%3A%20if%20%28el.hasAttribute%28%27href%27%29%20%26%26%20el.getAttribute%28%27href%27%29.charAt%280%29%20%21%3D%20%27%23%27%29%20el.href%20%3D%20el.href%3B%20break%3B%0A%20%20%20%20case%20%27img%27%3A%0A%20%20%20%20case%20%27input%27%3A%20if%20%28el.hasAttribute%28%27src%27%29%29%20el.src%20%3D%20encodeImg%28el.src%2C%20el%29%3B%20break%3B%0A%20%20%20%20case%20%27audio%27%3A%0A%20%20%20%20case%20%27video%27%3A%0A%20%20%20%20case%20%27embed%27%3A%0A%20%20%20%20case%20%27frame%27%3A%0A%20%20%20%20case%20%27iframe%27%3A%20if%20%28el.hasAttribute%28%27src%27%29%29%20el.src%20%3D%20el.src%3B%20break%3B%0A%20%20%20%20case%20%27object%27%3A%20if%20%28el.hasAttribute%28%27data%27%29%29%20el.data%20%3D%20el.data%3B%20break%3B%0A%20%20%20%20case%20%27form%27%3A%20if%20%28el.hasAttribute%28%27action%27%29%29%20el.action%20%3D%20el.action%3B%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20head%20%3D%20ele.insertBefore%28doc.createElement%28%27head%27%29%2C%20ele.firstChild%29%3B%0A%20%20%20%20var%20meta%20%3D%20doc.createElement%28%27meta%27%29%3B%0A%20%20%20%20meta.httpEquiv%20%3D%20%27content-type%27%3B%0A%20%20%20%20meta.content%20%3D%20%27text/html%3B%20charset%3Dutf-8%27%3B%0A%20%20%20%20head.appendChild%28meta%29%3B%0A%20%20%20%20var%20title%20%3D%20doc.getElementsByTagName%28%27title%27%29%5B0%5D%3B%0A%20%20%20%20if%20%28title%29%20head.appendChild%28title.cloneNode%28true%29%29%3B%0A%20%20%20%20head.copyScript%20%3D%20function%20%28unsafeWin%29%20%7B%0A%20%20%20%20if%20%28%27%24%27%20in%20unsafeWin%29%20return%3B%0A%20%20%20%20var%20f%20%3D%20doc.createElement%28%27iframe%27%29%3B%0A%20%20%20%20f.src%20%3D%20%27about%3Ablank%27%3B%0A%20%20%20%20f.setAttribute%28%27style%27%2C%20%27position%3Afixed%3Bleft%3A0%3Btop%3A0%3Bvisibility%3Ahidden%3Bwidth%3A0%3Bheight%3A0%3B%27%29%3B%0A%20%20%20%20doc.documentElement.appendChild%28f%29%3B%0A%20%20%20%20var%20str%2C%20script%20%3D%20doc.createElement%28%27script%27%29%3B%0A%20%20%20%20script.type%20%3D%20%27text/javascript%27%3B%0A%20%20%20%20for%20%28var%20name%20in%20unsafeWin%29%20%7B%0A%20%20%20%20if%20%28name%20in%20f.contentWindow%20%7C%7C%20%21/%5E%5Ba-zA-Z_%24%5D%5B0-9a-zA-Z_%24%5D*%24/.test%28name%29%29%20continue%3B%0A%20%20%20%20try%20%7B%0A%20%20%20%20str%20%3D%20toSrc%28unsafeWin%5Bname%5D%29%3B%0A%20%20%20%20if%20%28%21/%5C%7B%5Cs*%5C%5Bnative%20code%5C%5D%5Cs*%5C%7D/.test%28str%29%29%20%7B%0A%20%20%20%20script.appendChild%28doc.createTextNode%28%27var%20%27%20+%20name%20+%20%27%20%3D%20%27%20+%20str.replace%28/%3C%5C/%28script%3E%29/ig%2C%20%27%3C%5C%5C/%241%27%29%20+%20%27%3B%5Cn%27%29%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%7D%20catch%20%28e%29%20%7B%7D%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20f.parentNode.removeChild%28f%29%3B%0A%20%20%20%20if%20%28script.childNodes.length%29%20this.nextSibling.appendChild%28script%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20head.copyScript%28win.wrappedJSObject%20%7C%7C%20win%29%3B%0A%20%20%20%20head.copyStyle%20%3D%20function%20%28s%29%20%7B%0A%20%20%20%20if%20%28%21s%29%20return%3B%0A%20%20%20%20var%20style%20%3D%20doc.createElement%28%27style%27%29%3B%0A%20%20%20%20style.type%20%3D%20%27text/css%27%3B%0A%20%20%20%20if%20%28s.media%20%26%26%20s.media.mediaText%29%20style.media%20%3D%20s.media.mediaText%3B%0A%20%20%20%20try%20%7B%0A%20%20%20%20for%20%28var%20i%20%3D%200%2C%20rule%3B%20rule%20%3D%20s.cssRules%5Bi%5D%3B%20i++%29%20%7B%0A%20%20%20%20if%20%28rule.type%20%21%3D%203%29%20%7B%0A%20%20%20%20if%28%28%21rule.selectorText%20%7C%7C%20rule.selectorText.indexOf%28%27%3A%27%29%20%21%3D%20-1%29%20%7C%7C%20%28%21sel.querySelector%20%7C%7C%20sel.querySelector%28rule.selectorText%29%29%29%20%7B%0A%20%20%20%20var%20css%20%3D%20%21rule.cssText%20%3F%20%27%27%20%3A%20rule.cssText.replace%28reUrl%2C%20function%20%28a%2C%20prev%2C%20url%2C%20next%29%20%7B%0A%20%20%20%20if%20%28%21/%5E%5Ba-z%5D+%3A/.test%28url%29%29%20url%20%3D%20resolveURL%28url%2C%20s.href%20%7C%7C%20loc.href%29%3B%0A%20%20%20%20if%28rule.type%20%3D%3D%201%20%26%26%20rule.style%20%26%26%20rule.style.backgroundImage%29%20url%20%3D%20encodeImg%28url%29%3B%0A%20%20%20%20return%20prev%20+%20url%20+%20next%3B%0A%20%20%20%20%7D%29%3B%0A%20%20%20%20style.appendChild%28doc.createTextNode%28css%20+%20%27%5Cn%27%29%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20this.copyStyle%28rule.styleSheet%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20if%20%28s.ownerNode%29%20style%20%3D%20s.ownerNode.cloneNode%28false%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20this.appendChild%28style%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20sheets%20%3D%20doc.styleSheets%3B%0A%20%20%20%20for%20%28var%20j%20%3D%200%3B%20j%20%3C%20sheets.length%3B%20j++%29%20head.copyStyle%28sheets%5Bj%5D%29%3B%0A%20%20%20%20head.appendChild%28doc.createTextNode%28%27%5Cn%27%29%29%3B%0A%20%20%20%20var%20doctype%20%3D%20%27%27%2C%20dt%20%3D%20doc.doctype%3B%0A%20%20%20%20if%20%28dt%20%26%26%20dt.name%29%20%7B%0A%20%20%20%20doctype%20+%3D%20%27%3C%21DOCTYPE%20%27%20+%20dt.name%3B%0A%20%20%20%20if%20%28dt.publicId%29%20doctype%20+%3D%20%27%20PUBLIC%20%5Cx22%27%20+%20dt.publicId%20+%20%27%5Cx22%27%3B%0A%20%20%20%20if%20%28dt.systemId%29%20doctype%20+%3D%20%27%20%5Cx22%27%20+%20dt.systemId%20+%20%27%5Cx22%27%3B%0A%20%20%20%20doctype%20+%3D%20%27%3E%5Cn%27%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20var%20fileName%20%3D%20selWin%20%3F%20win.getSelection%28%29.toString%28%29%20%3A%20%28title%20%26%26%20title.text%20%3F%20title.text%20%3A%20loc.pathname.split%28%27/%27%29.pop%28%29%29%3B%0A%20%20%20%20fileName%20%3D%20fileName.replace%28/%5B%3A%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%27_%27%29.replace%28/%5Cs+/g%2C%20%27%20%27%29.slice%280%2C%20100%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%27%27%29%3B%0A%20%20%20%20fileName%20+%3D%20%28function%20%28%29%20%7B%0A%20%20%20%20var%20d%20%3D%20new%20Date%28%29%2C%20z%20%3D%20function%28n%29%7Breturn%20%27_%27%20+%20%28n%20%3C%2010%20%3F%20%270%27%20%3A%20%27%27%29%20+%20n%7D%3B%0A%20%20%20%20return%20z%28d.getHours%28%29%29%20+%20z%28d.getMinutes%28%29%29%20+%20z%28d.getSeconds%28%29%29%3B%0A%20%20%20%20%7D%29%28%29%3B%0A%20%20%20%20if%28%21/%5C.html%3F%24/.test%28fileName%29%29fileName%20+%3D%20%27.html%27%3B%0A%20%20%20%20saveToFile%28doctype%20+%20sel.innerHTML%20+%20%27%5Cn%3C%21--%20This%20document%20saved%20from%20%27%20+%20%28loc.protocol%20%21%3D%20%27data%3A%27%20%3F%20loc.href%20%3A%20%27data%3Auri%27%29%20+%20%27%20--%3E%27%2C%20fileName%29%3B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код Выделить код Код:var saveToFile = function (fileContent, fileName) { var uc = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'].createInstance(Components.interfaces.nsIScriptableUnicodeConverter); uc.charset = 'utf-8'; fileContent = uc.ConvertFromUnicode(fileContent); var nsIFilePicker = Components.interfaces.nsIFilePicker; var fp = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker); fp.init(window, '', fp.modeSave); fp.defaultString = fileName; fp.appendFilters(fp.filterHTML); fp.appendFilters(fp.filterAll); fp.open(function (rv) { if (rv == nsIFilePicker.returnOK || rv == nsIFilePicker.returnReplace) { var stream = Components.classes['@mozilla.org/network/file-output-stream;1'].createInstance(Components.interfaces.nsIFileOutputStream); stream.init(fp.file, 0x02|0x20|0x08, 0666, 0); stream.write(fileContent, fileContent.length); stream.close(); } }); }; var resolveURL = function (url, base) { try { var ioService = Components.classes['@mozilla.org/network/io-service;1'].getService(Components.interfaces.nsIIOService); var baseURI = ioService.newURI(base, null, null); var absURI = ioService.newURI(url, null, baseURI); return absURI.spec; } catch (e) {} }; var getSelWin = function (w) { if (w.getSelection().toString()) return w; for (var i = 0, f, r; f = w.frames[i]; i++) { try { if (r = getSelWin(f)) return r; } catch(e) {} } }; var encodeImg = function (src, obj) { var canvas, img, ret = src; if (/^https?:\/\//.test(src)) { canvas = doc.createElement('canvas'); if (!obj || obj.nodeName.toLowerCase() != 'img') { img = doc.createElement('img'); img.src = src; } else { img = obj; }; if (img.complete) try{ canvas.width = img.width; canvas.height = img.height; canvas.getContext('2d').drawImage(img, 0, 0); ret = canvas.toDataURL((/\.jpe?g/i.test(src) ? 'image/jpeg' : 'image/png')); } catch (e) {}; if (img != obj) img.src = 'about:blank'; }; return ret; }; var toSrc = function (obj) { var strToSrc = function (str) { var chr, ret = '', i = 0, meta = {'\b': '\\b', '\t': '\\t', '\n': '\\n', '\f': '\\f', '\r': '\\r', '\x22' : '\\\x22', '\\': '\\\\'}; while (chr = str.charAt(i++)) { ret += meta[chr] || chr; }; return '\x22' + ret + '\x22'; }, arrToSrc = function (arr) { var ret = []; for (var i = 0; i < arr.length; i++) { ret[i] = toSrc(arr[i]) || 'null'; }; return '[' + ret.join(',') + ']'; }, objToSrc = function (obj) { var val, ret = []; for (var prop in obj) { if (obj.hasOwnProperty(prop) && (val = toSrc(obj[prop]))) ret.push(strToSrc(prop) + ': ' + val); }; return '{' + ret.join(',') + '}'; }; switch (Object.prototype.toString.call(obj).slice(8, -1)) { case 'Array': return arrToSrc(obj); case 'Boolean': case 'Function': case 'RegExp': return obj.toString(); case 'Date': return 'new Date(' + obj.getTime() + ')'; case 'Math': return 'Math'; case 'Number': return isFinite(obj) ? String(obj) : 'null'; case 'Object': return objToSrc(obj); case 'String': return strToSrc(obj); default: return obj ? (obj.nodeType == 1 && obj.id ? 'document.getElementById(' + strToSrc(obj.id) + ')' : '{}') : 'null'; } }; var mainWin = document.commandDispatcher.focusedWindow.top == content ? document.commandDispatcher.focusedWindow : content var selWin = getSelWin(mainWin), win = selWin || mainWin, doc = win.document, loc = win.location; var ele, pEle, clone, reUrl = /(url\(\x22)(.+?)(\x22\))/g; if (selWin) { var rng = win.getSelection().getRangeAt(0); pEle = rng.commonAncestorContainer; ele = rng.cloneContents(); } else { pEle = doc.documentElement; ele = (doc.body || doc.getElementsByTagName('body')[0]).cloneNode(true); }; while (pEle) { if (pEle.nodeType == 1) { clone = pEle.cloneNode(false); clone.appendChild(ele); ele = clone; }; pEle = pEle.parentNode }; var sel = doc.createElement('div'); sel.appendChild(ele); for (var el, all = sel.getElementsByTagName('*'), i = all.length; i--;) { el = all[i]; if (el.style && el.style.backgroundImage) el.style.backgroundImage = el.style.backgroundImage.replace(reUrl, function (a, prev, url, next) { if (!/^[a-z]+:/.test(url)) url = resolveURL(url, loc.href); return prev + encodeImg(url) + next; }); switch (el.nodeName.toLowerCase()) { case 'link': case 'style': case 'script': el.parentNode.removeChild(el); break; case 'a': case 'area': if (el.hasAttribute('href') && el.getAttribute('href').charAt(0) != '#') el.href = el.href; break; case 'img': case 'input': if (el.hasAttribute('src')) el.src = encodeImg(el.src, el); break; case 'audio': case 'video': case 'embed': case 'frame': case 'iframe': if (el.hasAttribute('src')) el.src = el.src; break; case 'object': if (el.hasAttribute('data')) el.data = el.data; break; case 'form': if (el.hasAttribute('action')) el.action = el.action; break; } }; var head = ele.insertBefore(doc.createElement('head'), ele.firstChild); var meta = doc.createElement('meta'); meta.httpEquiv = 'content-type'; meta.content = 'text/html; charset=utf-8'; head.appendChild(meta); var title = doc.getElementsByTagName('title')[0]; if (title) head.appendChild(title.cloneNode(true)); head.copyScript = function (unsafeWin) { if ('$' in unsafeWin) return; var f = doc.createElement('iframe'); f.src = 'about:blank'; f.setAttribute('style', 'position:fixed;left:0;top:0;visibility:hidden;width:0;height:0;'); doc.documentElement.appendChild(f); var str, script = doc.createElement('script'); script.type = 'text/javascript'; for (var name in unsafeWin) { if (name in f.contentWindow || !/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name)) continue; try { str = toSrc(unsafeWin[name]); if (!/\{\s*\[native code\]\s*\}/.test(str)) { script.appendChild(doc.createTextNode('var ' + name + ' = ' + str.replace(/<\/(script>)/ig, '<\\/$1') + ';\n')); } } catch (e) {}; }; f.parentNode.removeChild(f); if (script.childNodes.length) this.nextSibling.appendChild(script); }; head.copyScript(win.wrappedJSObject || win); head.copyStyle = function (s) { if (!s) return; var style = doc.createElement('style'); style.type = 'text/css'; if (s.media && s.media.mediaText) style.media = s.media.mediaText; try { for (var i = 0, rule; rule = s.cssRules[i]; i++) { if (rule.type != 3) { if((!rule.selectorText || rule.selectorText.indexOf(':') != -1) || (!sel.querySelector || sel.querySelector(rule.selectorText))) { var css = !rule.cssText ? '' : rule.cssText.replace(reUrl, function (a, prev, url, next) { if (!/^[a-z]+:/.test(url)) url = resolveURL(url, s.href || loc.href); if(rule.type == 1 && rule.style && rule.style.backgroundImage) url = encodeImg(url); return prev + url + next; }); style.appendChild(doc.createTextNode(css + '\n')); } } else { this.copyStyle(rule.styleSheet); } } } catch(e) { if (s.ownerNode) style = s.ownerNode.cloneNode(false); }; this.appendChild(style); }; var sheets = doc.styleSheets; for (var j = 0; j < sheets.length; j++) head.copyStyle(sheets[j]); head.appendChild(doc.createTextNode('\n')); var doctype = '', dt = doc.doctype; if (dt && dt.name) { doctype += '<!DOCTYPE ' + dt.name; if (dt.publicId) doctype += ' PUBLIC \x22' + dt.publicId + '\x22'; if (dt.systemId) doctype += ' \x22' + dt.systemId + '\x22'; doctype += '>\n'; }; var fileName = selWin ? win.getSelection().toString() : (title && title.text ? title.text : loc.pathname.split('/').pop()); fileName = fileName.replace(/[:\\\/<>?*|"]+/g, '_').replace(/\s+/g, ' ').slice(0, 100).replace(/^\s+|\s+$/g, ''); fileName += (function () { var d = new Date(), z = function(n){return '_' + (n < 10 ? '0' : '') + n}; return z(d.getHours()) + z(d.getMinutes()) + z(d.getSeconds()); })(); if(!/\.html?$/.test(fileName))fileName += '.html'; saveToFile(doctype + sel.innerHTML + '\n<!-- This document saved from ' + (loc.protocol != 'data:' ? loc.href : 'data:uri') + ' -->', fileName); |
Lex1 > 14-11-2012 13:40:02 |
Copy links скрытый текст Выделить код Код: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%0A%20%20%3Cname%3ECopy%20links%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAkBJREFUeJydku1Lk1EYxp8/p28F9a36EGESUguliHBIyOYLKM7yZQ3LNF8oZaZirdwsl6JO02nLdG463WaaL1tZGmhqWGYzBCFwzxa/tkccbYw+eODicO7rvq/7Ovc5AiDEovzFD66Ur5KkWYmguPk71tldYnOjDrpXPuT1Izx06yifTiXPmcLAdiFqlwydbYHC5k1yG9eJK1DTtYlC30bXtwLqF+XkuvPJGEvlpjMBo6eT91+DOBaDFLdskVW3SpRAt2Mb+SMDz1cz6d5USfvdGRmTYiX51lQsSy7m1/YFqu0dZBv1ESeSQFJxyJ4tnZYvSjo2cjD7Chja0WDbvY3WXcvHjT9MLQexfghwZ/iJ5PBiRe++gGVym8tVU6jd58kaOUXrWibG9Wxy7IkUTlxAM5orFY9+CtA/F6DNJZLRW8K1RgsVxjUEbdc6yoZlZN1HSDGdpmkpjSJXIs+mnZTZayRn4c4D8wE634roHSLaN34K2n9z6ZYHQXl/AZXBR5nFQ5M9NAtzAhnWk5hnA/TM/OKp08vLdwHa3SKGUHHDsJ/rphIUg2c5nu5CSK/ykqX7SWX/HnVDfsoGxyU3D2wTkl2jU6RlXERn90t8Ud84eWNnqPVe5WiaA6G69TPJ91bQmPYo7fORbDoRmowQhXBhbOzGawXJ6imEntENzqk90p0OyNj1n9j+Mx6TD6Hq3IkkxnaLh0heeG82L5NUOhdFxOscj498ZZV25vAODlDyeP5wM/gXTs9WvG5CvFgYfwFzo6tZMWWyMgAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20win%20%3D%20document.commandDispatcher.focusedWindow%2C%20doc%20%3D%20win.document%3B%0Avar%20sel%20%3D%20doc%2C%20winSel%20%3D%20win.getSelection%28%29%3B%0Aif%28winSel.toString%28%29%29%7B%0A%09sel%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09sel.appendChild%28winSel.getRangeAt%280%29.cloneContents%28%29%29%3B%0A%7D%3B%0Avar%20str%20%3D%20%27%27%2C%20links%20%3D%20sel.getElementsByTagName%28%27a%27%29%3B%0Afor%28var%20i%20%3D%200%2C%20lnk%3B%20lnk%20%3D%20links%5Bi%5D%3B%20i++%29%7Bif%28lnk.href%29str%20+%3D%20lnk.href%20+%20%27%5Cr%5Cn%27%7D%3B%0AgClipboard.write%28str%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
Lex1 > 17-11-2012 13:22:08 |
UP скрытый текст Выделить код Код: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%0A%20%20%3Cname%3EUP%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAdTAAAOpgAAA6lwAAF2+XqZnUAAAB2ElEQVR4nGL8//8/AzkAIICY0AUYJzLyA3E9IY0AAYSiEaQJSB0wlTJpALLn49MIEEAsaPwD+faZBoZqKgxrDoklADUz/M//n4hNI0AAwTWCbEg0jzEQlmZneP7rKUOonSsDGwM7SPMBoOaF6BoBAogJpslC2TRBQpqf4cvPLww/fv1kePbrMYOXhQ2DpojGAqB8PLpGgABiAgrmm6oYJjjpWwE1fQVq+sXwHagRpPkv82+GHt8WBi0RTZBme2SNAAHEyDCBYT+ULeCl72YgLSnEwMnKxiDFJc1QsbL9A1D8AlT+AtDJhTCNAAHEAuQ4Qp1rz8jIcABkEwh8//MTptgRW+AABBBKqH7+9YWB6zcrmP2D7ScDDzuPAjZNQEvOAwQQPB6BJh+8/OgaAwsTK8OP378YXn17zaAvo6OAHjAwPkAAodj4/suHBfdfPkkQ5RcE841VdBk+fPsIChgHIPcBEINckADCAAHEiJxWYSnHTtvSQJhfgIGFmYlBmleagesfL4MYqyTDorNLGc49O78AlCgAAogRPZFDNU9QEJVNkBKUZBDhE2L49u07w+VH1xlefnnVANTUCFIHEEAYGpEMkAdSBlB8gAESwh9h8gABhFMjIQAQYADQGKKCjfSDsAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E2%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20btn%20%3D%20this%3B%0A%0Avar%20opt%20%3D%20%7B%0A%09delay%3A%20500%2C%0A%09timerId%3A%200%2C%0A%09isPressed%3A%20false%2C%0A%09longClick%3A%20function%28%29%7B%0A%09%09goUp%28false%29%3B%0A%09%7D%2C%0A%09stdClick%3A%20function%28%29%7B%0A%09%09goUp%28true%29%3B%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseDown%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09opt.isPressed%20%3D%20true%3B%0A%09%09opt.timerId%20%3D%20setTimeout%28function%28%29%7B%0A%09%09%09if%28opt.isPressed%29%7B%0A%09%09%09%09opt.isPressed%20%3D%20false%3B%0A%09%09%09%09var%20k%20%3D%20%22_transitionTimer%22%3B%0A%09%09%09%09if%28k%20in%20btn%29clearInterval%28btn%5Bk%5D%29%3B%0A%09%09%09%09var%20stl%20%3D%20btn.style%3B%0A%09%09%09%09stl.setProperty%28%22transition%22%2C%20%22opacity%20150ms%20ease-in-out%22%2C%20%22important%22%29%3B%0A%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09stl.setProperty%28%22opacity%22%2C%20%220.5%22%2C%20%22important%22%29%3B%0A%09%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09%09stl.opacity%20%3D%20%22%22%3B%0A%09%09%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09%09%09stl.transition%20%3D%20%22%22%3B%0A%09%09%09%09%09%09%09delete%20btn%5Bk%5D%3B%0A%09%09%09%09%09%09%7D%2C%20150%29%3B%0A%09%09%09%09%09%7D%2C%20150%29%3B%0A%09%09%09%09%7D%2C%200%29%3B%0A%09%09%09%09opt.longClick%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%2C%20opt.delay%29%3B%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseUp%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09clearTimeout%28opt.timerId%29%3B%0A%09%09if%28opt.isPressed%29%7B%0A%09%09%09opt.isPressed%20%3D%20false%3B%0A%09%09%09opt.stdClick%28%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseOut%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09opt.isPressed%20%3D%20false%3B%0A%09%7D%0A%7D%3B%0A%0Abtn.addEventListener%28%27mousedown%27%2C%20mouseDown%2C%20false%29%3B%0Abtn.addEventListener%28%27mouseup%27%2C%20mouseUp%2C%20false%29%3B%0Abtn.addEventListener%28%27mouseout%27%2C%20mouseOut%2C%20false%29%3B%0A%0Abtn.onDestroy%20%3D%20function%28%29%7B%0A%20%20%20%20btn.removeEventListener%28%27mousedown%27%2C%20mouseDown%2C%20false%29%3B%0A%09btn.removeEventListener%28%27mouseup%27%2C%20mouseUp%2C%20false%29%3B%0A%09btn.removeEventListener%28%27mouseout%27%2C%20mouseOut%2C%20false%29%3B%0A%7D%3B%0A%0A%0Afunction%20goUp%28step%29%7B%0A%09var%20loc%20%3D%20content.location%3B%0A%09if%20%28loc.protocol%20%3D%3D%20%27about%3A%27%29%20return%3B%0A%0A%09var%20p%20%3D%20loc.protocol%20+%20%27//%27%2C%20h%20%3D%20loc.host%20+%20%27/%27%3B%0A%09if%20%28loc.href%20%3D%3D%20p%20+%20h%29%20%7B%0A%09%09var%20a%20%3D%20h.split%28%27.%27%29%2C%20l%20%3D%20a.length%2C%20n%20%3D%202%3B%0A%09%09if%20%28l%20%3E%202%29%20%7B%0A%09%09%09if%20%28a%5B0%5D%20%3D%3D%20%27www%27%29%20%7Ba.shift%28%29%3B%20l--%7D%3B%0A%09%09%09if%20%28/%5E%28co%7Ccom%7Cnet%7Corg%7Cedu%7Cgov%7Cmil%7Cint%29%24/i.test%28a%5Bl%20-%202%5D%29%29%20n++%0A%09%09%7D%0A%09%09if%20%28l%20%3E%20n%29%20%7B%0A%09%09%09h%20%3D%20%28n%20%3D%3D%203%20%3F%20a%5Bl%20-%203%5D%20+%20%27.%27%20%3A%20%27%27%29%20+%20a%5Bl%20-%202%5D%20+%20%27.%27%20+%20a%5Bl%20-%201%5D%0A%09%09%7D%20else%20%7B%0A%09%09%09p%20%3D%20%27http%3A//www.google.com/search%3Fsourceid%3Dopera%26q%3Drelated%3A%27%20+%20p%0A%09%09%7D%0A%09%7D%20else%20if%20%28step%29%20%7B%0A%09%09h%20%3D%20loc.host%20+%20loc.pathname.replace%28/%5B%5E%5C/%5D+%5C/%3F%24/%2C%20%27%27%29%0A%09%7D%3B%0A%09loc.href%20%3D%20p%20+%20h%3B%0A%7D%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5BAlt+UP%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
bunda1 > 18-11-2012 18:24:06 |
Сохранить ярлык страницы на ...( Firefox24+ ) от 16.03.2017. ЛКМ => Сохранить ярлык страницы в указанную папку, Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0430%20...%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAD+/vL/5vP//9v2///p+Pb/+PTv//nx+P/19PX/+Pbv//z08f/4+O7/+fb0//v29f/1+O7/5Pr0/976///i7///9/b/////8//i7Ov/h5zF/2GEs/+LpLH/0dHW/9fO3v/O0dj/1NTQ/9zR0v/O1Mz/0tHS/9TO1P/N1tb/nrzE/22PtP9xiL7/s7nX//n59P/T5vb/V3i+/zNhrv9tkbb/4en9/+rn///j6/X/5+3t/+7r7//i7+j/5unv/+ji8//i7P7/mbvc/z9rsP8+YrP/jaLO//L8///K4v3/UnrU/zFqyv9kkMT/3er+/+vn///m7PP/5u7r/+rq7f/h8OX/6Ors/+rg9P/f5f//lLbn/zpsyP88ac3/iKXa/+z+///N4///Unvb/yxo0v9hkcz/4Oz///Ps/P/w8O3/7fLn//Dv7//r9+f/8Ozo//Xk8f/o6f//l7fr/zZr0v86adb/iKXc/+/+/v/R4/7/VHvb/ytq1f9hks7/4er///zu9//++uz/+Pno//Lv7v/t9eT/+vHo///r7v/x7Pz/mbrr/zZu1P82Z9X/jKXb//f++//W5v3/VX/a/yls2f9dk9D/4ez////z9v/69eb/9Pfo/+/x9f/r9O3//fLs///o5v/18fn/msDq/zJx1f81a9n/jqbd//z++v/U6P3/UoPc/yRw3/9Vldb/2uv////0/P/69+v/8vry/+Pt/f/g7/f/+vL1///w7f/2+vz/kMDp/yx11/8wbuD/jKbk//z6/f/T6/z/UYXc/yNx4v9Wldj/2+7///Xy+//X3+D/1ufu/+Tz///g9P//29vs/+re4f/y/P3/jsPq/yl32/8wcOP/jabl//n5///S6Pf/V4rZ/zFz3/91mtn/6fD6/+v7//+RvN//bpLH/9Pg/v/F3Pj/c4e2/8PF3f/1/P//lsPq/zV64P9Ec9r/marZ//H8///L5vz/Tork/yhy7f9smeP/4fD8/+H7//+Bue//N2/D/2eO3f9Zi9f/Pmi1/7fF7f/y/f//kMLw/yt58P88c+j/kKvh/+X8///O5/z/To3o/yF29f9imuv/3e/9/+X4//+Lv/P/LXPY/ylx4v8ict//M23N/7fI8v/2/v//kcTy/yd89/81dfP/ja3p/+f8///h6vf/YpTd/zF97P9rnub/6vP6//v9+f+jxOv/M3nb/xt19f8YePP/NXPV/8HK6f////f/pcro/zaB7v9Be+3/nbLg//j++v/n6vb/cJjW/z6D4f91peX/7PP5////+v+zx+f/PH/e/xZ5/f8Wevn/NnfY/8bO6f///+//sM3j/0OG6P9NgOj/orPb//r98//S4Pr/bZnf/0SM5f9qpOf/2O3///r///+txu//PIPm/xZ+//8Yffz/NXvm/7fL8/////z/q9Ht/0OJ7v9QhvH/mLLl/+T4/v/E3P//apjg/0yO3P9tquf/zfD//+T1//+ow/T/Robh/yuI+v8yiPL/OX3j/6bH9v/r////oM7x/0iK6v9Thej/krHm/9P4///U4///kqzZ/3qhxf+Qttf/1e39/+jw/f/AyOv/e5vQ/2WY1f9smMv/aZLU/7bN9f/x/v3/tNPm/3Kc2/+Emtz/s8De/+D9///z8f//6ev3/+Xu7v/g7O3/7fH5//Lr9v/x6fL/5ebx/9zr9f/i6uz/2OP3/+Tp+f/08+n/5/Ls/9jm/P/r5vz/9u/0//f/+f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0430%2C%20%u043E%u0442%2016.03.2017.%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u0438%20%u0434%u043B%u0438%u043D%u043D%u044B%u0445%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmousedown%20%3De%3D%3E%20%7B%0A%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%29%20return%3B%20//%20%u0441%u0442%u043E%u043F%20%u0435%u0441%u043B%u0438%20%u041F%u041A%u041C%0A%0A%20%20%20%20self.onclick%20%3De%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%2C%20clearTimeout%28self.timer%29%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20e.button%20%3D%3D%200%20%3F%20saveShortcuts%28false%29%20%3A%20saveShortcuts%28false%2C%20getSelect%28%29%29%3B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20self.timer%20%3D%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20e.button%20%3D%3D%200%20%3F%20saveShortcuts%28true%29%20%3A%20saveShortcuts%28true%2C%20getSelect%28%29%29%3B%0A%20%20%20%20%7D%2C%20500%20%29%3B%0A%7D%3B%0A%0A%0A//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u0438%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20.............%0Avar%20disk%20%3D%20%27C%27%3B%20//%20%u0434%u0438%u0441%u043A%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u0438%u043A%u043E%u043D%u043E%u043A%20%u0434%u043B%u044F%20%u044F%u0440%u043B%u044B%u043A%u043E%u0432%20%u0438%20%u044F%u0440%u043B%u044B%u043A%u043E%u0432%20%u0441%u0430%u0439%u0442%u043E%u0432%0Avar%20pref%20%3D%20%22CB.Shortcuts.pathToSaveShortcuts%22%3B%0Avar%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%20%0A%20%20%20var%20folder%20%3D%20gPrefService.getComplexValue%28pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20this.tooltipText%20%3D%20%22%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%5Cn%u0414%u041B%20%20%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u043A%u0430%u043A...%20%5Cn%u041B%3A%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u0414%u0421%3A%20%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u043C%20%u0442%u0435%u043A%u0441%u0442%u043E%u043C%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043A%u0430%u043A...%20%5Cn%u0421%3A%20%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u043C%20%u0442%u0435%u043A%u0441%u0442%u043E%u043C%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Cn%u041F%u0430%u043F%u043A%u0430%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%3A%20%22%20+%20folder%3B%0A%7D%3B%0A%0A%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0432%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u0443%u044E%20%u043F%u0430%u043F%u043A%u0443%20%u0438%u043B%u0438%20%u0432%20%u043F%u043E%u0441%u043B%u0435%u0434%u043D%u044E%u044E%20%u043F%u0430%u043F%u043A%u0443%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20..............%0Afunction%20saveShortcuts%28saveAs%2C%20shortcutName%29%20%7B%0A%20%20%20var%20url%20%3D%20content.document.location%3B%0A%20%20%20cbu.isPref%28pref%2C%20disk%20+%20%22%3A%5C%5C%22%29%3B%0A%0A%20%20%20//%20%u0431%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u0435%20%u044F%u0440%u043B%u044B%u043A%u043E%u0432%20%u0434%u043B%u044F%20%u0432%u043D%u0443%u0442%u0440%u0435%u043D%u043D%u0438%u0445%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%20FF%0A%20%20%20if%20%28%20%5B%22about%3A%22%2C%20%22chrome%3A%22%2C%20%22jar%3A%22%2C%20%22data%3A%22%5D.indexOf%28url.protocol%29%20%21%3D%3D%20-1%20%29%20%7B%20%20%20%0A%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20self.label%2C%20%22%u041D%u0435%20%u043F%u043E%u0434%u0434%u0435%u0440%u0436%u0438%u0432%u0430%u0435%u0442%u0441%u044F%22%29%3B%0A%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%0A%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u044F%u0440%u043B%u044B%u043A%u0430%20%0A%20%20%20if%20%28%20saveAs%20%29%20shortcutName%20%3D%20setPathToShortcut%28shortcutName%29%0A%20%20%20else%20%0A%20%20%20%20%20%20%20%20shortcutName%20%3D%20shortcutName%20%3F%20shortcutName%20%3A%20getSiteName%28%29%20+%20getTabLabel%28%29%20+%20%22%20%22%20+%20Date.now%28%29%3B%0A%20%20%20if%20%28%20saveAs%20%26%26%20shortcutName%20%3D%3D%20false%20%29%20return%3B%0A%20%20%20%0A%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0442%u0430%u0431%u0430%20%u0432%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043D%u0443%u044E%20%u043F%u0430%u043F%u043A%u0443%0A%20%20%20var%20faviconName%20%3D%20%22favicon%22%20+%20Date.now%28%29%3B%0A%20%20%20var%20favicon%20%3D%20saveFaviconToFolder%28faviconName%29%3B%0A%20%0A%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u044F%u0440%u043B%u044B%u043A%u0430%20%u0438%u0437%20%27about%3Aconfig%27%20%0A%20%20%20var%20pathToFolder%20%3D%20gPrefService.getComplexValue%28pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20var%20pathToShortcut%20%3D%20pathToFolder%20+%20shortcutName%20+%20%22.url%22%3B%0A%20%20%20%20%20%20%20%0A%20%20%20//%20%u0430%u0434%u0440%u0435%u0441%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0432%20UTF-8%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u043F%u0440%u043E%u0442%u043E%u043A%u043E%u043B%20%27file%27%20%u0438%u043B%u0438%20%u0432%20%27Punycode%27%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20.%u0440%u0444%20%u0434%u043E%u043C%u0435%u043D%0A%20%20%20if%20%28%20url.protocol%20%3D%3D%20%27file%3A%27%20%29%20url%20%3D%20convertFromUnicode%28%22UTF-8%22%2C%20url%29%3B%20%20%20%0A%20%20%20if%20%28%20url.host.slice%28-3%29%20%3D%3D%20%27.%u0440%u0444%27%29%20url%20%3D%20Services.io.newURI%28url%2C%20null%2C%20null%29.asciiSpec%3B%0A%20%20%20%20%20%0A%20%20%20//%20%u0442%u0435%u043A%u0441%u0442%20%u044F%u0440%u043B%u044B%u043A%u0430%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%20%u043F%u0443%u0442%u0438%20%u043A%20%u0438%u043A%u043E%u043D%u043A%u0435%20%u0442%u0430%u0431%u0430%20%20%20%20%0A%20%20%20var%20text%20%3D%20%22%5BInternetShortcut%5D%22%20+%20%22%5Cr%5Cn%22%20+%20%22URL%3D%22%20+%20url%3B%0A%20%20%20var%20pathToFavicon%20%3D%20%22IconFile%3D%22%20+%20disk%20+%20%22%3A%5C%5CDocuments%20and%20Settings%5C%5CFavicon%5C%5C%22%20+%20faviconName%20+%20%22.ico%22%20+%20%22%5Cr%5Cn%22%3B%0A%20%20%20if%20%28%20favicon%20%3D%3D%20false%20%29%20var%20pathToFavicon%20%3D%20%22%22%3B%0A%20%20%20var%20data%20%3D%20text%20+%20%22%5Cr%5Cn%22%20+%20pathToFavicon%20+%20%22IconIndex%3D0%22%3B%20%20%20%20%20%20%0A%0A%20%20%20//%20%u0437%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044F%u0440%u043B%u044B%u043A%0A%20%20%20custombuttonsUtils.writeFile%28pathToShortcut%2C%20data%29%3B%0A%0A%20%20%20//%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20....%0A%20%20%20var%20notification%20%3D%20%27%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u043B%20%u0432%3A%20%27%20+%20pathToFolder%3B%0A%20%20%20var%20image%20%3D%20%28favicon%20%3D%3D%20false%29%20%3F%20self.image%20%3A%20gBrowser.selectedBrowser.mIconURL%3B%0A%20%20%20alertsService.showAlertNotification%28image%2C%20shortcutName%2C%20notification%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0430%20%u043F%u0443%u0442%u0438%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u044F%u0440%u043B%u044B%u043A%u0430%20%u0447%u0435%u0440%u0435%u0437%20%u0434%u0438%u0430%u043B%u043E%u0433%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%2C%20%u043E%u0442%u043C%u0435%u043D%u0430%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20..............%0Afunction%20setPathToShortcut%28shortcutName%29%20%7B%20%20%20%20%20%0A%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u0440%u0435%u0434%u044B%u0434%u0443%u0449%u0438%u0439%20%u043F%u0443%u0442%u044C%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u0438%u0437%20%27about%3Aconfig%27%0A%20%20%20var%20pathToFile%20%3D%20gPrefService.getComplexValue%28pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20%0A%20%20%20//%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0434%u043B%u044F%20%u044F%u0440%u043B%u044B%u043A%u0430%0A%20%20%20var%20shortcutName%20%3D%20shortcutName%20%3F%20shortcutName%20%3A%20getSiteName%28%29%20+%20getTabLabel%28%29%20+%20%22%20%22%20+%20Date.now%28%29%3B%0A%0A%20%20%20//%20%u0434%u0438%u0430%u043B%u043E%u0433%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u044F%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20%u043F%u0443%u0442%u0438%20%20%20%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u0433%u0434%u0435%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%21%22%2C%20fp.modeSave%29%3B%0A%20%20%20fp.appendFilters%28fp.filterAll%29%3B%0A%20%20%20fp.defaultString%20%3D%20shortcutName%3B%0A%20%20%20%20%20%0A%20%20%20if%20%28%20fp.show%28%29%20%3D%3D%20fp.returnCancel%20%29%20return%20false%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20//%20%u0443%u0431%u0440%u0430%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0444%u0430%u0439%u043B%u0430%20%u0438%u0437%20%u043F%u0443%u0442%u0438%20%u043A%20%u0444%u0430%u0439%u043B%u0443%20%u0438%20%u0437%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u0432%20%27about%3Aconfig%27%0A%20%20%20var%20filePath%20%3D%20fp.file.path.toString%28%29%3B%0A%20%20%20var%20fileName%20%3D%20fp.file.leafName.toString%28%29%3B%0A%20%20%20cbu.setPrefs%28pref%2C%20convertFromUnicode%28%22UTF-8%22%2C%20filePath.replace%28fileName%2C%20%22%22%29%29%20%29%3B%20%20%20%20%20%20%0A%20%20%20return%20fileName%3B%0A%7D%3B%0A%0A%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u0443%u044E%20%u043F%u0430%u043F%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0442%u0430%u0431%u0430%20%u043A%u0430%u043A%20.ico%20%u0438%20%u0431%u0435%u0437%20%u0434%u0438%u0430%u043B%u043E%u0433%u0430%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20..............%0Afunction%20saveFaviconToFolder%28faviconName%29%20%7B%0A%20%20%20var%20url%20%3D%20gBrowser.mCurrentTab.image.replace%28%22%23-moz-resolution%3D16%2C16%22%2C%22%22%29%3B%0A%20%20%20if%20%28%20%21url%20%7C%7C%20content.document.mozSyntheticDocument%20%29%20return%20false%3B%0A%20%20%20if%20%28%20url.startsWith%28%22http%22%29%20%29%20url%20%3D%20%22moz-anno%3Afavicon%3A%22%20+%20url%3B%0A%0A%20%20%20var%20img%20%3D%20new%20Image%28%29%3B%0A%20%20%20img.onload%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20var%20tools%20%3D%20Cc%5B%22@mozilla.org/image/tools%3B1%22%5D.getService%28Ci.imgITools%29%3B%0A%20%20%20%20%20%20%20var%20stream%20%3D%20Cc%5B%22@mozilla.org/scriptableinputstream%3B1%22%5D.createInstance%28Ci.nsIScriptableInputStream%29%3B%0A%20%20%20%20%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%0A%20%20%20%20%20%20%20var%20request%20%3D%20img.QueryInterface%28Ci.nsIImageLoadingContent%29.getRequest%28img.CURRENT_REQUEST%29%3B%0A%20%20%20%20%20%20%20var%20istrm%20%3D%20tools.encodeImage%28request.image%2C%20%22image/vnd.microsoft.icon%22%2C%20%22format%3Dbmp%3Bbpp%3D32%22%29%3B%0A%20%20%20%20%20%20%20stream.init%28istrm%29%3B%0A%20%20%20%20%20%20%20var%20data%20%3D%20stream.readBytes%28stream.available%28%29%29%3B%0A%20%20%20%20%20%20%20istrm.close%28%29%3B%20stream.close%28%29%3B%0A%0A%20%20%20%20%20%20%20var%20path%20%3D%20disk%20+%20%22%3A%5C%5CDocuments%20and%20Settings%5C%5CFavicon%5C%5C%22%20+%20faviconName%20+%20%22.ico%22%3B%0A%20%20%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20%20%20%20file.exists%28%29%20%26%26%20file.remove%28false%29%3B%0A%20%20%20%20%20%20%20try%20%7B%20file.create%28file.NORMAL_FILE_TYPE%2C%20448%29%20%7D%20%0A%20%20%20%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u041D%u0435%20%u043C%u043E%u0433%u0443%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u043D%u0430%20%u0434%u0438%u0441%u043A%u0435%3A%20%22%20+%20disk%20+%20%22%5Cn%22%20+%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u0432%20%u043D%u0430%u0447%u0430%u043B%u0435%20%u043A%u043E%u0434%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0434%u0440%u0443%u0433%u043E%u0439%20%u0434%u0438%u0441%u043A%21%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%202500%29%3B%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20cbu.writeFile%28path%2C%20data%29%3B%0A%20%20%20%7D%0A%20%20%20img.setAttribute%28%22src%22%2C%20url%29%3B%0A%7D%3B%0A%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20.............%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0434%u043E%u043C%u0435%u043D%u0430%20%u0441%20%u0437%u0430%u0433%u043B%u0430%u0432%u043D%u044B%u043C%20%u043F%u0435%u0440%u0432%u044B%u043C%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u043C%20%u0438%20%u0431%u0435%u0437%20%u043F%u0440%u0438%u0441%u0442%u0430%u0432%u043E%u043A%28%20%u0442%u0438%u043F%u0430%20.ru%20%u0438%20.com%20%29%20..............%0Afunction%20getSiteName%28%29%20%7B%0A%20%20%20try%20%7B%20var%20domain%20%3D%20content.document.domain.split%28%27.%27%29%20%7D%20catch%28e%29%20%7B%20return%20%22%22%20%7D%3B%0A%20%20%20domain%20%3D%20%28domain.length%20%3D%3D%202%29%20%3F%20domain%5B0%5D%20%3A%20domain%5B1%5D%0A%20%20%20return%20domain.charAt%280%29.toUpperCase%28%29%20+%20domain.slice%281%29.split%28%27.%27%29%5B0%5D%20+%20%22%20%22%3B%20%20%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0431%u0435%u0437%20%u043D%u0435%20%u0441%u043E%u0445%u0440%u0430%u043D%u044F%u0435%u043C%u044B%u0445%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0438%20%u043B%u0438%u0448%u043D%u0438%u0445%20%u043F%u0440%u043E%u0431%u0435%u043B%u043E%u0432%20..............%0Afunction%20getTabLabel%28%29%20%7B%20%0A%20%20%20var%20label%20%3D%20gBrowser.mCurrentTab.label%3B%20%20%20%20%20%20%0A%20%20%20var%20label%20%3D%20label.replace%28/%5B%3A.%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%22%20%22%29.replace%28/%5Cs%5Cs+/g%2C%20%22%20%22%29%3B%0A%20%20%20return%20label.substring%280%2C%2050%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%27false%27%20..............%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%20//%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0A%20%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20%7B%20%20%20%20%0A%20%20%20%20%20%20%20var%20el%20%3D%20document.commandDispatcher.focusedElement%3B%20//%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%0A%20%20%20%20%20%20%20if%20%28%20el%20%26%26%20el.textLength%20%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20sel%20%3D%20el.value.substring%28el.selectionStart%2C%20el.selectionEnd%29%3B%20%20%0A%20%20%20%20%20%20%20%7D%0A%20%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20sel%20%3D%20gClipboard.read%28%29%3B%20//%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20self.label%2C%20%22%u0412%u044B%u0434%u0435%u043B%u0438%u0442%u0435%20%u0438%u043B%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u0443%u0439%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%21%22%29%3B%0A%20%20%0A%20%20%20return%20%28%20sel%20%3D%3D%20%27%27%20%29%20%3F%20false%20%3A%20sel.replace%28/%5B%3A.%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%22%20%22%29.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%20//%20%u0437%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0435%u0434%u043E%u043F%u0443%u0441%u0442%u0438%u043C%u044B%u0435%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043B%u0438%u0448%u043D%u0438%u0435%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Большое спасибо Dumby за помощь с кнопкой. |
Lex1 > 25-11-2012 00:15:30 |
Tetris (c) скрытый текст Выделить код Код: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%0A%20%20%3Cname%3ETetris%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABeElEQVR42o2TzUrDQBSFz8QgtNBVS9di6K4LwZ0g+iju270+gq4EfZqu2oKULkTEhd2JG6PELpqG1vlLxrnTH6ykmknChMOdL/eee8NaN63reBYfZCYDLZMZlHfLkJlEmqVbNRh7K/PoT2aT4+Hz8FAoAc/zoL4UGvUGxmqM6Xy6VTOpgfpUFd8Yk0glsQLQu9YaUv+tEUAKmfiMMTCPOdE9bLH/p9kPu92XUlaIBlsaiVQb5xxCCMgvuchASNg458Uqzp0BKqx2VDvTqd7DctHBYD84rdarJ1ppgMFBoo+oH4Zhz9uxmZC4MPeVIWe1b9vn3afuJRfcHYZtUPwSX0R30dXvWD8PYGstxUm8YZiQopQXmwugWtcGLg0jswsDkiRxBlL7HMAClVLFAeFbiKAauI44v6g5NYPBw6AYoNlsonPf2fTgXRTPgFJPZgm44msAj3lxwLapKwywk1j6OZ3LqSvexn6vP5pP5z36xWnqDF3GjPJivwH38hbq/xF5SwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Awindow.open%28%27data%3Atext/html%3Bbase64%2CPGh0bWw+DQoJPGhlYWQ+DQoJCTx0aXRsZT5UZXRyaXM8L3RpdGxlPg0KCQk8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9Imh0dHA6Ly9lbGJlcnRmLmNvbS90ZXRyaXMvIj4NCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4jdGV0cmlzICp7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtmb250LXNpemU6MWVtO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7Zm9udC1mYW1pbHk6J1RyZWJ1Y2hldCBNUycsVmVyZGFuYSxBcmlhbDtsaW5lLWhlaWdodDoxLjRlbTtsaXN0LXN0eWxlOm5vbmUgaW5zaWRlO21hcmdpbjowO3BhZGRpbmc6MDt0ZXh0LWFsaWduOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fSN0ZXRyaXN7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6LjVlbTt9I3RldHJpcyBhOmxpbmssI3RldHJpcyBhOmhvdmVyLCN0ZXRyaXMgYTphY3RpdmUsI3RldHJpcyBhOnZpc2l0ZWR7Y29sb3I6IzIwMjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30jdGV0cmlzIHN0cm9uZ3tmb250LXdlaWdodDpib2xkO30jdGV0cmlzIC5jbGVhcntjbGVhcjpib3RoO30jdGV0cmlzLXdyYXB7bWFyZ2luOi4yZW0gYXV0byAwIGF1dG87cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDo0NTZweDt9I3RldHJpcy13cmFwLWlubmVye2JvcmRlcjoycHggc29saWQgIzMxMzttYXJnaW4tYm90dG9tOi4yZW07fSN0ZXRyaXMtbWFpbiwjdGV0cmlzLW92ZXJsYXksI3RldHJpcy1zaWRle2hlaWdodDo2MDBweDt9I3RldHJpcy1tYWluLCN0ZXRyaXMtb3ZlcmxheXt3aWR0aDozMDBweDt9I3RldHJpcy1tYWlue2JhY2tncm91bmQ6IzIwMjtmbG9hdDpsZWZ0O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt9I3RldHJpcy1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO30jdGV0cmlzLW1lc3NhZ2V7Zm9udC1zaXplOjJlbTt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7fSN0ZXRyaXMtbWVzc2FnZSBwe2NvbG9yOiNGRkY7cGFkZGluZzouNWVtO30jdGV0cmlzLW1lc3NhZ2UgcCBzcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi41ZW07Zm9udC1zdHlsZTppdGFsaWM7dGV4dC10cmFuc2Zvcm06bm9uZTt9I3RldHJpcy1zaWRle2JhY2tncm91bmQ6IzMxMztjb2xvcjojRkZGO2Zsb2F0OnJpZ2h0O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxNTJweDt9I3RldHJpcy1zaWRlLWlubmVye3BhZGRpbmc6MTZweDt9I3RldHJpcy1zaWRlIGRse2NsZWFyOmJvdGg7fSN0ZXRyaXMtc2lkZSBkdHtmbG9hdDpsZWZ0O30jdGV0cmlzLXNpZGUgZGR7ZmxvYXQ6cmlnaHQ7Zm9udC1mYW1pbHk6R2VvcmdpYSxzZXJpZjt9ZGQjdGV0cmlzLWxldmVsLGRkI3RldHJpcy1zY29yZXttYXJnaW4tYm90dG9tOjFlbTt9I3RldHJpcy1uZXh0e2JhY2tncm91bmQ6IzIwMjtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MTIwcHg7bWFyZ2luLWJvdHRvbToxZW07d2lkdGg6MTIwcHg7fSN0ZXRyaXMtbmV4dC1pbm5lcntwYWRkaW5nOjFlbTt9I3RldHJpcy1rZXlze2NvbG9yOiM5Nzk7Zm9udC1zaXplOi44ZW07bWFyZ2luLXRvcDoxZW07fTwvc3R5bGU+DQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgdGV0cmlzPXticmlja1NpemU6MzAsYnJpY2tCb3JkZXJTaXplOjIsbWFpbldpbldpZHRoOjEwLG1haW5XaW5IZWlnaHQ6MjAsbGV2ZWxVcFNjb3JlOjE1MCxsZXZlbDoxLHNjb3JlOjAsc2luZ2xlczowLGRvdWJsZXM6MCx0cmlwbGVzOjAscXVhZHM6MCxicmlja3M6W10scGlsZTpbXSxwaWxlQW5pbUxpbmU6W10scGlsZUFuaW1Ecm9wOltdLGdhbWVTdGFydDp0cnVlLGdhbWVPdmVyOmZhbHNlLHBhdXNlZDpmYWxzZSxrZXlQcmVzc2VkOmZhbHNlLHNoYXBlQ291bnQ6MCxrZXlEcm9wOjMyLGtleUxlZnQ6Mzcsa2V5Um90YXRlOjM4LGtleVJpZ2h0OjM5LGtleURvd246NDAsa2V5UGF1c2U6MTksa2V5U3RvcDoyNyxpbml0OmZ1bmN0aW9uKCl7dGV0cmlzLm1haW5XaW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1tYWluIik7dGV0cmlzLm5leHRXaW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1uZXh0LWlubmVyIik7dGV0cmlzLm1lc3NhZ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1tZXNzYWdlIik7dGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MPSI8cD5OZXcgZ2FtZSA8c3Bhbj5QcmVzcyBhbnkga2V5IHRvIHN0YXJ0PC9zcGFuPjwvcD4iO2RvY3VtZW50Lm9ua2V5ZG93bj10ZXRyaXMua2V5TGlzdGVuZXJ9LG5ld0dhbWU6ZnVuY3Rpb24oKXtmb3IodmFyIEI9MDtCPHRldHJpcy5tYWluV2luV2lkdGg7QisrKXtpZighdGV0cmlzLnBpbGVbQl0pe3RldHJpcy5waWxlW0JdPVtdfXRldHJpcy5waWxlQW5pbUxpbmVbQl09W107dGV0cmlzLnBpbGVBbmltRHJvcFtCXT1bXTtmb3IodmFyIEE9MDtBPHRldHJpcy5tYWluV2luSGVpZ2h0O0ErKyl7aWYodGV0cmlzLnBpbGVbQl1bQV0pe3RldHJpcy5tYWluV2luLnJlbW92ZUNoaWxkKHRldHJpcy5waWxlW0JdW0FdKX10ZXRyaXMucGlsZVtCXVtBXT1mYWxzZTt0ZXRyaXMucGlsZUFuaW1MaW5lW0JdW0FdPWZhbHNlO3RldHJpcy5waWxlQW5pbURyb3BbQl1bQV09ZmFsc2V9fXRldHJpcy5sZXZlbD0xO3RldHJpcy5zY29yZT0wO3RldHJpcy5zaW5nbGVzPTA7dGV0cmlzLmRvdWJsZXM9MDt0ZXRyaXMudHJpcGxlcz0wO3RldHJpcy5xdWFkcz0wO3RldHJpcy51cGRhdGVTY29yZSgpO3RldHJpcy5uZXdTaGFwZSgpfSxuZXdTaGFwZTpmdW5jdGlvbigpe3RldHJpcy5zaGFwZUNvdW50Kys7dGV0cmlzLnNoYXBlTnVtPXR5cGVvZiAodGV0cmlzLnNoYXBlTnVtTmV4dCkhPSJ1bmRlZmluZWQiP3RldHJpcy5zaGFwZU51bU5leHQ6TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjYpO3RldHJpcy5zaGFwZU51bU5leHQ9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjcpO3RldHJpcy5zaGFwZVJvdD10eXBlb2YgKHRldHJpcy5zaGFwZVJvdE5leHQpIT0idW5kZWZpbmVkIj90ZXRyaXMuc2hhcGVSb3ROZXh0Ok1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KTt0ZXRyaXMuc2hhcGVSb3ROZXh0PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KTt0ZXRyaXMuc2hhcGVQb3NIb3I9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0ZXRyaXMubWFpbldpbldpZHRoLTYpKSszO3RldHJpcy5zaGFwZVBvc1Zlcj0tMTt0ZXRyaXMuZHJhd1NoYXBlKCk7dGV0cmlzLmRyYXdOZXh0KCk7dGV0cmlzLnNoYXBlTGFuZGVkPWZhbHNlO2NsZWFySW50ZXJ2YWwodGV0cmlzLmludHZhbCk7dGV0cmlzLmludHZhbD1zZXRJbnRlcnZhbCgidGV0cmlzLnRpbWVTdGVwKCkiLDIwMDAvdGV0cmlzLmxldmVsKX0sbmV3QnJpY2s6ZnVuY3Rpb24oQixELEEpe3ZhciBDPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0Muc2V0QXR0cmlidXRlKCJzdHlsZSIsImJhY2tncm91bmQ6ICIrQisiOyBib3JkZXItY29sb3I6ICIrRCsiICIrQSsiICIrQSsiICIrRCsiOyBib3JkZXItd2lkdGg6ICIrdGV0cmlzLmJyaWNrQm9yZGVyU2l6ZSsicHg7IGJvcmRlci1zdHlsZTogc29saWQ7IGhlaWdodDogIisodGV0cmlzLmJyaWNrU2l6ZS10ZXRyaXMuYnJpY2tCb3JkZXJTaXplKjIpKyJweDsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogIisodGV0cmlzLmJyaWNrU2l6ZS10ZXRyaXMuYnJpY2tCb3JkZXJTaXplKjIpKyI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiKTtyZXR1cm4gQ30sZHJhd1NoYXBlOmZ1bmN0aW9uKCl7dmFyIEQ9MCxCPXRydWU7dGV0cmlzLmJyaWNrUG9zPVtdO2Zvcih2YXIgQT0wO0E8NDtBKyspe2Zvcih2YXIgRj0wO0Y8NDtGKyspe2lmKHRldHJpcy5icmlja0xpYlt0ZXRyaXMuc2hhcGVOdW1dW0EqNCtGK3RldHJpcy5zaGFwZVJvdCoxNl0pe3RldHJpcy5icmlja1Bvc1tEXT17aG9yOkYrdGV0cmlzLnNoYXBlUG9zSG9yLHZlcjpBK3RldHJpcy5zaGFwZVBvc1Zlcn07aWYodGV0cmlzLmNvbGxpc2lvbih0ZXRyaXMuYnJpY2tQb3NbRF0uaG9yLHRldHJpcy5icmlja1Bvc1tEXS52ZXIpKXtCPWZhbHNlfUQrK319fWlmKEImJiF0ZXRyaXMucGF1c2VkJiYhdGV0cmlzLmdhbWVPdmVyKXt2YXIgRT10ZXRyaXMuYnJpY2tzP3RldHJpcy5icmlja3Muc2xpY2UoMCk6ZmFsc2U7Zm9yKHZhciBDPTA7QzxEO0MrKyl7dGV0cmlzLmJyaWNrc1tDXT10ZXRyaXMubmV3QnJpY2sodGV0cmlzLmJyaWNrTGliW3RldHJpcy5zaGFwZU51bV1bNjRdLHRldHJpcy5icmlja0xpYlt0ZXRyaXMuc2hhcGVOdW1dWzY1XSx0ZXRyaXMuYnJpY2tMaWJbdGV0cmlzLnNoYXBlTnVtXVs2Nl0pO3RldHJpcy5icmlja3NbQ10ubnVtPXRldHJpcy5zaGFwZUNvdW50O3RldHJpcy5icmlja3NbQ10uc3R5bGUubGVmdD10ZXRyaXMuYnJpY2tQb3NbQ10uaG9yKnRldHJpcy5icmlja1NpemUrInB4Ijt0ZXRyaXMuYnJpY2tzW0NdLnN0eWxlLnRvcD10ZXRyaXMuYnJpY2tQb3NbQ10udmVyKnRldHJpcy5icmlja1NpemUrInB4In1mb3IodmFyIEM9MDtDPEQ7QysrKXt0ZXRyaXMubWFpbldpbi5hcHBlbmRDaGlsZCh0ZXRyaXMuYnJpY2tzW0NdKX1mb3IodmFyIEM9MDtDPEQ7QysrKXtpZihFW0NdJiZFW0NdLm51bT09dGV0cmlzLnNoYXBlQ291bnQpe3RldHJpcy5tYWluV2luLnJlbW92ZUNoaWxkKEVbQ10pfX10ZXRyaXMucHJldlNoYXBlUm90PXRldHJpcy5zaGFwZVJvdDt0ZXRyaXMucHJldlNoYXBlUG9zSG9yPXRldHJpcy5zaGFwZVBvc0hvcjt0ZXRyaXMucHJldlNoYXBlUG9zVmVyPXRldHJpcy5zaGFwZVBvc1Zlcjt0ZXRyaXMucHJldkJyaWNrUG9zPXRldHJpcy5icmlja1Bvcy5zbGljZSgwKX1lbHNle3RldHJpcy5zaGFwZVJvdD10ZXRyaXMucHJldlNoYXBlUm90O3RldHJpcy5zaGFwZVBvc0hvcj10ZXRyaXMucHJldlNoYXBlUG9zSG9yO3RldHJpcy5zaGFwZVBvc1Zlcj10ZXRyaXMucHJldlNoYXBlUG9zVmVyO3RldHJpcy5icmlja1Bvcz10ZXRyaXMucHJldkJyaWNrUG9zLnNsaWNlKDApfX0sZHJhd05leHQ6ZnVuY3Rpb24oKXt0ZXRyaXMubmV4dFdpbi5pbm5lckhUTUw9IiI7Zm9yKHZhciBBPTA7QTw0O0ErKyl7Zm9yKHZhciBCPTA7Qjw0O0IrKyl7aWYodGV0cmlzLmJyaWNrTGliW3RldHJpcy5zaGFwZU51bU5leHRdW0EqNCtCK3RldHJpcy5zaGFwZVJvdE5leHQqMTZdKXticmljaz10ZXRyaXMubmV3QnJpY2sodGV0cmlzLmJyaWNrTGliW3RldHJpcy5zaGFwZU51bU5leHRdWzY0XSx0ZXRyaXMuYnJpY2tMaWJbdGV0cmlzLnNoYXBlTnVtTmV4dF1bNjVdLHRldHJpcy5icmlja0xpYlt0ZXRyaXMuc2hhcGVOdW1OZXh0XVs2Nl0pO2JyaWNrLnN0eWxlLmxlZnQ9Qip0ZXRyaXMuYnJpY2tTaXplKyJweCI7YnJpY2suc3R5bGUudG9wPUEqdGV0cmlzLmJyaWNrU2l6ZSsicHgiO3RldHJpcy5uZXh0V2luLmFwcGVuZENoaWxkKGJyaWNrKX19fX0sY29sbGlzaW9uOmZ1bmN0aW9uKEIsQSl7aWYoQjwwKXtpZih0ZXRyaXMua2V5UHJlc3NlZD09dGV0cmlzLmtleVJvdGF0ZSl7aWYoIXRldHJpcy5jb2xsaXNpb24oQisxLEEpKXt0ZXRyaXMuc2hhcGVQb3NIb3IrKzt0ZXRyaXMuZHJhd1NoYXBlKCk7cmV0dXJuIHRydWV9ZWxzZXt0ZXRyaXMuc2hhcGVSb3QtLTtyZXR1cm4gdHJ1ZX19cmV0dXJuIHRydWV9aWYoQj49dGV0cmlzLm1haW5XaW5XaWR0aCl7aWYodGV0cmlzLmtleVByZXNzZWQ9PXRldHJpcy5rZXlSb3RhdGUpe2lmKCF0ZXRyaXMuY29sbGlzaW9uKEItMSxBKSl7dGV0cmlzLnNoYXBlUG9zSG9yLS07dGV0cmlzLmRyYXdTaGFwZSgpO3JldHVybiB0cnVlfWVsc2V7dGV0cmlzLnNoYXBlUm90LS07cmV0dXJuIHRydWV9fXJldHVybiB0cnVlfWlmKEE+PXRldHJpcy5tYWluV2luSGVpZ2h0KXtpZih0ZXRyaXMua2V5UHJlc3NlZCE9dGV0cmlzLmtleVJvdGF0ZSl7dGV0cmlzLnNoYXBlUG9zVmVyLS19dGV0cmlzLnNoYXBlTGFuZGVkPXRydWU7cmV0dXJuIHRydWV9aWYodGV0cmlzLnBpbGVbQl1bQV0pe2lmKHRldHJpcy5zaGFwZVBvc1Zlcj50ZXRyaXMucHJldlNoYXBlUG9zVmVyKXt0ZXRyaXMuc2hhcGVMYW5kZWQ9dHJ1ZX1yZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9LHRpbWVTdGVwOmZ1bmN0aW9uKCl7dGV0cmlzLnNoYXBlUG9zVmVyKys7dGV0cmlzLmRyYXdTaGFwZSgpO2lmKHRldHJpcy5zaGFwZUxhbmRlZCl7Zm9yKHZhciBFIGluIHRldHJpcy5icmlja3Mpe3RldHJpcy5waWxlW3RldHJpcy5icmlja1Bvc1tFXS5ob3JdW3RldHJpcy5icmlja1Bvc1tFXS52ZXJdPXRldHJpcy5icmlja3NbRV19dmFyIEM9MDtmb3IodmFyIEE9MDtBPHRldHJpcy5tYWluV2luSGVpZ2h0O0ErKyl7dmFyIEI9dHJ1ZTtmb3IodmFyIEY9MDtGPHRldHJpcy5tYWluV2luV2lkdGg7RisrKXtpZighdGV0cmlzLnBpbGVbRl1bQV0pe0I9ZmFsc2V9fWlmKEIpe0MrKztmb3IodmFyIEY9MDtGPHRldHJpcy5tYWluV2luV2lkdGg7RisrKXtpZih0ZXRyaXMucGlsZVtGXVtBXSl7dGV0cmlzLnBpbGVBbmltTGluZVtGXVtBXT10ZXRyaXMucGlsZVtGXVtBXTtzZXRUaW1lb3V0KCJ0ZXRyaXMubWFpbldpbi5yZW1vdmVDaGlsZCh0ZXRyaXMucGlsZUFuaW1MaW5lWyIrRisiXVsiK0ErIl0pOyIsRio1MCk7dGV0cmlzLnBpbGVbRl1bQV09ZmFsc2V9fWZvcih2YXIgRj0wO0Y8dGV0cmlzLm1haW5XaW5XaWR0aDtGKyspe2Zvcih2YXIgRD1BO0Q+MDtELS0pe2lmKHRldHJpcy5waWxlW0ZdW0RdKXt0ZXRyaXMucGlsZUFuaW1Ecm9wW0ZdW0RdPXRldHJpcy5waWxlW0ZdW0RdO3NldFRpbWVvdXQoInRldHJpcy5waWxlQW5pbURyb3BbIitGKyJdWyIrRCsiXS5zdHlsZS50b3AgPSAoICIrRCsiICsgMSApICogdGV0cmlzLmJyaWNrU2l6ZSArICdweCc7Iix0ZXRyaXMubWFpbldpbldpZHRoKjUwKTt0ZXRyaXMucGlsZVtGXVtEKzFdPXRldHJpcy5waWxlW0ZdW0RdO3RldHJpcy5waWxlW0ZdW0RdPWZhbHNlfX19fX10ZXRyaXMudXBkYXRlU2NvcmUoQyk7Zm9yKHZhciBGPTA7Rjx0ZXRyaXMubWFpbldpbldpZHRoO0YrKyl7aWYodGV0cmlzLnBpbGVbRl1bMF0pe3RldHJpcy5kb0dhbWVPdmVyKCk7cmV0dXJuIH19dGV0cmlzLm5ld1NoYXBlKCl9fSx1cGRhdGVTY29yZTpmdW5jdGlvbihBKXt2YXIgQj10ZXRyaXMuc2NvcmU7aWYoQSl7dGV0cmlzLnNjb3JlKz1BKkErQSoxMH1mb3IoaT1CO2k8dGV0cmlzLnNjb3JlO2krKyl7c2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RldHJpcy1zY29yZScpLmlubmVySFRNTCA9ICciK2krIic7IiwoaS1CKSoyMCl9dGV0cmlzLmxldmVsPU1hdGguZmxvb3IodGV0cmlzLnNjb3JlL3RldHJpcy5sZXZlbFVwU2NvcmUpKzE7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1sZXZlbCIpLmlubmVySFRNTD10ZXRyaXMubGV2ZWw7aWYoQT09MSl7dGV0cmlzLnNpbmdsZXMrKztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV0cmlzLXNpbmdsZXMiKS5pbm5lckhUTUw9dGV0cmlzLnNpbmdsZXN9aWYoQT09Mil7dGV0cmlzLmZsYXNoTWVzc2FnZSgnPHAgY2xhc3M9InRldHJpcy1kb3VibGUiPkRvdWJsZSE8L3A+Jyk7dGV0cmlzLmRvdWJsZXMrKztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV0cmlzLWRvdWJsZXMiKS5pbm5lckhUTUw9dGV0cmlzLmRvdWJsZXN9aWYoQT09Myl7dGV0cmlzLmZsYXNoTWVzc2FnZSgnPHAgY2xhc3M9InRldHJpcy1kb3VibGUiPlRyaXBsZSE8L3A+Jyk7dGV0cmlzLnRyaXBsZXMrKztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV0cmlzLXRyaXBsZXMiKS5pbm5lckhUTUw9dGV0cmlzLnRyaXBsZXN9aWYoQT09NCl7dGV0cmlzLmZsYXNoTWVzc2FnZSgnPHAgY2xhc3M9InRldHJpcy1kb3VibGUiPlRldHJpcyE8L3A+Jyk7dGV0cmlzLnF1YWRzKys7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1xdWFkcyIpLmlubmVySFRNTD10ZXRyaXMucXVhZHN9fSxmbGFzaE1lc3NhZ2U6ZnVuY3Rpb24oQSl7dGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MPUE7c2V0VGltZW91dCgidGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MID0gJyc7IiwxMDAwKX0sZG9HYW1lT3ZlcjpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwodGV0cmlzLmludHZhbCk7dGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MPSI8cD5HYW1lIG92ZXIgPHNwYW4+UHJlc3MgU3BhY2ViYXIgdG8gY29udGludWU8L3NwYW48L3A+Ijt0ZXRyaXMuZ2FtZU92ZXI9dHJ1ZX0sa2V5TGlzdGVuZXI6ZnVuY3Rpb24oQSl7aWYoIUEpe0E9d2luZG93LmV2ZW50fXRldHJpcy5rZXlQcmVzc2VkPUEua2V5Q29kZTtpZih0ZXRyaXMuZ2FtZVN0YXJ0KXt0ZXRyaXMuZ2FtZVN0YXJ0PWZhbHNlO3RldHJpcy5tZXNzYWdlLmlubmVySFRNTD0iIjt0ZXRyaXMubmV3R2FtZSgpfWVsc2V7aWYodGV0cmlzLmdhbWVPdmVyJiZBLmtleUNvZGU9PXRldHJpcy5rZXlEcm9wKXt0ZXRyaXMuZ2FtZU92ZXI9ZmFsc2U7dGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MPSIiO3RldHJpcy5uZXdHYW1lKCl9ZWxzZXtpZighdGV0cmlzLmdhbWVPdmVyKXtpZihBLmtleUNvZGU9PXRldHJpcy5rZXlTdG9wfHxBLmtleUNvZGU9PXRldHJpcy5rZXlQYXVzZSl7dGV0cmlzLnBhdXNlZD0hdGV0cmlzLnBhdXNlZDtpZih0ZXRyaXMucGF1c2VkKXt0ZXRyaXMubWVzc2FnZS5pbm5lckhUTUw9IjxwPlBhdXNlZCA8c3Bhbj5QcmVzcyBFc2MgdG8gcmVzdW1lPC9zcGFuPC9wPiJ9ZWxzZXt0ZXRyaXMubWVzc2FnZS5pbm5lckhUTUw9IiJ9fWlmKCF0ZXRyaXMucGF1c2VkKXtpZihBLmtleUNvZGU9PXRldHJpcy5rZXlEcm9wKXtjbGVhckludGVydmFsKHRldHJpcy5pbnR2YWwpO3RldHJpcy5pbnR2YWw9c2V0SW50ZXJ2YWwoInRldHJpcy50aW1lU3RlcCgpIiwyMCl9aWYoQS5rZXlDb2RlPT10ZXRyaXMua2V5TGVmdCl7dGV0cmlzLnNoYXBlUG9zSG9yLS07dGV0cmlzLmRyYXdTaGFwZSgpfWlmKEEua2V5Q29kZT09dGV0cmlzLmtleVJvdGF0ZSl7dGV0cmlzLnNoYXBlUm90PSh0ZXRyaXMuc2hhcGVSb3QrMSklNDt0ZXRyaXMuZHJhd1NoYXBlKCl9aWYoQS5rZXlDb2RlPT10ZXRyaXMua2V5UmlnaHQpe3RldHJpcy5zaGFwZVBvc0hvcisrO3RldHJpcy5kcmF3U2hhcGUoKX1pZihBLmtleUNvZGU9PXRldHJpcy5rZXlEb3duKXt0ZXRyaXMuc2hhcGVQb3NWZXIrKzt0ZXRyaXMuZHJhd1NoYXBlKCl9fX19fXJldHVybiB0cnVlfSxicmlja0xpYjp7MDpbMSwwLDAsMCwxLDAsMCwwLDEsMSwwLDAsMCwwLDAsMCwxLDEsMSwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwxLDAsMCwwLDEsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDEsMSwxLDAsMCwwLDAsMCwiI0Y5MCIsIiNGQzAiLCIjRjYwIl0sMTpbMCwxLDAsMCwwLDEsMCwwLDAsMSwwLDAsMCwxLDAsMCwwLDAsMCwwLDEsMSwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxLDAsMCwwLDEsMCwwLDAsMSwwLDAsMCwwLDAsMCwxLDEsMSwxLDAsMCwwLDAsMCwwLDAsMCwiI0MwMCIsIiNFMDAiLCIjQjAwIl0sMjpbMSwxLDAsMCwxLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwxLDEsMSwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDEsMCwwLDEsMSwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDEsMSwxLDAsMCwwLDAsMCwiIzBDMCIsIiMwRTAiLCIjMEEwIl0sMzpbMSwwLDAsMCwxLDEsMCwwLDEsMCwwLDAsMCwwLDAsMCwxLDEsMSwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwxLDEsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDEsMSwxLDAsMCwwLDAsMCwiIzAwQyIsIiMwMEUiLCIjMDBBIl0sNDpbMSwxLDAsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDEsMCwwLDEsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMSwwLDAsMSwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwxLDAsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwiIzYwQyIsIiM4MEUiLCIjNDBBIl0sNTpbMCwxLDEsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDEsMSwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMSwxLDAsMSwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxLDEsMCwwLDAsMSwwLDAsMCwwLDAsMCwiI0NDQyIsIiNFRUUiLCIjQUFBIl0sNjpbMSwxLDAsMCwwLDEsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDEsMSwwLDAsMSwwLDAsMCwwLDAsMCwwLDEsMSwwLDAsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwxLDEsMCwwLDEsMCwwLDAsMCwwLDAsMCwiI0NDMCIsIiNFRTAiLCIjQUEwIl19LH07d2luZG93Lm9ubG9hZD10ZXRyaXMuaW5pdDs8L3NjcmlwdD4NCgk8aGVhZD4NCgk8Ym9keT4NCgkJPGRpdiBpZD0idGV0cmlzIj4NCgkJCTxkaXYgaWQ9InRldHJpcy13cmFwIj4NCgkJCQk8ZGl2IGlkPSJ0ZXRyaXMtd3JhcC1pbm5lciI+DQoJCQkJCTxkaXYgaWQ9InRldHJpcy1tYWluIj4JCQ0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBpZD0idGV0cmlzLW92ZXJsYXkiPg0KCQkJCQkJPGRpdiBpZD0idGV0cmlzLW1lc3NhZ2UiPjwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBpZD0idGV0cmlzLXNpZGUiPg0KCQkJCQkJPGRpdiBpZD0idGV0cmlzLXNpZGUtaW5uZXIiPg0KCQkJCQkJCTxkaXYgaWQ9InRldHJpcy1uZXh0Ij4NCgkJCQkJCQkJPGRpdiBpZD0idGV0cmlzLW5leHQtaW5uZXIiPjwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTxkaXYgaWQ9InRldHJpcy1zY29yZXMiPg0KCQkJCQkJCQk8ZGw+DQoJCQkJCQkJCQk8ZHQ+TGV2ZWw6PC9kdD4NCgkJCQkJCQkJCTxkZCBpZD0idGV0cmlzLWxldmVsIj4xPC9kZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PlNjb3JlOjwvZHQ+DQoJCQkJCQkJCQk8ZGQgaWQ9InRldHJpcy1zY29yZSI+MDwvZGQ+DQoJCQkJCQkJCTwvZGw+DQoJCQkJCQkJCTxkbD4NCgkJCQkJCQkJCTxkdD5TaW5nbGVzOjwvZHQ+DQoJCQkJCQkJCQk8ZGQgaWQ9InRldHJpcy1zaW5nbGVzIj4wPC9kZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PkRvdWJsZXM6PC9kdD4NCgkJCQkJCQkJCTxkZCBpZD0idGV0cmlzLWRvdWJsZXMiPjA8L2RkPg0KCQkJCQkJCQk8L2RsPg0KCQkJCQkJCQk8ZGw+DQoJCQkJCQkJCQk8ZHQ+VHJpcGxlczo8L2R0Pg0KCQkJCQkJCQkJPGRkIGlkPSJ0ZXRyaXMtdHJpcGxlcyI+MDwvZGQ+DQoJCQkJCQkJCTwvZGw+DQoJCQkJCQkJCTxkbD4NCgkJCQkJCQkJCTxkdD5UZXRyaXM6PC9kdD4NCgkJCQkJCQkJCTxkZCBpZD0idGV0cmlzLXF1YWRzIj4wPC9kZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTxkaXYgaWQ9InRldHJpcy1rZXlzIj4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0Pk1vdmU6PC9kdD4NCgkJCQkJCQkJCTxkZD4mbGFycjsgJmRhcnI7ICZyYXJyOzxkZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PlJvdGF0ZTo8L2R0Pg0KCQkJCQkJCQkJPGRkPiZ1YXJyOzxkZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PkRyb3A6PC9kdD4NCgkJCQkJCQkJCTxkZD5TcGFjZWJhcjxkZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PlBhdXplOjwvZHQ+DQoJCQkJCQkJCQk8ZGQ+UGF1emUvRXNjPGRkPg0KCQkJCQkJCQk8L2RsPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJPC9ib2R5Pg0KPC9odG1sPg%3D%3D%27%2C%27_blank%27%2C%27width%3D500%2Cheight%3D650%2Cleft%3D300%2Ctop%3D100%27%29%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
feas > 26-11-2012 22:30:34 |
2 шага назад для Direct Images и подобных скриптов Код кнопки Выделить код Код: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%0A%20%20%3Cname%3E2%20%u0448%u0430%u0433%u0430%20%u041D%u0430%u0437%u0430%u0434%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAATCAYAAACdkl3yAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAADFUlEQVQ4T42UfUxNcRjHz5hzz8vFMGM2Nn+wsfGP28tNQiKr3ZuXiGqkkkQz8nY1eas/yKwW9+YuaxOWjWwqr/N2Vejtnu5EdPO6aSlRoijn6zk3NUc36zn77pzf5/d7PjvvDDOEiq/XelFeUkx9y+l4OGUfpZEy/b+ajbUiE/dMXL6pTvxKAcWiNBDn456L1j9M4T6DiqLt4rCYGnFbrEPsMr8Nh6luFmIcoiVGEscQvxb/dBwufEjCRsdIhbsXrS8X2KgK8UR01Uj5/Ptd6JG7kVLrjahKsZhSvVWaDEfbLbz9JoHWYEOlG1HkQ2HUulLhUvSj0fLNxpOQ5V9QKlnywroyQU6qnkmCGhd70yFhfZlW4eozCr8rTIq4L5TFlkxAefMV1+K+MlV6YU+FDi1d7/rZm68SIh9oQT29orDrPBN2g5+95pZQn2CbhpdfnqgkymDPIy/kPEtU8dftEtbe1oL6ekWhV3n/VUV8c9KDOWjscA6QKGCnzRNWxz+iNglhxSKo14dZcZlfvbKA/3641ID2H5/cShS4444nsu1q0avPEkKviFhRQKKQfD5zWT6PwhdmyLQNVttueMJSoRY1tEpYflFESD7nwxjPcRpDHpdtPCvIefZDrkftrhILPXDq8VbVVMMnCcY8AYazJFIqOJcbHnSGOxicw3dn2OLxo6dzgGtLgQeyStQiZ4uE4DMCgnL+iBTZ0myOCbRwMYFmTWdykRHtXa0q2eaLHki9Gd7/XimTzmYJSy08qEf9Hi3J0jCLMzVBARma1oQLejS1v++XxZ3TYUmmAKvNhJ5fvZdf/9FOjAetd/+J+KdrdAuPad5FnJ4BZ5PD1RSbq4PC/I9x3WmFUej8+Q31TXYsSucVPvhHOz+NneqXytYYjk9E1et72GDVgcbZxMNp37E9LxDlDbexII2D3xF2cJFy3+YdZMf7prB3Ao6MxeLUsZibwlqIMb4H2AA6bjEcnQzfFI3C/y9SZPp9LKc3sef1e1mZYu777xCfRWMnBRT9EP6PDOO9mx1BSaB4/91A4ymU/RTtb1y+mnDvcYnvAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20url%3D%22javascript%3Ahistory.go%28-2%29%22%3B%0AloadURI%20%28url%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
Lex1 > 04-12-2012 10:51:25 |
google-translate Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EGoogle%20translate%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQtJREFUKM9VkSFOhFEQg799/CjEihWAwKDgIFwAyWHgLDjuAGfZgMCQDQkG8abtQ/z8u9A0k4rOTCez2u0GB0gCsLELbCuxLduJy0zAZgOQBBqQALEbtOQoyRgjSZLt9nOaJyf5K2zPjr01SWst8ermZtzd5euLhCQ2Y9iOHXssIvZYr1f39x/T87Ourtr7O3ZUyK6KlN5HVRaOqlxcNGACJKRItigdHFXpFdXoPVWRGmSac0suRYWUWhz7zt5/BXh65Pi6Hr7rI/IopZyqpSqldLsq9onPX3iabuHYr6o3pCVHP2Sa11nIzZdnMAmOSpyejiocVEhtjrwc15L5l4HVDgReCGTR+V9n/AAByma0J+vVwwAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0Avar%20btn%20%3D%20this%3B%0A%0Abtn.lastClick%20%3D%20%7B%0A%20%20%20%20X%3A%200%2C%0A%20%20%20%20Y%3A%200%0A%7D%3B%0AaddEventListener%28%22mouseup%22%2C%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e%20%26%26%20e.button%20%3D%3D%200%20%26%26%20e.view.top%20%3D%3D%20content%29%20%7B%0A%20%20%20%20%20%20%20%20var%20lc%20%3D%20btn.lastClick%3B%0A%20%20%20%20%20%20%20%20lc.X%20%3D%20e.clientX%3B%0A%20%20%20%20%20%20%20%20lc.Y%20%3D%20e.clientY%3B%0A%20%20%20%20%7D%0A%7D%2C%20false%29%3B%0A%0Avar%20safeHTMLParser%20%3D%20function%28code%29%20%7B%0A%20%20%20%20var%20gUnescapeHTML%20%3D%20Cc%5B%22@mozilla.org/feed-unescapehtml%3B1%22%5D.getService%28Ci.nsIScriptableUnescapeHTML%29%3B%0A%20%20%20%20var%20doc%20%3D%20document.implementation.createDocument%28xhtmlns%2C%20%22html%22%2C%20null%29%3B%0A%20%20%20%20var%20body%20%3D%20document.createElementNS%28xhtmlns%2C%20%22body%22%29%3B%0A%20%20%20%20doc.documentElement.appendChild%28body%29%3B%0A%20%20%20%20body.appendChild%28gUnescapeHTML.parseFragment%28code%2C%20false%2C%20null%2C%20body%29%29%3B%0A%20%20%20%20return%20doc%3B%0A%7D%3B%0A%0Avar%20createWindow%20%3D%20function%28text%2C%20status%2C%20title%2C%20id%2C%20pos%2C%20size%29%7B%0A%20%20%20%20var%20win%20%3D%20document.commandDispatcher.focusedWindow.top%20%3D%3D%20content%20%3F%20document.commandDispatcher.focusedWindow%20%3A%20content%3B%0A%09var%20doc%20%3D%20win.document%2C%20wId%20%3D%20%27ujs_window%27+%28id%20%7C%7C%20%27%27%29%2C%20w%20%3D%20doc.getElementById%28wId%29%3B%0A%09var%20keyDown%20%3D%20function%28e%29%7Bif%28%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.altKey%20%26%26%20e.keyCode%20%3D%3D%2027%29doc.getElementById%28wId%29.closeWin%28%29%7D%3B%0A%09if%28w%29w.closeWin%28%29%3B%0A%09w%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09w.setAttribute%28%27style%27%2C%20%27position%3Afixed%3Bdisplay%3Ablock%3Bvisibility%3Ahidden%3Bleft%3A0%3Btop%3A0%3Bwidth%3Aauto%3Bheight%3Aauto%3Bborder%3A1px%20solid%20gray%3Bpadding%3A3px%3Bmargin%3A0%3Bz-index%3A99999%3Boverflow%3Ahidden%3Bcursor%3Amove%3B%27+%28typeof%20w.style.borderRadius%20%3D%3D%3D%20%27string%27%20%3F%20%27background-color%3A%23f3f5f7%3Bpadding-top%3A4px%3Bborder-radius%3A4px%3Bbox-shadow%3A0%200%2012px%20rgba%280%2C0%2C0%2C.4%29%3B%27%20%3A%20%27background%3A-o-skin%28%22Window%20Skin%22%29%3B%27%29%29%3B%0A%09w.id%20%3D%20wId%3B%0A%09w.closeWin%20%3D%20function%28%29%7B%0A%09%09doc.removeEventListener%28%27keydown%27%2C%20keyDown%2C%20false%29%3B%0A%09%09this.parentNode.removeChild%28this%29%3B%0A%09%7D%3B%0A%09w.addEle%20%3D%20function%28str%2C%20style%29%7B%0A%09%09var%20ele%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09%09ele.setAttribute%28%27style%27%2C%20style%29%3B%0A%09%09if%28str%29%7B%0A%09%09%09ele.innerHTML%20%3D%20str%3B%0A%09%09%09for%28var%20el%2C%20all%20%3D%20ele.getElementsByTagName%28%27*%27%29%2C%20i%20%3D%20all.length%3B%20i--%3B%29%7B%0A%09%09%09%09el%20%3D%20all%5Bi%5D%3B%0A%09%09%09%09if%28/%5E%28script%7Cframe%7Ciframe%7Capplet%7Cembed%7Cobject%29%24/i.test%28el.nodeName%29%29%7B%0A%09%09%09%09%09el.parentNode.removeChild%28el%29%3B%0A%09%09%09%09%7Delse%7B%0A%09%09%09%09%09for%28var%20att%20%3D%20el.attributes%2C%20j%20%3D%20att.length%3B%20j--%3B%29%7B%0A%09%09%09%09%09%09if%28/%5Eon%5Ba-z%5D+%24/i.test%28att%5Bj%5D.name%29%29att%5Bj%5D.value%20%3D%20%27%27%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%3B%0A%09%09return%20this.appendChild%28ele%29%3B%0A%09%7D%3B%0A%09var%20img%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09img.setAttribute%28%27style%27%2C%20%27display%3Ablock%3Bfloat%3Aright%3Bwidth%3A18px%3Bheight%3A18px%3Bpadding%3A0%3Bmargin%3A0%3Bborder%3Anone%3Bcursor%3Apointer%3Bbackground-image%3Aurl%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII%3D%22%29%3Bbackground%3A-o-skin%28%22Caption%20Close%20Button%20Skin%22%29%3B%27%29%3B%0A%09img.title%20%3D%20%28win.navigator.language.indexOf%28%27ru%27%29%20%3D%3D%200%29%20%3F%20%27%5Cu0417%5Cu0430%5Cu043A%5Cu0440%5Cu044B%5Cu0442%5Cu044C%27%20%3A%20%27Close%27%3B%0A%09img.addEventListener%28%27click%27%2C%20function%28%29%7Bthis.parentNode.closeWin%28%29%7D%2C%20false%29%3B%0A%09w.appendChild%28img%29%3B%0A%09w.addEle%28title%2C%20%27display%3Atable%3Bcolor%3A%23000%3Bfont%3A16px%20Times%20New%20Roman%3Bwidth%3Aauto%3Bheight%3Aauto%3Bpadding%3A0%3Bmargin%3A0%202px%3Bcursor%3Atext%3B%27%29%3B%0A%09var%20cnt%20%3D%20w.addEle%28text%2C%20%27display%3Ablock%3Bborder%3A1px%20solid%20%23aaa%3Bmargin%3A2px%200%201px%200%3Bpadding%3A4px%3Bbackground-color%3A%23fafcfe%3Bcolor%3A%23000%3Bfont%3A14px%20Times%20New%20Roman%3Bwidth%3A240px%3Bheight%3A120px%3Boverflow%3Aauto%3Bcursor%3Atext%3B%27%29%3B%0A%09w.addEle%28status%2C%20%27display%3Atable%3Bcolor%3A%23555%3Bfont%3A10px%20Times%20New%20Roman%3Bwidth%3Aauto%3Bheight%3Aauto%3Bpadding%3A0%3Bmargin%3A0%202px%3Bcursor%3Atext%3B%27%29%3B%0A%09w.addEventListener%28%27mousedown%27%2C%20function%28e%29%7B%0A%09%09if%28e.target%20%3D%3D%20w%29%7B%0A%09%09%09e.preventDefault%28%29%3B%0A%09%09%09var%20grabX%20%3D%20e.clientX%2C%20grabY%20%3D%20e.clientY%2C%20origX%20%3D%20parseInt%28w.style.left%29%2C%20origY%20%3D%20parseInt%28w.style.top%29%3B%0A%09%09%09var%20mouseMove%20%3D%20function%28ev%29%7B%0A%09%09%09%09w.style.left%20%3D%20origX+ev.clientX-grabX+%27px%27%3B%0A%09%09%09%09w.style.top%20%3D%20origY+ev.clientY-grabY+%27px%27%3B%0A%09%09%09%7D%3B%0A%09%09%09doc.addEventListener%28%27mousemove%27%2C%20mouseMove%2C%20false%29%3B%0A%09%09%09doc.addEventListener%28%27mouseup%27%2C%20function%28%29%7Bdoc.removeEventListener%28%27mousemove%27%2C%20mouseMove%2C%20false%29%7D%2C%20false%29%3B%0A%09%09%7D%0A%09%7D%2C%20false%29%3B%0A%09doc.documentElement.appendChild%28w%29%3B%0A%0A%09if%28size%29%7B%0A%09%09cnt.style.height%20%3D%20size.height%3B%0A%09%09cnt.style.width%20%3D%20size.width%3B%0A%09%7Delse%7B%0A%09%09for%28var%20i%20%3D%203%3B%20i%20%3C%2010%3B%20i++%29%7B%0A%09%09%09if%28cnt.scrollHeight%20%3E%20cnt.offsetHeight%20%7C%7C%20cnt.scrollWidth%20%3E%20cnt.offsetWidth%29%7B%0A%09%09%09%09cnt.style.height%20%3D%2050*i+%27px%27%3B%0A%09%09%09%09cnt.style.width%20%3D%20100*i+%27px%27%3B%0A%09%09%09%7Delse%20break%3B%0A%09%09%7D%0A%09%7D%3B%0A%09var%20docEle%20%3D%20doc.compatMode%20%3D%3D%20%27CSS1Compat%27%20%3F%20doc.documentElement%20%3A%20doc.body%3B%0A%09var%20mX%20%3D%20docEle.clientWidth-w.offsetWidth%2C%20mY%20%3D%20docEle.clientHeight-w.offsetHeight%3B%0A%09if%28mX%20%3C%200%29%7Bcnt.style.width%20%3D%20parseInt%28cnt.style.width%29+mX+%27px%27%3B%20mX%20%3D%200%7D%3B%0A%09if%28mY%20%3C%200%29%7Bcnt.style.height%20%3D%20parseInt%28cnt.style.height%29+mY+%27px%27%3B%20mY%20%3D0%7D%3B%0A%09var%20hW%20%3D%20parseInt%28w.offsetWidth/2%29%3B%0A%09w.style.left%20%3D%20%28pos%20%26%26%20pos.X%20%3C%20mX+hW%20%3F%20%28pos.X%20%3E%20hW%20%3F%20pos.X-hW%20%3A%200%29%20%3A%20mX%29+%27px%27%3B%0A%09w.style.top%20%3D%20%28pos%20%26%26%20pos.Y+10%20%3C%20mY%20%3F%20pos.Y+10%20%3A%20mY%29+%27px%27%3B%0A%09w.style.visibility%20%3D%20%27visible%27%3B%0A%09doc.addEventListener%28%27keydown%27%2C%20keyDown%2C%20false%29%3B%0A%7D%3B%0A%0Avar%20getSel%20%3D%20function%20%28w%29%20%7B%0A%20%20%20%20var%20s%2C%20d%20%3D%20w.document%3B%0A%20%20%20%20if%20%28d.selection%29%20%7B%0A%20%20%20%20%20%20%20%20var%20r%20%3D%20d.selection.createRange%28%29%3B%0A%20%20%20%20%20%20%20%20s%20%3D%20r%20%3F%20r.text%20%3A%20%27%27%0A%20%20%20%20%7D%20else%20%7B%0A%09%09s%20%3D%20d.getSelection%28%29.toString%28%29%3B%0A%09%09if%20%28%21s%29%20%7B%0A%09%09%09var%20e%2C%20t%20%3D%20d.getElementsByTagName%28%27textarea%27%29%2C%20u%20%3D%20d.getElementsByTagName%28%27input%27%29%2C%20i%20%3D%20t.length%3B%0A%09%09%09while%28e%20%3D%20%28i%20%3E%200%29%20%3F%20t%5B--i%5D%20%3A%20u%5B-i--%5D%29try%7B%0A%09%09%09%09if%20%28e.offsetHeight%20%3E%200%20%26%26%20%28s%20%3D%20e.value.substring%28e.selectionStart%2C%20e.selectionEnd%29%29%29%20break%0A%09%09%09%7Dcatch%28x%29%7B%7D%0A%09%09%7D%0A%09%7D%3B%0A%20%20%20%20if%20%28%21s%29%20for%20%28var%20j%20%3D%200%2C%20f%3B%20f%20%3D%20w.frames%5Bj%5D%3B%20j++%29%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28s%20%3D%20getSel%28f%29%29%20break%0A%20%20%20%20%20%20%20%20%7D%20catch%28x%29%20%7B%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20return%20s%0A%7D%3B%0A%0Avar%20ujs_google_translate%20%3D%20function%20%28dir%29%7B%0A%20%20%20%20var%20win%20%3D%20content%2C%20lng%20%3D%20win.navigator.language.slice%280%2C%202%29%2C%20txt%20%3D%20getSel%28win%29%3B%0A%20%20%20%20if%20%28txt%29%20%7B%20%0A%20%20%20%20%20%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20%20%20var%20encTxt%20%3D%20%27text%3D%27%20+%20encodeURIComponent%28txt%29%2C%20post%20%3D%20encTxt.length%20%3E%201024%2C%20l%20%3D%20dir.split%28%27%7C%27%29%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%27https%3A//translate.google.com/%3F%27%20+%20%28post%20%3F%20%27%27%20%3A%20encTxt%20+%20%27%26%27%29%20+%20%27sl%3D%27%20+%20l%5B0%5D%20+%20%27%26tl%3D%27%20+%20l%5B1%5D%20+%20%27%26hl%3D%27%20+%20lng%20+%20%27%26eotf%3D0%26ujs%3Dgtt%27%3B%0A%0A%20%20%20%20%20%20%20%20xhr.open%28post%20%3F%20%27POST%27%20%3A%20%27GET%27%2C%20url%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20if%28post%29xhr.setRequestHeader%28%27Content-Type%27%2C%20%27application/x-www-form-urlencoded%27%29%3B%0A%20%20%20%20%20%20%20%20xhr.onreadystatechange%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28xhr.readyState%20%3D%3D%204%20%26%26%20xhr.status%20%3D%3D%20200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20%27%27%2C%20status%20%3D%20%27%27%2C%20tmp%20%3D%20safeHTMLParser%28xhr.responseText%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20r%20%3D%20tmp.querySelector%28%27%23result_box%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28r%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20p%20%3D%20r.getElementsByTagName%28%27span%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20i%20%3D%200%2C%20n%3B%20n%20%3D%20p%5Bi%5D%3B%20i++%29%7B%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%20n.setAttribute%28%27style%27%2C%20%27background-color%3Ainherit%3Bcolor%3Ainherit%3Bfont-size%3Ainherit%3Bfont-family%3Aserif%3B%27%29%3B%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%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20result%20%3D%20r.innerHTML%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sl%20%3D%20tmp.querySelector%28%27%23nc_sl%27%29%2C%20dl%20%3D%20tmp.querySelector%28%27%23nc_dl%27%29%2C%20tl%20%3D%20tmp.querySelector%28%27%23nc_tl%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28sl%20%26%26%20dl%20%26%26%20tl%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20status%20%3D%20%28%28dl.value%20%7C%7C%20sl.value%29+%27%20-%5Cu203A%20%27+tl.value%29.toUpperCase%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20createWindow%28result%2C%20status%2C%20%27%3Ca%20href%3D%22%27+url.replace%28/%26/g%2C%27%26amp%3B%27%29+%27%22%20target%3D%22_blank%22%20style%3D%22display%3Ainline%3Bpadding%3A0%3Bmargin%3A0%3Btext-decoration%3Anone%3Bborder%3Anone%3Bcolor%3A%23009%3Bfont%3A16px%20Times%20New%20Roman%3B%22%3EGoogle%20Translate%3C/a%3E%27%2C%20%27_gt%27%2C%20btn.lastClick%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28x%29%7B%7D%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20xhr.send%28post%20%3F%20encTxt%20%3A%20null%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20win.open%28%27http%3A//translate.google.com/translate%3Fu%3D%27+escape%28win.location.href%29+%27%26hl%3D%27+lng+%27%26langpair%3D%27+dir+%27%26tbb%3D1%27%29%3B%0A%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%0Abtn.onclick%20%3D%20function%28e%29%7Bif%28e.button%20%3D%3D%200%29ujs_google_translate%28%27auto%7Cru%27%29%7D%3B%0A%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0Avar%20nextEleMenu%20%3D%20document.getElementById%28%22context-inspect%22%29%3B%0A%0Avar%20menuId%20%3D%20%22context-ext-google-translate%22%3B%0Avar%20menuItem%20%3D%20document.getElementById%28menuId%29%3B%0Aif%20%28menuItem%29%20%7B%0A%20%20%20%20contextMenu.removeChild%28menuItem.nextElementSibling%29%3B%0A%20%20%20%20contextMenu.removeChild%28menuItem.nextElementSibling%29%3B%0A%20%20%20%20contextMenu.removeChild%28menuItem%29%3B%0A%7D%3B%0A%0AmenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0AmenuItem.setAttribute%28%22id%22%2C%20menuId%29%3B%0AmenuItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%20%u0440%u0443%u0441%u0441%u043A%u0438%u0439%22%29%3B%0AmenuItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0AmenuItem.setAttribute%28%22image%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC%22%29%3B%0AmenuItem.addEventListener%28%22command%22%2C%20function%28%29%7Bujs_google_translate%28%27auto%7Cru%27%29%7D%2C%20false%29%3B%0AcontextMenu.insertBefore%28menuItem%2C%20nextEleMenu%29%3B%0A%0AmenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0AmenuItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%20%u0430%u043D%u0433%u043B%u0438%u0439%u0441%u043A%u0438%u0439%22%29%3B%0AmenuItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0AmenuItem.setAttribute%28%22image%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII%3D%22%29%3B%0AmenuItem.addEventListener%28%22command%22%2C%20function%28%29%7Bujs_google_translate%28%27auto%7Cen%27%29%7D%2C%20false%29%3B%0AcontextMenu.insertBefore%28menuItem%2C%20nextEleMenu%29%3B%0A%0AcontextMenu.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20nextEleMenu%29%3B%0A%0AaddEventListener%28%27keydown%27%2C%20function%20%28e%29%7B%0A%20if%28e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20e.altKey%20%26%26%20e.keyCode%20%3D%3D%2084%29ujs_google_translate%28%27auto%7Cru%27%29%3B%0A%7D%2C%20false%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код Выделить код Код:/*Initialization Code*/ var btn = this; btn.lastClick = { X: 0, Y: 0 }; addEventListener("mouseup", function(e) { if (e && e.button == 0 && e.view.top == content) { var lc = btn.lastClick; lc.X = e.clientX; lc.Y = e.clientY; } }, false); var safeHTMLParser = function(code) { var gUnescapeHTML = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML); var doc = document.implementation.createDocument(xhtmlns, "html", null); var body = document.createElementNS(xhtmlns, "body"); doc.documentElement.appendChild(body); body.appendChild(gUnescapeHTML.parseFragment(code, false, null, body)); return doc; }; var createWindow = function(text, status, title, id, pos, size){ var win = document.commandDispatcher.focusedWindow.top == content ? document.commandDispatcher.focusedWindow : content; var doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId); var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()}; if(w)w.closeWin(); w = doc.createElement('div'); w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:3px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#f3f5f7;padding-top:4px;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");')); w.id = wId; w.closeWin = function(){ doc.removeEventListener('keydown', keyDown, false); this.parentNode.removeChild(this); }; w.addEle = function(str, style){ var ele = doc.createElement('div'); ele.setAttribute('style', style); if(str){ ele.innerHTML = str; for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){ el = all[i]; if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){ el.parentNode.removeChild(el); }else{ for(var att = el.attributes, j = att.length; j--;){ if(/^on[a-z]+$/i.test(att[j].name))att[j].value = ''; } } } }; return this.appendChild(ele); }; var img = doc.createElement('div'); img.setAttribute('style', 'display:block;float:right;width:18px;height:18px;padding:0;margin:0;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");'); img.title = (win.navigator.language.indexOf('ru') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close'; img.addEventListener('click', function(){this.parentNode.closeWin()}, false); w.appendChild(img); w.addEle(title, 'display:table;color:#000;font:16px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;'); var cnt = w.addEle(text, 'display:block;border:1px solid #aaa;margin:2px 0 1px 0;padding:4px;background-color:#fafcfe;color:#000;font:14px Times New Roman;width:240px;height:120px;overflow:auto;cursor:text;'); w.addEle(status, 'display:table;color:#555;font:10px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;'); w.addEventListener('mousedown', function(e){ if(e.target == w){ e.preventDefault(); var grabX = e.clientX, grabY = e.clientY, origX = parseInt(w.style.left), origY = parseInt(w.style.top); var mouseMove = function(ev){ w.style.left = origX+ev.clientX-grabX+'px'; w.style.top = origY+ev.clientY-grabY+'px'; }; doc.addEventListener('mousemove', mouseMove, false); doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false); } }, false); doc.documentElement.appendChild(w); if(size){ cnt.style.height = size.height; cnt.style.width = size.width; }else{ for(var i = 3; i < 10; i++){ if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){ cnt.style.height = 50*i+'px'; cnt.style.width = 100*i+'px'; }else break; } }; var docEle = doc.compatMode == 'CSS1Compat' ? doc.documentElement : doc.body; var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight; if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0}; if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0}; var hW = parseInt(w.offsetWidth/2); w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px'; w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px'; w.style.visibility = 'visible'; doc.addEventListener('keydown', keyDown, false); }; var getSel = function (w) { var s, d = w.document; if (d.selection) { var r = d.selection.createRange(); s = r ? r.text : '' } else { s = d.getSelection().toString(); if (!s) { var e, t = d.getElementsByTagName('textarea'), u = d.getElementsByTagName('input'), i = t.length; while(e = (i > 0) ? t[--i] : u[-i--])try{ if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd))) break }catch(x){} } }; if (!s) for (var j = 0, f; f = w.frames[j]; j++) { try { if (s = getSel(f)) break } catch(x) {} }; return s }; var ujs_google_translate = function (dir){ var win = content, lng = win.navigator.language.slice(0, 2), txt = getSel(win); if (txt) { var xhr = new XMLHttpRequest(); var encTxt = 'text=' + encodeURIComponent(txt), post = encTxt.length > 1024, l = dir.split('|'); var url = 'https://translate.google.com/?' + (post ? '' : encTxt + '&') + 'sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&ujs=gtt'; xhr.open(post ? 'POST' : 'GET', url, true); if(post)xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); xhr.onreadystatechange = function() { try{ if (xhr.readyState == 4 && xhr.status == 200) { var result = '', status = '', tmp = safeHTMLParser(xhr.responseText); var r = tmp.querySelector('#result_box'); if (r) { var p = r.getElementsByTagName('span'); for(var i = 0, n; n = p[i]; i++){ n.setAttribute('style', 'background-color:inherit;color:inherit;font-size:inherit;font-family:serif;'); }; result = r.innerHTML; }; var sl = tmp.querySelector('#nc_sl'), dl = tmp.querySelector('#nc_dl'), tl = tmp.querySelector('#nc_tl'); if(sl && dl && tl){ status = ((dl.value || sl.value)+' -\u203A '+tl.value).toUpperCase(); }; createWindow(result, status, '<a href="'+url.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Google Translate</a>', '_gt', btn.lastClick); } } catch (x){}; }; xhr.send(post ? encTxt : null); } else { win.open('http://translate.google.com/translate?u='+escape(win.location.href)+'&hl='+lng+'&langpair='+dir+'&tbb=1'); }; }; btn.onclick = function(e){if(e.button == 0)ujs_google_translate('auto|ru')}; var contextMenu = document.getElementById("contentAreaContextMenu"); var nextEleMenu = document.getElementById("context-inspect"); var menuId = "context-ext-google-translate"; var menuItem = document.getElementById(menuId); if (menuItem) { contextMenu.removeChild(menuItem.nextElementSibling); contextMenu.removeChild(menuItem.nextElementSibling); contextMenu.removeChild(menuItem); }; menuItem = document.createElement("menuitem"); menuItem.setAttribute("id", menuId); menuItem.setAttribute("label", "Перевести на русский"); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC"); menuItem.addEventListener("command", function(){ujs_google_translate('auto|ru')}, false); contextMenu.insertBefore(menuItem, nextEleMenu); menuItem = document.createElement("menuitem"); menuItem.setAttribute("label", "Перевести на английский"); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII="); menuItem.addEventListener("command", function(){ujs_google_translate('auto|en')}, false); contextMenu.insertBefore(menuItem, nextEleMenu); contextMenu.insertBefore(document.createElement("menuseparator"), nextEleMenu); addEventListener('keydown', function (e){ if(e.shiftKey && !e.ctrlKey && e.altKey && e.keyCode == 84)ujs_google_translate('auto|ru'); }, false); Обновлённая версия, т.к. при работе через POST, translate.google.com теперь требует хэш от строки да и результат выдаётся в подобии json. скрытый текст Выделить код Код:/*Initialization Code*/ var btn = this; btn.lastClick = { X: 0, Y: 0 }; addEventListener("mouseup", function(e) { if (e && e.button == 0 && e.view.top == content) { var lc = btn.lastClick; lc.X = e.clientX; lc.Y = e.clientY; } }, false); var createWindow = function(text, status, title, id, pos, size){ var win = document.commandDispatcher.focusedWindow.top == content ? document.commandDispatcher.focusedWindow : content; var doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId); var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()}; if(w)w.closeWin(); w = doc.createElement('div'); w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:3px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#f3f5f7;padding-top:4px;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");')); w.id = wId; w.closeWin = function(){ doc.removeEventListener('keydown', keyDown, false); this.parentNode.removeChild(this); }; w.addEle = function(str, style){ var ele = doc.createElement('div'); ele.setAttribute('style', style); if(str){ ele.innerHTML = str; for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){ el = all[i]; if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){ el.parentNode.removeChild(el); }else{ for(var att = el.attributes, j = att.length; j--;){ if(/^on[a-z]+$/i.test(att[j].name))att[j].value = ''; } } } }; return this.appendChild(ele); }; var img = doc.createElement('div'); img.setAttribute('style', 'display:block;float:right;width:18px;height:18px;padding:0;margin:0;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");'); img.title = (win.navigator.language.indexOf('ru') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close'; img.addEventListener('click', function(){this.parentNode.closeWin()}, false); w.appendChild(img); w.addEle(title, 'display:table;color:#000;font:16px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;'); var cnt = w.addEle(text, 'display:block;border:1px solid #aaa;margin:2px 0 1px 0;padding:4px;background-color:#fafcfe;color:#000;font:14px Times New Roman;width:240px;height:120px;overflow:auto;cursor:text;'); w.addEle(status, 'display:table;color:#555;font:10px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;'); w.addEventListener('mousedown', function(e){ if(e.target == w){ e.preventDefault(); var grabX = e.clientX, grabY = e.clientY, origX = parseInt(w.style.left), origY = parseInt(w.style.top); var mouseMove = function(ev){ w.style.left = origX+ev.clientX-grabX+'px'; w.style.top = origY+ev.clientY-grabY+'px'; }; doc.addEventListener('mousemove', mouseMove, false); doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false); } }, false); doc.documentElement.appendChild(w); if(size){ cnt.style.height = size.height; cnt.style.width = size.width; }else{ for(var i = 3; i < 10; i++){ if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){ cnt.style.height = 50*i+'px'; cnt.style.width = 100*i+'px'; }else break; } }; var docEle = doc.compatMode == 'CSS1Compat' ? doc.documentElement : doc.body; var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight; if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0}; if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0}; var hW = parseInt(w.offsetWidth/2); w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px'; w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px'; w.style.visibility = 'visible'; doc.addEventListener('keydown', keyDown, false); }; var getSel = function (w) { var s, d = w.document; if (d.selection) { var r = d.selection.createRange(); s = r ? r.text : '' } else { s = d.getSelection().toString(); if (!s) { var e, t = d.getElementsByTagName('textarea'), u = d.getElementsByTagName('input'), i = t.length; while(e = (i > 0) ? t[--i] : u[-i--])try{ if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd))) break }catch(x){} } }; if (!s) for (var j = 0, f; f = w.frames[j]; j++) { try { if (s = getSel(f)) break } catch(x) {} }; return s }; var getHash = function (txt) { TKK=eval('((function(){var a\x3d817046147;var b\x3d-335196159;return 410049+\x27.\x27+(a+b)})())'); function sM(a) { var b; if (null !== yr) b = yr; else { b = wr(String.fromCharCode(84)); var c = wr(String.fromCharCode(75)); b = [b(), b()]; b[1] = c(); b = (yr = window[b.join(c())] || "") || "" } var d = wr(String.fromCharCode(116)) , c = wr(String.fromCharCode(107)) , d = [d(), d()]; d[1] = c(); c = "&" + d.join("") + "="; d = b.split("."); b = Number(d[0]) || 0; for (var e = [], f = 0, g = 0; g < a.length; g++) { var l = a.charCodeAt(g); 128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : (55296 == (l & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023), e[f++] = l >> 18 | 240, e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224, e[f++] = l >> 6 & 63 | 128), e[f++] = l & 63 | 128) } a = b; for (f = 0; f < e.length; f++) a += e[f], a = xr(a, "+-a^+6"); a = xr(a, "+-3^+b+-f"); a ^= Number(d[1]) || 0; 0 > a && (a = (a & 2147483647) + 2147483648); a %= 1E6; return c + (a.toString() + "." + (a ^ b)) } var yr = null; var wr = function(a) { return function() { return a } } , xr = function(a, b) { for (var c = 0; c < b.length - 2; c += 3) { var d = b.charAt(c + 2) , d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d) , d = "+" == b.charAt(c + 1) ? a >>> d : a << d; a = "+" == b.charAt(c) ? a + d & 4294967295 : a ^ d } return a }; return sM(txt); }; var ujs_google_translate = function (dir){ var win = content, lng = win.navigator.language.slice(0, 2), txt = getSel(win), l = dir.split('|'); if (txt) { var xhr = new XMLHttpRequest(); var url = 'https://translate.google.com/translate_a/single?client=t&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t' + getHash(txt); xhr.open('POST', url, true); xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8'); xhr.onreadystatechange = function() { try{ if (xhr.readyState == 4 && xhr.status == 200) { var result = '', status = '', tmp = JSON.parse(xhr.responseText.replace(/\[(?=,)/g, '[0').replace(/,(?=,|\])/g, ',0')); for(var i = 0, n; n = tmp[0][i]; i++){ if(n[0])result += n[0].toString(); }; result = '<span style="background-color:inherit;color:inherit;font-size:inherit;font-family:Times,serif;">' + result + '</span>'; status = tmp[8][0][0].toUpperCase() + ' -\u203A ' + l[1].toUpperCase(); createWindow(result, status, '<a href="'+url.replace(/&/g,'&')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Google Translate</a>', '_gt', btn.lastClick); } } catch (x){LOG(x)}; }; xhr.send('q=' + encodeURIComponent(txt)); } else { win.open('http://translate.google.com/translate?u='+escape(win.location.href)+'&hl='+lng+'&langpair='+dir+'&tbb=1'); }; }; btn.onclick = function(e){if(e.button == 0)ujs_google_translate('auto|ru')}; var contextMenu = document.getElementById("contentAreaContextMenu"); var nextEleMenu = document.getElementById("context-inspect"); var menuId = "context-ext-google-translate"; var menuItem = document.getElementById(menuId); if (menuItem) { contextMenu.removeChild(menuItem.nextElementSibling); contextMenu.removeChild(menuItem.nextElementSibling); contextMenu.removeChild(menuItem); }; menuItem = document.createElement("menuitem"); menuItem.setAttribute("id", menuId); menuItem.setAttribute("label", "Перевести на русский"); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC"); menuItem.addEventListener("command", function(){ujs_google_translate('auto|ru')}, false); contextMenu.insertBefore(menuItem, nextEleMenu); menuItem = document.createElement("menuitem"); menuItem.setAttribute("label", "Перевести на английский"); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII="); menuItem.addEventListener("command", function(){ujs_google_translate('auto|en')}, false); contextMenu.insertBefore(menuItem, nextEleMenu); contextMenu.insertBefore(document.createElement("menuseparator"), nextEleMenu); addEventListener('keydown', function (e){ if(e.shiftKey && !e.ctrlKey && e.altKey && e.keyCode == 84)ujs_google_translate('auto|ru'); }, false); |
bunda1 > 04-12-2012 16:28:37 |
Показать пароль на странице( Firefox17+ ) от 11.01.2014. ЛКМ => включить / выключить показ пароля. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u0430%u0440%u043E%u043B%u044C%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bconst%20attr%20%3D%20%22Showpassword%22%3B%0A%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28%20self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20icon.src%20%3D%20gBrowser.selectedTab.hasAttribute%28attr%29%0A%20%20%20%3F%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAK9SURBVHjadJM9iFxVGIaf794zuzNxJrNjMk5+SApZ0RQJC0FNGoUQRAULBSvBxmpREFRs1MpSSCdoYWUjErsUsRFRBFGIbhIk7kY0kd24mfuzmdm5M+ee75xjsYtISJ76fT++4nnlwatgIw/vb7RfHpiDhwQhEiP3QBCJRG659ZuFVl80E9aNDTxycs/SJ8v73jxzuHGUQCByzz6CkJDwV/0HH+fnnr4yu/a66afdV17rLZ85236eO77ERUWj7hYgAqkkNNI5CDuHjs0fZ9uPX/jwn/e/MT3pPdSSPVy3q2z7EQ/QYa/p0mq2SCShshX5dsZYxszPz0EUiiSjLXvpSfdA4tS5YX2bodvklt2gaxZYlMcY/liwdvFPOhsLnGyfov5bWdtYpfAZQ3eb3A3xGtR49RQuoylNyrqAXmTlhxXe/ugtzEB4YulJ3nv1A+SGYWXrMseeeZROo0NZ53ivGFWlsBlpTCnrkspXOBuw+yv6L/ap+ltMm1OGNzNWb6yycLrNtNOjqHO8eow6R25zQoiUtiAbD3nq8bO803oXWfScOLjE7HrN199dZLK4TVHn2OmMwuaoeoyqp7AZTmvKuqDSCcmc0B31qL+v+am4xIVvL/Cr+5kjxweUMWdcjSjrguA8Rp2nmBVM0xlbtkDm4LdfrvHGuWXsoQmmZeBwZN+JLvGoks2GJDFlomO8Cxivyp3ZFlVSUdocjYoo1P0pyXOO9qBJIgmh4ShDQZxEEkmxYYb3HuNdYBxHJJIw1hFZNsRfXsOpg3lLlQrRQdT4n0iCoChBg5jgfWMSJgCEJPLZpU+pr8D0wJhEFZ3URH+X03FH0xBCaqJnU3cTInA1/k44Da05iCk467nPNBBh3eD5XOAU8CzsFGnuJjyI536cB76ShS+ByBEiLwEDICL/e/XuQe6wjnAeYfPfAQD6z4IW9epAmAAAAABJRU5ErkJggg%3D%3D%22%0A%20%20%20%3A%20self.image%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AaddEventListener%28%22TabAttrModified%22%2C%20toggleImage%2C%20true%2C%20gBrowser.tabContainer%20%29%3B%0A%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20if%20%28%20e.button%20%29%20return%3B%0A%0A%20%20%20%20var%20tab%20%3D%20gBrowser.selectedTab%3B%0A%20%20%20%20var%20input%20%3D%20gBrowser.contentDocument.getElementsByTagName%28%22input%22%29%3B%0A%20%20%20%20%0A%20%20%20%20Array.slice%28input%29.forEach%28function%28el%29%20%7B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20if%20%28%20el.hasAttribute%28%22type%22%29%20%26%26%20el.getAttribute%28%22type%22%29.toLowerCase%28%29%20%3D%3D%20%22password%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.type%20%3D%20%22text%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.setAttribute%28%22typechanged%22%2C%20true%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20if%20%28%20tab.hasAttribute%28%20attr%20%29%20%26%26%20el.hasAttribute%28%22typechanged%22%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.type%20%3D%20%22password%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.removeAttribute%28%22typechanged%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%29%0A%20%20%20%0A%20%20%20tab.hasAttribute%28%20attr%20%29%20%3F%20tab.removeAttribute%28%20attr%20%29%20%3A%20tab.setAttribute%28%20attr%2C%20true%20%29%3B%0A%20%20%20toggleImage%28%29%3B%20%20%20%0A%7D%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:const attr = "Showpassword"; function toggleImage() { var icon = self.ownerDocument.getAnonymousElementByAttribute( self, "class", "toolbarbutton-icon"); icon.src = gBrowser.selectedTab.hasAttribute(attr) ? "data:image/png;base64,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" : self.image; }; toggleImage(); addEventListener("TabAttrModified", toggleImage, true, gBrowser.tabContainer ); this.onclick = function(e) { if ( e.button ) return; var tab = gBrowser.selectedTab; var input = gBrowser.contentDocument.getElementsByTagName("input"); Array.slice(input).forEach(function(el) { if ( el.hasAttribute("type") && el.getAttribute("type").toLowerCase() == "password" ) { el.type = "text"; el.setAttribute("typechanged", true); } if ( tab.hasAttribute( attr ) && el.hasAttribute("typechanged") ) { el.type = "password"; el.removeAttribute("typechanged"); } }) tab.hasAttribute( attr ) ? tab.removeAttribute( attr ) : tab.setAttribute( attr, true ); toggleImage(); }; |
bunda1 > 10-01-2013 23:27:27 |
About:( Firefox24+ ) от 29.11.2017. ЛКМ => открыть about:config, Скриншот about: меню Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EAbout%3A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAAD2klEQVQ4jUWSXUxTVxzA/+fccz9oYa29QK0OKC4gHbAYoDUV0WxmURdjTIhbmBphMYubyTZefFoWMxdcso+HxfmB0y0q0WmyKVscHzqjEYIW6AbChJDhBUGwFPpB77W959yzBx/2e/89/X6IUnrw1MmTa1qOHTu8Mt+NY4m4RSkFURRBURTYvnUbUlWVq7nqJn8gcPilnJyqpaWllnQ6fbx/YAALzc3NUkV5+dkpTbPNzcx2FxcVSbF4jC1GoxAIBLAoEi5Jsr+6pvq2YRi+rq6ur6c17Ux0IZqtqq4UQQj1NjY1Ve/bs7d9d339WDKZPCdJkjgyMmouLi7heDxuBYPBdzfW1cldnZ1cEkXd4/G0JxLJy6mUfgLLsiyEw+HB/Y2NGyLPIp/LstyUTCZNt9stck6BCAhy8/NficViIMtKusbv/8pmt6+mlLZRSgFzzpkkScR4bkydPnmqdjm5fNThcDTJkmjqJtCE/tyFzFT1hfMXYXh4SPR6vcAoO+h0OuOqqgoEAIAxRgFAYJRqP5xu3dB04ECfJ28FHkGlZ8N67jnP/fSqTS/nZWYWEtfGHz0acqmuWcYYEEI40nUdfD4faJoGm4O1goAxQwBFDR8cauPzXIlc+qX67NpDuo12169MDXS83bAfr1ZdFuIcBEKAACAA4AAAkCp507I5coUF3dSG70xGjuRGdz1zzYFz+rv2eQN1FKQ02T0UBiEYzHBCOAYLCPwPZoqTW7YVCJD7t9lbbTv+ZrfNwrd2k8o//3jntX9GQx7J/q155nsk3LuBECEcZ9kAv3ARAgCOgeEcKe+q1j+zo6f2Izhf2hTu+7F1LH+dH7Ha17/pAbiVtNm9WcsJiyxGBBKLAgYECAAQAOayUnDh/t2FXY6iNZbLiSL3UM5OWNYb+js7TG9lBS32+98YSBj9EUsIEkFkFhYFzDlgzkzLFfzw+OhDoYHnqJmVq+zo6ePBvflZ5rzbnv2XRc2jPdevk+JAQK8IrHeFtOjvyQQvk5Y5w9SIM8/mjz9VivccokgwispWSU+nRptlUe96Mt4nhgRA2cxqScVi3b1XrtgKqqoMX02NK7wYv6gzbhd2vndkW+uNyCfE1EKF6+rKp8cenEjPdn8W6/0JLz4OsZtGGj00DMuZyfzqsKyaxMREWcnG2ucIUKGSyXChxLd+bdeDJ9uLfV7l39Cd8dTgl/vSE3ezkJmSJVmWiCBITwnJCgHQcdO8ZDLmUSYnA6VbtiSvTk19gSpfLYXJmON9xekth7mbP2PEFCA2+4suL/7AAGBxjgwAgwNEgpxvjWE8Pkzptf8ApubSUysIvccAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20................................%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Aconfig%22%29%3B%20%20%0A%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20//%20%u0437%u0430%u043F%u043E%u043C%u043D%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20var%20clip%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20window.content.focus%28%29%3B%0A%20%20%20%20%20%20%20%20goDoCommand%28%22cmd_copy%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%27about%3Aconfig%3Ffilter%3D%27%20+%20gClipboard.read%28%29%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20clip%20%26%26%20%20gClipboard.write%28clip%29%3B%20//%20%u0432%u0435%u0440%u043D%u0443%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20menu.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%20%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Avar%20array%20%3D%20%5B%0A%20%20%20%5B%20%27%u0412%u0441%u0435%20about%3A%27%2C%20%27about%3Aabout%27%20%5D%2C%0A%20%20%20%5B%20%27%u041E%20%u043F%u043B%u0430%u0433%u0438%u043D%u0430%u0445%27%2C%20%27value%3A%22about%3Aplugins%27%20%5D%2C%0A%20%20%20%5B%20%27%u041E%20%u0442%u0435%u043B%u0435%u043C%u0435%u0442%u0440%u0438%u0438%27%2C%20%27about%3Atelemetry%27%20%5D%2C%0A%20%20%20%5B%20%27%u041D%u043E%u0432%u0430%u044F%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%27%2C%20%27about%3Anewtab%27%20%5D%2C%0A%20%20%20%5B%20%27%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u0430%u043A%20%u0442%u0430%u0431%27%2C%20%27about%3Apreferences%27%20%5D%2C%0A%20%20%20%5B%20%27%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u043E%20%u043A%u044D%u0448%u0435%27%2C%20%27about%3Acache%27%20%5D%2C%0A%20%20%20%5B%20%27%u041D%u0430%u0447%u0430%u043B%u044C%u043D%u0430%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%27%2C%20%27about%3Ahome%27%20%5D%2C%20%20%20%0A%20%20%20%5B%20%27%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u0435%20%u0441%u0435%u0441%u0441%u0438%u0438%27%2C%20%27about%3Asessionrestore%27%20%5D%2C%0A%20%20%20%5B%20%27%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0440%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u0438%u044F%u043C%u0438%27%2C%20%27about%3Apermissions%27%20%5D%2C%0A%20%20%20%5B%20%27%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u0434%u043B%u044F%20%u0440%u0435%u0448%u0435%u043D%u0438%u044F%20%u043F%u0440%u043E%u0431%u043B%u0435%u043C%27%2C%20%27about%3Asupport%27%20%5D%2C%0A%20%20%20%5B%20%27%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0438%u0441%u043F%u043B%u044A%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%27%2C%20%27about%3Amemory%27%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0Avar%20menu%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28m%3D%3E%20%7B%0A%20%20%20var%20mItem%20%3D%20menu.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m%5B0%5D%29%3B%20%20%0A%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28m%5B1%5D%29%3B%20%0A%7D%29%3B%0Amenu.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%27about%3Aconfig%27%5Cn%u0421%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%27about%3Aconfig%27%20%u0441%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u043E%u0439%20%28%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0439%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%29%5Cn%u041F%3A%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0432%u0441%u0435%20about%3A%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши ................................ this.onclick =e=> { if ( e.button == 0 ) gBrowser.selectedTab = gBrowser.addTab("about:config"); if ( e.button == 1 ) { // запомнить текст из буфера обмена и скопировать текст на странице var clip = gClipboard.read(); window.content.focus(); goDoCommand("cmd_copy"); gBrowser.selectedTab = gBrowser.addTab('about:config?filter=' + gClipboard.read()); clip && gClipboard.write(clip); // вернуть текст в буфер обмена } if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); menu.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); } }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() }; // Создать меню для кнопки ................................ var array = [ [ 'Все about:', 'about:about' ], [ 'О плагинах', 'value:"about:plugins' ], [ 'О телеметрии', 'about:telemetry' ], [ 'Новая вкладка', 'about:newtab' ], [ 'Настройки как таб', 'about:preferences' ], [ 'Информация о кэше', 'about:cache' ], [ 'Начальная страница', 'about:home' ], [ 'Восстановление сессии', 'about:sessionrestore' ], [ 'Управление разрешениями', 'about:permissions' ], [ 'Информация для решения проблем', 'about:support' ], [ 'Показать исплъзование памяти подробно', 'about:memory' ] ]; var menu = self.appendChild(document.createElement("menupopup")); array.forEach(m=> { var mItem = menu.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m[0]); mItem.onclick =()=> gBrowser.selectedTab = gBrowser.addTab(m[1]); }); menu.setAttribute("onclick", "event.stopPropagation()"); // Подсказка кнопки ................................ this.tooltipText = "Л: Открыть 'about:config'\nС: Открыть 'about:config' с настройкой ( выделенной или из буфера )\nП: Показать все about:"; |
bunda1 > 12-01-2013 14:46:23 |
VT ( Firefox10+ ) ЛКМ => Выключить и включить режим автоматического свёртывания, Скриншот вертикальной панели [/url] Код кнопки для Firefox10-45 Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0432%u0435%u0440%u0442%u0438%u043A%u0430%u043B%u044C%u043D%u0443%u044E%20%u043F%u0430%u043D%u0435%u043B%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAKP+AAIX/gAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAFf+AABUAAAAAAAAAAAAAAAAAAAAA/4AAJP+AAP//gAD//4AA//+AACQAAAAAAAAAAAAAAAAAAAAA/4AAEv+AAP//gAD//4AAEgAAAAAAAAAA/4AAIP+AAP//gAD//4AA//+AAP//gAD//4AAJgAAAAAAAAAAAAAAAP+AABH/gAD//4AA//+AABEAAAAAAAAAAP+AAP//gAD//4AA//+AADb/gAD//4AA//+AAP//gAAQAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AACAAAAAA/4AAIP+AAP//gAD//4AAEQAAAAAAAAAA/4AAD/+AAP//gAD//4AADwAAAAAAAAAA/4AA//+AAP//gAAMAAAAAP+AAAz/gAD//4AA//+AAA8AAAAAAAAAAP+AAA//gAD//4AA//+AAA8AAAAAAAAAAP+AAP//gAD//4AADwAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AAA8AAAAA/4AAD/+AAP//gAD//4AADAAAAAAAAAAA/4AACv+AAP//gAD//4AACgAAAAAAAAAA/4AA//+AAP//gAAPAAAAAP+AAA//gAD//4AA//+AAAv/gAAL/4AADP+AACH/gAD//4AA//+AACH/gAAK/4AAD/+AAP//gAD//4AAEQAAAAD/gAAR/4AA//+AAP//gAAm/4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AABIAAAAA/4AAEv+AAP//gAD//4AAJ/+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AAEf+AABIAAAAAAAAAAAAAAAD/gAAV/4AAEgAAAAD/gAAQ/4AAEf+AAA//gAAP/4AAD/+AAA//gAAP/4AADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQe//rEHH56xBg8OsQQHDrEEAw6xBEMOsQRDDrEEQw6xBEMOsQRAArEEQAKxBEACsQTkArEH//6xB//+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20button%20%3D%20this%3B%0A%0Aconst%20sideBarAutoClose%20%3D%20false%3B%20//%20true%20%3D%3E%20%u0432%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0430%u0432%u0442%u043E%20%u0437%u0430%u043A%u0440%u044B%u0442%u0438%u0435%20%u0431%u043E%u043A%u043E%u0432%u043E%u0439%20%u043F%u0430%u043D%u0435%u043B%u0438%20%0Aconst%20autoCloseDelay%20%3D%20500%3B%20%20%20%20%20//%20ms%0A%0Aconst%20showDelay%20%3D%20250%3B%09%09//%20ms%0Aconst%20distanceShow%20%3D%202%3B%09%09//%20px%0Aconst%20distanceHide%20%3D%2064%3B%09//%20px%0Aconst%20vtWidthCorrection%20%3D%20-1%3B%09//%20px%20%28%20number%20%5B%20+%20or%20-%20%5D%20%29%0A%0Aconst%20toolbarId%20%3D%20%22vertical_toolbar%22%3B%0Aconst%20toolboxId%20%3D%20toolbarId%20+%20%22_toolbox%22%3B%0Aconst%20sep%20%3D%20%22%5Cu00A0%22%3B%0Aconst%20firstAttributes%20%3D%20%22%5C%0Aid%20%25id%25%20class%20chromeclass-toolbar%20fullscreentoolbar%20true%20context%20toolbar-context-menu%20_width%2020%20%5C%0Acustomizable%20true%20flex%201%20iconize%20large%20mode%20icons%20orient%20vertical%20widthcorr%200%22%0A.replace%28/%20/g%2C%20sep%29.replace%28/%25id%25/%2C%20toolbarId%29%3B%0A%0A//%20....................................................................................................%0A%0Aconst%20pn%20%3D%20%22custombutton.verticaltoolbar.attributes%22%3B%0Avar%20prefs%20%3D%20Application.prefs%3B%0Aif%20%28%21prefs.has%28pn%29%29%20prefs.setValue%28pn%2C%20firstAttributes%29%3B%0Avar%20pref%20%3D%20prefs.get%28pn%29%3B%0Afunction%20getAttr_pref%28%29%20%7B%0A%09return%20pref.value%0A%7D%0Afunction%20setAttr_pref%28%29%20%7B%0A%09pref.value%20%3D%20%22%22%3B%0A%09Array.slice%28document.getElementById%28toolbarId%29.attributes%29.forEach%28function%28attr%29%20%7B%0A%09%09pref.value%20+%3D%20%28attr.name%20+%20sep%20+%20attr.value%20+%20sep%29%3B%0A%09%7D%29%3B%0A%7D%0A//%20....................................................................................................%0A%0Avar%20browser%20%3D%20document.getElementById%28%22browser%22%29%3B%0Avar%20toolbar%20%3D%20document.getElementById%28toolbarId%29%3B%0Avar%20toolbox%20%3D%20document.getElementById%28toolboxId%29%3B%0A%0Aif%20%28%21toolbar%29%20%7B%0A%0A%09toolbox%20%3D%20document.createElement%28%22toolbox%22%29%3B%0A%09toolbox.id%20%3D%20toolboxId%3B%0A%09toolbox.palette%20%3D%20gNavToolbox.palette%3B%0A%09%0A%09toolbar%20%3D%20document.createElement%28%22toolbar%22%29%3B%0A%09toolbar.style.minWidth%20%3D%20%2220px%22%3B%0A%09%0A%09browser.insertBefore%28toolbox%2C%20browser.firstChild%29%3B%0A%09toolbox.appendChild%28toolbar%29%3B%0A%0A//%20....................................................................................................%0A//%20Thanks%20-%20http%3A//nanto.asablo.jp/blog/2007/04/22/1459018%0A%0A%09const%20style%20%3D%27%5C%0A%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%7B%5Cn%5C%0A%09%09-moz-appearance%3A%20none%3B%5Cn%5C%0A%09%09border-bottom%3A%200px%20none%3B%5Cn%5C%0A%09%09border-top%3A%200px%20none%3B%5Cn%5C%0A%09%09border-right%3A%201px%20solid%20rgb%28170%2C%20188%2C%20207%29%3B%5Cn%5C%0A%09%09background%3A%20none%20repeat%20scroll%200%25%200%25%20rgb%28207%2C%20219%2C%20236%29%3B%5Cn%5C%0A%09%09-image%3A%20-moz-linear-gradient%28rgba%28255%2C%20255%2C%20255%2C%20.5%29%2C%20rgba%28255%2C%20255%2C%20255%2C%200%29%2027px%29%20%21important%3B%5Cn%5C%0A%7D%5Cn%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%3E%20toolbarseparator%2C%5Cn%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%3E%20%5Bid%5E%3D%22wrapper-separator%22%5D%20%7B%5Cn%5C%0A%09%09-moz-appearance%3A%20none%20%21important%3B%5Cn%5C%0A%09%09margin%3A%200.2em%202px%3B%5Cn%5C%0A%09%09border-bottom%3A%201px%20solid%20ThreeDHighlight%3B%5Cn%5C%0A%09%09border-top%3A%201px%20solid%20ThreeDShadow%3B%5Cn%5C%0A%09%09height%3A%202px%3B%5Cn%5C%0A%09%09border-left%3A%20none%3B%5Cn%5C%0A%09%09border-right%3A%20none%3B%5Cn%5C%0A%7D%5Cn%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%3E%20toolbarspacer%2C%5Cn%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%3E%20%5Bid%5E%3D%22wrapper-spacer%22%5D%20%7B%20height%3A%2015px%3B%20%7D%27%0A%0A%09var%20sspi%20%3D%20document.createProcessingInstruction%28%27xml-stylesheet%27%2C%0A%09%09%20%20%27type%3D%22text/css%22%20href%3D%22data%3Atext/css%2C%27%20+%20encodeURI%28style%29%20+%20%27%22%27%29%3B%0A%09document.insertBefore%28sspi%2C%20document.documentElement%29%3B%0A%0A//%20....................................................................................................%0A%0A%09var%20attr%20%3D%20getAttr_pref%28%29.split%28sep%29%3B%0A%09for%20%28var%20i%3D0%3B%20i%3C%28attr.length-1%29%3B%20i+%3D2%29%20%7B%20toolbar.setAttribute%28attr%5Bi%5D%2C%20attr%5Bi+1%5D%29%3B%20%7D%0A%0A%09var%20currentSet%20%3D%20toolbar.getAttribute%28%22currentset%22%29.split%28%22%2C%22%29%3B%0A%09currentSet.forEach%28function%28id%29%7B%20toolbar.insertItem%28id%29%3B%20%7D%29%3B%0A%7D%0A//%20....................................................................................................%0A%0Avar%20et%20%3D%20gNavToolbox.externalToolbars%3B%0Avar%20already%20%3D%20false%3B%0Afor%20%28var%20i%3D0%3B%20i%3Cet.length%3B%20i++%29%20%7B%20if%20%28et%5Bi%5D%20%3D%3D%20toolbar%29%20%7B%20already%20%3D%20true%3B%20break%20%7D%20%7D%0Aif%20%28%21already%29%20et%5Bet.length%5D%20%3D%20toolbar%3B%0A%0Avar%20delta%20%3D%20toolbar.getAttribute%28%22widthcorr%22%29%20-%20vtWidthCorrection%3B%0Atoolbar.setAttribute%28%22widthcorr%22%2C%20vtWidthCorrection%29%3B%0Aif%20%28delta%29%20toolbar.setAttribute%28%22_width%22%2C%20toolbar.getAttribute%28%22_width%22%29%20-%20delta%29%3B%0A%0Afunction%20lock%28%29%20%7B%0A%0A%09var%20width%20%3D%20toolbar.getAttribute%28%22_width%22%29%3B%0A%09%0A%09toolbox.style.position%20%3D%20toolbar.hasAttribute%28%22autohide%22%29%20%3F%20%22%22%20%3A%20%22fixed%22%3B%0A%09toolbox.style.height%20%3D%0A%09toolbar.style.height%20%3D%20browser.boxObject.height%20+%20%22px%22%3B%0A%0A%09toolbar.style.maxWidth%20%3D%0A%09toolbar.style.minWidth%20%3D%0A%09toolbox.style.maxWidth%20%3D%0A%09toolbox.style.minWidth%20%3D%20width%20*%20%21toolbar.collapsed%20+%20%22px%22%3B%09%0A%7D%0Afunction%20beforeCustomize%28%29%20%7B%0A%0A%09toolbox.removeAttribute%28%22style%22%29%3B%0A%09toolbox.removeAttribute%28%22width%22%29%3B%0A%09toolbar.removeAttribute%28%22style%22%29%3B%0A%09toolbar.style.minWidth%20%3D%20%2220px%22%3B%0A%7D%0Afunction%20customizationChange%28%29%20%7B%0A%09window.setTimeout%28function%28%29%20%7B%0A%09%09toolbar.setAttribute%28%22_width%22%2C%20toolbar.boxObject.width%20+%20vtWidthCorrection%29%3B%0A%09%7D%2C%20640%29%3B%0A%7D%0Afunction%20afterCustomize%28%29%20%7B%0A%0A%09setAttr_pref%28%29%3B%0A%09removeListeners%28%29%3B%0A%09lock%28%29%3B%0A%7D%0Afunction%20collapser%28e%29%20%7B%0A%0A%09var%20distance%20%3D%20e.screenX%20-%20browser.boxObject.screenX%3B%0A%09if%20%28toolbar.waiting%29%20return%3B%0A%0A%09if%20%28%28distance%20%3C%3D%20distanceShow%29%20%26%26%20%28toolbar.collapsed%29%29%20%7B%0A%0A%09%09if%20%28showDelay%20%3C%201%29%20%7B%20toolbar.collapsed%20%3D%20false%3B%20lock%28%29%3B%20return%3B%20%7D%0A%0A%09%09toolbar.waiting%20%3D%20true%3B%0A%09%09window.setTimeout%28function%28%29%20%7B%0A%0A%09%09%09if%20%28distance%20%3E%3D%20distanceShow%29%20%7B%20toolbar.waiting%20%3D%20false%3B%20return%3B%20%7D%0A%09%09%09toolbar.collapsed%20%3D%20false%3B%0A%09%09%09lock%28%29%3B%0A%09%09%09toolbar.waiting%20%3D%20false%3B%0A%0A%09%09%7D%2C%20showDelay%29%3B%0A%09%7D%0A%09if%20%28%28distance%20%3E%3D%20distanceHide%29%20%26%26%20%28%21toolbar.collapsed%29%29%20%7B%0A%09%09toolbar.collapsed%20%3D%20true%3B%0A%09%09lock%28%29%3B%0A%09%7D%0A%7D%0Afunction%20removeListeners%28%29%20%7B%0A%0A%09gNavToolbox.removeEventListener%28%22beforecustomization%22%2C%20beforeCustomize%2C%20false%29%3B%0A%09gNavToolbox.removeEventListener%28%22customizationchange%22%2C%20customizationChange%2C%20false%29%3B%0A%09gNavToolbox.removeEventListener%28%22aftercustomization%22%2C%20afterCustomize%2C%20false%29%3B%0A%7D%0A%0Athis.onclick%20%3D%20function%28e%29%20%7B%20%0A%0A%09if%20%28e.button%29%20return%3B%0A%0A%09var%20autohide%20%3D%20toolbar.hasAttribute%28%22autohide%22%29%3B%0A%09toolbar.collapsed%20%3D%20autohide%3B%0A%0A%09if%20%28%21autohide%29%20%7B%0A%09%09browser.removeEventListener%28%22mousemove%22%2C%20collapser%2C%20false%29%3B%0A%09%09toolbar.setAttribute%28%22autohide%22%2C%20%22true%22%29%3B%0A%09%7D%0A%09else%20%7B%0A%09%09browser.addEventListener%28%22mousemove%22%2C%20collapser%2C%20false%29%3B%0A%09%09toolbar.removeAttribute%28%22autohide%22%29%3B%0A%09%7D%0A%09lock%28%29%3B%0A%7D%0A%0Atoolbar.ondblclick%20%3D%20function%28e%29%20%7B%0A%0A%09if%20%28%20e.button%20%7C%7C%20e.target.nodeName%20%3D%3D%20%22toolbarbutton%22%0A%09%20%20%09%20%20%20%20%20%20%7C%7C%20e.target.nodeName%20%3D%3D%20%22toolbaritem%22%20%29%20return%3B%0A%09button.click%28%29%3B%0A%7D%0A//%20....................................................................................................%0A%0Aif%20%28%21toolbar.hasAttribute%28%22autohide%22%29%29%20%7B%0A%09browser.addEventListener%28%22mousemove%22%2C%20collapser%2C%20false%29%3B%0A%7D%0Aelse%20toolbar.setAttribute%28%22autohide%22%2C%20%22true%22%29%3B%0A%0Alock%28%29%3B%0A%0AgNavToolbox.addEventListener%28%22beforecustomization%22%2C%20beforeCustomize%2C%20false%29%3B%0AgNavToolbox.addEventListener%28%22customizationchange%22%2C%20customizationChange%2C%20false%29%3B%0AgNavToolbox.addEventListener%28%22aftercustomization%22%2C%20afterCustomize%2C%20false%29%3B%0A%0A%0A%0A//%20....................................................................................................%0Avar%20observer%20%3D%20%7B%0A%20%20%20%20get%20obs%28%29%20%7B%0A%20%20%20%20%20%20%20%20return%20Cc%5B%22@mozilla.org/observer-service%3B1%22%5D.getService%28Ci.nsIObserverService%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20init%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20this.obs.addObserver%28this%2C%20%22lightweight-theme-styling-update%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.observe%28%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroy%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.obs.removeObserver%28this%2C%20%22lightweight-theme-styling-update%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20observe%3A%20function%28subject%2C%20topc%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20win%20%3D%20document.getElementById%28%22main-window%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20bgi%20%3D%20window.getComputedStyle%28win%29.backgroundImage%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28bgi%20%3D%3D%20%22none%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20bgc%20%3D%20window.getComputedStyle%28win%29.backgroundColor%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toolbar.style.backgroundColor%20%3D%20bgc%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20brc%20%3D%20bgc%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bgc.match%28/%5Cd+/g%29.forEach%28function%28color%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28i%20%3E%202%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20brc%20%3D%20brc.replace%28color%2C%20Math.round%28color/1.5%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toolbar.style.borderRightColor%20%3D%20brc%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20url%20%3D%20bgi.replace%28%27url%28%22%27%2C%20%22%22%29.replace%28%27%22%29%27%2C%20%22%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20xhtml%20%3D%20%22http%3A//www.w3.org/1999/xhtml%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20img%20%3D%20document.createElementNS%28xhtml%2C%20%22img%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20canvas%20%3D%20document.createElementNS%28xhtml%2C%20%22canvas%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20img.src%20%3D%20url%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20img.onload%20%3D%20function%28%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20width%20%3D%20canvas.width%20%3D%20img.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20height%20%3D%20canvas.height%20%3D%20img.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20context%20%3D%20canvas.getContext%28%222d%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20context.drawImage%28img%2C%200%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20arr%20%3D%20context.getImageData%280%2C%200%2C%20width%2C%20height%29.data%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20r%20%3D%200%2C%20g%20%3D%200%2C%20b%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20len%20%3D%20arr.length%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20len%3B%20i%20+%3D%204%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20r%20+%3D%20arr%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20g%20+%3D%20arr%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20b%20+%3D%20arr%5Bi%20+%202%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20colors%20%3D%20%5Br%2C%20g%2C%20b%5D%2C%20borderRightColors%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20colors.forEach%28function%28color%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20clr%20%3D%20Math.round%284%20*%20color%20/%20len%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20colors%5Bi%5D%20%3D%20clr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderRightColors.push%28Math.round%28clr%20/1.5%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rgb%20%3D%20%22rgb%28%22%20+%20colors.join%28%22%2C%20%22%29%20+%20%22%29%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rgbBrc%20%3D%20%22rgb%28%22%20+%20borderRightColors.join%28%22%2C%20%22%29%20+%20%22%29%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toolbar.style.backgroundColor%20%3D%20rgb%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toolbar.style.borderRightColor%20%3D%20rgbBrc%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%20200%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Aobserver.init%28%29%3B%0A%0A%0A%0Afunction%20n%28id%29%20document.getElementById%28id%29%3B%0Aconst%20page%20%3D%20n%28%22content%22%29%2C%20box%20%3D%20n%28%22sidebar-box%22%29%2C%20sidebar%20%3D%20n%28%22sidebar%22%29%3B%0Avar%20tvtc%2C%20timeout%3B%0A%0Afunction%20listenMO%28node%2C%20listen%29%20%7B%0A%20%20%20%20var%20func%20%3D%20node%20%3D%3D%20box%20%3F%20onBMO%20%3A%20onPMO%3B%0A%20%20%20%20%28listen%20%3F%20addEventListener%20%3A%20removeEventListener%29%0A%20%20%20%20.apply%28this%2C%20%5B%22mouseover%22%2C%20func%2C%20false%2C%20node%5D%29%3B%0A%7D%0Afunction%20onPMO%28%29%20%7B%0A%20%20%20%20listenMO%28page%2C%20false%29%3B%0A%20%20%20%20timeout%20%3D%20setTimeout%28hideSB%2C%20autoCloseDelay%20%29%3B%0A%20%20%20%20listenMO%28box%2C%20true%29%3B%0A%7D%0Afunction%20onBMO%28%29%20%7B%0A%20%20%20%20listenMO%28box%2C%20false%29%3B%0A%20%20%20%20clearTimeout%28timeout%29%3B%0A%20%20%20%20listenMO%28page%2C%20true%29%3B%0A%7D%0Afunction%20hideSB%28%29%20%7B%0A%20%20%20%20listenMO%28box%2C%20false%29%3B%0A%20%20%20%20if%20%28box.hidden%29%20return%3B%0A%20%20%20%20var%20id%20%3D%20box.getAttribute%28%22sidebarcommand%22%29%20%7C%7C%20%22viewBookmarksSidebar%22%3B%0A%20%20%20%20n%28id%29.setAttribute%28%22checked%22%2C%20true%29%3B%0A%20%20%20%20toggleSidebar%28id%29%3B%0A%7D%0Afunction%20onSBL%28%29%20%7B%0A%20%20%20%20var%20time%20%3D%20Date.now%28%29%3B%0A%20%20%20%20listenMO%28page%2C%20false%29%3B%0A%20%20%20%20if%20%28time%20-%20tvtc%20%3C%20800%29%20listenMO%28page%2C%20true%29%3B%0A%7D%0Afunction%20onVTC%28e%29%20%7B%0A%20%20%20%20var%20time%20%3D%20Date.now%28%29%3B%0A%20%20%20%20for%20%28var%20node%20%3D%20e.target%3B%20node%3B%20node%20%3D%20node.parentNode%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28node%20%21%3D%20toolbar%29%20continue%3B%0A%20%20%20%20%20%20%20%20tvtc%20%3D%20time%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%7D%0Afunction%20ael%28add%29%20%7B%0A%20%20%20%20%5B%20%20%20%20%5B%22DOMContentLoaded%22%2C%20onSBL%2C%20false%2C%20sidebar%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22click%22%2C%20onVTC%2C%20false%2C%20window%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22command%22%2C%20onVTC%2C%20false%2C%20window%5D%0A%20%20%20%20%5D.forEach%28function%28args%29%20%7B%0A%20%20%20%20%20%20%20%20%28add%20%3F%20addEventListener%20%3A%20removeEventListener%29.apply%28this%2C%20args%29%3B%0A%20%20%20%20%7D%29%3B%0A%7D%0Aif%20%28%20sideBarAutoClose%20%29%20ael%28true%29%3B%0A%0A%0A%0Athis.onDestroy%20%3D%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20observer.destroy%28%29%3B%0A%20%20%20%20%20%20%20%20%0A%09browser.removeEventListener%28%22mousemove%22%2C%20collapser%2C%20false%29%3B%0A%09if%20%28%21toolbar.hasAttribute%28%22customizing%22%29%29%20removeListeners%28%29%3B%0A%09if%20%28reason%20%3D%3D%20%22delete%22%29%20pref.reset%28%29%3B%0A%09if%20%28%21getAttr_pref%28%29%29%20return%3B%0A%09setAttr_pref%28%29%3B%0A%09%0A%09ael%28false%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код кнопки для Firefox45+ Выделить код Код: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%0A%20%20%3Cname%3EVT%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAKP+AAIX/gAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAFf+AABUAAAAAAAAAAAAAAAAAAAAA/4AAJP+AAP//gAD//4AA//+AACQAAAAAAAAAAAAAAAAAAAAA/4AAEv+AAP//gAD//4AAEgAAAAAAAAAA/4AAIP+AAP//gAD//4AA//+AAP//gAD//4AAJgAAAAAAAAAAAAAAAP+AABH/gAD//4AA//+AABEAAAAAAAAAAP+AAP//gAD//4AA//+AADb/gAD//4AA//+AAP//gAAQAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AACAAAAAA/4AAIP+AAP//gAD//4AAEQAAAAAAAAAA/4AAD/+AAP//gAD//4AADwAAAAAAAAAA/4AA//+AAP//gAAMAAAAAP+AAAz/gAD//4AA//+AAA8AAAAAAAAAAP+AAA//gAD//4AA//+AAA8AAAAAAAAAAP+AAP//gAD//4AADwAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AAA8AAAAA/4AAD/+AAP//gAD//4AADAAAAAAAAAAA/4AACv+AAP//gAD//4AACgAAAAAAAAAA/4AA//+AAP//gAAPAAAAAP+AAA//gAD//4AA//+AAAv/gAAL/4AADP+AACH/gAD//4AA//+AACH/gAAK/4AAD/+AAP//gAD//4AAEQAAAAD/gAAR/4AA//+AAP//gAAm/4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AABIAAAAA/4AAEv+AAP//gAD//4AAJ/+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AAEf+AABIAAAAAAAAAAAAAAAD/gAAV/4AAEgAAAAD/gAAQ/4AAEf+AAA//gAAP/4AAD/+AAA//gAAP/4AADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQe//rEHH56xBg8OsQQHDrEEAw6xBEMOsQRDDrEEQw6xBEMOsQRAArEEQAKxBEACsQTkArEH//6xB//+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20vto%20%3D%20%7B%0A%20%20%20%20distanceShow%3A%202%2C%0A%20%20%20%20distanceHide%3A%2064%2C%0A%20%20%20%20showDelay%3A%20320%2C%0A%20%20%20%20color%3A%20%22lightblue%22%2C%0A%20%20%20%20fringe%3A%20%22black%22%2C%0A%20%20%20%20padding%3A%203%2C%0A%20%20%20%20name%3A%20%22VT%22%2C%0A%0A%20%20%20%20btn%3A%20this%2C%0A%20%20%20%20tcm%3A%20document.getElementById%28%22toolbar-context-menu%22%29%2C%0A%20%20%20%20ctm%3A%20document.getElementById%28%22customization-toolbar-menu%22%29%2C%0A%20%20%20%20deck%3A%20document.getElementById%28%22content-deck%22%29%2C%0A%20%20%20%20id%3A%20%22cb-vt%22%2C%0A%0A%20%20%20%20get%20cust%28%29%20gBrowser.currentURI.spec%20%3D%3D%20%22about%3Acustomizing%22%2C%0A%20%20%20%20get%20xs%28%29%20%7B%0A%20%20%20%20%20%20%20%20delete%20this.xs%3B%0A%20%20%20%20%20%20%20%20return%20this.xs%20%3D%20Cc%5B%22@mozilla.org/xul/xulstore%3B1%22%5D.getService%28Ci.nsIXULStore%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20init%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28this.cust%20%7C%7C%20this.btn._destructors.length%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.initVT%28%29%3B%0A%20%20%20%20%20%20%20%20var%20vto%20%3D%20this%3B%0A%0A%20%20%20%20%20%20%20%20this.btn.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.button%20%7C%7C%20vto.toggleVT%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22popupshown%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22resize%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.addEventListener%28%22command%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.addEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20vto.toggleVT%28vt.hasOwnProperty%28%22on%22%29%20%3F%20vt.on%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20%21this.xs.hasValue%28location%2C%20vto.id%2C%20%22collapsed%22%29%0A%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20this.resize%28%29%3B%0A%20%20%20%20%20%20%20%20vto.btn._destructors.push%28%7Bcontext%3A%20vto%2C%20destructor%3A%20vto.destroy%7D%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroy%3A%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popupshown%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22resize%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.removeEventListener%28%22command%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.removeEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.setCollapser%28false%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28reason%20%3D%3D%20%22destructor%22%20%26%26%20this.cust%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20vto%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vto.resize%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.addEventListener%28%22customizationready%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.addListener%28vto%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20this.ctm.addEventListener%28%22command%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.ctm.addEventListener%28%22popupshowing%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20window.addEventListener%28%22resize%22%2C%20vto%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.addEventListener%28%22aftercustomization%22%2C%20function%20ac%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.removeEventListener%28%22aftercustomization%22%2C%20ac%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.removeEventListener%28%22customizationready%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.removeListener%28vto%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.ctm.removeEventListener%28%22command%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.ctm.removeEventListener%28%22popupshowing%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.removeEventListener%28%22resize%22%2C%20vto%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28vto.btn.id%29%20%7C%7C%20vto.destroyVT%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28reason%20%3D%3D%20%22delete%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.removeWidgetFromArea%28this.btn.id%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.destroyVT%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20handleEvent%3A%20function%28e%29%20this%5Be.type%5D%28e%29%2C%0A%0A%20%20%20%20command%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.target.id%20%21%3D%20%22toggle_%22%20+%20this.id%29%20return%3B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20this.toggleVT%28%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20popupshowing%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20var%20menuitem%20%3D%20e.target.querySelector%28%22%23toggle_%22%20+%20this.id%29%3B%0A%20%20%20%20%20%20%20%20menuitem%20%26%26%20menuitem.setAttribute%28%22checked%22%2C%20this.vt.on%29%3B%0A%20%20%20%20%20%20%20%20if%20%28this.cust%20%7C%7C%20%21this.vt.contains%28e.target.triggerNode%29%29%20return%3B%0A%20%20%20%20%20%20%20%20for%28var%20selector%20of%20%5B%22.customize-context-moveToPanel%22%2C%20%22.customize-context-removeFromToolbar%22%5D%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20menuitem%20%3D%20e.target.querySelector%28selector%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menuitem%20%26%26%20menuitem.removeAttribute%28%22disabled%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20mousemove%3A%20function%20collapser%28e%29%20%7B%0A%20%20%20%20%20%20%20%20var%20distance%20%3D%20collapser.distance%20%3D%20e.screenX%20-%20document.documentElement.boxObject.screenX%3B%0A%20%20%20%20%20%20%20%20if%20%28collapser.waiting%29%20return%3B%0A%20%20%20%20%20%20%20%20if%20%28distance%20%3C%3D%20this.distanceShow%20%26%26%20this.vt.collapsed%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28this.showDelay%20%3C%201%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28vto%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28collapser.distance%20%3E%3D%20vto.distanceShow%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.collapsed%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20this.showDelay%2C%20this%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28distance%20%3E%3D%20this.distanceHide%20%26%26%20%21this.vt.collapsed%29%0A%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%3D%20true%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20setCollapser%3A%20function%28set%29%20%7B%0A%20%20%20%20%20%20%20%20set%0A%20%20%20%20%20%20%20%20%3F%20this.cust%20%7C%7C%20window.addEventListener%28%22mousemove%22%2C%20this%2C%20false%29%0A%20%20%20%20%20%20%20%20%3A%20window.removeEventListener%28%22mousemove%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20callCollapser%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20this.mousemove%28%7BscreenX%3A%20document.documentElement.boxObject.screenX%20+%20MousePosTracker._x%7D%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20customizationready%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22customizationready%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.vt.on%20%26%26%20this.insertBox%28true%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20resize%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20this.vt.style.maxHeight%20%3D%20this.deck.boxObject.height%20+%201%20+%20%22px%22%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20popupshown%3A%20function%28e%29%20this.handlePopup%28e%29%2C%0A%20%20%20%20popuphidden%3A%20function%28e%29%20this.handlePopup%28e%29%2C%0A%0A%20%20%20%20handlePopup%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%7C%7C%20this.vt.on%0A%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28e.target.localName%20%21%3D%20%22menupopup%22%20%26%26%20e.target.localName%20%21%3D%20%22panel%22%29%0A%20%20%20%20%20%20%20%20%29%20return%3B%0A%20%20%20%20%20%20%20%20setTimeout%28function%28vto%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20hasPopup%20%3D%20Array.concat%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28document.getElementsByTagName%28%22menupopup%22%29%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28document.getElementsByTagName%28%22panel%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.some%28function%28popup%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22state%22%20in%20popup%20%26%26%20popup.state%20%3D%3D%20%22open%22%20%26%26%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.contains%28popup%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28%22triggerNode%22%20in%20popup%20%26%26%20vto.vt.contains%28popup.triggerNode%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28%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%22anchorNode%22%20in%20popup%20%26%26%20popup.anchorNode%20%26%26%20%28%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%20vto.vt.contains%28popup.anchorNode%29%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%7C%7C%20vto.vt.contains%28document.getBindingParent%28popup.anchorNode%29%29%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%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vto.setCollapser%28%21hasPopup%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20hasPopup%20%7C%7C%20vto.callCollapser%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20200%2C%20this%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20onWidgetAfterDOMChange%3A%20function%28...a%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28a%5B2%5D%20%3D%3D%20this.vt.box%29%20this.vt.hbox.style.minWidth%20%3D%20this.vt.boxObject.width%20+%20%22px%22%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20initVT%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20var%20id%20%3D%20this.id%3B%0A%20%20%20%20%20%20%20%20var%20boxId%20%3D%20id%20+%20%22-customization-target%22%3B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%20%3D%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28id%29%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22toolbar%22%29%3B%0A%20%20%20%20%20%20%20%20var%20attrs%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20id%3A%20id%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mode%3A%20%22icons%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20iconsize%3A%20%22small%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20orient%3A%20%22vertical%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20customizable%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20persist%3A%20%22collapsed%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20toolbarname%3A%20this.name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20fullscreentoolbar%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20class%3A%20%22chromeclass-toolbar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20context%3A%20%22toolbar-context-menu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20style%3A%20%22-moz-appearance%3A%20none%3B%20display%3A%20-moz-box%3B%20height%3A%20100%25%3B%20position%3A%20fixed%3B%20min-width%3A%2020px%22%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20for%28var%20attr%20in%20attrs%29%20vt.setAttribute%28attr%2C%20attrs%5Battr%5D%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%21vt.parentNode%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20box%20%3D%20vt.box%20%3D%20document.createElement%28%22vbox%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.appendChild%28box%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.id%20%3D%20boxId%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.style.cssText%20%3D%20%22height%3A%20100%25%3B%20width%3A%20100%25%3B%22%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.customizationTarget%20%3D%20box%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.appendChild%28vt%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28CustomizableUI.areas.indexOf%28id%29%20%3D%3D%20-1%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.registerArea%28id%2C%20%7Blegacy%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20box.removeAttribute%28%22class%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20box.__defineGetter__%28%22localName%22%2C%20function%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Components.stack.caller.toString%28%29.indexOf%28%22custombutton.buttonConstructor%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3D%20-1%20%3F%20%22vbox%22%20%3A%20%22toolbar%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.hbox%20%3D%20document.createElement%28%22hbox%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.hbox.id%20%3D%20id%20+%20%22-hbox%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20vt.box.style.padding%20%3D%20%220%20%22%20+%20this.padding%20+%20%22px%22%3B%0A%20%20%20%20%20%20%20%20vt.style.backgroundColor%20%3D%20this.color%3B%0A%20%20%20%20%20%20%20%20vt.style.borderRight%20%3D%20%221px%20solid%20%22%20+%20this.fringe%3B%0A%20%20%20%20%20%20%20%20return%20vt%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroyVT%3A%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20CustomizableUI.unregisterArea%28vt.id%2C%20%7B%7D%29%3B%0A%20%20%20%20%20%20%20%20vt.hbox.parentNode%20%26%26%20vt.hbox.parentNode.removeChild%28vt.hbox%29%3B%0A%20%20%20%20%20%20%20%20vt.parentNode%20%26%26%20vt.parentNode.removeChild%28vt%29%3B%0A%0A%20%20%20%20%20%20%20%20this.xs.removeValue%28location%2C%20vto.id%2C%20%22collapsed%22%29%3B%0A%20%20%20%20%20%20%20%20this.xs.removeValue%28location%2C%20vto.id%2C%20%22currentset%22%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20insertBox%3A%20function%28ins%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20var%20box%20%3D%20vt.hbox%3B%0A%20%20%20%20%20%20%20%20if%20%28%21ins%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.parentNode%20%26%26%20box.parentNode.removeChild%28box%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20var%20id%20%3D%20this.cust%20%3F%20%22customization-palette-container%22%20%3A%20%22sidebar-box%22%3B%0A%20%20%20%20%20%20%20%20var%20point%20%3D%20document.getElementById%28id%29%3B%0A%20%20%20%20%20%20%20%20point.parentNode.insertBefore%28box%2C%20point%29%3B%0A%20%20%20%20%20%20%20%20var%20mw%20%3D%20function%28%29%20box.style.minWidth%20%3D%20vt.boxObject.width%20+%20%22px%22%3B%0A%20%20%20%20%20%20%20%20mw%28%29%3B%20setTimeout%28mw%2C%20100%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20toggleVT%3A%20function%28on%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20if%20%28on%20%3D%3D%20undefined%29%20on%20%3D%20%21vt.on%3B%0A%20%20%20%20%20%20%20%20vt.on%20%3D%20on%3B%0A%20%20%20%20%20%20%20%20this.setCollapser%28%21on%29%3B%0A%20%20%20%20%20%20%20%20vt.collapsed%20%3D%20%21on%3B%0A%20%20%20%20%20%20%20%20this.insertBox%28on%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Avto.init%28%29%3B%0A%0A%0Afunction%20addBackground%28e%29%20%7B%0A%20%20%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20toolbar%20%3D%20document.getElementById%28%27cb-vt%27%29%3B%0A%20%20%20%20%20%20var%20win%20%3D%20document.getElementById%28%22main-window%22%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20image%20%3D%20win.style.backgroundImage%3B%0A%20%20%20%20%20%20if%20%28%20image%20%3D%3D%20%27%27%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20toolbar.style.background%20%3D%20%27%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20toolbar.style.background%20%3D%20image%3B%0A%20%20%20%20%20%20toolbar.style.backgroundSize%20%3D%20%27auto%20100%25%27%3B%0A%20%20%20%7D%2C%20500%29%3B%0A%7D%3B%0AaddBackground%28%29%3B%20%0AServices.obs.addObserver%28addBackground%2C%20%22lightweight-theme-styling-update%22%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.obs.removeObserver%28addBackground%2C%20%22lightweight-theme-styling-update%22%29%20%29%3B%20%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Автор кнопки: Dumby |
bunda1 > 03-02-2013 13:16:30 |
Menuitem hider( Firefox24+ ) от 07.06.2016. ЛКМ => Выключить и включить кнопку. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EMenuitem%20hider%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHz/fHx8/3t7e/97e3v/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/6Gkyf9HWOP/OEas//f3+v////////////////////////////////////////////Ly8///////fHx8/3x8fP9ueNT/Rlzs/x810P+/xe///////////////////////////////////////9fX3f+Mjbb//////3x8fP98fHz/V2HM/0FZ5P8xRt3/P02w/3d6jv6FhYX+hYWF/oWFhf6FhYX+hYWF/oWFhf5HSZH/T1B6/oWFhf58fHz/fHx8/5me8v80TN3/HDfd/ztIu//IzfL///////////////////////////+6u87/NULL/+Dg5P//////fHx8/3x8fP/o6PX/VGPS/xYy2P8aMMv/ra3A///////////////////////o6Or/NUjT/3uCvP///////////3x8fP98fHz/hYWF/nd4k/4xRtb/Ei7a/yQwpv9ycXT+hYWF/oWFhf6AgYP+OUOb/yE1yf95eXz+hYWF/oWFhf58fHz/fHx8////////////e36v/x820P8QLd7/VVur//T09P//////cXjC/xs27v+qrMj/////////////////fHx8/3x8fP///////////42Njf+7vfX/ITjT/x444P9dZLD/YWq3/xUy8/9lb8P//////////////////////3x8fP98fHz/hYWF/oWFhf6FhYX+hYWF/nl7oP4aLbj/DSbT/w4r4f8sOrP/e3uC/oWFhf6FhYX+hYWF/oWFhf58fHz/fHx8////////////jY2N//T09v+ho9X/FCzS/wki2/8DHNP/OknJ/8fN9v//////////////////////fHx8/3x8fP///////////2xtf/9dZ7//GDPk/wcn6/8vQtH/ZnDX/wke0f8+S7n/ys7n/////////////////3x8fP98fHz/dXV7/mNolP9reeT/VGr5/0BX9f8yRMn/cHGG/oWFhf5rb7L+KkPy/zE8of9mZnT+hYWF/oWFhf58fHz/e3t8/2Vy0P+JmPj/h5b6/3qK9v9/idz/3Nzl/////////////////9na+P+Ik/j/Y27S/5CSrP/y8vP/fHx8/3x8fP+WpPn/coPp/4OP3/+ws9f/9vb6////////////////////////////+fn9/8XH+P+Mk+//ZWmq/3t7e/98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20ids%20%3D%20%5B%0A%0A%5D//menuitem%20hider%20mark%0A%0Avar%20button%20%3D%20this%3B%0Avar%20currentImage%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYX+hYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYX+hYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXtAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0Avar%20imgFalse%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHz/fHx8/3t7e/97e3v/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/6Gkyf9HWOP/OEas//f3+v////////////////////////////////////////////Ly8///////fHx8/3x8fP9ueNT/Rlzs/x810P+/xe///////////////////////////////////////9fX3f+Mjbb//////3x8fP98fHz/V2HM/0FZ5P8xRt3/P02w/3d6jv6FhYX+hYWF/oWFhf6FhYX+hYWF/oWFhf5HSZH/T1B6/oWFhf58fHz/fHx8/5me8v80TN3/HDfd/ztIu//IzfL///////////////////////////+6u87/NULL/+Dg5P//////fHx8/3x8fP/o6PX/VGPS/xYy2P8aMMv/ra3A///////////////////////o6Or/NUjT/3uCvP///////////3x8fP98fHz/hYWF/nd4k/4xRtb/Ei7a/yQwpv9ycXT+hYWF/oWFhf6AgYP+OUOb/yE1yf95eXz+hYWF/oWFhf58fHz/fHx8////////////e36v/x820P8QLd7/VVur//T09P//////cXjC/xs27v+qrMj/////////////////fHx8/3x8fP///////////42Njf+7vfX/ITjT/x444P9dZLD/YWq3/xUy8/9lb8P//////////////////////3x8fP98fHz/hYWF/oWFhf6FhYX+hYWF/nl7oP4aLbj/DSbT/w4r4f8sOrP/e3uC/oWFhf6FhYX+hYWF/oWFhf58fHz/fHx8////////////jY2N//T09v+ho9X/FCzS/wki2/8DHNP/OknJ/8fN9v//////////////////////fHx8/3x8fP///////////2xtf/9dZ7//GDPk/wcn6/8vQtH/ZnDX/wke0f8+S7n/ys7n/////////////////3x8fP98fHz/dXV7/mNolP9reeT/VGr5/0BX9f8yRMn/cHGG/oWFhf5rb7L+KkPy/zE8of9mZnT+hYWF/oWFhf58fHz/e3t8/2Vy0P+JmPj/h5b6/3qK9v9/idz/3Nzl/////////////////9na+P+Ik/j/Y27S/5CSrP/y8vP/fHx8/3x8fP+WpPn/coPp/4OP3/+ws9f/9vb6////////////////////////////+fn9/8XH+P+Mk+//ZWmq/3t7e/98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0A%0Avar%20s%20%3D%20%27custombutton.menuitem_hider.active%27%3B%0Acbu.isPref%28s%2C%20true%29%3B%0A%0Avar%20ios%20%3D%20Cc%5B%27@mozilla.org/network/io-service%3B1%27%5D.getService%28Ci.nsIIOService%29%3B%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Avar%20us%20%3D%20sss.USER_SHEET%3B%0A%0Afunction%20makeCssURI%28%29%20%7B%0A%20%20%20%20%20%20%20%20cssStr%20%3D%20ids%20+%20%22%20%7B%20display%3A%20none%20%21important%20%7D%22%0A%20%20%20%20%20%20%20%20return%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28cssStr%29%2C%20null%2C%20null%29%3B%0A%7D%0Avar%20currCssURI%20%3D%20makeCssURI%28%29%3B%0Aif%20%28%20cbu.getPrefs%28s%29%20%29%20regSheet%28%20currCssURI%2C%20true%20%29%3B%0A%0Afunction%20regSheet%28newCssURI%2C%20reg%29%20%7B%0A%0A%09if%20%28sss.sheetRegistered%28currCssURI%2C%20us%29%29%20sss.unregisterSheet%28currCssURI%2C%20us%29%3B%0A%09if%20%28%21reg%29%20return%3B%0A%09if%20%28%21sss.sheetRegistered%28newCssURI%2C%20us%29%29%20sss.loadAndRegisterSheet%28newCssURI%2C%20us%29%3B%0A%09currCssURI%20%3D%20newCssURI%3B%0A%7D%0Afunction%20onClick%28e%29%20%7B%0A%09if%20%28e.button%20%21%3D%201%29%20return%3B%0A%09var%20target%20%3D%20e.target%3B%0A%09var%20nn%20%3D%20target.nodeName%3B%0A%09if%20%28nn%20%21%3D%20%22menuitem%22%20%26%26%20nn%20%21%3D%20%22menu%22%20%26%26%20nn%20%21%3D%20%22menuseparator%22%29%20return%3B%0A%09var%20id%20%3D%20target.id%3B%0A%09if%20%28%21id%29%20return%3B%0A%09var%20label%20%3D%20target.label%20%7C%7C%20target.nodeName%3B%0A%0A%09var%20link%20%3D%20custombuttons.makeButtonLink%28%22edit%22%2C%20button.id%29%3B%0A%09var%20param%20%3D%20custombuttons.cbService.getButtonParameters%28link%29%3B%0A%09param%20%3D%20param.wrappedJSObject%20%7C%7C%20param%3B%0A%09var%20init%20%3D%20param.initCode%3B%0A%09var%20index%20%3D%20init.indexOf%28%22%5Cn%5D//menuitem%20hider%20mark%22%29%3B%0A%09var%20part1%20%3D%20init.substring%280%2C%20index%29%3B%0A%09var%20part2%20%3D%20init.substring%28index%2C%20init.length%29%3B%0A%09param.initCode%20%3D%20part1%20+%20%27%22%23%27%20+%20id%20+%20%27%22%2C%20/*%20%27%20+%20label%20+%20%27%5C*%5C/%27%20+%20%27%5Cn%27%20+%20part2%3B%0A%09custombuttons.cbService.installButton%28param%29%3B%09%0A%7D%0AaddEventListener%28%22click%22%2C%20onClick%2C%20false%29%3B%0A%0Athis.onDestroy%20%3D%20function%28reason%29%20%7B%0A%09removeEventListener%28%22click%22%2C%20onClick%2C%20false%29%3B%0A%09regSheet%28currCssURI%2C%20false%29%3B%0A%09if%20%28reason%20%3D%3D%20%22delete%22%29%20cbu.clearPrefs%28s%29%3B%0A%7D%0Abutton.onclick%20%3D%20function%28e%29%20%7B%0A%09if%20%28e.button%29%20return%3B%0A%09cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%3B%0A%20%20%20%20%20%20%20%20button.image%20%3D%20cbu.getPrefs%28s%29%20%3F%20currentImage%20%3A%20imgFalse%3B%0A%09cbu.getPrefs%28s%29%20%3F%20button.init%28%29%20%3A%20button.onDestroy%28%29%3B%0A%09%0A%7D%0Abutton.image%20%3D%20cbu.getPrefs%28s%29%20%3F%20currentImage%20%3A%20imgFalse%3B%0Aif%20%28%20%21cbu.getPrefs%28s%29%20%29%20button.onDestroy%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация Выделить код Код:var ids = [ ]//menuitem hider mark var button = this; var currentImage = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYX+hYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYX+hYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXtAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ=="; var imgFalse = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHz/fHx8/3t7e/97e3v/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/6Gkyf9HWOP/OEas//f3+v////////////////////////////////////////////Ly8///////fHx8/3x8fP9ueNT/Rlzs/x810P+/xe///////////////////////////////////////9fX3f+Mjbb//////3x8fP98fHz/V2HM/0FZ5P8xRt3/P02w/3d6jv6FhYX+hYWF/oWFhf6FhYX+hYWF/oWFhf5HSZH/T1B6/oWFhf58fHz/fHx8/5me8v80TN3/HDfd/ztIu//IzfL///////////////////////////+6u87/NULL/+Dg5P//////fHx8/3x8fP/o6PX/VGPS/xYy2P8aMMv/ra3A///////////////////////o6Or/NUjT/3uCvP///////////3x8fP98fHz/hYWF/nd4k/4xRtb/Ei7a/yQwpv9ycXT+hYWF/oWFhf6AgYP+OUOb/yE1yf95eXz+hYWF/oWFhf58fHz/fHx8////////////e36v/x820P8QLd7/VVur//T09P//////cXjC/xs27v+qrMj/////////////////fHx8/3x8fP///////////42Njf+7vfX/ITjT/x444P9dZLD/YWq3/xUy8/9lb8P//////////////////////3x8fP98fHz/hYWF/oWFhf6FhYX+hYWF/nl7oP4aLbj/DSbT/w4r4f8sOrP/e3uC/oWFhf6FhYX+hYWF/oWFhf58fHz/fHx8////////////jY2N//T09v+ho9X/FCzS/wki2/8DHNP/OknJ/8fN9v//////////////////////fHx8/3x8fP///////////2xtf/9dZ7//GDPk/wcn6/8vQtH/ZnDX/wke0f8+S7n/ys7n/////////////////3x8fP98fHz/dXV7/mNolP9reeT/VGr5/0BX9f8yRMn/cHGG/oWFhf5rb7L+KkPy/zE8of9mZnT+hYWF/oWFhf58fHz/e3t8/2Vy0P+JmPj/h5b6/3qK9v9/idz/3Nzl/////////////////9na+P+Ik/j/Y27S/5CSrP/y8vP/fHx8/3x8fP+WpPn/coPp/4OP3/+ws9f/9vb6////////////////////////////+fn9/8XH+P+Mk+//ZWmq/3t7e/98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ=="; var s = 'custombutton.menuitem_hider.active'; cbu.isPref(s, true); var ios = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var us = sss.USER_SHEET; function makeCssURI() { cssStr = ids + " { display: none !important }" return ios.newURI("data:text/css," + encodeURIComponent(cssStr), null, null); } var currCssURI = makeCssURI(); if ( cbu.getPrefs(s) ) regSheet( currCssURI, true ); function regSheet(newCssURI, reg) { if (sss.sheetRegistered(currCssURI, us)) sss.unregisterSheet(currCssURI, us); if (!reg) return; if (!sss.sheetRegistered(newCssURI, us)) sss.loadAndRegisterSheet(newCssURI, us); currCssURI = newCssURI; } function onClick(e) { if (e.button != 1) return; var target = e.target; var nn = target.nodeName; if (nn != "menuitem" && nn != "menu" && nn != "menuseparator") return; var id = target.id; if (!id) return; var label = target.label || target.nodeName; var link = custombuttons.makeButtonLink("edit", button.id); var param = custombuttons.cbService.getButtonParameters(link); param = param.wrappedJSObject || param; var init = param.initCode; var index = init.indexOf("\n]//menuitem hider mark"); var part1 = init.substring(0, index); var part2 = init.substring(index, init.length); param.initCode = part1 + '"#' + id + '", /* ' + label + '\*\/' + '\n' + part2; custombuttons.cbService.installButton(param); } addEventListener("click", onClick, false); this.onDestroy = function(reason) { removeEventListener("click", onClick, false); regSheet(currCssURI, false); if (reason == "delete") cbu.clearPrefs(s); } button.onclick = function(e) { if (e.button) return; cbu.setPrefs(s, !cbu.getPrefs(s)); button.image = cbu.getPrefs(s) ? currentImage : imgFalse; cbu.getPrefs(s) ? button.init() : button.onDestroy(); } button.image = cbu.getPrefs(s) ? currentImage : imgFalse; if ( !cbu.getPrefs(s) ) button.onDestroy(); Автор кнопки: Dumby |
bunda1 > 02-04-2013 20:53:08 |
Вставка символа в текстовое поле( Firefox24+ ) от 15.01.2015. Можно менять величину шрифта меню: В коде инициализации меняем или вообще удаляем не оставляя пустую строку: ЛКМ => Показать меню. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEADQ0AAAEAIAAAAwAAFgAAACgAAAANAAAAGgAAAAEAIAAAAAAA2AIAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAVwAAACMAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAAEoAAAAMAAAAQgAAAOQAAACiAAAAAgAAABcAAABKAAAAVwAAADsAAAAHAAAAGwAAANcAAAC7AAAAFwAAAAsAAACHAAAA8QAAAJ0AAACeAAAA/QAAAP8AAADvAAAAhAAAAL8AAADrAAAAXwAAAAQAAAAAAAAABgAAAJMAAAD/AAAA7AAAAKUAAACHAAAAvQAAAPcAAAD/AAAAYQAAAAAAAAAAAAAAAwAAAAsAAACXAAAA9gAAAF8AAAAAAAAAAQAAAAwAAACOAAAA+QAAAGAAAAAAAAAAAwAAAAAAAAA1AAAA5gAAAK8AAAACAAAABgAAAA4AAAAAAAAAJQAAAOAAAAC1AAAADwAAAAAAAAAAAAAASwAAAPMAAACIAAAAAAAAAAkAAAAAAAAABgAAAAMAAAC8AAAAzgAAACQAAAAAAAAAAAAAAEAAAADuAAAAnAAAAAAAAAALAAAACgAAAAMAAAARAAAAzwAAAMEAAAAXAAAAAAAAAAAAAAAUAAAArwAAAOMAAAA8AAAAAAAAAAgAAAAAAAAAYQAAAP8AAAB+AAAAAgAAAAAAAAAEAAAAAQAAAHwAAAD/AAAAzAAAAG4AAABZAAAAggAAAOMAAAD/AAAASgAAAAAAAAAFAAAAAAAAAFIAAADlAAAAygAAAMYAAAD/AAAA+AAAAP8AAAC8AAAA3AAAAMoAAAApAAAAAAAAADoAAADjAAAAyQAAACEAAAAuAAAAeAAAAH8AAABqAAAAIQAAAD8AAADqAAAAvQAAAB4AAAA4AAAAhQAAADoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAWQAAAIUAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20.................%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20.................%0Avar%20array%20%3D%20%5B%22%A4%22%2C%20%22%A6%22%2C%20%22%A7%22%2C%20%22@%22%2C%20%22%A9%22%2C%20%22%AB%22%2C%20%22%BB%22%2C%20%22%AC%22%2C%20%22%AE%22%2C%20%22%B0%22%2C%20%22%B1%22%2C%20%22%B5%22%2C%20%22%B6%22%2C%20%22%u2014%22%2C%20%22%u2018%22%2C%20%22%u2019%22%2C%20%22%u201C%22%2C%20%22%u201D%22%2C%20%22%u2022%22%2C%20%22%u2030%22%2C%20%22%u2039%22%2C%20%22%u203A%22%2C%20%22%u2122%22%5D%3B%20%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28symbol%29%3D%3E%20%7B%20%0A%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20symbol%29%3B%0A%20%20%20mItem.style.fontSize%20%3D%20%2216px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20menuPopup.appendChild%28mItem%29%3B%0A%7D%29%3B%0A%20%20%20%0A%0A//%20%u0421%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20.................%0AmenuPopup.addEventListener%28%22click%22%2C%20e%3D%3E%20%7B%0A%20%20%20var%20text%20%3D%20e.target.label%3B%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Ci.nsICommandController%29%3B%0A%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%20%0A%7D%2C%20false%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши ................. this._handleClick =()=> menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); // Создать меню ................. var array = ["¤", "¦", "§", "@", "©", "«", "»", "¬", "®", "°", "±", "µ", "¶", "—", "‘", "’", "“", "”", "•", "‰", "‹", "›", "™"]; var menuPopup = self.appendChild(document.createElement("menupopup")); array.forEach((symbol)=> { var mItem = document.createElement("menuitem"); mItem.setAttribute("label", symbol); mItem.style.fontSize = "16px"; // размер шрифта menuPopup.appendChild(mItem); }); // Ставить текст в текстовое поле ................. menuPopup.addEventListener("click", e=> { var text = e.target.label; var cmd = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(cmd); var controller = controller.QueryInterface(Ci.nsICommandController); var params = Cc["@mozilla.org/embedcomp/command-params;1"].createInstance(Ci.nsICommandParams); params.setStringValue("state_data", text); controller.doCommandWithParams(cmd, params); }, false); |
bunda1 > 11-05-2013 14:10:40 |
Текстовые смайлы 2( Firefox20+ ) от 11.01.2015. Пример как добавлять или удалять смайлики:
Нажать Ok или Сохранить Можно менять величину шрифта меню или подменю: В коде инициализации меняем или вообще удаляем не оставляя пустую строку: Скриншот меню кнопки ЛКМ => Показать меню. Текстовые смайлы 2 - kод кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0422%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0435%20%u0441%u043C%u0430%u0439%u043B%u044B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAi9JREFUeJyVk8tLVHEUxz+/e2dGzWlCp2wxQykyiwQlw0JbhFJBEIEugqB90L5NLnr9A+3b1KZcxeiuxYTUoskQLc1ZJGXYSBk+ynnPvfecFlPqnaDHd3P48X2cc35wjKriw8KRHkzotmL3KXZc1UO9ShatTCOVm4HeT3O75cYXkDmaxNjDVJfB2wT1fhI2YsK4JoqqM95wbHnEH5C91kju2SLuWpzqR/4EhyiuNGVzbjzRNpAuWwBspcb+xQwQZB2bfDxsvR+rTZDpOw7yiuLMX827UXD2oyon7FtXWx/grHQiRR5OJrh+vx+Ano4Nn6GeMwgitFtqNXXhbQLwaDKxU8MnfQH1XMCq4IrpslQ19uu3Lw8t1uqFA9A84Auo54xRRCRm3Le9apdnd5TNA7Xu+RdQSPsXr+M2cnswzlx3NlDNxMDjf6Bq2MyHViy8fEZMeJtIzcaZSHf8ZphId3A32bP9rroWtnEzASE4KiZ6NqTfawGvY8wvRUm9SdB9OAvA/FIrH75E6O6sQuQcbD2hWDaIeKNGVanMHEpaWhwOsk6hHODe0/OkphzfBGf6G7hyqZ1me4XC58dUHRlvGZQRo6psTJ9ubNJ3izb5eMj6BqaBr84Qq4XaKgejQdqiQSgtUFx7TqlUyq6ua6LropZ9x1Scakuq6nDIyhOwKpjAXrAjqBqcSp5CIQd44y2DUndMu1B8ua9bhDsi2ueJxlUEY9ysQaYt492InJL53fofa8ocVmP9V6MAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0412%u0435%u0440%u0441%u0438%u044F%3A%2011.01.2015.%20.................%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20.................%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%20.................%0Avar%20array%20%3D%20%5B%20%0A%20%20%20%20%20%20%20%5B%20%0A%20%20%20%20%20%20%20%22%u042D%u043C%u043E%u0446%u0438%u044F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%29%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%28%20%20%u0433%u0440%u0443%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%7C%20%20%u0437%u0430%u0434%u0443%u043C%u0447%u0438%u0432%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-D%20%20%u0441%u043C%u0435%u0445%22%2C%0A%20%20%20%20%20%20%20%20%20%22X-D%20%20%u0441%u043C%u0435%u0445%20%u0441%20%u0437%u0430%u0436%u043C%u0443%u0440%u0435%u043D%u043D%u044B%u043C%u0438%20%u0433%u043B%u0430%u0437%u0430%u043C%u0438%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-C%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u043E%u0433%u043E%u0440%u0447%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-/%20%20%u043D%u0435%u0434%u043E%u0432%u043E%u043B%u044C%u0441%u0442%u0432%u043E/%u043E%u0437%u0430%u0434%u0430%u0447%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%5C%5C%20%20%u043D%u0435%u0434%u043E%u0432%u043E%u043B%u044C%u0441%u0442%u0432%u043E/%u043E%u0437%u0430%u0434%u0430%u0447%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A-0%20%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%20%0A%20%20%20%20%20%20%20%20%20%228-O%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3D-O%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A-%5B%20%5D%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A-%5B%20%20%u0441%u043C%u0443%u0449%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%250%20%20%u0441%u0431%u0438%u0442%20%u0441%20%u0442%u043E%u043B%u043A%u0443%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3E%3A-D%20%20%u0437%u043B%u043E%u0440%u0430%u0434%u043D%u044B%u0439%20%20%u0441%u043C%u0435%u0445%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%7D%3A-%3E%20%20%u043A%u043E%u0432%u0430%u0440%u043D%u0430%u044F%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%5D%3A-%3E%20%20%u043A%u043E%u0432%u0430%u0440%u043D%u0430%u044F%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A%27-%29%20%20%u0441%u0438%u043B%u044C%u043D%u044B%u0439%20%u0441%u043C%u0435%u0445%28%u0434%u043E%20%u0441%u043B%u0451%u0437%29%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A%27-D%20%20%u0441%u0438%u043B%u044C%u043D%u044B%u0439%20%u0441%u043C%u0435%u0445%28%u0434%u043E%20%u0441%u043B%u0451%u0437%29%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22D-%3A%20%20%u0441%u0438%u043B%u044C%u043D%u0430%u044F%20%u0437%u043B%u043E%u0441%u0442%u044C%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22/%3A-%28%20%20%AB%u0435%u0434%u0435%u0442%20%u043A%u0440%u044B%u0448%u0430%BB%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22/%3A-%5D%20%20%AB%u0435%u0434%u0435%u0442%20%u043A%u0440%u044B%u0448%u0430%BB%22%0A%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%22%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3B-%29%20%20%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-*%20%20%u0446%u0435%u043B%u043E%u0432%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A_%28%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A%7E%28%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A%27%28%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A*%28%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%7B%7D%20%20%u0441%u0442%u0440%u0430%u0441%u0442%u043D%u044B%u0439%20%u043F%u043E%u0446%u0435%u043B%u0443%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-@%20%20%u043A%u0440%u0438%u0447%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-X%20%20%u0440%u043E%u0442%20%u043D%u0430%20%u0437%u0430%u043C%u043A%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%21%20%20%u043E%u0442%u0432%u0440%u0430%u0449%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-P%20%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u044F%u0437%u044B%u043A%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-p%20%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u044F%u0437%u044B%u043A%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3Alol%3A%20%20%u0433%u0440%u043E%u043C%u043A%u0438%u0439%20%u0441%u043C%u0435%u0445%22%2C%0A%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%22%u041F%u0435%u0440%u0441%u043E%u043D%u0430%u0436%22%2C%0A%20%20%20%20%20%20%20%20%20%228-%29%20%20%u0447%u0435%u043B%u043E%u0432%u0435%u043A%20%u0432%20%u043E%u0447%u043A%u0430%u0445%22%2C%0A%20%20%20%20%20%20%20%20%20%22B-%29%20%20%u0447%u0435%u043B%u043E%u0432%u0435%u043A%20%u0432%20%u043E%u0447%u043A%u0430%u0445%22%2C%0A%20%20%20%20%20%20%20%20%20%22O%3A-%29%20%20%u0430%u043D%u0433%u0435%u043B%22%2C%0A%20%20%20%20%20%20%20%20%20%22%25%29%20%20%u0441%u0443%u043C%u0430%u0441%u0448%u0435%u0434%u0448%u0438%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A*%29%20%20%u043F%u044C%u044F%u043D%u044B%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22/b/%20%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5C%5Co/%20%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%u0413%u0433Y%20%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%7B%3A%u20AC%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3AE%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3B%2C%3B%29%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22*%3AO%29%20%20%u043A%u043B%u043E%u0443%u043D%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-E%20%20%u043E%u0441%u043A%u0430%u043B%u0435%u043D%u043D%u044B%u0439%20%20%u0432%u0430%u043C%u043F%u0438%u0440%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-F%20%20%u0432%u0430%u043C%u043F%u0438%u0440%20%u0431%u0435%u0437%20%u043A%u043B%u044B%u043A%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A%3A-%29%20%20%u043C%u0443%u0442%u0430%u043D%u0442/%u043F%u0440%u0438%u0448%u0435%u043B%u0435%u0446%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5B%3A%5D%20%20%u0440%u043E%u0431%u043E%u0442%22%2C%0A%20%20%20%20%20%20%20%20%20%22-%3D%3C%3A-%29%20%20%u0432%u043E%u043B%u0448%u0435%u0431%u043D%u0438%u043A%22%2C%0A%20%20%20%20%20%20%20%20%20%22%2C%u2019-/%20%20%u043A%u0438%u0442%u0430%u0435%u0446%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3C%7C-%29%20%20%u043A%u0438%u0442%u0430%u0435%u0446%22%2C%0A%20%20%20%20%20%20%20%20%20%22%u043E-%29%20%20%u0446%u0438%u043A%u043B%u043E%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22O-%29%20%20%u0446%u0438%u043A%u043B%u043E%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%5D%5B%20%20%u0447%u0435%u0440%u0435%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%3F%20%20%u043A%u0443%u0440%u044F%u0449%u0438%u0439%20%u0442%u0440%u0443%u0431%u043A%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%u042D%3A-%29%20%20%u043E%u043B%u0435%u043D%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3C3%20%20%u0441%u0435%u0440%u0434%u0446%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22@%7D-%3E--%20%20%u0440%u043E%u0437%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5C%5Cm/%20%20%u043A%u043E%u0437%u0430%20%28%u0436%u0435%u0441%u0442%29%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5C%5Cm/_%20%20%u043A%u043E%u0437%u0430%20%28%u0436%u0435%u0441%u0442%29%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5B%3A%7C%7C%7C%3A%5D%20%20%u0431%u0430%u044F%u043D%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5B%3A%5D/%5C%5C/%5C%5C/%5C%5C%5B%3A%5D%20%20%u0431%u0430%u044F%u043D%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5B%3A%5D%7C%7C%7C%5B%3A%5D%20%20%u0431%u0430%u044F%u043D%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28_%21_%29%20%20%u0437%u0430%u0434%u043D%u0438%u0446%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%29%28%29%20%20%u0437%u0430%u0434%u043D%u0438%u0446%u0430%22%2C%0A%20%20%20%20%20%20%20%5D%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28arr%29%3D%3E%20%7B%0A%20%20%20var%20menu%2C%20subMenu%2C%20subMenuItem%3B%20%20%0A%20%20%20menu%20%3D%20document.createElement%28%22menu%22%29%3B%0A%20%20%20subMenu%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%20%20%20%20%20%0A%20%20%20arr.forEach%28%28smile%2Ci%29%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%20i%20%3D%3D%200%20%29%20return%3B%0A%20%20%20%20%20%20subMenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20subMenuItem.setAttribute%28%22label%22%2C%20smile%29%3B%0A%20%20%20%20%20%20subMenuItem.style.fontSize%20%3D%20%2214px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%0A%20%20%20%20%20%20subMenu.appendChild%28subMenuItem%29%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20menu.appendChild%28subMenu%29%3B%0A%20%20%20menu.setAttribute%28%22label%22%2C%20arr%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20menu.style.fontSize%20%3D%20%2212px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043C%u0435%u043D%u044E%0A%20%20%20menuPopup.appendChild%28menu%29%3B%0A%7D%29%3B%0AmenuPopup.addEventListener%28%22click%22%2C%20e%3D%3E%20insertText%28e.target.label.split%28%22%20%20%22%29%5B0%5D%29%20%29%3B%0A%20%0A%0A//%20%u0421%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043C%u0430%u0439%u043B%u0438%u043A%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20.................%0Afunction%20insertText%28smile%29%20%7B%20%20%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Ci.nsICommandController%29%3B%0A%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20params.setStringValue%28%22state_data%22%2C%20smile%29%3B%0A%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%20%20%20%20%20%20%20%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E ЛКМ => Показать меню. Текстовые смайлы (Азия)2 - kод кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0422%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0435%20%u0441%u043C%u0430%u0439%u043B%u044B%20%28%u0410%u0437%u0438%u044F%29%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAi9JREFUeJyVk8tLVHEUxz+/e2dGzWlCp2wxQykyiwQlw0JbhFJBEIEugqB90L5NLnr9A+3b1KZcxeiuxYTUoskQLc1ZJGXYSBk+ynnPvfecFlPqnaDHd3P48X2cc35wjKriw8KRHkzotmL3KXZc1UO9ShatTCOVm4HeT3O75cYXkDmaxNjDVJfB2wT1fhI2YsK4JoqqM95wbHnEH5C91kju2SLuWpzqR/4EhyiuNGVzbjzRNpAuWwBspcb+xQwQZB2bfDxsvR+rTZDpOw7yiuLMX827UXD2oyon7FtXWx/grHQiRR5OJrh+vx+Ano4Nn6GeMwgitFtqNXXhbQLwaDKxU8MnfQH1XMCq4IrpslQ19uu3Lw8t1uqFA9A84Auo54xRRCRm3Le9apdnd5TNA7Xu+RdQSPsXr+M2cnswzlx3NlDNxMDjf6Bq2MyHViy8fEZMeJtIzcaZSHf8ZphId3A32bP9rroWtnEzASE4KiZ6NqTfawGvY8wvRUm9SdB9OAvA/FIrH75E6O6sQuQcbD2hWDaIeKNGVanMHEpaWhwOsk6hHODe0/OkphzfBGf6G7hyqZ1me4XC58dUHRlvGZQRo6psTJ9ubNJ3izb5eMj6BqaBr84Qq4XaKgejQdqiQSgtUFx7TqlUyq6ua6LropZ9x1Scakuq6nDIyhOwKpjAXrAjqBqcSp5CIQd44y2DUndMu1B8ua9bhDsi2ueJxlUEY9ysQaYt492InJL53fofa8ocVmP9V6MAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0412%u0435%u0440%u0441%u0438%u044F%3A%2011.01.2015.%20.................%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20.................%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%20.................%0Avar%20array%20%3D%20%5B%20%0A%20%20%20%20%20%20%20%5B%20%0A%20%20%20%20%20%20%20%22%u042D%u043C%u043E%u0446%u0438%u044F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28n_n%29%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E_%5E%29%20%20%u0440%u0430%u0434%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3C_%3E%29%20%20%u0433%u0440%u0443%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28v_v%29%20%20%u0433%u0440%u0443%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E%20%5E%29%20%20%u0443%u043B%u044B%u0431%u043A%u0430%20%u0447%u0435%u0440%u0435%u0437%20%u0441%u0438%u043B%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3E_%3C%29%20%20%u0437%u043B%u043E%u0441%u0442%u044C/%u043A%u0430%u0442%u0435%u0433%u043E%u0440%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3E_%3E%29%20%20%u0441%u043A%u0435%u043F%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3C_%3C%29%20%20%u0441%u043A%u0435%u043F%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-%A8%29%20%20%u0441%u043A%u043E%u043D%u0444%u0443%u0436%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5E_%5E%A8%20%20%u0441%u043C%u0443%u0449%u0451%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22*%5E_%5E*%20%20%u0441%u043C%u0443%u0449%u0435%u043D%u043D%u043E%u0441%u0442%u044C%20%u0441%20%u043F%u043E%u043A%u0440%u0430%u0441%u043D%u0435%u043D%u0438%u0435%u043C%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%28-_-%23%29%20%20%u044F%u0440%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-%A4%29%20%20%u044F%u0440%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-+%29%20%20%u044F%u0440%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28o_o%29%20%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%280_0%29%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28O_o%29%20%20%u043E%u0447%u0435%u043D%u044C%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28o_O%29%20%20%u043E%u0447%u0435%u043D%u044C%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28V_v%29%20%20%u043D%u0435%u043F%u0440%u0438%u044F%u0442%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28@_@%29%20%20%u043E%u0431%u0430%u043B%u0434%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%25_%25%29%20%20%u0443%u0441%u0442%u0430%u043B%u043E%u0441%u0442%u044C%20%u0433%u043B%u0430%u0437%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28u_u%29%20%20%u0434%u0435%u043F%u0440%u0435%u0441%u0441%u0438%u044F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3Ex%3C%21%29%20%20%u0447%u0435%u0440%u0442%21%22%2C%0A%20%20%20%20%20%20%20%20%20%228%28%3E_%3C%29%20%20%u0432%u0440%u0435%u0432%u043D%u0438%u0432%u044B%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3E%3E%29%20%20%u043A%u043E%u0441%u043E%u0439%20%u0432%u0437%u0433%u043B%u044F%u0434%2C%20%u043D%u0435%u0434%u043E%u0432%u0435%u0440%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%280_%3C%29%20%20%u043D%u0435%u0440%u0432%u043D%u044B%u0439%20%u0442%u0438%u043A%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28*_*%29%20%20%u0444%u0430%u043D%u0430%u0442%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22-__-%20%20%u0444%u043B%u0435%u0433%u043C%u0430%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C/%AB%u043C%u0434%u0430-%u0430-%u0430%u2026%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%289_9%29%20%20%u043D%u0435%20%u0441%u043F%u0430%u043B%20%u0432%u0441%u044E%20%u043D%u043E%u0447%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3D__%3D%20%20%u0441%u043E%u043D%u043D%u044B%u0439%20%u0438%u043B%u0438%20%AB%u0434%u043E%u0441%u0442%u0430%u043B%u0438%u2026%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-.-%29%20%20Zzz.%u0441%u043F%u044F%u0449%u0438%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-%29%20%20Zzz.%u0441%u043F%u044F%u0449%u0438%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-%3B%29%20%20%u0431%u043E%u043B%u0435%u0437%u043D%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%u0425_%u0445%29%20%20%u0442%u0440%u0443%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28+_+%29%20%20%u0442%u0440%u0443%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%u0445_%u0445%29%20%20%u0442%u0440%u0443%u043F%22%0A%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%22%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E_%7E%29%20%20%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E_-%29%20%20%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3B_%3B%29%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28T_T%29%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28TT.TT%29%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28ToT%29%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22Q__Q%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3DX%3D%20%20%u0440%u0443%u043A%u043E%u043F%u043E%u0436%u0430%u0442%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5E%7D%7B%5E%20%20%u043B%u044E%u0431%u043E%u0432%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E3%5E%29%20%20%u043F%u043E%u0446%u0435%u043B%u0443%u0439%22%0A%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%22%u041F%u0435%u0440%u0441%u043E%u043D%u0430%u0436%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3D%5E.%5E%3D%29%20%20%u043A%u043E%u0448%u043A%u0430%28%u043D%u044F%29%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3D%5E_%5E%3D%20%20%u043A%u043E%u0448%u043A%u0430%28%u043D%u044F%29%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28O%2Co%29%20%20%u0441%u043E%u0432%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5E..%5E%20%20%u0441%u0432%u0438%u043D%u044C%u044F%22%2C%0A%20%20%20%20%20%20%20%20%20%22///_%u0422%20%20%u044D%u043C%u043E-%u043A%u0438%u0434%22%2C%0A%20%20%20%20%20%20%20%20%20%22T_%5C%5C%5C%5C%5C%5C%20%20%u044D%u043C%u043E-%u043A%u0438%u0434%22%2C%0A%20%20%20%20%20%20%20%20%20%22///_%5E%20%20%u044D%u043C%u043E-%u043A%u0438%u0434%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5E_%5C%5C%5C%5C%5C%5C%20%20%u044D%u043C%u043E-%u043A%u0438%u0434%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%A8%5C%5C%28%u043E_%u041E%29/%A8%29%20%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28jIj%29%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3B%2C%3B%29%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28o%2C.%2CO%29%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22Y%28O%2C%2C%2C%2CO%29Y%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28x%28x_%28x_x%28%u041E_%u043E%29x_x%29_x%29x%29%20%20%u0436%u0438%u0432%u043E%u0439%20%u0441%u0440%u0435%u0434%u0438%20%u0437%u043E%u043C%u0431%u0438%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-%28-_%28-_-%28%u041E_%u043E%29-_-%29_-%29-%29%20%20%u043F%u0440%u043E%u0441%u043D%u0443%u043B%u0441%u044F%20%u0432%20%u043C%u0435%u0442%u0440%u043E%22%2C%0A%20%20%20%20%20%20%20%20%20%22@-_-@%20%20%u043E%u0432%u0435%u043D%2C%20%u0431%u0430%u0440%u0430%u0448%u043A%u0430%22%0A%20%20%20%20%20%20%20%5D%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28arr%29%3D%3E%20%7B%0A%20%20%20var%20menu%2C%20subMenu%2C%20subMenuItem%3B%20%20%0A%20%20%20menu%20%3D%20document.createElement%28%22menu%22%29%3B%0A%20%20%20subMenu%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%20%20%20%20%20%0A%20%20%20arr.forEach%28%28smile%2Ci%29%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%20i%20%3D%3D%200%20%29%20return%3B%0A%20%20%20%20%20%20subMenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20subMenuItem.setAttribute%28%22label%22%2C%20smile%29%3B%0A%20%20%20%20%20%20subMenuItem.style.fontSize%20%3D%20%2214px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%0A%20%20%20%20%20%20subMenu.appendChild%28subMenuItem%29%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20menu.appendChild%28subMenu%29%3B%0A%20%20%20menu.setAttribute%28%22label%22%2C%20arr%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20menu.style.fontSize%20%3D%20%2212px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043C%u0435%u043D%u044E%0A%20%20%20menuPopup.appendChild%28menu%29%3B%0A%7D%29%3B%0AmenuPopup.addEventListener%28%22click%22%2C%20e%3D%3E%20insertText%28e.target.label.split%28%22%20%20%22%29%5B0%5D%29%20%29%3B%0A%20%0A%0A//%20%u0421%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043C%u0430%u0439%u043B%u0438%u043A%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20.................%0Afunction%20insertText%28smile%29%20%7B%20%20%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Ci.nsICommandController%29%3B%0A%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20params.setStringValue%28%22state_data%22%2C%20smile%29%3B%0A%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%20%20%20%20%20%20%20%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Тут другой аналогичный и действующих вариант этих кнопок 11-05-2013 13:28:43 |
bunda1 > 12-05-2013 17:07:47 |
BBCode( Firefox ) от 12.05.2013. Скриншот меню кнопки: ЛКМ => Открыть меню с BB кодами. Код кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EBBCode%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACS0lEQVR4XpWTS4iSURTHj2/F8oFP1JIWQyZmBm3STavZjIuhTdHKaVMMzMZNLWtRFNGmgWJaTJS0qoEpJEgMA8FVCydRfBvoQgJzhoFCEW//e8fvcyaYRQd+fF7O+6GC/k+UgOVypLqiIxNp6b7yGMMTkKDVar2s1WrP4q0BxuWrN96+e7X2eeGPYnOsp7uko/0jXkaj8XwikdhIp9PdarU6LpfLk+3t7VE8Hv/u9/uzS/FlVsi9YR/fr/+8uUQhuMw7iEQiq/l8fn88HrN+v8+KxSJKzTEEY6lUikHPePkGg4md9i985VWSFCEYDK5sbW1tmkwm6na7NBwOaXd3V2Y0GlEmk6FCoSDlWwUvAKnBmWQy+Wg6ndLOzs4Rx729PZlOp0OH5DZ4DX4rA4HAda/X6+TO7XabG0rIb7RDaIsUCoUAEgaLgJSQRW7YarUEzWaTf2UqlQo1Gg1ijNE/EhMBoDyVzWbljEA41Ot1Qa/Xo8lkQhARRK1Wk8FgIIgPCPmm0WiYx+NhPp+P2Ww2ptfrGUrlKWVUKhXDmpnL5RJ20G9IW3gG1ugYQYuk0+kIzgKz2Sy2UqvVbkH9kl/iB8DAfEhzR+GAqgQOh0N8sZVfMMlKt/0FrANZcL7Eb8Jut5PT6RSOKJ3QJg0GA76RJzBrSwG43AOfZn8CbizjdrsJayaLxSI2VCqVnsPsMZDFAELgEniIKf/gAw2HwywajbJYLMZCodAUrVShvwMuAAeQRQFOAg/wgotgBbN4AJ7OqrsGzgEnsAG15PwXcMcNgug5BPIAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0412%u0435%u0440%u0441%u0438%u044F%3A%20%u043E%u0442%2012.05.2013.%20.................%20%0A%0Aconst%20data%20%3D%20this.Help.split%28%22%5Cn%22%29%3B%0A%0Aconst%20names%20%3D%20%5B%22menupopup%22%2C%20%22hbox%22%2C%20%22popupset%22%2C%20%22button%22%5D%3B%0Aconst%20btnAttrs%20%3D%20%5B%22label%22%2C%20%22tooltiptext%22%2C%20%22value1%22%2C%20%22value2%22%2C%20%22popup%22%2C%20%22image%22%5D%3B%0Aconst%20prefixId%20%3D%20%22CB-BBCode-node%22%3B%0Aconst%20button%20%3D%20this%3B%0A%0Afunction%20rep%28str%29%20%7B%20return%20str.replace%28/%25dot%25/g%2C%20%22.%22%29.replace%28/%25sym%25/g%2C%20%22%7C%22%29%3B%20%7D%0A%20%0Adata.forEach%28function%28str%29%20%7B%0A%09if%20%28%21str%29%20return%3B%0A%09var%20nm%20%3D%20str.split%28%22.%22%29.map%28rep%29%3B%0A%0A%09var%20name%20%3D%20names%5Bnm%5B0%5D%5D%3B%0A%09var%20id%20%3D%20parseInt%28nm%5B1%5D%29%20%26%26%20%28prefixId%20+%20nm%5B1%5D%29%3B%0A%09var%20parent%20%3D%20document.getElementById%28prefixId%20+%20nm%5B2%5D%29%20%7C%7C%20button%3B%0A%09var%20attrs%20%3D%20nm%5B3%5D%20%3F%20nm%5B3%5D.split%28%22%7C%22%29.map%28rep%29%20%3A%20%5B%5D%3B%0A%0A%09var%20node%20%3D%20document.createElement%28name%29%3B%0A%09if%20%28id%29%20node.id%20%3D%20id%3B%0A%09if%20%28name%20%3D%3D%20%22button%22%29%20%7B%0A%09%09btnAttrs.forEach%28function%28attr%2C%20i%29%20%7B%20attrs%5Bi%5D%20%26%26%20node.setAttribute%28attr%2C%20%28%28attr%20%3D%3D%20%22label%22%29%20%3F%20%22%20%22%20%3A%20%22%22%29%20+%20attrs%5Bi%5D%29%20%7D%29%3B%0A//%09%09node.setAttribute%28%22height%22%2C%20%228px%22%29%3B%0A%09%09var%20p%20%3D%20node.getAttribute%28%22popup%22%29%3B%0A%09%09p%20%26%26%20node.setAttribute%28%22popup%22%2C%20prefixId%20+%20p%29%3B%0A%09%7D%20else%20%7B%0A%09%09if%20%28name%20%3D%3D%20%22menupopup%22%29%20node.setAttribute%28%22style%22%2C%20%22-moz-appearance%3A%20none%3B%20border%3A%201px%20solid%20gray%22%29%3B%0A%09%09attrs.forEach%28function%28str%29%20%7B%0A%09%09%09var%20a%20%3D%20str.split%28%22%3D%22%29%3B%0A%09%09%09node.setAttribute%28a%5B0%5D%2C%20a%5B1%5D%29%3B%0A%09%09%7D%29%3B%0A%09%7D%0A%09parent.appendChild%28node%29%3B%0A%7D%29%3B%0Avar%20popup%20%3D%20document.getElementById%28prefixId%20+%201%29%3B%0Apopup.setAttribute%28%22oncommand%22%2C%20%27document.getElementById%28%22%27%20+%20button.id%20+%20%27%22%29.handleClick%28event%29%27%29%3B%0A%0Aconst%20btnIdPrefix%20%3D%20%22cb-bbcode-button-%22%3B%0Aconst%20mid%20%3D%20%22%20%3E%20.box-inherit.button-box%20%3E%20.button-icon%20%7B%20background-color%3A%20%22%3B%0Aconst%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Aconst%20type%20%3D%20sss.USER_SHEET%3B%0Avar%20mp%20%3D%20document.getElementById%28prefixId%20+%207%29%3B%0Avar%20style%20%3D%20%22%22%3B%0AArray.slice%28mp.children%29.forEach%28function%28btn%29%20%7B%0A%09btn.setAttribute%28%22image%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAIA4AAAEAIABgBwAAFgAAACgAAAAgAAAAHAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAH////5////+f////n////5////+f////n////5////+f////n////5////+f////gAAAAA%3D%22%29%3B%0A%09btn.setAttribute%28%22value1%22%2C%20%22color%22%29%3B%0A%09var%20color%20%3D%20btn.getAttribute%28%22value2%22%29%3B%0A%09btn.id%20%3D%20btnIdPrefix%20+%20color.substring%281%29%3B%0A%09style%20+%3D%20%22%23%22%20+%20btn.id%20+%20mid%20+%20color%20+%20%22%20%21important%3B%20%7D%5Cn%22%0A%7D%29%3B%0Avar%20cssURI%3B%0AsetTimeout%28function%28%29%20%7B%0A%09cssURI%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28style%29%2C%20null%2C%20null%29%3B%0A%09if%20%28%21sss.sheetRegistered%28cssURI%2C%20type%29%29%20sss.loadAndRegisterSheet%28cssURI%2C%20type%29%3B%0A%7D%2C%201000%29%3B%0A%0Avar%20hbox%20%3D%20document.getElementById%28prefixId%20+%202%29%3B%0Athis.handleClick%20%3D%20function%28evt%29%20%7B%0A%0A%09var%20node%20%3D%20evt.target%3B%0A%09if%20%28node.nodeName%20%21%3D%20%22button%22%20%7C%7C%20node.parentNode%20%3D%3D%20hbox%29%20return%3B%0A%0A%09var%20v1%20%3D%20node.getAttribute%28%22value1%22%29%3B%0A%09var%20v2%20%3D%20node.getAttribute%28%22value2%22%29%3B%0A%09if%20%28v2%29%20v2%20%3D%20%22%3D%22%20+%20v2.replace%28%22%25clipboard%25%22%2C%20gClipboard.read%28%29%29%3B%0A%0A%09var%20bb1%20%3D%20%22%5B%22%20+%20v1%20+%20%28v2%20%7C%7C%20%22%22%29%20+%20%22%5D%22%3B%0A%09var%20bb2%20%3D%20%22%5B/%22%20+%20v1%20+%20%22%5D%22%3B%0A%0A%09var%20box%20%3D%20content.document.activeElement%3B%0A%09var%20txt%20%3D%20box.value%3B%0A%0A%09var%20s%20%3D%20box.selectionStart%3B%0A%09var%20e%20%3D%20box.selectionEnd%3B%0A%0A%09var%20bef%20%3D%20txt.substring%280%2C%20s%29%3B%0A%09var%20mid%20%3D%20txt.substring%28s%2C%20e%29%3B%0A%09var%20aft%20%3D%20txt.substring%28e%29%3B%0A%0A%09var%20ins%20%3D%20bb1.replace%28/%25copy%25%7C%25move%25/%2C%20mid%29%20+%20%28v2%20%3D%3D%20%22%3D%25move%25%22%20%3F%20%22%22%20%3A%20mid%29%20+%20bb2%3B%0A%09var%20val%20%3D%20bef%20+%20ins%20+%20aft%3B%0A%0A%09box.value%20%3D%20val%3B%0A%09box.selectionStart%20%3D%20s%3B%0A%09box.selectionEnd%20%3D%20s%20+%20ins.length%3B%0A//%09box.focus%28%29%3B%0A%7D%0Abutton.onclick%20%3D%20function%28e%29%20%7B%0A%09if%20%28%21e.button%29%20document.getElementById%28prefixId%20+%201%29.openPopup%28button%29%3B%0A%7D%3B%0Abutton.onDestroy%20%3D%20function%28reason%29%20%7B%0A%20%20%20%20if%20%28reason%20%3D%3D%20%22update%22%20%7C%7C%20reason%20%3D%3D%20%22delete%22%29%0A%20%20%20%20%20%20%20%20if%20%28cssURI%20%26%26%20sss.sheetRegistered%28cssURI%2C%20type%29%29%20sss.unregisterSheet%28cssURI%2C%20type%29%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B0.1.0.position%3Dafter_start%7Concontextmenu%3Devent%25dot%25preventDefault%28%29%3B%0A1.2.1%0A%0A3.3.2.BBCode%7CSpaces%20to%20Add%7C%7C%7C5%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEACQkAAAEAIACQAQAAFgAAACgAAAAJAAAAEgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/87W1v8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAKxBjACsQYwArEGMAKxBgICsQYwArEGMAKxBjACsQQCArEE%3D%0A2.4.2%0A0.5.4.position%3Dafter_start%0A%0A3.0.2.Colors%7CColors%7C%7C%7C7%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAC4jAAAuIwF4pT92AAADzUlEQVR42jWTa0yTdxjF/yAXleDMmEYSN7PFLEv8MDYyTZaNgZrFhMzEZGbGLUFL71x6fdtSSi/0AkihdIAiFxUvWIcilw2l4FwkQxiZkC7MC0YYblBGdFkBkfZ9/2dvzfhwnufL83tyPpxDrFYrsVgshN/xdrudaLVakp+fnycU5PR/nSOYOiLTBb8SyCeEMolDrVYSk8nE35vj/2fIGhxjNpuJWq3+UCKR9ObJZYsKjZE7WVVO+zzKif5z314o1ZlGVGq931Zq22212gh/HxNlo3BcFJbLZMekUukyo1Gh2OLC4DUzZbtTKTqTn6H/jcBcfcKg6/NtSwcyMl/oGU2e3eGMPoklUdsqleoTHg4XGQywWi3hlrMXabjnA+D6erADr4MdiQNm3gV7Oy5szyDYuS0VKumxdFupnRCNRpMklUiGGYaB0+kM19V60dF1gy517qVo30Q5/0ZKR99i2ZlqjovcBIaTVyW7YrDnvXfk7io3IWKRqKSwIP8Fb4d6vV7advE87b15C5OjPYj0pAFXCaX+WGA8m0YWFzhuTsw9LSUvcw9mpzvKywmR5xUUqRl9yOV0oKWpkevu7sbw3SE8mJxG8K9pLP/qRNifDjqQAgQOcRj5mMUVwv5s2feZxlJBiCLn8GuM8Mh9l9tLmy/4WH9fHw2Mj2H2zxksLa0gtArMBufxePwGHtw20yftWeHQlU0IFqUI1LYaQo5mpekq920O3Tdm0K56J9d76yeMPZqmswvPsbK8xCuE2bkgxn97hF7/XTS1dkRqKh1w64XtCqY4jogP7b9jytyKsCIZtDCFzjPpdOq8BX+MDWL2eQjBhWd48ngSo6O/4Ifvu+iZlibO6aqghRoDpFKJkzCCw3eO79nOTgjXB2nNm4BiC4U4kbLyJPqv5yB+vzeEkXsBDPT3wefz0bq6OmqzWqhSUUhFIlErcZdojx/9dNdKTWbCEM7FP+VqtyBi2M5x6lRAvA6Lxe+jr/MafN+108aGBpSXlbEGvZ6VyWTLYrE4i1RVe0htmbkj++2NuPRl0hQuE4pWXmWERkoSAA2hAed+6jl1BhUuJ1dsNK7yXQEPe191gdFqY9su+3ZUmzUPD+xIxIm9CexDRxz3siGGopGXl9BJz25qKq1gi/Q6FPCwMDe3iw/eBpvNto7wI1Zv0BPe4tbrl5qvSrPTkJ+xGZVfJKLtG4IfmZ1ocBkgL1BCKhb/zVvXG41GstbiV4N/EqPTMeRkw2nCh+ij5lMn/PUebbDpdMk/dnflvEAkHRfmCpRKlWpDFOQVu1bn/wDzd1RKwhrzpQAAAABJRU5ErkJggg%3D%3D%0A2.6.2%0A0.7.6.position%3Dafter_start%7Cheight%3D350px%0A%0A3.0.2.Position%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u0438%20%u0432%u044B%u0440%u0430%u0432%u043D%u0438%u0432%u0430%u043D%u0438%u0435%7C%7C%7C9%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAC4jAAAuIwF4pT92AAAD2ElEQVR42l2Ra0xbdRiH/2PDS2b0g4l+nG4Rpw4ahYYs0xU/LJIZCBljczDHshnmZc4wJi3n3nPKpYUaNgOBArOlhRUmG90MAiqXcottBYGyMkYLLbJBNkAs0ts557XovrgPv/ze5E2ePG9exDH0DgVFIZNKlSBOOlfD87714LzbDwN93i4l/fIlJRWrZOmnaJaOfTJUdIc4mondAjSpVBJY8ISCy/Ow4RkH0drxyIrRL8gxBnEYjRiMQkqc+V84gkUoahAF0MikpBMivW3B1f5WeNR1FQLGb+7Xq8/Hf1GFJePVSilRUyxVVJPSwipMKq/CozMuvXD54ttRgyiAZpCRxCX+Bi7kq7wEM3npsJhzxMW0HtNUO4+CeeJc+IdZLe9Y7hYmV4aE3x7+wt9dHRHYcW4FcRQVq2CUyITLJQ/y0kMTh+Jh8tBuWMiSTWtNR0tv30kXOuyp4cYBGV9vTRN6prSCY/YaP+E2C+V21VIUQO6QK1lk/PqixJsqCU7nSkQfdUB8WJDquvLdEc300icwdjcbOsbSQWc9COU/74c222fQO05DyYhiDbFRAzmrQob8C5KF7MRND5nCLxsyeb8my4XVH8ar5k56jbbj9prBDJumJ81Od39gL+jLnFbb8zynB3PHUAlZuA3jKNT86WnJes4eWC3dD0L3MYDqw5sNpw68lKHPedbZEnfOY3lDPtu+r+CPm68r9NeS4z6sydt5vPbUTvQlrX8+r7T1ucrPi1+1pWcSfdkfEz25Z0lr2keFmiztiwSrexrGds+FfbsgMrIXoDMeVvTJKWxRCSrbeqPcNHWHvO6aO9v4+70T+glHfrPDobnZa2/ua7e1T1z36eoqCoPDe6wbzl38372vBQVLAu8xymRF0dczLLEdaW85A1e6p4CwjEJGnRUKWrqgud8Mo85K8C2WQ4uJ4wKd+/qD/W+Km5a9YdEsEb3GgzKMZBDLkDHI1Ov+85bDK3SM+sTavhnhvHlQYNssvOEnY6h1qEUwGMqYcOtb1kBTHGwa3onA7RPgbXo/BSdpxCqp7ejG8JLf5v5LGJlZ50c9fqHftSY0Drn5qu5fQ+ofHaC7WsHx379nDVnOQHigNAJj34LPJEvBiccArKQmkVLrkih1bRJZVpuk1OiSirUNSVxFXaKiTJ+sLi56JTKCjYv3OkV+tisM3g7R15Qiw3FqCxCDGApDNIkh5nG2ZoosirYCkQSByuivtgWdjdPgfwD8xgoPgUXwbZ2AE/8Z0IwyhonmyWYYJoagVTFqJv+ZwFDBsOg2r0VmTPfBdXnNp5e+ixPMvwb/AKyLUjULoolGAAAAAElFTkSuQmCC%0A2.8.2%0A0.9.8.position%3Dafter_start%0A%0A3.0.5.HypLink%7C%u0413%u0438%u043F%u0435%u0440%u0441%u0441%u044B%u043B%u043A%u0430%7Curl%7C%25move%25%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAKIAAGZmZgAAAP///8zMzP///////////////yH5BAEAAAQALAAAAAAQABAAAAMxSLrc/jBKCYK16lpAqhBDaH3hEHimpoqBEJhkWJkpq17iXFZnaXK8S0bDmRiPyGQyAQA7%0A3.0.5.Seltxtlink%7C%u0422%u0435%u043A%u0441%u0442%20%u0413%u0438%u043F%u0435%u0440%u0441%u0441%u044B%u043B%u043A%u043E%u0439%7Curl%7C%25clipboard%25%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAKIAAGZmZgAAAP///8zMzP///////////////yH5BAEAAAQALAAAAAAQABAAAAMxSLrc/jBKCYK16lpAqhBDaH3hEHimpoqBEJhkWJkpq17iXFZnaXK8S0bDmRiPyGQyAQA7%0A3.0.5.Post%20URL%7C%7Curl%7C%25copy%25%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAADIAAAAyAAAAWpKGc/+Mhmb/ipFq/4qXbv+ekXb/oI9+/wAAAFoAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAABaj35t/36CVv91l1z/d5lc/3ubX/+gnW//upx7/7aaff+ulnz/mYZy/wAAAFoAAAAyAAAAMgAAADIAAABaj3pl/519Wv+tkWf/r5dm/6+ZY/+4mmT/xJtq/8Kcbf/CnHL/t5pz/6WTcP+ZgWr/AAAAWgAAADIAAAAycDAgWpBrQ/+1jWH/wJRh/8aYXv/Jmlz/yptb/8KZWP9wj0D/gZJK/3mTTv94k1P/pYlm/5eBaf9wMCAycDAgMopoRP8AAP//AAD//wAA///LmlX/zZ1X/wAA///InFT/co02/wAA//9yizj/AAD//wAA//8AAP//AAD//83Btf8AAP//tYNI/8OPSP/Ll07/AAD//9KhWP8AAP//06NZ/9GgVf8AAP//upNG/wAA//+4jFP/pX9V/5eAaP+pmID/AAD//4aEMv/JlEr/0J9U/wAA///aq2H/AAD//4OXPv8AAP//1aVb/8+dU/8AAP//v41L/66CUf+FZUX/nYlq/wAA//9mgyj/zpxR/9eoXf8AAP//p6VR/wAA//8AAP//AAD//9yvZP/Vplv/AAD//8OORf+vgkr/hmM+/6aUef8AAP//hoo0/9OjWP/dsGX/AAD//2eXOv8AAP//6MN+/+a/dv8AAP//2q1i/wAA///GkUf/an4s/15iKv++sZ7/AAD//4qQPv/Wp1z/4bdt/wAA//9omkH/AAD//9jFg//qx4b/AAD//96zaP8AAP//x5JI/2d8K/9ZXyr/cDAgoQAA//+DnlX/2K1n/+S8c/8AAP//n7Nq/wAA//8AAP//AAD//+nFgf/htmv/AAD//56MO/9fdin/jnpg/3AwIDK7uKH/m7R+/8K5f//oxoj/7dKd/7HBhP92qmD/dKhd/7/Dhf/qy47/4rl0/9OlX/+sjEb/imQ3/3AwIDIAAAAAcDAgMsvDq//Wy6f/6dKn/6W+gv+Kt3j/i7l9/4q4ef+YuXr/zMWJ/8K2df+zpWT/rodY/5R/aP8AAAAAAAAAAAAAAABwMCAy4NG//+zav//Dz6b/pcaU/6DHlv+ew4//m72D/5e2eP+SrnH/pKJz/5J8Zf9wMCAyAAAAAAAAAAAAAAAAAAAAAHAwIDLWy77/59vH/9PXuP/B0Kj/tMia/7LDlP+3vZP/s6WJ/7Gklv9wMCAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAwIDLPxrz/yr2w/8Kzo//BtKb/cDAgWgAAAAAAAAAAAAAAAAAAAAAAAAAAAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBgAGsQcABrEHgA6xB+B+sQQ%3D%3D%0A3.0.5.BBCode%7C%u041F%u043E%u043B%u0443%u0436%u0438%u0440%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Cb%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAPcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAAQABAAAAg4AAMIHEiwoMGDCBMaBMCwIcOEDQVGPDhx4sKHASwWdKhxI8aOAytivAhA4kiCHEEqXMmypcuBAQEAOw%3D%3D%0A3.0.5.UnLiner%7C%u041F%u043E%u0434%u0447%u0451%u0440%u043A%u043D%u0443%u0442%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Cu%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAPcAAAAAAHt7ewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAQABAAAAg+AAUIHEiwoMGDBwEoBCBgIcOEDxtGNKhwYEWEFyUi1CgwI8WIHgtmDElQYQABAUiWdLix5UeHC13KnElTYEAAOw%3D%3D%0A3.0.5.StrikTh%7C%u0417%u0430%u0447%u0451%u0440%u043A%u043D%u0443%u0442%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Cs%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAaUlEQVR42ryTUQrAMAhD84r3v3L2Ndik63SF+SVS0jTPYls7NbRZkQfA2WZrSFJ2/OTAxdlUwOlWViJRfCqdEHmzfTtsW8AnlrbZxkjGcsE4C5YqRlXxRgFje5UzhaXgaHCnFOLvv/EYACqEIRcK3R/8AAAAAElFTkSuQmCC%0A3.0.5.Italic%7C%u041D%u0430%u043A%u043B%u043E%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Ci%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAPcAAAAAAHt7e4SEhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAMALAAAAAAQABAAAAgyAAcIHEiwoMGDCBMqBMCQoUKBDAU8HBDA4USGASZWBDBxAEaNFh9+XNgwZMeTKFMqDAgAOw%3D%3D%0A3.0.5.Quote%7C%u0426%u0438%u0442%u0430%u0442%u0430%7Cquote%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACCklEQVR42mL8//8/AyUAIICYGCgEAAFEsQEAAUSxAQABxAIiurq6OM+cOZPPx8fHaWZm1rp8+fLEDx8+aGVmZrZKSEgwT5s2rRPIFwKyj/38+fPbmzdvvHh5eV/v27cvGiCAwAY8fPgwfvfu3Q3e3t5Vx48fD7hy5UonNzf3opcvX34FSiuePHkyEGgAj6ys7P9v3759fPv2rSsPD88nkF6AAAJ7YceOHbFSUlLb+fn5Jx09ejRORkbmkomJSVVtbe1XZmZmVmBMMYLUsbOzf/n37x9YDysr63cQDRBAYM6TJ09kfv/+fXbz5s18QNO1vn//fnHNmjVfQHKioqLP/fz85ggKCr4DGsAVEhKyXkND4yJQPTtIHiCAGKDp4BnQSYcUFBSagBoeA/k3gC5Ki42N5QXJL1y4kEdVVfWks7PzBhA/NTW1AqjuHYgNEECwWPj79etXWyYmpkigLT+AfHU2NrbYI0eO8IEkga7i//HjhxQQXwfxgeJqwAB9BWIDBBDMAHagZoa/f/8yAp3GBhL4/Pnz36CgoH8LFizgX7Vq1XSggQympqbLBQQEEq5fvx6hq6u7AqQOIIDAsQAMtBPAwBIGmvoAaAsH0GnvhYWFL8rJyf3g5OQUBrrun7q6egGQfQsY1VE6OjozgXITQXoBAoiR0rwAEEAUp0SAAKLYAIAAotgAgAADANuDzfQSUmlqAAAAAElFTkSuQmCC%0A3.0.5.Spoiler%7C%u0421%u043F%u043E%u0439%u043B%u0435%u0440%7Cspoiler%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVQ4jWNgGKzgP7EKmSi1iWIDGJHY+JzNiEcOKxhCYTDwgNjQxRaojAwMwyIMKAYA3esECwxQ4k8AAAAASUVORK5CYII%3D%0A3.0.5.Code%7C%u041A%u043E%u0434%7Ccode%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA60lEQVR42mL8//8/AyUAIICYGCgEAAFEsQEAAYQNKQHxfyieABWrRRJTQlYMEEBYNc9YtR2MoRoYsIjBDQEIIKyavTOb0RWC5ZJrJ2PIAQQQTs2g2EHH2AwBCCCQIIeNkweGzTgMwHAJQACBBLkUdC3BArqOgSDBSAaIE7AZADdk6dYD/+W0Tf8DBBAoGhk5GX+AZbx8A0DUMjwhDRK/C9TMsGzLYYZHV08zAAQQiqkgV5T3LcQV0nCbkb0KEEAYCnAYglMzQABhjUo0QxjwaQYIIEIpMQcqNgFXSgQIIEZKcyNAAFGcmQACDAB0jLqYK4uYbwAAAABJRU5ErkJggg%3D%3D%0A3.0.5.AnLink%7C%u0410%u043D%u043E%u043D%u0438%u043C%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%7Curl%7Chttp%3A//anonym%25dot%25to/%3F%25copy%25%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB50lEQVQ4jY2TS2tTURSFb7EJpS1KB7a2eSf3cR43UWKMN7nnxhdYsF4VkRadiAg6KVSwEkFDITqxKiqC+C+c+Ad0moFTcaYggoiIgtPPUSshSXWwRnvtj73PPsuK45gwDDHG9KkZRhxqRNQaLYJmNFAPw5A4jrGCIEBK2aesrfGV5EyzwEqUo1V1yNkaV6g+XxAEWMaY/mZXc+VYnvftCXgwBpsWv+/v4uWlWYSnccVfrzGmH1B0FYt1m1/3xvnZTdA9N8/qyRS9G5Pw1OLhhX2kS3o0YL6k2Tw/By8sOnGK3ZkKs3mfekXwYyPJh/YESortVQYAWVtzaynF2/VpTgc2Wcen5EkcIfh0O8nXuwmqvsDxRgCUlDieouAopCfY73sIKemeXYBHY7xZ3UPRUYhRK2zJERKlJK+vz/C5k4THFt+7CZZNgZyjRr/BloSQ2J7m3foUH+9M8PziXpYOF8nb/WccDZCSgqPo3ZzkyfIcU+kKBddHCfn/gLyjeXVthvapBdKl8oDnnwCtPY5WXeoVDyEGm3cEZG3N1RMZvnSS9NamOVh2B77xjoB0yWdtMQ3PLL5tjFMre9u3HwAMC5MrFM0DLpePZ1hp5dBSIoZMEAQB1rA4R8bQaEZUgyPUGi3C0IyM8x/V4agSvEQ6QAAAAABJRU5ErkJggg%3D%3D%0A3.0.5.Image%7C%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u043A%u0430%u0440%u0442%u0438%u043D%u043A%u0438%7Cimg%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABpUlEQVR42p2TP0gbURzHPxebwyEJVBw6aKZAxOUcbYYOpS0IRSgljVBMOLgxZA64SBY30RDp0HuEDraBQodChrQI/UNj3XRRoreYQfo3NF4kSo9ct4dHcsX4pvd77/v9/B7vva8CUKlU3E6nw7DDMAxFMU3TTSQSxGKxocyWZVGv1wkAvmYhBJqmoaoqmqYhhMBxHLrdrvTc8OsghODt6zXq7zZQ1RG6Z39YNPI4jkM6nZa6gB+gWCzy8sUGI73vXPz+SOB8j2crjyiVSh6dPIGqqn2Qm5P3aO0vyzoSHqXRaAwGAHxb0nFOmrKeKG8xNr3MZmmBubtTnNrnxONxf4Bz0uTv8ZFH8OnrLndmZ3j/ymD1+Wey2axnP/C/pyoUCuwc/gQgV/jCw8c5MpnM1QDlZpv780/40bLR8+tEo1F0Xe/T+QJ+PXjKwXELgPFbk9RqNarVap/OcwcT5S05317N8ebDvqz1/DrJZJJ2uz0YcDkLoVCI2zNTV/rSEuC6rly0bXuguNfrARAMBr0Ay7KuFaZIJIICYJqmO2yUw+EwqVRK+QdtIZCYwfQIRQAAAABJRU5ErkJggg%3D%3D%0A3.0.5.Hide%7C%u0421%u043A%u0440%u044B%u0442%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Chide%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHpSURBVHjapJK9aipRFEbXOc6MM5EkiIX5KaYShJQ+gpVtIF1Kq4Av4RuIZao0AUkTiAi+gEUgSipjNQYcizRJBowDZ2Z2ConFLW5yb1a3i734PvZWIvIKuPwfMSIST6dTCYJAvgiCQCaTyXYOw1Du7+8lSRL5g1gDMhwOub29ZbFYAGCMIY5jAJbLJYPBgKurK9I0JYoiZrPZVwKxADzPo9frMR6Pqdfr+L7PYrEgDEP6/T5hGFKr1Xh+fqbT6WCMoVqtcnFxgQb4+Pjg9PSUdrvNaDQijmMeHx+5ubmh2+1yfn6O4zhcXl6SJAknJyfc3d0xn883Aq01+/v72LaNZVmICGmakqYpjuNQKBRIkoT393dc18X3fc7OziiVShtBPp/Htm2UUhQKBQB836fRaNBqtbi+vsayLJrNJqvVislkQhRFuK6LEpF1FEWu1hrP83h7e8PzPIwx7O3t8fDwgOd5HB0dUSwWeXp64uXlhUqlwuHhYaxEZP2bP7AAVqsVy+USpRRKqW+30jRld3eXg4MDLID1ek0QBIgIWutvBcYYjo+PKZfLG4HWGsdxfixQSpHL5QDQ/BIL2N49y7Kt+W8kSUKWZVuByuVy7Ozs/LiCbds4jrNpIyKvWZa5xph/iq61xrbt+HMA/wYFcDfOeqsAAAAASUVORK5CYII%3D%0A%0A3.0.7.%7CBlack%7C%7C%23000000%0A3.0.7.%7CDarkGrey%7C%7C%23424242%0A3.0.7.%7CMediumGrey%7C%7C%23666666%0A3.0.7.%7CGrey%7C%7C%23808080%0A3.0.7.%7CLight%20Grey%7C%7C%23d3d3d3%0A3.0.7.%7CWhite%7C%7C%23ffffff%0A3.0.7.%7CAqua%7C%7C%2302feff%0A3.0.7.%7CBaby-Blue%7C%7C%2376ebff%0A3.0.7.%7CSky-Blue%7C%7C%2300c0fe%0A3.0.7.%7CLight%20Blue%7C%7C%230080ff%0A3.0.7.%7CMedium%20Blue%7C%7C%230002f7%0A3.0.7.%7CDark%20Blue%7C%7C%2300008b%0A3.0.7.%7CIndigo%7C%7C%234b007f%0A3.0.7.%7CDarkPurple%7C%7C%235c246e%0A3.0.7.%7CMediumPurple%7C%7C%23670099%0A3.0.7.%7CPurple%7C%7C%23a020f0%0A3.0.7.%7CLightPurple%7C%7C%23c05eff%0A3.0.7.%7CPink-Purple%7C%7C%23de00ed%0A3.0.7.%7CFuschia%7C%7C%23eb00cb%0A3.0.7.%7CHot%20Pink%7C%7C%23ff40f3%0A3.0.7.%7CNeon%20Pink%7C%7C%23f46ffc%0A3.0.7.%7CPink%7C%7C%23fec0cb%0A3.0.7.%7CPeach%7C%7C%23fccec1%0A3.0.7.%7CFlesh%7C%7C%23fddeb0%0A3.0.7.%7CTan%7C%7C%23fdf1b5%0A3.0.7.%7CLightBrown%7C%7C%23b87332%0A3.0.7.%7CBrown%7C%7C%237e4102%0A3.0.7.%7CDark%20Red%7C%7C%238b0101%0A3.0.7.%7CMedium%20Red%7C%7C%23e3170e%0A3.0.7.%7CRed%7C%7C%23ff0000%0A3.0.7.%7COrange-Red%7C%7C%23fe2400%0A3.0.7.%7COrange%7C%7C%23ff803f%0A3.0.7.%7CYellow-Orange%7C%7C%23ffbe00%0A3.0.7.%7CGold%7C%7C%23fed602%0A3.0.7.%7CYellow%7C%7C%23ffff00%0A3.0.7.%7CGreen-yellow%7C%7C%23adff30%0A3.0.7.%7CNeon%20Green%7C%7C%235dfc0a%0A3.0.7.%7CLightGreen%7C%7C%2390ee90%0A3.0.7.%7CGreen%7C%7C%2356ad3c%0A3.0.7.%7CMediumGreen%7C%7C%23008000%0A3.0.7.%7CDarkGreen%7C%7C%23006400%0A%0A3.0.9.Font%2010%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2010%7Csize%7C10%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEEDw6xBz5msQc85rEHPPKxBzzysQc88rEHPPKxBzzysQc88rEHPOaxBD5msQc/DrEH//6xB//+sQQ%3D%3D%0A3.0.9.Font%2012%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2012%7Csize%7C12%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEECAaxBzwGsQc+erEHPz6xBz+esQc/3rEHP86xBz/msQc/5rEHPeaxBDzGsQc+DrEH//6xB//+sQQ%3D%3D%0A3.0.9.Font%2014%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2014%7Csize%7C14%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEED86xBz/OsQc/zrEHPAKxBz3OsQc+zrEHPs6xBz9OsQc/DrEHP46xBD/OsQc/zrEH//6xB//+sQQ%3D%3D%0A3.0.9.Font%2016%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2016%7Csize%7C16%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEEDw6xBz5msQc89rEHPPKxBzzysQc84rEHPGaxBzwOsQc+frEHPz6xBD+esQc/wrEH//6xB//+sQQ%3D%3D%0A3.0.9.Font%2018%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2018%7Csize%7C18%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEEDw6xBz5msQc88rEHPPKxBz7msQc+RrEHP46xBz4OsQc+ZrEHPPaxBD5msQc/DrEH//6xB//+sQQ%3D%3D%0A3.0.9.Justify%7C%7Cjustify%7C%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERP8/Pz//Ozs7/zY2Nv8yMjL/LS0t/ygoKP8kJCT/Hx8f/xoaGv8WFhb/ERER/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk5O/0pKSv9FRUX/QEBA/zw8PP83Nzf/MzMz/y4uLv8pKSn/JSUl/yAgIP8bGxv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWFj/VFRU/09PT/9LS0v/RkZG/0FBQf89PT3/ODg4/zMzM/8vLy//Kioq/yYmJv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYv9eXl7/WVlZ/1VVVf9QUFD/S0tL/0dHR/9CQkL/PT09/zk5Of80NDT/MDAw/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxs/2hoaP9jY2P/X19f/1paWv9VVVX/UVFR/0xMTP9HR0f/Q0ND/z4+Pv86Ojr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnb/cnJy/21tbf9paWn/ZGRk/19fX/9bW1v/VlZW/1FRUf9NTU3/SEhI/0RERP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEH//6xBwAOsQf//rEHAA6xB//+sQcADrEH//6xBwAOsQf//rEHAA6xB//+sQcADrEH//6xB//+sQQ%3D%3D%0A3.0.9.Left%7C%u0412%u044B%u0440%u0430%u0432%u043D%u0438%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%20%u043B%u0435%u0432%u043E%u043C%u0443%20%u043A%u0440%u0430%u044E%7Cleft%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAIABAAAAAP///yH5BAEKAAEALAAAAAAQABAAAAIbjI+pm+APIZshRoqr3Vlt2S0fEE7jVRqnkx4FADs%3D%0A3.0.9.Center%7C%u0412%u044B%u0440%u0430%u0432%u043D%u0438%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%20%u0446%u0435%u043D%u0442%u0440%u0443%7Ccenter%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAIABAAAAAP///yH5BAEKAAEALAAAAAAQABAAAAIajI+pm+APIZsnRkqtBnhu1zHfFSpjaY4PahQAOw%3D%3D%0A3.0.9.Right%7C%u0412%u044B%u0440%u0430%u0432%u043D%u0438%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%20%u043F%u0440%u0430%u0432%u043E%u043C%u0443%20%u043A%u0440%u0430%u044E%7Cright%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAIABAAAAAP///yH5BAEKAAEALAAAAAAQABAAAAIajI+pm+APIZsqSortxU1bPnkPSIkkIkanUQAAOw%3D%3D%0A%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Автор кнопки: Dumby |
MySh > 18-05-2013 00:25:29 |
FFolders (Папки Firefox) (Windows) (Firefox 20) скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EFFolders%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20%27%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20onclick%3D%22this.%20parentNode.%20handleClick%20%28event%29%3B%22%3E%5Cn%5C%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22ProfD%22/%3E%5Cn%5C%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20Firefox%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22CurProcD%22/%3E%5Cn%5C%0A%20%20%20%20%20%20%3C/menupopup%3E%27%3B%0Athis.%20appendChild%20%28e4xConv_parseXULFromString%20%28menu%29%29%3B%0Athis.%20type%20%3D%20%22menu%22%3B%0Athis.%20orient%20%3D%20%22horizontal%22%3B%0A%20%0Athis.%20handleClick%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20menuitem%20%3D%20event.%20target%3B%0A%20%20%20%20var%20value%20%3D%20menuitem.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20file%20%3D%20Cc%20%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%20getService%20%28Ci.%20nsIProperties%29%3B%0A%20%20%20%20%20%20%20%20file%20%3D%20file.%20get%20%28value%2C%20Ci.%20nsIFile%29.%20QueryInterface%20%28Ci.%20nsILocalFile%29%3B%0A%20%20%20%20%20%20%20%20file.%20launch%20%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20this.%20open%20%3D%20false%3B%0A%7D%3B%0A%0Afunction%20e4xConv_parseXULFromString%28xul%29%20%7B%0A%09xul%20%3D%20xul.replace%28/%3E%5Cs+%3C/g%2C%20%22%3E%3C%22%29%3B%0A%09return%20new%20DOMParser%28%29.parseFromString%28xul%2C%20%22application/xml%22%29.documentElement%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Пиктограмма: Выделить код Код:data:image/png;base64,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 Инициализация: Выделить код Код:var menu = '<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\ onclick="this. parentNode. handleClick (event);">\n\ <menuitem label="Открыть папку текущего профиля"\n\ value="ProfD"/>\n\ <menuitem label="Открыть папку установки Firefox"\n\ value="CurProcD"/>\n\ </menupopup>'; this. appendChild (e4xConv_parseXULFromString (menu)); this. type = "menu"; this. orient = "horizontal"; this. handleClick = function (event) { var menuitem = event. target; var value = menuitem. getAttribute ("value"); if (event. button == 0) { var file = Cc ["@mozilla.org/file/directory_service;1"]. getService (Ci. nsIProperties); file = file. get (value, Ci. nsIFile). QueryInterface (Ci. nsILocalFile); file. launch (); } this. open = false; }; function e4xConv_parseXULFromString(xul) { xul = xul.replace(/>\s+</g, "><"); return new DOMParser().parseFromString(xul, "application/xml").documentElement; } FFolders (Папки Firefox) (Linux + KDE) (Firefox 20) Автор: Anton. Та же кнопка для Linux (с KDE). скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EFFolders%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20fmPath%20%3D%20%22/usr/bin/dolphin%22%3B%0A%0Avar%20menu%20%3D%20%27%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20onclick%3D%22this.%20parentNode.%20handleClick%20%28event%29%3B%22%3E%5Cn%5C%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22ProfD%22/%3E%5Cn%5C%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20Firefox%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22CurProcD%22/%3E%5Cn%5C%0A%20%20%20%20%20%20%3C/menupopup%3E%27%3B%0Athis.%20appendChild%20%28e4xConv_parseXULFromString%20%28menu%29%29%3B%0Athis.%20type%20%3D%20%22menu%22%3B%0Athis.%20orient%20%3D%20%22horizontal%22%3B%0A%20%0Afunction%20startProcess%28path%2C%20args%29%20%7B%0A%20%20%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%20%7B%0A%20%20%20%20%20%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%20%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2C%20path%29%3B%20%0A%7D%3B%0A%20%0Athis.%20handleClick%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20menuitem%20%3D%20event.%20target%3B%0A%20%20%20%20var%20value%20%3D%20menuitem.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20file%20%3D%20Cc%20%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%20getService%20%28Ci.%20nsIProperties%29%3B%0A%20%20%20%20%20%20%20%20file%20%3D%20file.%20get%20%28value%2C%20Ci.%20nsIFile%29.%20QueryInterface%20%28Ci.%20nsILocalFile%29%3B%0A%20%20%20%20%20%20%20%20startProcess%20%28fmPath%2C%20%5Bfile.%20path%5D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20this.%20open%20%3D%20false%3B%0A%7D%3B%0A%0Afunction%20e4xConv_parseXULFromString%28xul%29%20%7B%0A%09xul%20%3D%20xul.replace%28/%3E%5Cs+%3C/g%2C%20%22%3E%3C%22%29%3B%0A%09return%20new%20DOMParser%28%29.parseFromString%28xul%2C%20%22application/xml%22%29.documentElement%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Пиктограмма: Выделить код Код:data:image/png;base64,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 Инициализация: Выделить код Код:var fmPath = "/usr/bin/dolphin"; var menu = '<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\ onclick="this. parentNode. handleClick (event);">\n\ <menuitem label="Открыть папку текущего профиля"\n\ value="ProfD"/>\n\ <menuitem label="Открыть папку установки Firefox"\n\ value="CurProcD"/>\n\ </menupopup>'; this. appendChild (e4xConv_parseXULFromString (menu)); this. type = "menu"; this. orient = "horizontal"; function startProcess(path, args) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); if(file.exists()) { var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.run(false, args, args.length); } else custombuttons. alertBox ("Файл не найден", path); }; this. handleClick = function (event) { var menuitem = event. target; var value = menuitem. getAttribute ("value"); if (event. button == 0) { var file = Cc ["@mozilla.org/file/directory_service;1"]. getService (Ci. nsIProperties); file = file. get (value, Ci. nsIFile). QueryInterface (Ci. nsILocalFile); startProcess (fmPath, [file. path]); } this. open = false; }; function e4xConv_parseXULFromString(xul) { xul = xul.replace(/>\s+</g, "><"); return new DOMParser().parseFromString(xul, "application/xml").documentElement; } 18-05-2013 00:37:04 скрытый текст Код кнопки: Выделить код Код:custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA80lEQVRIie3TPyuFYRjH8c/COVkQFot4B2RS2BQ2g0F5DzbehBcgnTOcMpmUTSxSijLIaOAVUCd/Bo7huYR60nPux+b5bdf9u/p977v7uqj0b9WLoQJ9E6mABq4w8EvPMl6xkAKYwgPOsYSTqO+xi1U84xA9KQCYQRsdvOASt1F3AlpPDYexANxg/Nv5Gt5wUCYctmQ3ncvxmnjHYBnATgD6c7yN8CbLADYjZD7Ha/mDF4zKJuVa9h+fWo/w/TLhMIsnX1N04ecUnaIvNXwajzjDIo6jvsM2VgJ6hFoKYE+xTW7L9qVr1TFcoG8kJbxSpe70AT7wNojTKWYHAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20%27%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20oncommand%3D%22this.parentNode.handleMenuCommand%28event%29%22%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A4%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A6%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A7%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A9%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AB%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%BB%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AC%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AE%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B0%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B1%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B5%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B6%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2014%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2018%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2019%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u201C%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u201D%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2022%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2030%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2039%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u203A%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2122%22/%3E%5Cn%5C%0A%3C/menupopup%3E%27%3B%0A%0Amenu%20%3D%20e4xConv_parseXULFromString%20%28menu%29%3B%0Athis.%20appendChild%20%28menu%29%3B%0Athis.%20value%20%3D%20menu.%20firstChild.%20getAttribute%20%28%22value%22%29%3B%0A%0Athis.%20makePNG%20%3D%20function%20%28text%2C%20height%29%0A%7B%0A%20%20%20%20var%20h%20%3D%20height%3B%0A%20%20%20%20var%20cw%20%3D%2024%2C%20ch%20%3D%2024%3B%0A%20%20%20%20var%20canvas%20%3D%20%27%3Ccanvas%20xmlns%3D%22http%3A//www.w3.org/1999/xhtml%22%20width%3D%22%27%20+%20e4xConv_encodeHTML%28cw%2C%20true%29%20+%20%27%22%20height%3D%22%27%20+%20e4xConv_encodeHTML%28ch%2C%20true%29%20+%20%27%22%20style%3D%22display%3Anone%3B%22%3E%3C/canvas%3E%27%3B%0A%20%20%20%20cw%20-%3D%202%3B%0A%20%20%20%20ch%20-%3D%202%3B%0A%20%20%20%20canvas%20%3D%20e4xConv_parseXULFromString%20%28canvas%29%3B%0A%20%20%20%20this.%20appendChild%20%28canvas%29%3B%0A%20%20%20%20var%20ctxt%20%3D%20canvas.%20getContext%20%28%222d%22%29%3B%0A%20%20%20%20ctxt.%20clearRect%20%280%2C%200%2C%20cw%2C%20ch%29%3B%0A%20%20%20%20ctxt.%20font%20%3D%20h%20+%20%22pt%20times%20bold%22%0A%20%20%20%20var%20m%20%3D%20ctxt.%20measureText%20%28text%29%3B%0A%20%20%20%20m%20%3D%20%28cw%20-%20m.%20width%29%20/%202.0%3B%0A%20%20%20%20h%20%3D%20ch%20-%20%28ch%20-%20h%29%20/%202.0%3B%0A%20%20%20%20ctxt.%20fillText%20%28text%2C%20m%2C%20h%29%3B%0A%20%20%20%20var%20uri%20%3D%20canvas.%20toDataURL%20%28%22image/png%22%2C%20%22%22%29%3B%0A%20%20%20%20this.%20removeChild%20%28canvas%29%3B%0A%20%20%20%20return%20uri%3B%0A%7D%3B%0A%0Athis.%20image%20%3D%20this.%20makePNG%20%28this.%20value%2C%2016%29%3B%0A%0Avar%20mi%2C%20val%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20menu.%20childNodes.%20length%3B%20i++%29%0A%7B%0A%20%20%20%20mi%20%3D%20menu.%20childNodes%20%5Bi%5D%3B%0A%20%20%20%20val%20%3D%20mi.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20val%20%3D%20this.%20makePNG%20%28val%2C%2012%29%3B%0A%20%20%20%20mi.%20setAttribute%20%28%22image%22%2C%20val%29%3B%0A%7D%0A%0Athis.%20insertText%20%3D%20function%20%28text%29%0A%7B%0A%20%20%20%20var%20command%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20%20var%20controller%20%3D%20document.%20commandDispatcher.%20getControllerForCommand%20%28command%29%3B%0A%20%20%20%20if%20%28controller%20%26%26%20controller.%20isCommandEnabled%20%28command%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20controller%20%3D%20controller.%20QueryInterface%20%28Components.%20interfaces.%20nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.%20classes%20%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20createInstance%20%28Components.%20interfaces.%20nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.%20setStringValue%20%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20controller.%20doCommandWithParams%20%28command%2C%20params%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Athis.%20handleMenuCommand%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20event.%20stopPropagation%20%28%29%3B%0A%20%20%20%20var%20mi%20%3D%20event.%20originalTarget%3B%0A%20%20%20%20var%20text%20%3D%20mi.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20this.%20image%20%3D%20this.%20makePNG%20%28text%2C%2016%29%3B%0A%20%20%20%20this.%20value%20%3D%20text%3B%0A%20%20%20%20this.%20insertText%20%28text%29%3B%0A%7D%3B%0A%0Athis.%20type%20%3D%20%22menu-button%22%3B%0A%0Afunction%20e4xConv_parseXULFromString%28xul%29%20%7B%0A%09xul%20%3D%20xul.replace%28/%3E%5Cs+%3C/g%2C%20%22%3E%3C%22%29%3B%0A%09return%20new%20DOMParser%28%29.parseFromString%28xul%2C%20%22application/xml%22%29.documentElement%3B%0A%7D%0Afunction%20e4xConv_encodeHTML%28s%2C%20isAttr%29%20%7B%0A%09s%20%3D%20String%28s%29%0A%09%09.replace%28/%26/g%2C%20%22%26amp%3B%22%29%0A%09%09.replace%28/%3C/g%2C%20%22%26lt%3B%22%29%0A%09%09.replace%28/%3E/g%2C%20%22%26gt%3B%22%29%0A%09%09.replace%28/%22/g%2C%20%22%26quot%3B%22%29%3B%0A%09if%28isAttr%29%20%7B%0A%09%09s%20%3D%20s%0A%09%09%09.replace%28/%5Ct/g%2C%20%22%26%23x9%3B%22%29%0A%09%09%09.replace%28/%5Cn/g%2C%20%22%26%23xA%3B%22%29%0A%09%09%09.replace%28/%5Cr/g%2C%20%22%26%23xD%3B%22%29%3B%0A%09%7D%0A%09return%20s%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.%20insertText%20%28this.%20value%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var menu = '<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\ oncommand="this.parentNode.handleMenuCommand(event)">\n\ <toolbarbutton value="¤"/>\n\ <toolbarbutton value="¦"/>\n\ <toolbarbutton value="§"/>\n\ <toolbarbutton value="©"/>\n\ <toolbarbutton value="«"/>\n\ <toolbarbutton value="»"/>\n\ <toolbarbutton value="¬"/>\n\ <toolbarbutton value="®"/>\n\ <toolbarbutton value="°"/>\n\ <toolbarbutton value="±"/>\n\ <toolbarbutton value="µ"/>\n\ <toolbarbutton value="¶"/>\n\ <toolbarbutton value="—"/>\n\ <toolbarbutton value="‘"/>\n\ <toolbarbutton value="’"/>\n\ <toolbarbutton value="“"/>\n\ <toolbarbutton value="”"/>\n\ <toolbarbutton value="•"/>\n\ <toolbarbutton value="‰"/>\n\ <toolbarbutton value="‹"/>\n\ <toolbarbutton value="›"/>\n\ <toolbarbutton value="™"/>\n\ </menupopup>'; menu = e4xConv_parseXULFromString (menu); this. appendChild (menu); this. value = menu. firstChild. getAttribute ("value"); this. makePNG = function (text, height) { var h = height; var cw = 24, ch = 24; var canvas = '<canvas xmlns="http://www.w3.org/1999/xhtml" width="' + e4xConv_encodeHTML(cw, true) + '" height="' + e4xConv_encodeHTML(ch, true) + '" style="display:none;"></canvas>'; cw -= 2; ch -= 2; canvas = e4xConv_parseXULFromString (canvas); this. appendChild (canvas); var ctxt = canvas. getContext ("2d"); ctxt. clearRect (0, 0, cw, ch); ctxt. font = h + "pt times bold" var m = ctxt. measureText (text); m = (cw - m. width) / 2.0; h = ch - (ch - h) / 2.0; ctxt. fillText (text, m, h); var uri = canvas. toDataURL ("image/png", ""); this. removeChild (canvas); return uri; }; this. image = this. makePNG (this. value, 16); var mi, val; for (var i = 0; i < menu. childNodes. length; i++) { mi = menu. childNodes [i]; val = mi. getAttribute ("value"); val = this. makePNG (val, 12); mi. setAttribute ("image", val); } this. insertText = function (text) { var command = "cmd_insertText"; var controller = document. commandDispatcher. getControllerForCommand (command); if (controller && controller. isCommandEnabled (command)) { controller = controller. QueryInterface (Components. interfaces. nsICommandController); var params = Components. classes ["@mozilla.org/embedcomp/command-params;1"]. createInstance (Components. interfaces. nsICommandParams); params. setStringValue ("state_data", text); controller. doCommandWithParams (command, params); } }; this. handleMenuCommand = function (event) { event. stopPropagation (); var mi = event. originalTarget; var text = mi. getAttribute ("value"); this. image = this. makePNG (text, 16); this. value = text; this. insertText (text); }; this. type = "menu-button"; function e4xConv_parseXULFromString(xul) { xul = xul.replace(/>\s+</g, "><"); return new DOMParser().parseFromString(xul, "application/xml").documentElement; } function e4xConv_encodeHTML(s, isAttr) { s = String(s) .replace(/&/g, "&") .replace(/</g, "<") .replace(/>/g, ">") .replace(/"/g, """); if(isAttr) { s = s .replace(/\t/g, "	") .replace(/\n/g, "
") .replace(/\r/g, "
"); } return s; } Код: |
Lex1 > 02-06-2013 20:58:44 |
Quote+ - Копирует выделенный текст, с сохранением форматирования в bbcode и тегами {quote}, в форму ответа или буфер обмена. Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EQuote+%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAcElEQVR4nL2TUQoAIQhE+/JC3v/fW7U7C0JaisGiMFDWPCahISIDemtWpZ7Pp2Zb+Z6IZgCogQBg5nlMkEVfEwSAHxPYdWcCPwefqn8G/QkqoA0AoRkJl9W4mg0AwsFJMCGFN2+ATHjm+omuAQrxvQe3Gn9JVU+LzAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20win%20%3D%20document.commandDispatcher.focusedWindow.top%20%3D%3D%20content%20%3F%20document.commandDispatcher.focusedWindow%20%3A%20content%2C%20doc%20%3D%20win.document%3B%0A%0Avar%20addText%20%3D%20function%20%28el%2C%20start%2C%20end%29%20%7B%0A%20%20%20%20if%20%28el.firstChild%29%20%7B%0A%20%20%20%20%20%20%20%20el.insertBefore%28doc.createTextNode%28start%29%2C%20el.firstChild%29%3B%0A%20%20%20%20%20%20%20%20el.appendChild%28doc.createTextNode%28end%29%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20el.parentNode.insertBefore%28doc.createTextNode%28start%29%2C%20el%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Avar%20s%20%3D%20win.getSelection%28%29%3B%0Aif%20%28s%20%21%3D%20%27%27%29%20%7B%0A%20%20%20%20var%20rng%20%3D%20s.getRangeAt%280%29%2C%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0A%20%20%20%20sel.appendChild%28rng.cloneContents%28%29%29%3B%0A%20%20%20%20var%20ele%20%3D%20sel.getElementsByTagName%28%27*%27%29%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%2C%20e%3B%20e%20%3D%20ele%5Bi%5D%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20switch%20%28e.nodeName.toUpperCase%28%29%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27A%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Burl%3D%27%20+%20e.href%20+%20%27%5D%27%2C%20%27%5B/url%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27FONT%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.color%29%20addText%28e%2C%20%27%5Bcolor%3D%27%20+%20e.color%20+%20%27%5D%27%2C%20%27%5B/color%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27B%27%3A%0A%20%20%20%20%20%20%20%20case%20%27STRONG%27%3A%0A%20%20%20%20%20%20%20%20case%20%27H2%27%3A%0A%20%20%20%20%20%20%20%20case%20%27H3%27%3A%0A%20%20%20%20%20%20%20%20case%20%27H4%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bb%5D%27%2C%20%27%5B/b%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27I%27%3A%0A%20%20%20%20%20%20%20%20case%20%27EM%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bi%5D%27%2C%20%27%5B/i%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27U%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bu%5D%27%2C%20%27%5B/u%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27PRE%27%3A%0A%20%20%20%20%20%20%20%20case%20%27CODE%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bcode%5D%27%2C%20%27%5B/code%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27BLOCKQUOTE%27%3A%0A%20%20%20%20%20%20%20%20case%20%27Q%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bquote%5D%27%2C%20%27%5B/quote%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27DIV%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.className%20%3D%3D%20%27code%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bcode%5D%27%2C%20%27%5B/code%5D%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28e.className%20%3D%3D%20%27quote%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bquote%5D%27%2C%20%27%5B/quote%5D%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27IMG%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20e.removeAttribute%28%27alt%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.removeAttribute%28%27title%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bimg%5D%27%20+%20e.src%20+%20%27%5B/img%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20var%20cnt%20%3D%20rng.commonAncestorContainer%3B%0A%20%20%20%20if%20%28cnt.nodeType%20%21%3D%201%29%20cnt%20%3D%20cnt.parentNode%3B%0A%20%20%20%20cnt.appendChild%28sel%29%3B%0A%20%20%20%20s.removeAllRanges%28%29%3B%0A%20%20%20%20rng%20%3D%20doc.createRange%28%29%3B%0A%20%20%20%20rng.selectNodeContents%28sel%29%3B%0A%20%20%20%20s.addRange%28rng%29%3B%0A%20%20%20%20var%20txt%20%3D%20s.toString%28%29%3B%0A%20%20%20%20s.removeAllRanges%28%29%3B%0A%20%20%20%20cnt.removeChild%28sel%29%3B%0A%0A%20%20%20%20var%20prequote%20%3D%20function%28v%2Cc%29%7Bvar%20n%3D%27%27%2Cu%3D%27%27%3Bif%28win.location.hostname%3D%3D%27forum.ru-board.com%27%29%7Bwhile%28c.className%21%3D%27tpc%27%26%26c.parentNode%29%7Bc%3Dc.parentNode%7D%3Bif%28c.className%21%3D%27tpc%27%29return%3Bvar%20tn%3Dc.parentNode.parentNode.childNodes%5B1%5D.childNodes%5B0%5D.childNodes%5B1%5D%3Bn%3D%27%5Bb%5D%27+c.parentNode.firstChild.getElementsByTagName%28%27b%27%29%5B0%5D.textContent+%27%5B/b%5D%20%27%3Bu%3D%27%5Burl%3D%27+tn.childNodes%5B5%5D.href+%27%5D%5Bcolor%3D%23007777%5D%5Bsize%3D1%5D%5Bu%5D%27+tn.childNodes%5B7%5D.textContent.replace%28/%5E%20+/%2C%27%27%29.replace%28/%20+%24/%2C%27%27%29+%27%5B/u%5D%5B/size%5D%5B/color%5D%5B/url%5D%20%27%7D%3Bif%28%28win.wrappedJSObject%7C%7Cwin%29.smf_theme_url%29%7Bwhile%28%28c.className%7C%7C%27%27%29.indexOf%28%27windowbg%27%29%3D%3D-1%26%26c.parentNode%29%7Bc%3Dc.parentNode%7D%3Bvar%20dv%3Dc.getElementsByTagName%28%27div%27%29%3Bfor%28var%20i%3D0%2Cdi%3Bdi%3Ddv%5Bi%5D%3Bi++%29%7Bif%28di.className%3D%3D%27post%27%29%7Bc%3Ddi%3Bbreak%7D%7D%3Bif%28c.className%21%3D%27post%27%29return%3Bn%3D%27%5Bb%5D%27+c.parentNode.parentNode.getElementsByTagName%28%27a%27%29%5B0%5D.textContent+%27%5B/b%5D%20%27%3Bu%3D%27%5Burl%3D%27+c.parentNode.getElementsByTagName%28%27a%27%29%5B0%5D.href+%27%5D%5Bsize%3D1%5D%5Bu%5D%5B%3F%5D%5B/u%5D%5B/size%5D%5B/url%5D%20%27%7D%3Bif%28v.indexOf%28n%29%21%3D-1%29n%3D%27%27%3Bif%28v.indexOf%28u%29%21%3D-1%29u%3D%27%27%3Breturn%20n+u%7D%3B%0A%0A%20%20%20%20var%20pre%2C%20t%2C%20ts%20%3D%20doc.getElementsByTagName%28%27textarea%27%29%3B%0A%20%20%20%20for%20%28var%20i%20%3D%20ts.length%3B%20i--%3B%29%20%7B%0A%20%20%20%20%20%20%20%20t%20%3D%20ts%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20if%20%28t.rows%20%3E%204%20%26%26%20t.offsetHeight%20%3E%200%29%20break%0A%20%20%20%20%7D%3B%0A%20%20%20%20if%20%28%21t%20%7C%7C%20t.offsetHeight%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20gClipboard.write%28txt%29%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20if%20%28t.rows%20%3C%2015%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20len%20%3D%20t.rows%20+%20txt.split%28%27%5Cn%27%29.length%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20t.rows%20%3D%20%28len%20%3C%3D%2015%29%20%3F%20len%20%3A%2015%0A%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pre%20%3D%20prequote%28t.value%2C%20cnt%29%20%7C%7C%20%27%27%0A%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pre%20%3D%20%27%27%0A%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20%20%20var%20tEnd%20%3D%20t.selectionEnd%2C%20tLen%20%3D%20t.value.length%3B%0A%20%20%20%20%20%20%20%20t.value%20%3D%20t.value.substring%280%2C%20tEnd%29%20+%20pre%20+%20%27%5Bquote%5D%27%20+%20txt%20+%20%27%5B/quote%5D%5Cn%27%20+%20t.value.substring%28tEnd%2C%20tLen%29%3B%0A%20%20%20%20%20%20%20%20tEnd%20+%3D%20t.value.length%20-%20tLen%3B%0A%20%20%20%20%20%20%20%20t.setSelectionRange%28tEnd%2C%20tEnd%29%3B%0A%20%20%20%20%20%20%20%20t.focus%28%29%0A%20%20%20%20%7D%0A%7D%20else%20%7B%0A%09ujs_bbcode_tag%28%27%5Bquote%5D%27%29%3B%0A%7D%3B%0A%0Afunction%20ujs_bbcode_tag%28tag%29%7B%0A%09var%20ts%3Dwin.getSelection%28%29.toString%28%29%3B%0A%09var%20et%3Ddoc.activeElement%3B%0A%09var%20en%3Det%20%26%26%20et.nodeName.toLowerCase%28%29%3B%0A%09var%20ta%3D%28en%3D%3D%27textarea%27%20%7C%7C%20%28en%3D%3D%27input%27%20%26%26%20et.type%3D%3D%27text%27%29%29%20%3F%20et%20%3A%20null%3B%3B%0A%09if%28%21ta%29for%28var%20t%3Ddoc.getElementsByTagName%28%27textarea%27%29%2C%20i%3Dt.length%3B%20i--%3B%29%7Bta%3Dt%5Bi%5D%3B%20if%28ta.rows%3E4%20%26%26%20ta.offsetHeight%3E0%29break%7D%3B%0A%09if%28%21ta%20%7C%7C%20ta.offsetHeight%3D%3D0%29return%3B%0A%0A%09var%20s%2C%20e_tag%3B%0A%09var%20s_tag%3Dtag%3B%0A%09var%20nStart%3Dta.selectionStart%3B%0A%09var%20nEnd%3Dta.selectionEnd%3B%0A%09var%20txt%3Dta.value.substring%28nStart%2C%20nEnd%29%3B%0A%09var%20s_txt%3Dta.value.substring%280%2C%20nStart%29%3B%0A%09var%20e_txt%3Dta.value.substring%28nEnd%2C%20ta.value.length%29%3B%0A%0A%09var%20al%3Darguments.length%3B%0A%09if%28al%3D%3D0%29return%20ts%20%7C%7C%20txt%3B%0A%09if%28al%3D%3D1%20%26%26%20typeof%20arguments%5B0%5D%3D%3D%27function%27%29%7B%0A%09%09var%20sel%3D%7Btext%3A%20txt%2C%20start%3A%200%2C%20end%3A%20nEnd-nStart%7D%3B%0A%09%09arguments%5B0%5D%28sel%29%3B%0A%09%09ta.value%3Ds_txt+sel.text+e_txt%3B%0A%09%09var%20len%3Dta.value.length-s_txt.length-e_txt.length+1%3B%0A%09%09ta.setSelectionRange%28nStart+sel.start+%28sel.start%3C0%20%3F%20len%20%3A%200%29%2C%20nStart+sel.end+%28sel.end%3C0%20%3F%20len%20%3A%200%29%29%3B%0A%09%09ta.focus%28%29%3B%0A%09%09return%3B%0A%09%7D%3B%0A%09if%28al%3D%3D2%20%26%26%20arguments%5B1%5D%21%3D%27%27%29%7B%0A%09%09e_tag%3Darguments%5B1%5D%3B%0A%09%7D%0A%09else%7B%0A%09%09e_tag%3Dtag.replace%28/%28%5E.%29%28%5B%5E%3D%20%5D*%29%28.*%29%28.%24%29/%2C%20%27%241/%242%244%27%29%3B%0A%09%7D%3B%0A%0A%09var%20stl%3Ds_tag.length%3B%0A%09var%20etl%3De_tag.length%3B%0A%09var%20lt%3Dstl+etl%3B%0A%0A%09if%28txt.indexOf%28s_tag%29%3D%3D0%20%26%26%20txt.lastIndexOf%28e_tag%29%3D%3D%28txt.length-etl%29%29%7B%0A%09%09s%3Ds_txt+txt.slice%28stl%2C%20-etl%29+e_txt%3B%0A%09%09nEnd-%3Dlt%3B%0A%09%7D%0A%09else%7B%0A%09%09if%28nStart%3D%3DnEnd%20%26%26%20s_txt.lastIndexOf%28s_tag%29%3D%3Ds_txt.length-stl%20%26%26%20e_txt.indexOf%28e_tag%29%3D%3D0%29%7B%0A%09%09%09s%3Ds_txt.slice%280%2C%20-stl%29+e_txt.slice%28etl%29%3B%0A%09%09%09nStart-%3Dstl%3B%0A%09%09%09nEnd%3DnStart%3B%0A%09%09%7D%0A%09%09else%7B%0A%09%09%09if%28ts%20%26%26%20ta%21%3Det%29%7B%0A%09%09%09%09s%3Ds_txt+txt+s_tag+ts+e_tag+e_txt%3B%0A%09%09%09%09nStart%3DnEnd%3B%0A%09%09%09%09nEnd+%3Dts.length%3B%0A%09%09%09%09txt%3Dts%3B%0A%09%09%09%7D%0A%09%09%09else%7B%0A%09%09%09%09s%3Ds_txt+s_tag+txt+e_tag+e_txt%3B%0A%09%09%09%7D%3B%0A%0A%09%09%09if%28txt.length%3D%3D0%20%26%26%20s_tag%21%3D%27%27%29%7B%0A%09%09%09%09nStart+%3Dstl%3B%0A%09%09%09%09nEnd%3DnStart%3B%0A%09%09%09%7D%0A%09%09%09else%7B%0A%09%09%09%09if%28s_tag.slice%28-4%2C%20-1%29%3D%3D%27%3D%22%22%27%20%7C%7C%20s_tag.slice%28-2%2C%20-1%29%3D%3D%27%3D%27%20%26%26%20s_tag.slice%28-1%29%21%3D%27%22%27%29%7B%0A%09%09%09%09%09nStart%3DnStart+stl-%28s_tag.slice%28-3%2C%20-1%29%3D%3D%27%22%22%27%20%3F%202%20%3A%201%29%3B%0A%09%09%09%09%09nEnd%3DnStart%3B%0A%09%09%09%09%7D%0A%09%09%09%09else%7B%0A%09%09%09%09%09nEnd+%3Dlt%3B%0A%09%09%09%09%09if%28s_tag%3D%3D%27%27%20%7C%7C%20s_tag.slice%28-1%29%3D%3D%27%22%27%20%7C%7C%20%28al%3D%3D2%20%26%26%20arguments%5B1%5D%3D%3D%27%27%29%29nStart%3DnEnd%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%3B%0A%0A%09ta.value%3Ds%3B%0A%09ta.setSelectionRange%28nStart%2C%20nEnd%29%3B%0A%09ta.focus%28%29%3B%0A%7D%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
wolwerine > 22-06-2013 23:53:51 |
Добавить закладку на Desktop (Firefox). Создаёт пункт в контекстном меню страницы/ссылки для добавления закладки в расширение Desktop (Рабочий стол). скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u043D%u0430%20Desktop%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u043D%u0430%20Desktop%22%20%u0432%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u043C%20%u043C%u0435%u043D%u044E%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%2C%20%u043E%u0442%2022.06.2013.%0A%28function%20%28%29%20%7B%20%0A%0A%20%20%20const%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%20%20%20var%20icon1%3D%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5/wAAgOkAAHUwAADqYAAAOpgAABdvkl/FRgAAAtlJREFUeNqkzEtrXGUAgOH3O+ebOaeTSSeTpMaaiG3KhFobaetCshCpgpuCUCSCVpBu2i6ktOJCELopuBCkuOhCqUiVogvdiS409cKIiAuptqFNGptoc5tbJufMnOt3ceFP6PMDHlE4dZGjL73KLr+AL2CQCKkysthFaxCA0ZpmUuHF/F1em/7x2YaqZt8tHfj12i9jSAEg3JKWBZQ1SOEwKBwyLdHm/0AYy1oyYIcmpp7a2Ki/9fT57XP5zLHS+o2VSI5VK6/sH/Yum7iPtFhZcOjpIv00R+cax0KYefhq1T4+0hu5VD/L3pMzh8teXLq+8O1p2bViz/MjXrX2723Ga5N8ulnkylKHYZNhswysYL7t88XMl/x5r8+1xiyDdmP8p98XoNfdK8NOGKaFAXYfPESxOkSrGbIUtbDFAkJl3Fgb5MKROhPhz8x+foJ2eRlaKyAUCDeQXrnMV7dXuMMW2hjq/gTe5DhBELDadZkaXeZM6SNe+PAAbR6FeBNcDXEEmUKmageHqoa3dyvox5zZjJlb1mwHbVQj5crxnHeuPsbN7nOwpwvtbchisBrh+0iW7ts//mrwtXgIURlh8e9/YL6LWu/y3uuTrN4J+OTWMzA9Cp0GaAFJDHkASYgkSWl1M242FbQadJbX4FaTE7PTnK8pKh8swL4jkEfgSBAuGAN5ijVYyfo2p5/cxctHnwDg7lrE/DdzvNG6yvHLx4jcGjg5xBpUBiYHq8AacD0rKQ/Yz+r32LJF0D2uL3QwYy7n5iy/UYJHCtDvg9IQhdDrQNqDNAUjhGD24zdJ1PukgCxCpQj+ANgy+D2QgHQhSSCNIepB0ISwAUl6Vh4e0q0dY1MkucK4DkI6CFdgBeAOI4wFrXBiB2E9hFtFJKN4cj/9jcWW+GHue7nz4X01rbIhYCeOKCEooK2LNgJrwGJxhBHG5lgd4biBLJa2+lv3F4W1lgfh8ID+GwByjGTHSfx/fAAAAABJRU5ErkJggg%3D%3D%22%3B%0A%0A%20%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%20%20%20%0A%20%20%20menuitem.setAttribute%28%22id%22%2C%20%22context-addBookmark%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22label%22%2C%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u043D%u0430%20%22%20+%20getFolderName%28%29%20%29%3B%20%20%0A%20%20%20menuitem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22image%22%2C%20icon1%29%3B%0A%0A%20%20%20const%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%20%0A%20%20%20contextMenu.appendChild%28%20menuitem%20%29%3B%20%0A%20%20%20addDestructor%28function%28%20reason%20%29%20%7B%20contextMenu.removeChild%28%20menuitem%29%20%7D%29%3B%0A%0A%20%20%20addEventListener%28%22click%22%2C%20function%28e%29%20%7B%20%20%20%20%20%0A%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20gContextMenu.onLink%20%0A%20%20%20%20%20%20%20%20%20%20%20%3F%20addBookmark%28%20gContextMenu.getLinkURI%28%29%2C%20gContextMenu.linkText%28%29%2C%20gContextMenu.onLink%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%3A%20addBookmark%28%20gBrowser.selectedBrowser.webNavigation.currentURI%2C%20getDocTitle%28%29%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%0A%20%20%20%7D%2C%20false%2C%20menuitem%20%29%3B%0A%0A%20%20%20function%20getDocTitle%28%29%20%7B%0A%20%20%20%20%20%20var%20docTitle%20%3D%20content.document.title%20%7C%7C%20gBrowser.mCurrentTab.label%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043B%u0438%u0448%u043D%u0438%u0435%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%0A%20%20%20%20%20%20var%20docTitle%20%3D%20docTitle.replace%28/%5B%3A.%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%22%20%22%29%0A%20%20%20%20%20%20var%20docTitle%20%3D%20docTitle.replace%28/%5Cs%5Cs+/g%2C%20%22%20%22%29%3B%0A%0A%20%20%20%20%20%20return%20docTitle.substring%280%2C%2050%29%3B%0A%20%20%20%7D%3B%0A%0A%20%20%20function%20getFolderName%28%29%20%7B%0A%20%20%20%20%20%20var%20folder%20%3D%20Application.prefs.getValue%28%22CB.bookmarkFolderForSaving%22%2C%200%29%3B%20%0A%20%20%20%20%20%20return%20%28%20folder%20%3D%3D%200%20%29%20%3F%20%22Desktop%22%20%3A%20folder%3B%0A%20%20%20%7D%3B%0A%0A%20%20%20function%20getChildFolder%28%20parentId%2C%20title%20%29%20%7B%0A%20%20%20%20%20%20var%20res%20%3D%20null%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20hs%20%3D%20Cc%20%5B%22@mozilla.org/browser/nav-history-service%3B1%22%5D.getService%28Ci.nsINavHistoryService%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20options%20%3D%20hs.getNewQueryOptions%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20options.excludeItems%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20var%20query%20%3D%20hs.getNewQuery%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20query.setFolders%28%20%5BparentId%5D%2C%201%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20hs.executeQuery%28%20query%2C%20options%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20rn%20%3D%20result.root%3B%0A%20%20%20%20%20%20%20%20%20%20rn.containerOpen%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20var%20i%2C%20node%3B%0A%20%20%20%20%20%20%20%20%20%20for%20%28%20i%20%3D%200%3B%20i%20%3C%20rn.childCount%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20node%20%3D%20rn.getChild%28i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20node.title%20%3D%3D%20title%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20res%20%3D%20node.itemId%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20rn.containerOpen%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20catch%28e%29%20%7B%7D%0A%0A%20%20%20return%20res%3B%0A%20%20%20%7D%3B%20%0A%0A%20%20%20function%20addBookmark%28%20url%2C%20label%2C%20link%20%29%20%7B%0A%20%20%20%20%20%20var%20bmsvc%20%3D%20Components.classes%20%5B%22@mozilla.org/browser/nav-bookmarks-service%3B1%22%5D.getService%28Components.interfaces.nsINavBookmarksService%29%3B%0A%20%20%20%20%20%20var%20rootFolder%20%3D%20bmsvc.bookmarksMenuFolder%3B%0A%20%20%20%20%20%20var%20folderName%20%3D%20getFolderName%28%29%3B%0A%20%20%20%20%20%20var%20folder%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20if%20%28%20%21folder%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20bmsvc.createFolder%28%20rootFolder%2C%20folderName%2C%20bmsvc.DEFAULT_INDEX%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20folder%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%0A%20%20%20%20%20%20bmsvc.insertBookmark%28%20folder%2C%20url%2C%20bmsvc.DEFAULT_INDEX%2C%20label%20%29%3B%0A%20%20%20%0A%20%20%20%20%20%20var%20image%20%3D%20%21link%20%26%26%20gBrowser.mCurrentTab.image%20%3F%20gBrowser.mCurrentTab.image%20%3A%20%22chrome%3A//global/skin/icons/information-16.png%22%3B%0A%20%20%20%20%20%20alertsService.showAlertNotification%28%20image%2C%20label%2C%20%27%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u043D%u0430%20%27%20+%20folderName%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%7D%3B%0A%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// "Добавить закладку на Desktop" в контекстном меню на странице, от 22.06.2013. (function () { const alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService); var icon1="data:image/png;base64,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"; var menuitem = document.createElement("menuitem"); menuitem.setAttribute("id", "context-addBookmark"); menuitem.setAttribute("label", "Добавить закладку на " + getFolderName() ); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", icon1); const contextMenu = document.getElementById("contentAreaContextMenu"); contextMenu.appendChild( menuitem ); addDestructor(function( reason ) { contextMenu.removeChild( menuitem) }); addEventListener("click", function(e) { if ( e.button == 0 ) { gContextMenu.onLink ? addBookmark( gContextMenu.getLinkURI(), gContextMenu.linkText(), gContextMenu.onLink ) : addBookmark( gBrowser.selectedBrowser.webNavigation.currentURI, getDocTitle() ); } }, false, menuitem ); function getDocTitle() { var docTitle = content.document.title || gBrowser.mCurrentTab.label; // удалить лишние символы и пробелы var docTitle = docTitle.replace(/[:.\\\/<>?*|"]+/g, " ") var docTitle = docTitle.replace(/\s\s+/g, " "); return docTitle.substring(0, 50); }; function getFolderName() { var folder = Application.prefs.getValue("CB.bookmarkFolderForSaving", 0); return ( folder == 0 ) ? "Desktop" : folder; }; function getChildFolder( parentId, title ) { var res = null; try { var hs = Cc ["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsINavHistoryService); var options = hs.getNewQueryOptions(); options.excludeItems = true; var query = hs.getNewQuery(); query.setFolders( [parentId], 1 ); var result = hs.executeQuery( query, options ); var rn = result.root; rn.containerOpen = true; var i, node; for ( i = 0; i < rn.childCount; i++ ) { var node = rn.getChild(i); if ( node.title == title ) { res = node.itemId; break; } } rn.containerOpen = false; } catch(e) {} return res; }; function addBookmark( url, label, link ) { var bmsvc = Components.classes ["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService); var rootFolder = bmsvc.bookmarksMenuFolder; var folderName = getFolderName(); var folder = getChildFolder( rootFolder, folderName ); if ( !folder ) { bmsvc.createFolder( rootFolder, folderName, bmsvc.DEFAULT_INDEX ); folder = getChildFolder( rootFolder, folderName ); } bmsvc.insertBookmark( folder, url, bmsvc.DEFAULT_INDEX, label ); var image = !link && gBrowser.mCurrentTab.image ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/information-16.png"; alertsService.showAlertNotification( image, label, 'Добавил закладку на ' + folderName, false, "", null, ""); }; })(); Мод кнопки "Добавить закладку в папку" в контекстном меню на странице by bunda1. |
Indomito > 24-06-2013 21:10:29 |
Clipboard(Firefox 53 - идёт ремонт) Выделить код Код:this.MAX_ENTRIES = 16; //Максимальное число записей 16 (размер буфера) this.CHECK_INTERVAL = 1000; //Время опроса буфера 1000 миллисекунд Массив описан как Выделить код Код:// Блок инициализации глоб. переменных и функций // срок существования - один сеанс браузера для вставки BBCode - не нужное можно убрать, только аккуратно. скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EClipboard%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHvSURBVDjLjZI/aFNRFMZ/Ly+GlCYlaMF/1D+4FQRJREigk7OiIAguHSwUkrkgLhVcpIurQjdBcLAITi4FETpIAw46CGIHJ0tFamlt3rvnfA7Ji2kTwQOXe4b7/c73HW4kCYCnc+engU8M1/b88kaFf1T05O65KvAAuFY6epw79xfZ3XoPwPjkFZ4t3uP37i+A58DK/PLGy0FAHli5euPmmbFSmfTrByRhnV0AJDFzcYrcyQtIuvXm1evrwBDg7FhpgmRnk+CBjRePQQLEltoIsb/5jeLk6QJQOBwhD4AbCoFc5QRuAckP5tzfI9neG7mDPIDc8RDwtIOnnZ6D/6seIOCW9ie7Ij7+mGDfYlB3F4oKfD8yTavVWnJ3zAwz+9wDGB5SsICbkYQc8dgkt+cekiTJ4aELkojjOG02m0t9ACFF5ig4bsLN6XQ6rK2toYFIWV+v1wkh8NeBOR4cD4ZbhJkBUK1WDwizXtIgwPHUUHAUDLcc3hO02+2+eBBSr9cxsy6gO70L8CwChqSRDrLqO8CEp97bgSGL8CgAsL6+PiSURKPR6Dt4lybJzPipKeRC7uRTiH+WkUStVhsSZ3cGePR2dbUMXMoeGXl2KpcpFotEUTTyA8VxjJkRjco2OzubM7MFMzvW+zD94+6D58sfRXpka4kRkDcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++%0A//%20%u0411%u043B%u043E%u043A%20%u0438%u043D%u0438%u0446%u0438%u0430%u043B%u0438%u0437%u0430%u0446%u0438%u0438%20%u0433%u043B%u043E%u0431.%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0445%20%u0438%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%0A//%20%u0441%u0440%u043E%u043A%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u043E%u0432%u0430%u043D%u0438%u044F%20-%20%u043E%u0434%u0438%u043D%20%u0441%u0435%u0430%u043D%u0441%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%0A//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++%0A//%0AbbBBCodeStat%3Dtrue%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%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0440%u0430%u0437%u0440%u0435%u0448%u0438%u0442%u044C/%u0432%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20BBCode%0Awindow.arycb_BBCodeClipboardStrings%20%3D%20this.clipboardStrings%20%3D%20%5B%5D%3B%20%20%20//%20%u041C%u0430%u0441%u0441%u0438%u0432%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%0A//%0A//********************************************************%0A//--------%u041E%u0431%u0449%u0438%u0435%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20%u0434%u043B%u044F%20%u0432%u0441%u0442%u0430%u0432%u043A%u0438%20BBCode----------------%0A//*********************************************************%0A%0A//++++++++++++++++++BEGIN%20DEF++++++++++++++++++++++++++++++%0A//--------------------------------------------------------%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20lb_BBCodePrim%20%0A//%20%5BbbCode%5D%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%5B/bbCode%5D%0A//%20%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u043E%u0442%20%u041B%u041A%u041C%29%0Alb_BBCodePrim%20%3D%20function%20%28open%2Cclose%29%7B%0Avar%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0Avar%20startPos%20%3D%20theBox.selectionStart%3B%0Avar%20endPos%20%3D%20theBox.selectionEnd%3B%0Avar%20oPosition%20%3D%20theBox.scrollTop%3B%0Avar%20oHeight%20%3D%20theBox.scrollHeight%3B%0Avar%20text%3DtheBox.value.substring%280%2CstartPos%29%3B%0Atext%20+%3Dopen+theBox.value.substring%28startPos%2C%20endPos%29+close%3B%0Atext%20+%3DtheBox.value.substring%28endPos%2C%20theBox.value.length%29%3B%0AtheBox.value%20%3D%20text%3B%0Avar%20nHeight%20%3D%20theBox.scrollHeight%20-%20oHeight%3B%0AtheBox.scrollTop%20%3D%20oPosition%20+%20nHeight%3B%0A%7D%3B%0A%0A//---------------------------------------------------------%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20mb_BBCodePrim%20%0A//%20%u0420%u0435%u0437%u0435%u0440%u0432%0A//%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u043E%u0442%20C%u041A%u041C%0Amb_BBCodePrim%20%3D%20function%20%28open%2Cclose%29%20%7B%7D%3B%0A%0A//%20-------------------------------------------------------%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20rb_BBCodePrim%20%0A//%20%5BbbCode%5D%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%20PASTE%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%5B/bbCode%5D%0A//%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u043E%u0442%20%u041F%u041A%u041C%0Arb_BBCodePrim%20%3D%20function%20%28open%2Cclose%2Cpaste%29%7B%0Aif%20%28paste%20%3D%3D%20undefined%29%20%20%7B%20open%20+%3Dclose%3B%7D%20//%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u043F%u0443%u0441%u0442%0A%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20open%20+%3Dpaste+close%3B%7D%0A%20%20%20%0Avar%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0Avar%20startPos%20%3D%20theBox.selectionStart%3B%0Avar%20endPos%20%3D%20theBox.selectionEnd%3B%0Avar%20selectionLen%20%3D%20endPos%20-%20startPos%0Avar%20oPosition%20%3D%20theBox.scrollTop%3B%0Avar%20oHeight%20%3D%20theBox.scrollHeight%3B%0Avar%20text%3DtheBox.value.substring%280%2CstartPos%29%3B%20%0Avar%20nHeight%20%3D%20theBox.scrollHeight%20-%20oHeight%3B%0Atext%20+%3Dopen%3B%0Atext%20+%3DtheBox.value.substring%28endPos%2C%20theBox.value.length%29%3B%0AtheBox.value%20%3D%20text%3B%20%0AtheBox.selectionStart%20%3D%20endPos%20+%20open.length%3B%0AtheBox.selectionEnd%20%3D%20endPos%20+%20open.length%20-%20selectionLen%3B%0AtheBox.scrollTop%20%3D%20oPosition%20+%20nHeight%3B%0A%7D%3B%0A%0A//%20-------------------------------------------------------%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20fHLD_Get_ListClipboardPrim%20%0A//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u0441%u043E%u0445%u0440%u0430%u043D%u0451%u043D%u043E%u0433%u043E%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A//%0AfnHLD_Get_ListClipboardPrim%20%3D%20function%20%28%29%7B%0Avar%20cs%20%3D%20arycb_BBCodeClipboardStrings%3B%20%0Areturn%20%28cs.slice%280%29%29%3B%20%0A%7D%3B%20%0A%0A%0A//++++++++++++++++++END%20DEF+++++++++++++++++++++++++++++++++++%0A%0A//%u0421%u043F%u0438%u0441%u043E%u043A%20%u0441%u043E%u0445%u0440%u0430%u043D%u0451%u043D%u043E%u0433%u043E%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A//%u041D%u0435%20%u0432%u044B%u0437%u044B%u0432%u0430%u0435%u043C%20%u044D%u0442%u043E%2C%20%u043E%u0431%u0440%u0430%u0431%u043E%u0442%u043A%u0430%20%u043F%u043E%20%u0442%u0430%u0439%u043C%u0435%u0440%u0443%20%u0438%u043B%u0438%20%u043F%u043E%20%u0441%u043E%u0431%u044B%u0442%u0438%u044E%20%u041B%u041A%u041C%0A//-----%u041E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%u0438%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%0Athis.MAX_ENTRIES%20%3D%2016%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%u041C%u0430%u043A%u0441%u0438%u043C%u0430%u043B%u044C%u043D%u043E%u0435%20%u0447%u0438%u0441%u043B%u043E%20%u0437%u0430%u043F%u0438%u0441%u0435%u0439%2016%0Athis.CHECK_INTERVAL%20%3D%201000%3B%20%20%20%20%20%20//%u0412%u0440%u0435%u043C%u044F%20%u043E%u043F%u0440%u043E%u0441%u0430%20%u0431%u0443%u0444%u0435%u0440%u0430%201000%20%u043C%u0438%u043B%u043B%u0438%u0441%u0435%u043A%u0443%u043D%u0434%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0Athis._menupopup%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Athis._menupopup.setAttribute%28%22oncommand%22%2C%20%22this.parentNode.handleCommand%28event.target%29%3B%22%29%3B%0A%0A%0A%0Athis.checkClipboard%20%3D%20function%28%29%20%7B%0A%20%20%20%20var%20clipStr%20%3D%20readFromClipboard%28%29%3B%0A%20%20%20%20if%28clipStr%20%26%26%20this.clipboardStrings.indexOf%28clipStr%29%20%3D%3D%20-1%29%0A%20%20%20%20%20%20%20%20this.storeString%28clipStr%29%3B%0A%7D%3B%0A%0A%0Athis.storeString%20%3D%20function%28str%29%20%7B%0A%20%20%20%20var%20cs%20%3D%20this.clipboardStrings%3B%0A%20%20%20%20cs.push%28str%29%3B%0A%20%20%20%20while%28cs.length%20%3E%20this.MAX_ENTRIES%29%0A%20%20%20%20%20%20%20%20cs.shift%28%29%3B%20%0A%0A%20%20%20%20var%20mi%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20mi.setAttribute%28%22label%22%2C%20str%29%3B%0A%20%20%20%0A%20%20%20%20%0A%20%20%20%20this._menupopup.appendChild%28mi%29%3B%0A%20%20%20%20while%28this._menupopup.childNodes.length%20%3E%20this.MAX_ENTRIES%29%0A%20%20%20%20%20%20%20%20this._menupopup.removeChild%28this._menupopup.firstChild%29%3B%0A%7D%3B%0A%0A%0Athis.handleCommand%20%3D%20function%28mi%29%20%7B%0A%20%20%20%20var%20indx%20%3D%20Array.indexOf%28mi.parentNode.childNodes%2C%20mi%29%3B%0A%20%20%20%20if%28indx%20%21%3D%20-1%29%0A%20%20%20%20%20%20%20%20this.insertText%28this.clipboardStrings%5Bindx%5D%29%3B%0A%7D%3B%0A%0Athis.insertText%20%3D%20function%28str%29%20%7B%0A%20%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20%20if%28controller%20%26%26%20controller.isCommandEnabled%28cmd%29%29%20%7B%0A%20%20%20%20%20%20%20%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20str%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0AsetInterval%28function%28button%29%20%7B%0A%20%20%20%20button.checkClipboard%28%29%3B%0A%7D%2C%20this.CHECK_INTERVAL%2C%20this%29%3B%0A%0Athis.setAttribute%28%22onpopupshowing%22%2C%20%22this.checkClipboard%28%29%3B%22%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Инициализация: Выделить код Код:/*Initialization Code*/ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // Блок инициализации глоб. переменных и функций // срок существования - один сеанс браузера //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // bbBBCodeStat=true // разрешить/включить BBCode window.arycb_BBCodeClipboardStrings = this.clipboardStrings = []; // Массив буфера обмена // //******************************************************** //--------Общие функции для вставки BBCode---------------- //********************************************************* //++++++++++++++++++BEGIN DEF++++++++++++++++++++++++++++++ //-------------------------------------------------------- // Функция lb_BBCodePrim // [bbCode]выделенный[/bbCode] // по умолчанию от ЛКМ) lb_BBCodePrim = function (open,close){ var theBox = document.commandDispatcher.focusedElement; var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var oPosition = theBox.scrollTop; var oHeight = theBox.scrollHeight; var text=theBox.value.substring(0,startPos); text +=open+theBox.value.substring(startPos, endPos)+close; text +=theBox.value.substring(endPos, theBox.value.length); theBox.value = text; var nHeight = theBox.scrollHeight - oHeight; theBox.scrollTop = oPosition + nHeight; }; //--------------------------------------------------------- // Функция mb_BBCodePrim // Резерв // по умолчанию от CКМ mb_BBCodePrim = function (open,close) {}; // ------------------------------------------------------- // Функция rb_BBCodePrim // [bbCode]параметр PASTE по умолчанию из буфер обмена[/bbCode] // по умолчанию от ПКМ rb_BBCodePrim = function (open,close,paste){ if (paste == undefined) { open +=close;} //буфер обмена пуст else { open +=paste+close;} var theBox = document.commandDispatcher.focusedElement; var startPos = theBox.selectionStart; var endPos = theBox.selectionEnd; var selectionLen = endPos - startPos var oPosition = theBox.scrollTop; var oHeight = theBox.scrollHeight; var text=theBox.value.substring(0,startPos); var nHeight = theBox.scrollHeight - oHeight; text +=open; text +=theBox.value.substring(endPos, theBox.value.length); theBox.value = text; theBox.selectionStart = endPos + open.length; theBox.selectionEnd = endPos + open.length - selectionLen; theBox.scrollTop = oPosition + nHeight; }; // ------------------------------------------------------- // Функция fHLD_Get_ListClipboardPrim // получить список сохранёного буфера обмена // fnHLD_Get_ListClipboardPrim = function (){ var cs = arycb_BBCodeClipboardStrings; return (cs.slice(0)); }; //++++++++++++++++++END DEF+++++++++++++++++++++++++++++++++++ //Список сохранёного буфера обмена //Не вызываем это, обработка по таймеру или по событию ЛКМ //-----Обработчики буфера обмена this.MAX_ENTRIES = 16; //Максимальное число записей 16 this.CHECK_INTERVAL = 1000; //Время опроса буфера 1000 миллисекунд this.type = "menu"; this.orient = "horizontal"; this._menupopup = this.appendChild(document.createElement("menupopup")); this._menupopup.setAttribute("oncommand", "this.parentNode.handleCommand(event.target);"); this.checkClipboard = function() { var clipStr = readFromClipboard(); if(clipStr && this.clipboardStrings.indexOf(clipStr) == -1) this.storeString(clipStr); }; this.storeString = function(str) { var cs = this.clipboardStrings; cs.push(str); while(cs.length > this.MAX_ENTRIES) cs.shift(); var mi = document.createElement("menuitem"); mi.setAttribute("label", str); this._menupopup.appendChild(mi); while(this._menupopup.childNodes.length > this.MAX_ENTRIES) this._menupopup.removeChild(this._menupopup.firstChild); }; this.handleCommand = function(mi) { var indx = Array.indexOf(mi.parentNode.childNodes, mi); if(indx != -1) this.insertText(this.clipboardStrings[indx]); }; this.insertText = function(str) { var cmd = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(cmd); if(controller && controller.isCommandEnabled(cmd)) { controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"] .createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", str); controller.doCommandWithParams(cmd, params); } }; setInterval(function(button) { button.checkClipboard(); }, this.CHECK_INTERVAL, this); this.setAttribute("onpopupshowing", "this.checkClipboard();"); Пример скрипта для тега [ b][ /b] на базе использования Clipboard скрытый текст Инициализация: Выделить код Код:/*Initialization Code*/ function lbMouse(){ var open="[b]", close="[/b]"; lb_BBCodePrim (open,close); }; function rbMouse(){ var open="[b]", close="[/b]"; var cm = fnHLD_Get_ListClipboardPrim (), cs = cm.reverse(); if (cs.length==0) cs.unshift("Буфер обмена пуст!"); var selected = {}; var x = custombuttons. selectBox ("Текст из буфера обмена", "Выберите ТЕКСТ:", cs, selected); if (x [0]) rb_BBCodePrim (open,close,cs [x [1]. value]); }; //---------------------------------------- this.onclick = function(event) { if(event.button == 0) { // Действие при клике ЛКМ lbMouse(); } else if(event.button == 1) { // Действие при клике СКМ } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Действие при клике ПКМ без модификаторов rbMouse(); } }; this.oncontextmenu = function(event) { if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; |
bunda1 > 14-08-2013 22:08:34 |
Block Site Button 2( Firefox ) от 13.02.2016. для дополнения BlockSite :: Дополнения Firefox ЛКМ => Добавить текущую страницу в список BlockSite. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EBlock%20Site%20Button%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAAGHRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuMzap5+IlAAACu0lEQVQ4T21Ta0hTYRg+23GbOm+TdFZejrk5L6hked3QJkIr9YdYQRA2QrcpZqbRn6SICEN/RBT9EIJWoNSPLiKUIizDa1OPHqeZIGhBRqKzpsVZ1tPZEYdzO/D+ON/3Ps/zPe9FQOz5egOj9U7h1vl/gj/HAsESTuFfYklMEKxw6x13br76DY/3Yvj/YUkC1e8fR9vOVmGj8xl+FxbBLpRgjZTgl4DEF7EAHeEE7kQRNBeUB8m4KJEaizxsX3/+Gmut9zEWfQQjKjXGj5+BVXcKlpRsDAbIsEKKwATwJHYPElqkoje7e7FyrQW0shA3CAKcgkdY8ovQJ5WBO9whoflX2MgU/deaZqzfbAOjPOYFdBFNGi9hOK8Qm0ISPUEhnC1yx46emCFTLM5HZtjkWT6VGWMDRnO1YA1G9EXsx1tNAfqlUnCFdVmxEPMx3GVdA2yKIi91m+EyxnKKeHC/Kg1WUx2f8zQslLdyV87ZXDyQCwensFBR60EwW92IidxiOGtqMZCYjnHTRfd9T2kJlv22bRCLwalwhB/EfPE5d8JcdRMm83RgG5swnJQJ2ljvQd5TdhKrpHCb4COpAisQYVqh5ZPmq65gOr8EbPN1DMWmYoor4N6OPJGF8Ba4GoBgyGSLQyjFnCQOTFYpZtRlYG/dxgiVgWlDgxfY1eJBWSiWAsjtIk75Jek/SSj8lMdhVqUBq78Aa0w6ZgyNPlv66lA8HFx0yEUuAj0/C1axkv4emwxotZjYlwRrjs6ncleCEguZmWCSKX6k3eM8KlZQA/7x9uWjGjjKT4NJU4NbKozqKjB0ohwvgyPwIU+DjcpKMAVZ3qPsYnrvT1F9gdH0iCIdKwYT0N6O1ZY2/HjwEDCb8bnehI6MGN/LtHuzuoOi9C9CIiydYTK8UeegqyAb9yJFaI0SWNyedwH+A+D1pJXWZfRiAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20Block%20Site%20Button%20%u043E%u0442%2013.02.2016.%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Athis._handleClick%20%3D%28%29%3D%3E%20%7B%20BlockSite.AddPage%28window.content.location.href%29%3B%20showTooltip%28%29%3B%20%7D%3B%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0432%20%u0441%u043F%u0438%u0441%u043E%u043A%20BlockSite%20%u043F%u0440%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0438%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20..........%0Athis.ondrop%20%3De%3D%3E%20%7B%0A%20%20%20%20var%20url%20%3D%20e.dataTransfer.mozGetDataAt%28%22text/x-moz-url-data%22%2C%200%29%3B%0A%20%20%20%20if%20%28%20%21url%20%29%20%7B%0A%09%20var%20text%20%3D%20e.dataTransfer.mozGetDataAt%28%22text/plain%22%2C%200%29.trim%28%29%3B%0A%09%20%20%0A%20%20%20%20%20%20%20%20%20if%20%28%20/%5E%28%3F%3Ahttps%3F%29%3A/i.test%28text%29%20%29%20%7B%20try%20%7B%20url%20%3D%20makeURI%28text%29%20%7D%20catch%20%28e%29%20%7B%7D%20%7D%0A%20%20%20%20%20%20%20%20%20else%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%5E%28%3F%3A%5Ba-z%5Cd-%5D+%5C.%29+%5Ba-z%5D+%24/i.test%28text%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20uriFixup%20%3D%20Cc%5B%22@mozilla.org/docshell/urifixup%3B1%22%5D.getService%28Ci.nsIURIFixup%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20url%20%3D%20uriFixup.createFixupURI%28text%2C%20uriFixup.FIXUP_FLAG_NONE%29%20%7D%20catch%20%28e%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20if%20%28%20url%20%26%26%20url.host%20%29%20url%20%3D%20url.spec%3B%0A%09%20%7D%0A%20%20%20%20url%20%3D%20url%20%26%26%20url.substring%280%2C%204%29%20%3D%3D%20%22http%22%20%3F%20url%20%3A%20null%3B%0A%0A%20%20%20%20BlockSite.AddPage%28%20url%20%29%3B%20%0A%20%20%20%20showTooltip%28%29%3B%20%20%20%0A%7D%3B%0Athis.ondragover%20%3De%3D%3E%20%7B%20e.preventDefault%28%29%20%7D%3B%0A%0A%0A//%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0443%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0434%u043E%u0431%u0430%u0432%u043B%u0435%u043D%u0438%u0438%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u0432%20%u0441%u043F%u0438%u0441%u043E%u043A%20BlockSite%20..........%20%20%20%20%20%20%20%20%0Afunction%20showTooltip%28%29%20%7B%0A%20%20%20var%20tooltip%20%3D%20self.lastChild%3B%0A%20%20%20if%20%28%20%21tooltip%20%29%20%7B%0A%20%20%20%20%20%20%20%20tooltip%20%3D%20self.appendChild%28document.createElement%28%22tooltip%22%29%29%3B%0A%20%20%20%20%20%20%20%20tooltip.style.cssText%20%3D%20%22font-weight%3A%20bold%20%21important%3B%20color%3A%20red%20%21important%3B%20font-size%3A%2014px%20%21important%3B%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20self.tooltipText%20%3D%20%22%22%20%20%20%20%20%0A%20%20%20tooltip.label%20%3D%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0432%20%22%20+%20%28custombuttons.getPrefs%28%22extensions.BlockSite.listtype%22%29%5B0%5D%20%3D%3D%20%22b%22%20%3F%20%22%u0447%u0451%u0440%u043D%22%20%3A%20%22%u0431%u0435%u043B%22%29%20+%20%22%u044B%u0439%20%u0441%u043F%u0438%u0441%u043E%u043A%22%3B%0A%20%20%20tooltip.showPopup%28%20self%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22topleft%22%2C%20%22topright%22%29%3B%0A%20%20%20self.onmouseleave%20%3D%28%29%3D%3E%20%7B%20tooltip.hidePopup%28%20self.onmouseleave%20%3D%20null%20%29%3B%20self.tooltipText%20%3D%20self.label%20%7D%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20BlockSite%20..........%0Avar%20s%20%3D%20%22extensions.BlockSite.listtype%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20icon.src%20%3D%20custombuttons.getPrefs%28s%29%5B0%5D%20%3D%3D%20%22b%22%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLQYYA6uFb8QpxH/O7c3/z6yNv8WkQX/GIoBvxiIAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwiAgCrwczyTILv9m62j/mv+a/4fti/+U8Zb/of+h/27iaP8vph3/GIgAzxiIACAAAAAAAAAAAAAAAAAGySQgCMQh7zTnPP9R81X/LdI7/wq6HP9IyVP/ScZR/w2vFf85yjz/XvRe/z7SNf8YiADvGIgAIAAAAAAAAAAABsslzx7qKf9B/0H/FM4o/zfLSP8AAAD/AAAA/wAAAP8AAAD/AH8A/yOyJf8y3TL/KdIg/xiIAM8AAAAABNEoYAfZIP8X8h//J9Y8/2D5Yv8dyy7/ZtVy/wAAAP8AAAD/AAAA/wAAAP8AAAD/IrAh/yLzIf8XpgX/GIgAYAPSKb8C8wv/B9gf/zXSTP871U3/g/mF/yDIL/9m03D/AAAA/wAAAP8AAAD/AAAA/wB/AP8RxQ//CeED/xiIAL8D1yf/AfkF/yTTQf8AAAD/ZNp0/zrTS/98+X7/HsYr/2fRb/8AAAD/AAAA/wAAAP8AAAD/EaIO/wD/AP8YiAD/DeAr/xLzG/9E2lz/AAAA/wAAAP9l2HP/OdBI/3L5c/8oxzL/Z89u/wAAAP8AAAD/AAAA/025Sv8D7QL/EqYA/xrgOP8480H/U91q/wAAAP8AAAD/AAAA/2XWcv84zkT/afpq/ybELv9ozW3/AAAA/wAAAP9MuUv/BOcD/xKmAP8d2kH/bPlw/yTUQv8AAAD/AAAA/wAAAP8AAAD/ZtRx/zfMQv9m+Wf/J8Et/2jLbP8AAAD/EKMP/wD/AP8XjwD/A9Uqv536of8X1DX/AH8A/wAAAP8AAAD/AAAA/wAAAP9n0nD/OMlB/2b5Z/8VvBn/PLg+/wvBC/8G4QD/GIgAvwPUKmBp5nz/gfCL/yXSQP8AAAD/AAAA/wAAAP8AAAD/AAAA/2fQb/85xz//AvUD/wy5Dv8D7gP/EqYA/xiIAGAAAAAABc8nz7T1uv9764f/Jc8//wB/AP8AAAD/AAAA/wAAAP8AAAD/Or9C/wu8Ef8A/wD/CdIA/xiIAM8AAAAAAAAAAAXNJiAWzDHvqvCx/4ruk/8czDP/J8g7/0fNVv9Iy1T/Kr82/wnFEf8D6wX/CdIA/xiIAO8YiAAgAAAAAAAAAAAAAAAAB8cjIAjBH89Z1GT/p/Sp/z/3Qv8C7wf/A+4H/wH2A/8G4wH/EqYA/xiIAM8YiAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrocYAy0GL8NshP/DLwM/w62Cf8Ulwn/FpAFvxiKAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%22%3B%20%20%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Block Site Button от 13.02.2016. // Настройка функций кликов мыши для кнопки .......... this._handleClick =()=> { BlockSite.AddPage(window.content.location.href); showTooltip(); }; // Добавить адрес ссылки в список BlockSite при перетаскивании ссылки на кнопку .......... this.ondrop =e=> { var url = e.dataTransfer.mozGetDataAt("text/x-moz-url-data", 0); if ( !url ) { var text = e.dataTransfer.mozGetDataAt("text/plain", 0).trim(); if ( /^(?:https?):/i.test(text) ) { try { url = makeURI(text) } catch (e) {} } else if ( /^(?:[a-z\d-]+\.)+[a-z]+$/i.test(text) ) { var uriFixup = Cc["@mozilla.org/docshell/urifixup;1"].getService(Ci.nsIURIFixup); try { url = uriFixup.createFixupURI(text, uriFixup.FIXUP_FLAG_NONE) } catch (e) {} } if ( url && url.host ) url = url.spec; } url = url && url.substring(0, 4) == "http" ? url : null; BlockSite.AddPage( url ); showTooltip(); }; this.ondragover =e=> { e.preventDefault() }; // Показать подсказку у кнопки при добавлении адреса в список BlockSite .......... function showTooltip() { var tooltip = self.lastChild; if ( !tooltip ) { tooltip = self.appendChild(document.createElement("tooltip")); tooltip.style.cssText = "font-weight: bold !important; color: red !important; font-size: 14px !important;"; } self.tooltipText = "" tooltip.label = "Добавил в " + (custombuttons.getPrefs("extensions.BlockSite.listtype")[0] == "b" ? "чёрн" : "бел") + "ый список"; tooltip.showPopup( self, -1, -1, "popup", "topleft", "topright"); self.onmouseleave =()=> { tooltip.hidePopup( self.onmouseleave = null ); self.tooltipText = self.label }; }; // Установить нужную иконку кнопки при старте браузера или при изменениях настроек BlockSite .......... var s = "extensions.BlockSite.listtype"; function toggleImage() { var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon"); icon.src = custombuttons.getPrefs(s)[0] == "b" ? self.image : "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLQYYA6uFb8QpxH/O7c3/z6yNv8WkQX/GIoBvxiIAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwiAgCrwczyTILv9m62j/mv+a/4fti/+U8Zb/of+h/27iaP8vph3/GIgAzxiIACAAAAAAAAAAAAAAAAAGySQgCMQh7zTnPP9R81X/LdI7/wq6HP9IyVP/ScZR/w2vFf85yjz/XvRe/z7SNf8YiADvGIgAIAAAAAAAAAAABsslzx7qKf9B/0H/FM4o/zfLSP8AAAD/AAAA/wAAAP8AAAD/AH8A/yOyJf8y3TL/KdIg/xiIAM8AAAAABNEoYAfZIP8X8h//J9Y8/2D5Yv8dyy7/ZtVy/wAAAP8AAAD/AAAA/wAAAP8AAAD/IrAh/yLzIf8XpgX/GIgAYAPSKb8C8wv/B9gf/zXSTP871U3/g/mF/yDIL/9m03D/AAAA/wAAAP8AAAD/AAAA/wB/AP8RxQ//CeED/xiIAL8D1yf/AfkF/yTTQf8AAAD/ZNp0/zrTS/98+X7/HsYr/2fRb/8AAAD/AAAA/wAAAP8AAAD/EaIO/wD/AP8YiAD/DeAr/xLzG/9E2lz/AAAA/wAAAP9l2HP/OdBI/3L5c/8oxzL/Z89u/wAAAP8AAAD/AAAA/025Sv8D7QL/EqYA/xrgOP8480H/U91q/wAAAP8AAAD/AAAA/2XWcv84zkT/afpq/ybELv9ozW3/AAAA/wAAAP9MuUv/BOcD/xKmAP8d2kH/bPlw/yTUQv8AAAD/AAAA/wAAAP8AAAD/ZtRx/zfMQv9m+Wf/J8Et/2jLbP8AAAD/EKMP/wD/AP8XjwD/A9Uqv536of8X1DX/AH8A/wAAAP8AAAD/AAAA/wAAAP9n0nD/OMlB/2b5Z/8VvBn/PLg+/wvBC/8G4QD/GIgAvwPUKmBp5nz/gfCL/yXSQP8AAAD/AAAA/wAAAP8AAAD/AAAA/2fQb/85xz//AvUD/wy5Dv8D7gP/EqYA/xiIAGAAAAAABc8nz7T1uv9764f/Jc8//wB/AP8AAAD/AAAA/wAAAP8AAAD/Or9C/wu8Ef8A/wD/CdIA/xiIAM8AAAAAAAAAAAXNJiAWzDHvqvCx/4ruk/8czDP/J8g7/0fNVv9Iy1T/Kr82/wnFEf8D6wX/CdIA/xiIAO8YiAAgAAAAAAAAAAAAAAAAB8cjIAjBH89Z1GT/p/Sp/z/3Qv8C7wf/A+4H/wH2A/8G4wH/EqYA/xiIAM8YiAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrocYAy0GL8NshP/DLwM/w62Cf8Ulwn/FpAFvxiKAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=="; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage) ); Большое спасибо Dumby за помощь с кнопкой. |
bunda1 > 21-08-2013 21:26:56 |
Создать кнопку ярлык для сайта( Firefox17+ ) от 11.01.2015. ЛКМ => Создать кнопку ярлык для текущего сайта. Код кнопки и вкладки Код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u044F%u0440%u043B%u044B%u043A%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAvIhAAMSQSASYZBgBWRTU7hndqdEo3JCccDwAAKx8OASofDQEdDwAATDkmKoZ3anRSQzI3JhkHADEkEgEvIhAAMSQSAicbCQBVRTU5xefw96Hx//+63ujvl4uAjT4rGBpALRocmY+Ekbrf6vCh8f//xeTs81FAMDMoHAkAMSQSAjIlFAQgEwAAgXNlcJbu//9p1Pn6cN7+/pPx///C2uHqwdzi65Hx//9x3f7+aNT5+prv//98bV5oIBQBADIlFAQxJRMDIhYEAGxZSFCj7P//WNP8/WzX/P5c0vr8Vdf+/1TX//9c0vr8bNf8/ljT/P6l6v//Z1NCSSMXBQAxJBMDMCMRAigdCwBRPCgqq+Hy+UXQ//9X0vz+SND9/4DZ+P6C0O3+R836/1bT/f5G0f//rd/u9kw3JCUpHgwAMCMRAjEkEgIrIQ8ANB8LE7nW3ehB0v//N8r7/n/f//+MrHD/g6Fb/4HQ8f81x/j9R9b//7nR1+MvHAcOLSIQADAjEQIuIhAAIxQBAaaZjpub6f//Ncn8/XDV+f+NtG7/Mn0A/y59AP+KrmL/fczu/yPD+v2W6f//pZSHlSATAAAvIxEBJxgFAqSbkp+k9f//WtP7/VnV//+n3+b/XI8M/4u7b/+bxIP/MoUA/4y2YP90yOP/HML5/Zvy//+nl4uZJBcEAIuCdoK19v//etr6+4Te/f9s2P3/adr//6zg3/9n1fL/a9z//5zGe/8/jQD/r8yd/0rP//4awff7ne///4t8b3qmp6Kun/L//5fj/PyF3v39d9n7+27X/P5e1///Rc77/yXG/P9m2Pz/p9Gv/lnM6/sbw/79F8D7/F/i//+tpZunVUc3PcPU2OK67f7/s/H//p7x//913f3+c9n8/2rY/v9e1P3/Pcr8/1DX//515///len//qjo/v/B0dTfUUMyNycaCAA2JRISWEUzN2tcTVSOfG58vODo73Xe//952/3+atf9/ljW//++3uPtlHtrenFeTFNcRTI2NiQRECcaCAAxJBIBLSEPACYaCAAkGQcDEgQAAJSKf4yf8f//htz6+2/W+vuT7f//koV4hRADAAAjGQcDJRoIAC0hDwExJBIBLyIQAC8iEAExJBICMyYUBSwhDwBDMB4iwOPp8Yfj//964f//vt/l7UAsGh0tIhAAMiYUBTAkEgIvIhABLyIQAC8iEAAvIhAALyIQAC8iEAAyJRQDIhQBAId9cn+/9P//wPP//4J3a3giFQIAMiUUAy8iEAAvIhAALyIQAC8iEAAvIhAALyIQAC8iEAAvIhAALyIQADAjEQAoGwgDZVNDS2NRQUgnGggCMCMRAC8iEAAvIhAALyIQAC8iEAAvIhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u044F%u0440%u043B%u044B%u043A%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u0430%2C%20%u043E%u0442%2011.01.2015.%0A%0A%0A//%20%u0418%u043A%u043E%u043D%u043A%u0430%20%u0434%u043B%u044F%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u044F%u0440%u043B%u044B%u043A%u0430%20%u0431%u0435%u0437%20%u0437%u043D%u0430%u0447%u043A%u0430%20%u0432%u0435%u0431-%u0441%u0430%u0439%u0442%u0430%20.................%0Avar%20defaultFavicon%20%3D%20%22chrome%3A//custombuttons/skin/stdicons/gbutton.png%22%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0441%u0430%u0439%u0442%u0430%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u044F%u0440%u043B%u044B%u043A%u0430%20.................%0APlacesUtils.favicons.getFaviconDataForPage%28%0A%20%20%20%20%20%20gBrowser.currentURI%2C%0A%20%20%20%20%20%20function%28%20uri%2C%20len%2C%20arr%2C%20mmt%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20if%20%28%20%21len%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20createButton%28defaultFavicon%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u044F%u0440%u043B%u044B%u043A%20%u0441%20%u0437%u043D%u0430%u0447%u043A%u043E%u043C%20%u0432%u0435%u0431-%u0441%u0430%u0439%u0442%u0430%28%20%u0432%20base64%20%29%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20var%20base64%20%3D%20%22data%3A%22%20+%20mmt%20+%20%22%3Bbase64%2C%22%20+%20btoa%28String.fromCharCode.apply%28null%2C%20arr%29%29%3B%0A%20%20%20%20%20%20%20%20%20createButton%28base64%29%3B%0A%20%20%20%20%20%20%7D%20%20%20%0A%29%3B%0A%0A%0A%0A//%20%u0414%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0434%u043B%u044F%20%u043D%u043E%u0432%u044B%u0439%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%u043A%u043E%u043D%u043A%u0443%2C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0438%20%u043A%u043E%u0434%20.................%0Afunction%20createButton%28favicon%29%20%7B%20%20%0A%20%20%20custombuttons.cloneButton%28self%29%3B%0A%20%20%20%0A%20%20%20var%20newButtonLink%20%3D%20custombuttons.makeButtonLink%28%22update%22%2C%20self.nextSibling.id%20%7C%7C%20_id%29%3B%0A%20%20%20var%20params%20%3D%20custombuttons.cbService.getButtonParameters%28newButtonLink%29.wrappedJSObject%3B%0A%20%20%20%0A%20%20%20params.image%20%3D%20favicon%3B%0A%20%20%20params.name%20%3D%20%28content.document.title%29.substring%280%2C%2075%29%3B%0A%20%20%20params.code%20%3D%20%22gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%27%22%20+%20content.location%20+%20%22%27%29%3B%22%3B%0A%20%20%20%0A%20%20%20params.wrappedJSObject%20%3D%20params%3B%0A%20%20%20custombuttons.cbService.installButton%28params%29%3B%0A%7D%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E вкладка Код: Выделить код Код:// Создать кнопку ярлык для сайта, от 11.01.2015. // Иконка для создания кнопки ярлыка без значка веб-сайта ................. var defaultFavicon = "chrome://custombuttons/skin/stdicons/gbutton.png"; // Получить иконку сайта и запустить создание кнопки ярлыка ................. PlacesUtils.favicons.getFaviconDataForPage( gBrowser.currentURI, function( uri, len, arr, mmt ) { if ( !len ) { createButton(defaultFavicon); return; } // создать кнопку ярлык с значком веб-сайта( в base64 ) var base64 = "data:" + mmt + ";base64," + btoa(String.fromCharCode.apply(null, arr)); createButton(base64); } ); // Дублировать кнопку и установить для новый кнопки иконку, название и код ................. function createButton(favicon) { custombuttons.cloneButton(self); var newButtonLink = custombuttons.makeButtonLink("update", self.nextSibling.id || _id); var params = custombuttons.cbService.getButtonParameters(newButtonLink).wrappedJSObject; params.image = favicon; params.name = (content.document.title).substring(0, 75); params.code = "gBrowser.selectedTab = gBrowser.addTab('" + content.location + "');"; params.wrappedJSObject = params; custombuttons.cbService.installButton(params); }; |
bunda1 > 30-08-2013 23:27:49 |
Переключить JavaScript( Firefox17+ ) от 12.06.2016. ЛКМ => Выключить или включить JavaScript. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20JavaScript%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAACQWzEUkFsxhJBbMaOQWzG2kFsxyZBbMdqQWzHrkFsx+pVhOf+aaUH/o3RP/62CX/+QWzHZkFsxNP///wD///8AlF8zaLiQbf/WuqP/38az/+fUw//u39P/9eri//v07//9+vb///79//vr3//77+b/wZ2A/5RfM2////8A////AJlkNonHpIX////////////////////////+/P/++/f//vfx//728f/krob/+ujb/86vlf+ZZDaL////AP///wCeaTlXnmk59rSFWf/ZpXv/2J5v/9ebav/YlmP/1pJd/9SPWf/Tjlf/4p1p//rj0f/Yu6L/nmk5nv///wD///8ApG88FKRvPKvVroz//fDl//fHov/3z63/+dW1//javf/43sL/+uHG//rkzP/99ez/4s66/6RvPLP///8A////AP///wCqdUAot4ZW//7+/f/63sL/+ty///nbwP/528D/+d3B//rbwP/63MP//eve/+zczf+qdUDK////AP///wD///8AsXtDHrmGUv/+/Pn/+dy///jbv//43MD/+dvC//ncwf/53cL/+t3D//vn1P/17eL/sXtD5P///wD///8A////ALeCRwm5hUv//vv3//ncwf/43L//+Ny///jbwP/53cD/+d3A//ndw//74sv//Pn1/7eCR/u3gkcB////AP///wD///8AvYhL+fz28P/538f/+dy9//rcv//628H/+t3D//rdwv/53cT/++DJ///8+v/BjVP/vYhLD////wD///8A////AMSOTtr159j/+uXS//navP/527z/+tu///rdwf/63cH/+d3E//vhyP///fv/yJRX/8SOThL///8A////AP///wDKlFK78NnB//vt4f/52sD/+dzC//nexf/64Mf/+uLK//rizf/65dD///79/8uPWv/KlFLxypRSRf///wD///8A0JpVpO3Qsv//9vD/+uHK//vjzP/749D/++bT//vp1f/86dj//Orb/////f/SnXH/7tnB/9CaVeX///8A////ANWfWJLryqX///37//3p1f/969j//erb//3t3//98OL//fHk//zw5P//////4KBw///7+f/fuIf/////AP///wDapFuE68aa///////87+L//fDn//3x6//99e7//fjx//369////Pr///////779//02sD/2qRb6v///wD///8A3qhdberAjP///////////////////////fn0//vz6v/469n/+ObT//Xfxv/py6b/3qhd7d6oXV3///8A////AOKsXzbirF/G6ryB/+i3d//msm3/5LBo/+KsX/DirF/j4qxfz+KsX8zirF+74qxfqOKsX0virF8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20BrowserReload%28cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%20%29%3B%0A%20%20%0Avar%20s%20%3D%20%27javascript.enabled%27%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20document.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20cbu.getPrefs%28s%29%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQUAABUhAAAVKMAAFS2AABUyQAAVNoAAFTrAABU+gAAWv8AAGL/AABu/wAAfP8AAFTZAABUNP///wD///8AAABXaAAAif8AALb/AADD/wAA0P8AAN3/AADo/wAA8/8AAPn/AAD9/wAA6f8AAO3/AACY/wAAV2////8A////AAAAXIkAAJ7/AAD//wAA//8AAP//AAD//wAA/f8AAPr/AAD1/wAA9f8AAKf/AADm/wAAqv8AAFyL////AP///wAAAGBXAABg9gAAfP8AAJ7/AACW/wAAkv8AAI3/AACJ/wAAhv8AAIX/AACU/wAA4P8AALb/AABgnv///wD///8AAABlFAAAZasAAKj/AADu/wAAwf8AAMn/AADP/wAA1P8AANj/AADb/wAA3/8AAPP/AADK/wAAZbP///8A////AP///wAAAGooAAB8/wAA/f8AANj/AADW/wAA1v8AANb/AADX/wAA1v8AANf/AADp/wAA2f8AAGrK////AP///wD///8AAABwHgAAfP8AAPv/AADW/wAA1f8AANb/AADW/wAA1/8AANf/AADY/wAA4/8AAOr/AABw5P///wD///8A////AAAAdgkAAHn/AAD6/wAA1/8AANb/AADW/wAA1v8AANf/AADX/wAA2P8AAN3/AAD4/wAAdvsAAHYB////AP///wD///8AAAB7+QAA9P8AANr/AADV/wAA1v8AANb/AADY/wAA2P8AANj/AADc/wAA+/8AAIH/AAB7D////wD///8A////AAAAgNoAAOT/AADh/wAA1P8AANX/AADW/wAA1/8AANf/AADY/wAA3P8AAPz/AACH/wAAgBL///8A////AP///wAAAIa7AADU/wAA6v8AANX/AADX/wAA2f8AANv/AADd/wAA3v8AAOH/AAD9/wAAhf8AAIbxAACGRf///wD///8AAACLpAAAyv8AAPX/AADc/wAA3v8AAN//AADi/wAA5P8AAOX/AADn/wAA/v8AAJX/AADU/wAAi+X///8A////AAAAj5IAAML/AAD8/wAA5f8AAOf/AADn/wAA6v8AAO3/AADu/wAA7f8AAP//AACY/wAA+v8AAK3/////AP///wAAAJSEAAC8/wAA//8AAOz/AADu/wAA8P8AAPP/AAD2/wAA+f8AAPv/AAD//wAA+v8AANX/AACU6v///wD///8AAACXbQAAtf8AAP//AAD//wAA//8AAP//AAD3/wAA8f8AAOf/AADi/wAA2f8AAMP/AACX7QAAl13///8A////AAAAmjYAAJrGAACv/wAAqf8AAKP/AACg/wAAmvAAAJrjAACazwAAmswAAJq7AACaqAAAmksAAJoFAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQYABrEHAAaxBwAGsQcAArEHAAKxBwACsQcAArEHAAKxBwACsQQ%3D%3D%22%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this._handleClick =()=> BrowserReload(cbu.setPrefs(s, !cbu.getPrefs(s)) ); var s = 'javascript.enabled'; function toggleImage() { document.getAnonymousNodes(self)[0].src = cbu.getPrefs(s) ? self.image : "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQUAABUhAAAVKMAAFS2AABUyQAAVNoAAFTrAABU+gAAWv8AAGL/AABu/wAAfP8AAFTZAABUNP///wD///8AAABXaAAAif8AALb/AADD/wAA0P8AAN3/AADo/wAA8/8AAPn/AAD9/wAA6f8AAO3/AACY/wAAV2////8A////AAAAXIkAAJ7/AAD//wAA//8AAP//AAD//wAA/f8AAPr/AAD1/wAA9f8AAKf/AADm/wAAqv8AAFyL////AP///wAAAGBXAABg9gAAfP8AAJ7/AACW/wAAkv8AAI3/AACJ/wAAhv8AAIX/AACU/wAA4P8AALb/AABgnv///wD///8AAABlFAAAZasAAKj/AADu/wAAwf8AAMn/AADP/wAA1P8AANj/AADb/wAA3/8AAPP/AADK/wAAZbP///8A////AP///wAAAGooAAB8/wAA/f8AANj/AADW/wAA1v8AANb/AADX/wAA1v8AANf/AADp/wAA2f8AAGrK////AP///wD///8AAABwHgAAfP8AAPv/AADW/wAA1f8AANb/AADW/wAA1/8AANf/AADY/wAA4/8AAOr/AABw5P///wD///8A////AAAAdgkAAHn/AAD6/wAA1/8AANb/AADW/wAA1v8AANf/AADX/wAA2P8AAN3/AAD4/wAAdvsAAHYB////AP///wD///8AAAB7+QAA9P8AANr/AADV/wAA1v8AANb/AADY/wAA2P8AANj/AADc/wAA+/8AAIH/AAB7D////wD///8A////AAAAgNoAAOT/AADh/wAA1P8AANX/AADW/wAA1/8AANf/AADY/wAA3P8AAPz/AACH/wAAgBL///8A////AP///wAAAIa7AADU/wAA6v8AANX/AADX/wAA2f8AANv/AADd/wAA3v8AAOH/AAD9/wAAhf8AAIbxAACGRf///wD///8AAACLpAAAyv8AAPX/AADc/wAA3v8AAN//AADi/wAA5P8AAOX/AADn/wAA/v8AAJX/AADU/wAAi+X///8A////AAAAj5IAAML/AAD8/wAA5f8AAOf/AADn/wAA6v8AAO3/AADu/wAA7f8AAP//AACY/wAA+v8AAK3/////AP///wAAAJSEAAC8/wAA//8AAOz/AADu/wAA8P8AAPP/AAD2/wAA+f8AAPv/AAD//wAA+v8AANX/AACU6v///wD///8AAACXbQAAtf8AAP//AAD//wAA//8AAP//AAD3/wAA8f8AAOf/AADi/wAA2f8AAMP/AACX7QAAl13///8A////AAAAmjYAAJrGAACv/wAAqf8AAKP/AACg/wAAmvAAAJrjAACazwAAmswAAJq7AACaqAAAmksAAJoFAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQYABrEHAAaxBwAGsQcAArEHAAKxBwACsQcAArEHAAKxBwACsQQ=="; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage)); |
bunda1 > 02-09-2013 19:44:37 |
Загружать изображения на страницах( Firefox17+ ) от 11.01.2015. ЛКМ => Выключить или включить показ изображений на страницах. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0417%u0430%u0433%u0440%u0443%u0436%u0430%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%u0445%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20BrowserReload%28%20custombuttons.setPrefs%28s%2C%20custombuttons.getPrefs%28s%29%20%3D%3D%201%20%3F%202%20%3A%201%29%20%29%3B%0A%0Avar%20s%20%3D%20%27permissions.default.image%27%3B%0Afunction%20toggleImage%28%29%20%7B%20%0A%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20icon.src%20%3D%20custombuttons.getPrefs%28s%29%20%3D%3D%201%20%20%0A%20%20%20%3F%20self.image%20%0A%20%20%20%3A%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC%27%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this._handleClick =()=> BrowserReload( custombuttons.setPrefs(s, custombuttons.getPrefs(s) == 1 ? 2 : 1) ); var s = 'permissions.default.image'; function toggleImage() { var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon"); icon.src = custombuttons.getPrefs(s) == 1 ? self.image : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC'; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage) ); |
bunda1 > 14-09-2013 23:41:39 |
Виртуальная клавиатура на translit.ru( Firefox ) от 28.01.2016. ЛКМ => Открыть translit.ru, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0412%u0438%u0440%u0442%u0443%u0430%u043B%u044C%u043D%u0430%u044F%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%20%u043D%u0430%20translit.ru%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAACAgIDAAAAAC0tLU5FRESrMzMykUFBQYlJSUmFT09Ph09PT4dKSkqFQUJCiTMzM5FGRUWrLS0tTgAAAAACAgIDAgICBAAAAAAkJCRMODg3llxcW8Z9e3v/V1ZW/TExMf8vLy//V1ZV/YKAf/9fXl3GOzs7liQkJEwAAAAAAgICBAAAAAAAAAAAAAAAAAAAAAAFBgcDCwsMAUNCQ7MYGBn/FBUW/0FAQbMMCwwBBgYHAwAAAAAAAAAAAAAAAAAAAAANDQwODQwGDg4NBxAQDgkTDgwHEwAAAABGRUGAOjcx/y4sJv9EQj+AAAAAAA0LBhMPDQgTDQsGEA0KBg4NDQwOWVtg8Tc/WfE9RWDxPERf8TxEX/I+R2LyNT5Z+hcgO/8UHTj/Nj5Z+mFrhPJmcInyZm+J8Wp1jvFKVm3xVVdd8TVBYf8AIM7/ASXh/wAk3P8AJN3/ACTd/wEl3f8GK+L/Byzj/wIn3v8ILeP/CS7l/wku5f8ILun/ACXS/zVBYv85RWb+ACDU/gEk5v4AI+H+ACPi/gAk4v4AIOT+ABji/wAY4P8AHOX+ABni/gAY3/4AGeD+ASHl/gAf0/46Rmj+OERl/wAdx/8BINf/AB/T/wEg0/8AG9f/HDTB/1RgpP9VYaj/PU2m/0lXp/9WYqf/TVql/wckzP8AHMr/OkVm/zhEZP8AHcD/ASDP/wAfy/8DIcv/ABTO/0xdvP/h3cr/4d7X/6Wmp//Fw73/4uDV/8zKw/8VL7//ABnD/ztGZf84RGT/AB27/wEgyf8AH8b/AyLG/wAVyf9LXcH/1dLP/9nc5P+iqLj/uLzF/9rb4P/JydP/FS+//wAZv/87RmX/OEVk/wAfv/8FIs3/BCHK/wUjyv8AFcj/Pk+1/7OxrP+/t7v/k4qc/6WaoP+8trv/qKu0/xEsu/8AG77/OkZl/zhFZf8ALcf/ATTW/wAx1P8LOMn/b3mg/4CHnf+FgY3/lmZx/6aDh/+qfoD/kmh4/4GGlf+CiKH/U2KX/zhEY/84RmX/AD/T/wJI5P8AROP/Ek7Q/9HR0//q7O3/zsPH/7mYnf/j7/T/3Nvf/72YnP/Z19z/8e/r/52kuv82QV7/Okhn/wBT5v8DYPn/AFv4/xZj5P+/v8H/1dXT/87Bwf+4lZb/y9XU/9bT1P++lpn/ysXF/+Th3f+ZoLf/OERh/zRCYP8AUNr/Al7u/wBa6/8LXd//fIyr/46asP+Di6n/iWWC/6GFkv+ngpD/hGiJ/4CQrP+Wn7P/XnWk/zI/Xv9cX2b/NEJg/zpIaP85R2b/OEdm/zdGZP84RmP/NkVj/zxCYP9CP1f/QT5V/zpCXv84RWH/OkVg/zI/W/9dXmb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0412%u0438%u0440%u0442%u0443%u0430%u043B%u044C%u043D%u0430%u044F%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%20%u043D%u0430%20translit.ru%2C%20%u043E%u0442%2007.06.2014.%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22http%3A//translit.ru/keyboard/%22%29%3B%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%20%0A%20%20%20%20%20%20%20%20//%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0438%20%u0437%u0430%u043F%u043E%u043C%u043D%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20%20%20%20%20%20var%20clip%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20window.content.focus%28%29%3B%0A%20%20%20%20%20%20%20%20goDoCommand%28%22cmd_copy%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20var%20translit%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22http%3A//translit.ru/keyboard/%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22translit.ru%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u0432%u0441%u0442%u0430%u0432%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%0A%20%20%20%20%20%20%20%20translit.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28e.type%2C%20c%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20clip%20%26%26%20gClipboard.write%28clip%29%3B%20//%20%u0432%u0435%u0440%u043D%u0443%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%2050%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.tooltipText%20%3D%20%22%u0412%u0438%u0440%u0442%u0443%u0430%u043B%u044C%u043D%u0430%u044F%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%20%u043D%u0430%20translit.ru%3B%20%5Cn%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20translit%20%5Cn%u0421%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20translit%20%u0441%20%u0442%u0435%u043A%u0441%u0442%u043E%u043C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u043C%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%5Cn%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Виртуальная клавиатура на translit.ru, от 07.06.2014. // Настройка функций кликов мыши для кнопки ................................ this.onclick = function(e) { if ( e.button == 0 ) gBrowser.selectedTab = gBrowser.addTab("http://translit.ru/keyboard/"); if ( e.button == 1 ) { // скопировать текст на странице и запомнить текст из буфера обмена var clip = gClipboard.read(); window.content.focus(); goDoCommand("cmd_copy"); var translit = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("http://translit.ru/keyboard/") ); // oбработчик ждет пока откроется "translit.ru", удаляет себя и вставяет текст из буфера обмена translit.addEventListener("pageshow", function c(e) { this.removeEventListener(e.type, c); setTimeout(()=> { content.document.getElementsByTagName("textarea")[0].value = gClipboard.read(); clip && gClipboard.write(clip); // вернуть текст в буфер обмена }, 50); }); } }; // Подсказка у кнопки ................................ this.tooltipText = "Виртуальная клавиатура на translit.ru; \nЛ: Открыть translit \nС: Открыть translit с текстом выделенным или из буфера \nП: CB меню"; |
bunda1 > 26-09-2013 20:38:11 |
Консоль браузера в вкладке / боковой панели( Firefox24+ ) от 04.01.2017. ЛКМ => Открыть или закрыть Консоль браузера в боковой панели, Код кнопки для Firefox24-38: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EOpen%20Browser%20Console%20in%20Sidebar/Tab%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAicKQXAAAAABWK2v8DjOn/A4vp/xSK2/8AAAAAAAAAAAAAAAAAAAAAMTDL/y0t0v8tLdP/MTDM/wAAAAAAAAAAAAAAAAGL6v8DkfP/BZb5/wWW+f8DkfP/AYvq/wAAAAAAAAAAMjLU/1NT6f9wcPv/cHD7/1NT6f8yMtT/AAAAAAqG3P8IlPP/EJz7/xCc+/8QnPv/EJz7/wiT8/8Lhtv/OzrL/01N6f9paf//aWn//2lp//9paf//TEzp/zw7zP8Bi+n/GJ75/xug+/8boPv/G6D7/xug+/8Ynvn/Aorp/y4u0/9XV/v/XFz//1xc//9cXP//XFz//1dX+v8vL9P/Aovp/yKi+f8mpfv/JqX7/yal+/8mpfv/IqP5/wKL6f8uLtL/S0v6/09P//9PT///T0///09P//9MTPr/Li7T/xKJ2v8am/P/Mar7/zGq+/8xqvv/Mar7/xqa8/8Tidn/NDPL/zg46f9DQ///Q0P//0ND//9DQ///ODjp/zU0yv8AAAAABo3p/yCd8/81qvj/Nar4/yCd8/8Gjen/AAAAAAAAAAAtLdT/MjLp/zQ0+f80NPn/MjLp/y0t1P8AAAAAAAAAAAAAAAAIhdr/AYrp/wGK6f8Jhdv/AAAAAAAAAAAAAAAAAAAAAD8+y/8yMtT/MjLU/z8+zP8AAAAAAAAAAAAAAAAAAAAAkpGQ/5SUlP+UlJT/k5KR/wAAAAAAAAAAAAAAAAAAAADGnyD/zqMc/86jHP/HnyD/AAAAAAAAAAAAAAAAk5OT/6CgoP+pqan/qamp/6CgoP+Tk5P/AAAAAAAAAADOoxr/360P/+21Bf/ttQX/360P/86jGv8AAAAAkZCP/6Ghof+tra3/ra2t/62trf+tra3/oKCg/5GQj//Inhv/364T//C5C//wuQv/8LkL//C5C//frhP/xp0a/5OTk/+tra3/sLCw/7CwsP+wsLD/sLCw/62trf+Tk5P/zaMb/+24E//xuxL/8bsS//G7Ev/xuxL/7bkT/86jG/+UlJT/r6+v/7Kysv+ysrL/srKy/7Kysv+urq7/k5OT/86jG//tuxr/8b0a//G9Gv/xvRr/8b0a/+26Gv/Ooxv/kpGQ/6Wlpf+1tbX/tbW1/7W1tf+1tbX/pKSk/5KQj//Gnh//4LEe//K/If/yvyH/8r8h//K/If/gsR7/xp4f/wAAAACVlZX/pqam/7Ozs/+zs7P/pqam/5WVlf8AAAAAAAAAAM+kHf/gsiP/7r4n/+6+J//gsiP/z6Qd/wAAAAAAAAAAAAAAAJCPjv+UlJT/lJSU/5GQj/8AAAAAAAAAAAAAAAAAAAAAxpwY/86jGv/Ooxr/x50Y/wAAAAAAAAAAQ8OsQYGBrEEAAKxBAACsQQAArEEAAKxBgYGsQcPDrEHDw6xBgYGsQQAArEEAAKxBAACsQQAArEGBgaxBw8OsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onload%20%3D%20function%28%29%20%7B%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20%28%20var%20tab%20of%20gBrowser.visibleTabs%20%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%20tab.linkedBrowser.currentURI.spec%20%3D%3D%20url%20%29%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20tab%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20tab%20%7C%7C%20gBrowser.addTab%28%20url%20%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%0A%20%20%20%20%20%20gShowPopup%28this%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20toggleSidebar%28id%29%3B%0A%20%20%20%20%20%20%20%20%20%20sbt.value%20%3D%20title%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0Aconst%0A%20%20%20%7B%20devtools%20%7D%20%3D%20Cu.import%28%22resource%3A//gre/modules/devtools/Loader.jsm%22%2C%20%7B%7D%29%2C%0A%20%20%20%7B%20DebuggerServer%20%7D%20%3D%20Cu.import%28%22resource%3A//gre/modules/devtools/dbg-server.jsm%22%2C%20%7B%7D%29%2C%0A%20%20%20%7B%20DebuggerClient%20%7D%20%3D%20Cu.import%28%22resource%3A//gre/modules/devtools/dbg-client.jsm%22%2C%20%7B%7D%29%2C%0A%20%20%20HUDService%20%3D%20window.HUDService%20%7C%7C%20Cu.import%28%22resource%3A///modules/HUDService.jsm%22%2C%20%7B%7D%29.HUDService%2C%0A%0A%20%20%20sb%20%3D%20document.getElementById%28%22sidebar%22%29%2C%0A%20%20%20sbt%20%3D%20document.getElementById%28%22sidebar-title%22%29%2C%0A%20%20%20title%20%3D%20%22Browser%20Console%22%2C%0A%20%20%20id%20%3D%20%22cbViewBrowserConsoleInSidebar%22%2C%0A%20%20%20url%20%3D%20devtools.Tools.webConsole.url%3B%0A%0A%0Afunction%20onLoad%28e%29%20%7B%0A%20%20%20var%20doc%20%3D%20e.target%3B%0A%20%20%20if%20%28%20doc.location%20%21%3D%20url%20%29%20return%3B%0A%20%20%20doc.title%20%3D%20title%3B%0A%20%20%20var%20win%20%3D%20doc.defaultView%3B%0A%0A%20%20%20if%20%28%20%21DebuggerServer.initialized%20%29%20%7B%0A%20%20%20%20DebuggerServer.init%28%29%3B%0A%20%20%20%20DebuggerServer.addBrowserActors%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20var%20client%20%3D%20new%20DebuggerClient%28DebuggerServer.connectPipe%28%29%29%3B%0A%20%20%20client.connect%28function%28%29%20%7B%0A%20%20%20%20%20%20client.listTabs%28function%28response%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20globals%20%3D%20JSON.parse%28JSON.stringify%28response%29%29%3B%0A%20%20%20%20%20%20%20%20%20delete%20globals.tabs%3B%0A%20%20%20%20%20%20%20%20%20delete%20globals.selected%3B%0A%20%20%20%20%20%20%20%20%20var%20options%20%3D%20%7B%20form%3A%20globals%2C%20client%3A%20client%2C%20chrome%3A%20true%20%7D%3B%0A%20%20%20%20%20%20%20%20%20var%20promise%20%3D%20devtools.TargetFactory.forRemoteTab%28options%29%3B%0A%20%20%20%20%20%20%20%20%20promise.then%28function%28target%29%20HUDService.openBrowserConsole%28target%2C%20win%2C%20win%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.then%28function%28hud%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20win.onbeforeunload%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e.returnValue%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20hud.chromeWindow%20%3D%20%7B%20close%3A%20Function%28%29%2C%20document%3A%20doc%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%7D%29%3B%0A%7D%0A%5BgBrowser%2C%20sb%5D.forEach%28function%28node%29%20addEventListener%28%22load%22%2C%20onLoad%2C%20true%2C%20node%29%29%3B%0A%0Avar%20bc%20%3D%20document.getElementById%28%20id%20%29%3B%0Aif%20%28%20%21bc%20%29%20%7B%0A%20%20%20%20%20bc%20%3D%20document.getElementById%28%22mainBroadcasterSet%22%29.appendChild%28document.createElement%28%22broadcaster%22%29%29%3B%0A%20%20%20%20%20bc.setAttribute%28%22id%22%2C%20id%29%3B%0A%20%20%20%20%20bc.setAttribute%28%22sidebarurl%22%2C%20url%29%3B%0A%20%20%20%20%20bc.setAttribute%28%22group%22%2C%20%22sidebar%22%29%3B%0A%7D%0AaddDestructor%28function%28reason%29%20reason%20%3D%3D%20%22delete%22%20%26%26%20bc.parentNode.removeChild%28bc%29%20%29%3B%0A%7D%0A%0Avar%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A.tabbrowser-tab%5Blabel%3D%22Browser%20Console%22%5D%20.tab-icon-image%20%7B%5C%0Alist-style-image%3Aurl%28%22chrome%3A//global/skin/icons/error-16.png%22%29%21important%3B%20-moz-image-region%3A%20auto%20%21important%3B%5C%0A%7D%27%29%29%3B%0Aconst%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Asss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0AaddDestructor%28function%28%29%20%7B%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%20%7D%29%3B%20%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код кнопки для Firefox48+: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EBrowser%20Console%20in%20Sidebar-Tab%20-%20For%20Firefox%2048%20or%20higher%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACZklEQVQ4jWXRv08aYRgH8EOCsXWwkTYlhz9Qkzod6hUTUhsdHMU4MLD4DziVf0IToS0c7+FQBc8ekGByqBCSWlO7YVPtmQhLtQmsrwmm9hbPG74dMDRveZLP9H3yDM+X4x7mfSwOWZYhyzJicQncf+PaqoBXdfCqDlfqhM2TySRyuRxKpRJKpRJyuRySyWR7aTBzjrFiA+PHNxg/vsFYsYHBzHkrj0sJZLNZlMtlRiaTQSyewHC6gqGDBka+/mEMHTQwnK6Ak2UZe3t7KBaLjEKhAEII3KoO/qgJ/sst63MTblUHRwiBpmnY399naJr2cOAHnJ+a6D+6ZTgPHw7E4hJ2dnagaRpDURTE4hLc6W9wFuroPfzNcBbq4FOV1h8IIVAUBfl8Hvl8HoqigBDSfiKv6ujT6nCUm3CUm+jT6uBVnW0iLiXaNUoJ0lGjZ7uCAVXHgKrDs33SkXOXqz2gERtoxIar1UcdC6ezc6iJImqiiLPZOTan77phpDy4253G3e40jJQH9F13e6kmCKCiCNPng+nzgYoiaoLQyi/X+2Fs8rB2pxjGBx4/1504fekD9fuB+XkG9fvx3TcNjka7YH4chZV9wTDVUdBoFy68XtwvLABLS4z7QABVrxccjdpgpl2wFDfDTLtAI12oer2wQiFgeZlxHwqhOjEB7tfaYxhyD6ytJwyD9OBqrRenr2ZAFxeBlRUGDQRwNvO69YfrqA2GZIe54YC54YAh2XEdtf17oiiCBoOwwmFY4TBoMIiaKLbyzTcjzzmO4y4jz0Df2kGjdlxFnnbWODmFC0FAVRBwNjnVzv8Cnb4oOBnoKkcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bif%20%28%21%28%22Services%22%20in%20window%29%29%0A%09Cu.import%28%22resource%3A//gre/modules/Services.jsm%22%29%3B%0A%0Avar%20_UID%20%3D%20%22__browser_console_sidebar_tab%22%20+%20self.id.slice%2820%29%3B%0Avar%20PREF_BRANCH%20%3D%20%22CB.BrowserConsoleOnSidebarTabBar.ID%22%20+%20self.id.slice%2820%29%20+%20%22.%22%3B%0Avar%20USE_CSS_PREF%20%3D%20PREF_BRANCH%20+%20%22StyleSheetEnabled%22%3B%0Avar%20STATE_PREF%20%3D%20PREF_BRANCH%20+%20%22State%22%3B%0Avar%20CHECKED_STATE_PREF%20%3D%20PREF_BRANCH%20+%20%22UseCheckedState%22%3B%0Avar%20URL%20%3D%20%22chrome%3A//devtools/content/webconsole/webconsole.xul%22%3B%0Avar%20broadcasterID%20%3D%20%22viewBrowserConsoleSidebar%22%20+%20_UID%3B%0Avar%20isOSX%20%3D%20Services.appinfo.OS.toLowerCase%28%29.startsWith%28%22darwin%22%29%3B%0A%0A//%20Preferences%20initialization%0Acustombuttons.isPref%28USE_CSS_PREF%2C%20true%29%3B%0Acustombuttons.isPref%28STATE_PREF%2C%20false%29%3B%0Acustombuttons.isPref%28CHECKED_STATE_PREF%2C%20false%29%3B%0A%0Aif%20%28%21%28_UID%20in%20window%29%29%20%7B%0A%09window%5B_UID%5D%20%3D%20%7B%0A%09%09%22MainListener%22%3A%20false%2C%0A%09%09%22BroadcasterCreated%22%3A%20false%2C%0A%09%09%22StyleSheet%22%3A%20false%0A%09%7D%3B%0A%7D%0A%0A%28tmp%20%3D%3E%20%7B%0A%09var%20modules%20%3D%20%22resource%3A//gre/modules/%22%3B%0A%09var%20%7B%0A%09%09Promise%0A%09%7D%20%3D%20Cu.import%28modules%20+%20%22Promise.jsm%22%2C%20tmp%29%3B%0A%09var%20%7B%0A%09%09devtools%0A%09%7D%20%3D%20Cu.import%28%22resource%3A//devtools/shared/Loader.jsm%22%2C%20tmp%29%3B%0A%09var%20%7B%0A%09%09DebuggerServer%0A%09%7D%20%3D%20devtools.require%28%22devtools/server/main%22%2C%20tmp%29%3B%0A%09var%20%7B%0A%09%09DebuggerClient%0A%09%7D%20%3D%20devtools.require%28%22devtools/shared/client/main%22%2C%20tmp%29%3B%0A%0A%09var%20hud%20%3D%20devtools.require%28%22devtools/client/webconsole/hudservice%22%29%3B%0A%0A%09var%20link%20%3D%20document.createElementNS%28xhtmlns%2C%20%22link%22%29%3B%0A%09link.setAttribute%28%22rel%22%2C%20%22shortcut%20icon%22%29%3B%0A%09link.setAttribute%28%22href%22%2C%20self.image%29%3B%0A%0A%09function%20connect%28%29%20%7B%0A%09%09var%20deferred%20%3D%20Promise.defer%28%29%3B%0A%09%09if%20%28%21DebuggerServer.initialized%29%20%7B%0A%09%09%09DebuggerServer.init%28%29%3B%0A%09%09%09DebuggerServer.addBrowserActors%28%29%3B%0A%09%09%7D%0A%09%09DebuggerServer.allowChromeProcess%20%3D%20true%3B%0A%0A%09%09var%20client%20%3D%20new%20DebuggerClient%28DebuggerServer.connectPipe%28%29%29%3B%0A%09%09client.connect%28%28%29%20%3D%3E%20%7B%0A%09%09%09client.getProcess%28%29.then%28response%20%3D%3E%20%7B%0A%09%09%09%09deferred.resolve%28%7B%0A%09%09%09%09%09form%3A%20response.form%2C%0A%09%09%09%09%09client%3A%20client%2C%0A%09%09%09%09%09chrome%3A%20false%0A%09%09%09%09%7D%29%3B%0A%09%09%09%7D%2C%20deferred.reject%29%3B%0A%09%09%7D%29%3B%0A%09%09return%20deferred.promise%3B%0A%09%7D%0A%0A%09if%20%28%21window%5B_UID%5D%5B%22MainListener%22%5D%29%20%7B%0A%09%09window%5B_UID%5D%5B%22MainListener%22%5D%20%3D%20true%3B%0A%09%09document.getElementById%28%22browser%22%29.addEventListener%28%22DOMContentLoaded%22%2C%20e%20%3D%3E%20%7B%0A%09%09%09var%20win%20%3D%20e.target.defaultView%2C%0A%09%09%09%09loc%20%3D%20win.location%3B%0A%09%09%09if%20%28%21loc%20%7C%7C%20loc.href%20%21%3D%3D%20URL%29%0A%09%09%09%09return%3B%0A%09%09%09connect%28%29%0A%09%09%09%09.then%28connection%20%3D%3E%20devtools.TargetFactory.forRemoteTab%28connection%29%29%0A%09%09%09%09.then%28target%20%3D%3E%20%7B%0A%09%09%09%09%09hud.openBrowserConsole%28target%2C%20win%2C%20win%29.then%28browserConsole%20%3D%3E%20%7B%0A%09%09%09%09%09%09win.onbeforeunload%20%3D%20e%20%3D%3E%20%7B%0A%09%09%09%09%09%09%09e.returnValue%20%3D%20%22%22%3B%0A%09%09%09%09%09%09%09browserConsole.chromeWindow%20%3D%20%7B%0A%09%09%09%09%09%09%09%09close%3A%20%28%29%20%3D%3E%20%7B%7D%2C%0A%09%09%09%09%09%09%09%09document%3A%20win.document%0A%09%09%09%09%09%09%09%7D%3B%0A%09%09%09%09%09%09%7D%3B%0A%09%09%09%09%09%09var%20root%20%3D%20win.document.documentElement%3B%0A%09%09%09%09%09%09root.setAttribute%28%22title%22%2C%20%22Browser%20Console%22%29%3B%0A%09%09%09%09%09%09root.appendChild%28link.cloneNode%28false%29%29%3B%0A%09%09%09%09%09%7D%2C%20Cu.reportError%29%3B%0A%09%09%09%09%7D%2C%20Cu.reportError%29%3B%0A%09%09%7D%2C%20false%29%3B%0A%09%7D%0A%0A%09self.onclick%20%3D%20function%28aE%29%20%7B%0A%09%09if%20%28aE.button%20%21%3D%3D%202%29%0A%09%09%09aE.preventDefault%28%29%3B%0A%09%09if%20%28aE.button%20%3D%3D%3D%200%20%26%26%20%21aE.shiftKey%20%26%26%20%21accel%28aE%29%20%26%26%20%21aE.altKey%29%20%7B%0A%09%09%09try%20%7B%0A%09%09%09%09toggleSidebar%28broadcasterID%29%3B%0A%09%09%09%7D%20catch%20%28aErr%29%20%7B%0A%09%09%09%09SidebarUI.toggle%28broadcasterID%29%3B%0A%09%09%09%7D%0A%09%09%7D%20else%20if%20%28aE.button%20%3D%3D%3D%201%20%26%26%20%21aE.shiftKey%20%26%26%20%21accel%28aE%29%20%26%26%20%21aE.altKey%29%20%7B%0A%09%09%09var%20tab%20%3D%20gBrowser.visibleTabs.find%28tab%20%3D%3E%20tab.linkedBrowser.currentURI.spec%20%3D%3D%3D%20URL%29%3B%0A%09%09%09gBrowser.selectedTab%20%3D%20tab%20%7C%7C%20gBrowser.addTab%28URL%29%3B%0A%09%09%7D%20else%20if%20%28aE.button%20%3D%3D%3D%200%20%26%26%20%21aE.shiftKey%20%26%26%20accel%28aE%29%20%26%26%20%21aE.altKey%29%20%7B%0A%09%09%09custombuttons.setPrefs%28USE_CSS_PREF%2C%20%21custombuttons.getPrefs%28USE_CSS_PREF%29%29%3B%0A%09%09%09setTimeout%28function%28%29%20%7B%0A%09%09%09%09handleCSS%28%29%3B%0A%09%09%09%7D%2C%20100%29%3B%0A%09%09%7D%20else%20if%20%28aE.button%20%3D%3D%3D%200%20%26%26%20aE.shiftKey%20%26%26%20%21accel%28aE%29%20%26%26%20%21aE.altKey%29%20%7B%0A%09%09%09custombuttons.setPrefs%28CHECKED_STATE_PREF%2C%20%21custombuttons.getPrefs%28CHECKED_STATE_PREF%29%29%3B%0A%09%09%09setTimeout%28function%28%29%20%7B%0A%09%09%09%09self.init%28%29%3B%0A%09%09%09%7D%2C%20100%29%3B%0A%09%09%7D%0A%09%09aE.stopPropagation%28%29%3B%0A%09%7D%3B%0A%7D%29%28%7B%7D%29%3B%0A%0Aif%20%28%21window%5B_UID%5D%5B%22BroadcasterCreated%22%5D%29%20%7B%0A%09window%5B_UID%5D%5B%22BroadcasterCreated%22%5D%20%3D%20true%3B%0A%09var%20mainB%20%3D%20document.getElementById%28%22mainBroadcasterSet%22%29%3B%0A%09var%20thisB%20%3D%20document.getElementById%28broadcasterID%29%3B%0A%09if%20%28mainB%20%26%26%20%21thisB%29%20%7B%0A%09%09thisB%20%3D%20document.createElementNS%28xulns%2C%20%22broadcaster%22%29%3B%0A%09%09thisB.setAttribute%28%22id%22%2C%20broadcasterID%29%3B%0A%09%09thisB.setAttribute%28%22cb_id%22%2C%20_UID%29%3B%0A%09%09thisB.setAttribute%28%22autoCheck%22%2C%20false%29%3B%0A%09%09thisB.setAttribute%28%22label%22%2C%20%22Browser%20Console%20in%20Sidebar%22%29%3B%0A%09%09thisB.setAttribute%28%22type%22%2C%20%22checkbox%22%29%3B%0A%09%09thisB.setAttribute%28%22group%22%2C%20%22sidebar%22%29%3B%0A%09%09thisB.setAttribute%28%22sidebarurl%22%2C%20URL%29%3B%0A%09%09thisB.setAttribute%28%22oncommand%22%2C%20%22SidebarUI.toggle%28this.id%29%3B%22%29%3B%0A%09%09mainB.appendChild%28thisB%29%3B%0A%09%7D%0A%7D%0A%0Aif%20%28custombuttons.getPrefs%28CHECKED_STATE_PREF%29%29%20%7B%0A%09var%20obsEl%20%3D%20document.createElementNS%28xulns%2C%20%22observes%22%29%3B%0A%09obsEl.setAttribute%28%22element%22%2C%20broadcasterID%29%3B%0A%09obsEl.setAttribute%28%22attribute%22%2C%20%22checked%22%29%3B%0A%09self.appendChild%28obsEl%29%3B%0A%7D%20else%20%7B%0A%09let%20obs%20%3D%20self.getElementsByTagName%28%22observes%22%29%5B0%5D%3B%0A%09obs%20%26%26%20obs.parentNode.removeChild%28obs%29%3B%0A%09self.removeAttribute%28%22checked%22%29%3B%0A%7D%0A%0Afunction%20getHelp%28aPlaceholder%29%20%7B%20//%20Get%20specific%20data%2C%20surrounded%20by%20%22placeholders%22%2C%20from%20the%20Help%20tab.%0A%09return%20document.getElementById%28self.id%29.getAttribute%28%22Help%22%29.split%28%22%3C%21--%22%20+%20aPlaceholder%20+%20%22--%3E%22%29%5B1%5D%3B%0A%7D%0A%0A//START//%20Load%20style%20sheets%0Avar%20css%20%3D%20getHelp%28%22StyleSheet%22%29%3B%0A%0Afunction%20styleSheet%28aCSS%2C%20aRemFlag%29%20%7B%0A%09var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D%0A%09%09.getService%28Ci.nsIStyleSheetService%29%3B%0A%09var%20ios%20%3D%20Cc%5B%22@mozilla.org/network/io-service%3B1%22%5D%0A%09%09.getService%28Ci.nsIIOService%29%3B%0A%09var%20uri%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28aCSS%29%2C%20null%2C%20null%29%3B%0A%09if%20%28sss.sheetRegistered%28uri%2C%20sss.USER_SHEET%29%29%0A%09%09sss.unregisterSheet%28uri%2C%20sss.USER_SHEET%29%3B%0A%09if%20%28aRemFlag%29%0A%09%09return%3B%0A%09sss.loadAndRegisterSheet%28uri%2C%20sss.USER_SHEET%29%3B%0A%09window%5B_UID%5D%5B%22StyleSheet%22%5D%20%3D%20aCSS%3B%0A%7D%0A%0Afunction%20deleteCSS%28%29%20%7B%0A%09if%20%28window%5B_UID%5D%5B%22StyleSheet%22%5D%29%20%7B%0A%09%09styleSheet%28window%5B_UID%5D%5B%22StyleSheet%22%5D%2C%20true%29%3B%0A%09%09delete%20window%5B_UID%5D%5B%22StyleSheet%22%5D%3B%0A%09%7D%0A%7D%0A%0Afunction%20handleCSS%28%29%20%7B%0A%09if%20%28custombuttons.getPrefs%28USE_CSS_PREF%29%29%20%7B%0A%09%09if%20%28%21%28window%5B_UID%5D%5B%22StyleSheet%22%5D%29%29%0A%09%09%09styleSheet%28css%29%3B%0A%09%09else%20if%20%28window%5B_UID%5D%5B%22StyleSheet%22%5D%20%21%3D%3D%20css%29%20%7B%0A%09%09%09styleSheet%28window%5B_UID%5D%5B%22StyleSheet%22%5D%2C%20true%29%3B%0A%09%09%09setTimeout%28function%28%29%20%7B%0A%09%09%09%09styleSheet%28css%29%3B%0A%09%09%09%7D%2C%20500%29%3B%0A%09%09%7D%0A%09%7D%20else%20%7B%0A%09%09deleteCSS%28%29%3B%0A%09%7D%0A%7D%0A//END//%20Load%20style%20sheets%0A%0AaddDestructor%28function%28aReason%29%20%7B%0A%09if%20%28aReason%20%3D%3D%3D%20%22delete%22%20%7C%7C%20aReason%20%3D%3D%3D%20%22update%22%29%20%7B%0A%09%09deleteCSS%28%29%3B%0A%09%7D%0A%09if%20%28aReason%20%3D%3D%3D%20%22delete%22%29%20%7B%0A%09%09%28Services.prefs.getBranch%28PREF_BRANCH%29%29.deleteBranch%28%22%22%29%3B%0A%09%09let%20selfEls%20%3D%20document.getElementsByAttribute%28%22cb_id%22%2C%20_UID%29%3B%0A%09%09Array.prototype.slice.call%28selfEls%29.forEach%28function%28aEl%29%20%7B%20//%20Delete%20all%20elements%20created%20by%20this%20button.%0A%09%09%09aEl%20%26%26%20aEl.parentNode.removeChild%28aEl%29%3B%0A%09%09%7D%29%3B%0A%09%7D%0A%7D%29%3B%0A%0Afunction%20accel%28aE%29%20%7B%0A%09if%20%28aE%29%0A%09%09return%20isOSX%20%3F%20aE.metaKey%20%3A%20aE.ctrlKey%3B%0A%09return%20isOSX%20%3F%20%22%uD835%uDDD6%uD835%uDDFC%uD835%uDDFA%uD835%uDDFA%uD835%uDDEE%uD835%uDDFB%uD835%uDDF1%22%20%3A%20%22%uD835%uDDD6%uD835%uDDFC%uD835%uDDFB%uD835%uDE01%uD835%uDDFF%uD835%uDDFC%uD835%uDDF9%22%3B%0A%7D%0A%0Athis.tooltipText%20%3D%20self.name%20+%20%22%5Cn%5Ct%uD835%uDDDF%uD835%uDDF2%uD835%uDDF3%uD835%uDE01%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDF6%uD835%uDDF0%uD835%uDDF8%3A%20Browser%20Console%20On%20Sidebar%20%5Cn%22%20+%0A%09%22%5Ct%uD835%uDDE0%uD835%uDDF6%uD835%uDDF1%uD835%uDDF1%uD835%uDDF9%uD835%uDDF2%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDF6%uD835%uDDF0%uD835%uDDF8%3A%20Browser%20Console%20On%20New%20Tab%5Cn%22%20+%0A%09%22%5Ct%22%20+%20accel%28%29%20+%20%22%20+%20%uD835%uDDDF%uD835%uDDF2%uD835%uDDF3%uD835%uDE01%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDF6%uD835%uDDF0%uD835%uDDF8%3A%20Toggle%20Style%20Sheet%5Cn%22%20+%0A%09%22%5Ct%uD835%uDDE6%uD835%uDDF5%uD835%uDDF6%uD835%uDDF3%uD835%uDE01%20+%20%uD835%uDDDF%uD835%uDDF2%uD835%uDDF3%uD835%uDE01%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDF6%uD835%uDDF0%uD835%uDDF8%3A%20Toggle%20the%20use%20of%20checked%20state%22%3B%0A%0AhandleCSS%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%uD835%uDDDC%uD835%uDDFA%uD835%uDDFD%uD835%uDDFC%uD835%uDDFF%uD835%uDE01%uD835%uDDEE%uD835%uDDFB%uD835%uDE01%20%uD835%uDDFB%uD835%uDDFC%uD835%uDE01%uD835%uDDF2%uD835%uDE00%0A%u26AB%20%uD835%uDDD7%uD835%uDDE2%20%uD835%uDDE1%uD835%uDDE2%uD835%uDDE7%20%uD835%uDDF6%uD835%uDDFB%uD835%uDE00%uD835%uDE01%uD835%uDDEE%uD835%uDDF9%uD835%uDDF9%20%uD835%uDDFA%uD835%uDDFC%uD835%uDDFF%uD835%uDDF2%20%uD835%uDE01%uD835%uDDF5%uD835%uDDEE%uD835%uDDFB%20%uD835%uDDFC%uD835%uDDFB%uD835%uDDF2%20%uD835%uDE03%uD835%uDDF2%uD835%uDDFF%uD835%uDE00%uD835%uDDF6%uD835%uDDFC%uD835%uDDFB%20%uD835%uDDFC%uD835%uDDF3%20%uD835%uDE01%uD835%uDDF5%uD835%uDDF6%uD835%uDE00%20%uD835%uDDEF%uD835%uDE02%uD835%uDE01%uD835%uDE01%uD835%uDDFC%uD835%uDDFB%20%uD835%uDDEE%uD835%uDE01%20%uD835%uDE01%uD835%uDDF5%uD835%uDDF2%20%uD835%uDE00%uD835%uDDEE%uD835%uDDFA%uD835%uDDF2%20%uD835%uDE01%uD835%uDDF6%uD835%uDDFA%uD835%uDDF2%u2757%u2757%u2757%0A%u26AB%20%uD835%uDDD7%uD835%uDDE2%20%uD835%uDDE1%uD835%uDDE2%uD835%uDDE7%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDFC%uD835%uDDFB%uD835%uDDF2%20%uD835%uDE01%uD835%uDDF5%uD835%uDDF6%uD835%uDE00%20%uD835%uDDEF%uD835%uDE02%uD835%uDE01%uD835%uDE01%uD835%uDDFC%uD835%uDDFB%u2757%u2757%u2757%0A%u26AB%20If%20you%20did%20any%20of%20the%20previous%20actions%2C%20delete%20all%20extra%20buttons%20leaving%20only%20one%20version%20of%20%uD835%uDDE0%uD835%uDE02%uD835%uDDF9%uD835%uDE01%uD835%uDDF6%20%uD835%uDDE7%uD835%uDDFF%uD835%uDDEE%uD835%uDDFB%uD835%uDE00%uD835%uDDF9%uD835%uDDEE%uD835%uDE01%uD835%uDDFC%uD835%uDDFF%20and%20restart%20your%20application.%0A%0AInside%20the%20Help%20tab%20of%20this%20button%20you%20will%20find%20the%20style%20sheet%20to%20customize%20the%20console.%0A%0A%5B%2C%5D%0A%3C%21--StyleSheet--%3E%0A@-moz-document%20%20url%28chrome%3A//devtools/content/shared/widgets/VariablesView.xul%29%7B%0A%09%23variables%20%7B%0A%09%09font-family%3A%20%22Noto%20Sans%22%2C%22Open%20Sans%22%2CHelvetica%2CArial%2Csans-serif%20%21important%3B%0A%09%09font-size%3A%2012px%20%21important%3B%0A%09%09font-weight%3A%20600%20%21important%3B%0A%09%7D%0A%7D%0A@-moz-document%20%20url%28chrome%3A//devtools/content/webconsole/webconsole.xul%29%7B%0A%09/*%20Console%20fonts%20*/%0A%09.devtools-monospace%20%7B%0A%09%09font-family%3A%20%22Noto%20Sans%22%2C%22Open%20Sans%22%2CHelvetica%2CArial%2Csans-serif%20%21important%3B%0A%09%09font-size%3A%2010px%20%21important%3B%0A%09%09font-weight%3A%20bold%20%21important%3B%0A%09%7D%0A%09/*%20Console%20fonts%20*/%0A%0A%09/*%20Text%20colors%20*/%0A%09/*%20Text%20color%20for%20light%20theme%20*/%0A%09.theme-light%20.message-body-wrapper.message-body.devtools-monospace%20%7B%0A%09%09color%3A%20%23000%20%21important%3B%0A%09%7D%0A%09/*%20Text%20color%20for%20dark%20theme%20*/%0A%09.theme-dark%20.message-body-wrapper.message-body.devtools-monospace%20%7B%0A%09%09color%3A%20%23FFF%20%21important%3B%0A%09%7D%0A%09/*%20Text%20colors%20*/%0A%0A%09/*%20Message%20colors%20*/%0A%09.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22jswarn%22%5D%20%7B%0A%09%09background%3A%20rgba%28251%2C%20149%2C%200%2C%20.2%29%20%21important%3B%0A%09%09border-bottom%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%09border-top%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%7D%0A%09.message%5Bcategory%3D%22cssparser%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22cssparser%22%5D%20%7B%0A%09%09background%3A%20rgba%280%2C%20182%2C%20240%2C%20.2%29%20%21important%3B%0A%09%09border-bottom%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%09border-top%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%7D%0A%09.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22error%22%5D%5Bfilter%3D%22exception%22%5D%20%7B%0A%09%09background%3A%20rgba%28255%2C%200%2C%200%2C%20.2%29%20%21important%3B%0A%09%09border-bottom%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%09border-top%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%7D%0A%09.message.cm-s-mozilla%5Bcategory%3D%22console%22%5D%20%7B%0A%09%09background%3A%20rgba%28203%2C%20203%2C%20203%2C%20.2%29%20%21important%3B%0A%09%09border-bottom%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%09border-top%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%7D%0A%09/*%20Message%20colors%20*/%0A%0A%09/*%20Message%20colors%20on%20hover%20*/%0A%09.theme-light%20.message%3Ahover%2C%0A%09.theme-light%20.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22jswarn%22%5D%3Ahover%2C%0A%09.theme-light%20.message%5Bcategory%3D%22cssparser%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22cssparser%22%5D%3Ahover%2C%0A%09.theme-light%20.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22error%22%5D%5Bfilter%3D%22exception%22%5D%3Ahover%20%7B%0A%09%09background-color%3A%20rgba%2876%2C%20158%2C%20217%2C%200.23%29%20%21important%3B%0A%09%7D%0A%09.theme-dark%20.message%3Ahover%2C%0A%09.theme-dark%20.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22jswarn%22%5D%3Ahover%2C%0A%09.theme-dark%20.message%5Bcategory%3D%22cssparser%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22cssparser%22%5D%3Ahover%2C%0A%09.theme-dark%20.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22error%22%5D%5Bfilter%3D%22exception%22%5D%3Ahover%20%7B%0A%09%09background-color%3A%20rgba%2829%2C%2079%2C%20115%2C%200.5%29%20%21important%3B%0A%09%7D%0A%09/*%20Message%20colors%20on%20hover%20*/%0A%0A%09/*%20Hide%20original%20icons%20*/%0A%09.message%20%3E%20.icon%3A%3Abefore%20%7B%0A%09%09background-image%3A%20none%20%21important%3B%0A%09%7D%0A%09/*%20Hide%20original%20icons%20*/%0A%0A%09/*%20Assign%20new%20icons%20*/%0A%09.message%5Bseverity%3Derror%5D%20%3E%20.icon%20%7B%0A%09%09background-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAB00lEQVQokX3DTUhTAQDA8Xd9uMNruIeryWQsNgidiL1DCJ0Glk4YeQyhkzpo4E5qt4EQWRKIh6FEhAWaeDBBnB2ch2hzG4rS2kD21Qdvz33Ipm87/Tt2KX/wE048Dv93b5+WGe0nM3r3P/tJe/u0E4/DLxx7XNr5+CC1yQfXPh8f5Njj0oSY24nq7UUd6aY0MYS2tkw1dkA1doC2tkxpYgh1pBvV20vM7UTYH7BTHHahLs2h1+tUUikuy2Uuy2UqqRR6vY66NEdx2MX+gB1hR+kiNzVGq6zRurgg7vOR9PtJ+v3EfT6atRqtskZuaowdpQths8dCfiHIVaNBU9dRo1G2rVa2rVbUaJSmrnPVaJBfCLLZY0FYdZpJTD5GKxaolkocBgLsKgq7isJhIEC1VEL7+YPk0yesOs0IKzaZiOLgy6vn/M7lOA2FKMTjFBIJTkMhfp2d8XXpNRHFyYpNRli0GInYO/jsuk0+myWbTpM5OuJbLErk7Rs2HnkI37ERsXewaDEizMsS4c529h662Xv5gg/37/HObOT9TSNbt9oJd/49L0sIQclQWTdJbMgSH00SW/INPv3jukkiKBkqwowoTs+2idVnBpHrzraJ1RlRnP4DeQFoOf9yusQAAAAASUVORK5CYII%3D%22%29%20%21important%3B%0A%09%09background-repeat%3A%20no-repeat%20%21important%3B%0A%09%7D%0A%09.message%5Bseverity%3Dwarn%5D%20%3E%20.icon%20%7B%0A%09%09background-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABz0lEQVQokX3JT0hTcQDA8XfVLl6WULmLeBA65EkPFrtKB5VCoZPSRUKmIYgXL5FgoU3EuZi4GnrRdXAFy2geGpNcD4Q20bnc5rZnOl/bfPvz/O0x+HYQugQePocvXym21m1NbPSrxx+fcJ3ERr8aW+u2StH1XrW0PcJl6Pm1StsjHK73qtLeShflrT7K/keUg8NcRD+gKTKaInNx4KEcHL56W33srXQh7S5ZKG32UAw7EELHqFYpZmSKGRnDMBBCpxh2UNrsYXfJgrSz0EEhMIZRyVGr1agZVeLuTuLuB1ddq2FUchQCY+wsdCAFZtooyDZ0vYwQgku9zNH7TuLu+wghEEKg6xUK8hyBmTYk/1QryU/P+HOWQdM0NE0jr0TIK5F/ncuekPJZ8U+1Ivkmm0m62gl/nuU8m0VVz0kH50kH51FVlezZbyJfF0m62vFNNiN5x5s4dbaQdN4jnUpynIhxdPCTWOQHoS9uAo7HxN/e5dTZgne8Cckz2ohiNxNzPyTkneXbGwvfX9xCfnmbX7Y7KHYzJ3Yzit2MZ7QRaXWoIb8/beLwtYnoKxMp203Sc//bnzaxOtSQl5YH6iZcg/WFd09vcB3XYH1heaBu4i9fuaqY22u7CwAAAABJRU5ErkJggg%3D%3D%22%29%20%21important%3B%0A%09%09background-repeat%3A%20no-repeat%20%21important%3B%0A%09%7D%0A%09.message%5Bseverity%3Dinfo%5D%20%3E%20.icon%20%7B%0A%09%09background-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABxUlEQVQokX3HzUuacQDA8ed/KOjQwdYiIghGg7r0hmyHeWknD9U8xJgYSwITHUIbLIjNdKBQB3HE415C2YvKCiMQbDZyF0dM0LmaU1b2i+Khcg8Pwnc3LwMPn8NHcu8MWX17erHy9TbN+Pb0wr0zZJW8qRERPpjk3e97TZgIH0ziTY0IaWl7kGBeTyA/ynpxgkxFpih2KYpdMhWZ9eIEgfwowbyepe1BpIV4P6v7YyRLXlS1hqZplEWBsiigaRqqWiNZ8rK6P8ZCvB/JEekjnJvh4u8p9Xqder3OVvYliWyw8Qv1lHBuBkekD2ku1Eui8Jyr2iWqqqKqKp6YCU/M1PhV7ZKtH27mQr1IlkA3wbSZo5MyiqKgKAp2eRi7PNz4saiw9uUhlkA30rS/k8ebA0RSHqonVYQQfEj7eZ/2IYTgqPqHj59XeLI5wLS/E2lqWYdzowdX/Ca/Sof8PCyQy38j+z1DLBni6Rsjj6I3cG70MLWsQzIutmOLdvHs013eJl7gWLvF/UAHD4LXsIavY4t2NRgX25HGXW1nZlmH5bUOyysds+EOZiP/M8s6xl1tZ5LB1uK8M996brC30tR867nB1uL8B0UajjUem+zaAAAAAElFTkSuQmCC%22%29%20%21important%3B%0A%09%09background-repeat%3A%20no-repeat%20%21important%3B%0A%09%7D%0A%09/*%20Assign%20new%20icons%20*/%0A%0A%09/*%20Reposition%20new%20icons%20*/%0A%09.message%20%3E%20.icon%20%7B%0A%09%09margin%3A%204px%200%200%204px%20%21important%3B%0A%09%7D%0A%09/*%20Reposition%20new%20icons%20*/%0A%7D%0A%0A/*%20Style%20for%20Browser%20Console%20On%20Tab%20*/%0A.tabbrowser-tab%5Btitle%3D%22Browser%20Console%22%5D%20.tab-icon-image%20%7B%0A%09list-style-image%3Aurl%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACkElEQVQ4jZXKT0iTcRzH8d8tM8VtOttWj7OpTGcsJBBBCCwU/9IfOkR1EA0ED1GHDsaEIjx4ETsJghaElGaDnP0RO0QmmVo+h8fU2CR0a3smLXsYjMEz3h2kwS6hhxd8v3zeQmlx1q22ur6utlRyIK2ur0qLs07Iza6V7c56tN4O4vdu7IvW28F2Zz1ys2tFLDWUE+tq4tflKn5dOrU/l6uIdTWx1FCOmKsrI3LeTaTtJJG2k0TbzxIdH2bnyyd2wyF2wyF2vnwiOj5MtP1suoucdzNXV4aYrS1hu9HFdqOL8MP7JOJxkskkcVUlmUxm3Il4nPDD++l+trYE4asuZvOck6Cnm5Suk0ql2BgYYNpuRwsE0AIBpu12NgYGSKVSpHSdoKebzXNOfNXFiMkqiY0zpfxcmEPXdXRd54/fz7TdnuGP35/efy7MsXGmlMkqCTFWaUOpcfA7EiaRSKQFZ2aYEIIJIQjOzGRsu2oEpcbBWKUNMeK0sHLajuydQNM0NE1DVRSmJCmDqijpXXk7zcppOyNOC2LIUciiW+LVlTZ2IhFisRhyXx9TkkRIlgnJMlOShNzXRywWYyeq4rt6gUW3xJCjEDFYlM98hY0P5TbGLjYT2tpCVVVC37+jqmrGveX3M95xnQ/lNuYrbAwW5SP6rUbel1j2VBbzIxAgGAzybWmRteVlVj8v8HHiGV5PD6MVJ3jnsKT7fqsR8cCcx2yRmdkiM+/brzHvfcHT2zd5dNzMqNXEY5uJ58fyeSOZ090/D8x5CI8xB5/VxGuribGjBp4UGpiy7P3/47Oa8BhzEHdzj6wNGnLxFhh4uU/eAgODhlzu5h5ZEz3Zh1rvHM5av5WdxUHcOZy13pN9qPUv/viAZlYRB0kAAAAASUVORK5CYII%3D%22%29%21important%3B%0A%09-moz-image-region%3A%20auto%20%21important%3B%0A%7D%0A/*%20Style%20for%20Browser%20Console%20On%20Tab%20*/%0A%0A/*%20Remove%20maximum/minimum%20%20width%20restriction%20of%20sidebar%20*/%0A%23sidebar%20%7B%0A%09max-width%3A%20none%20%21important%3B%0A%09min-width%3A%200px%20%21important%3B%0A%7D%0A/*%20Remove%20maximum/minimum%20%20width%20restriction%20of%20sidebar%20*/%0A%3C%21--StyleSheet--%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
Lex1 > 18-10-2013 15:12:53 |
Save screenshot - Сохраняет скриншот видимой/всей страницы по нажатию/зажатию. Код кнопки Выделить код Код: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%0A%20%20%3Cname%3ESave%20screenshot%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAADZklEQVR42u2Ua0hTYRjH/+c4NV1RrnkdKtHFrRwu3aarbFhQLbVh5kzTLJGiouhC4ZciIqxMysyIJKkPanSzO0WWklpRUK2srCgKy8ry0kalc9s5ved4jBFH8Et96oE/55znfZ7f87znvVD4S0b9B/9b8H1raxZ51Awn8fmzFlAUDdXkKYOubL1GdUIUXH2ujq05fgTq6CnQaeOQZk4ZCKIoMAwDt9sNl8sNLy8a/U4nHI5++Pr48DFPXr7FdK2aEgVfbbjnbrx5ldbrtAgKlEOlUsLR7+LH+hwO9Pb1QREajMKtRTh9/goqy3dBFjAGoSEheP/F1pNkmCoTBd9ofsBGTwzHSKkUXzs7ceueFZ877QBNw0ciQaJeDUVIIJIs65CYtRHzgtqhVEaRJgLx7PV7EPCQHbOGWBWZMoOzF68hIUGHiLBgfqytvQMnL9RhenwMRvnS6OruQmR4OJLN6fyv2n/wMCwps8TBtdcaWZNRh4ctrRjhJ8Wr5y0oLj2Ezx/eYVdRESLHK3G5rhHp842w93RBo1EjVj8D2hg10nIKsDzDJA6uqr3OLjbPxoPHLxA1IRLzzJkYrcmFs/cTWq+UoampCTv2lGFZjgU/7d2ImxqDuIREHmxatBSrcs3i4IqaS2y+xYSGu1ZEKoKxekMhNOZ1CIiORXn6JLSSLbZ2y3YsXpRGitmg18ZCa5jJg+cuzMGavDRxcGnlGbYg04Snr96RBfRHc1MjiveWICgsAutX5SNIMQ6HKo4hNysDrj4bDPFa6AxGHmxMtmDTikxxcFF5FZufMQcMcdfffkQSlJCNHsUv5os3bThw+CjCwsfBGB8NQsYMQzx00wbA2qQF2LY+Txy8taSSzU5NRKBcTrZZD+rvWNH28Qu8JV78QsqDFVCOj0CoXArG7eLjxsoCBha+7j52bi4QB6/Ysptdm2eGk5wqGUn4/sOBrm92tHd0w2azw9eb288MaIrlTyFDZsJtNc6arW9RUVwoDk7NWplNAquHc1f8aSP8/Jecqtz3+57583bjvr2IuAvAl8hPeJcIY4PxrCA3kYOolzv1RE7Bxw4Gcon+gryJaMEnEQpRHoVZj0YYIpcA5Ar8IPrJ+QYTxhJJhQ5pAeYJHMpYDzgjdM3BOz079hPgnl0OB+wJ/93xLyKXMSb9Lwg+AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20btn%20%3D%20this%3B%0A%0Avar%20opt%20%3D%20%7B%0A%09delay%3A%20500%2C%0A%09timerId%3A%200%2C%0A%09isPressed%3A%20false%2C%0A%09longClick%3A%20function%28%29%7B%0A%09%09saveScreenshot%28true%29%3B%0A%09%7D%2C%0A%09stdClick%3A%20function%28%29%7B%0A%09%09saveScreenshot%28false%29%3B%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseDown%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09opt.isPressed%20%3D%20true%3B%0A%09%09opt.timerId%20%3D%20setTimeout%28function%28%29%7B%0A%09%09%09if%28opt.isPressed%29%7B%0A%09%09%09%09opt.isPressed%20%3D%20false%3B%0A%09%09%09%09var%20k%20%3D%20%22_transitionTimer%22%3B%0A%09%09%09%09if%28k%20in%20btn%29clearInterval%28btn%5Bk%5D%29%3B%0A%09%09%09%09var%20stl%20%3D%20btn.style%3B%0A%09%09%09%09stl.setProperty%28%22transition%22%2C%20%22opacity%20150ms%20ease-in-out%22%2C%20%22important%22%29%3B%0A%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09stl.setProperty%28%22opacity%22%2C%20%220.5%22%2C%20%22important%22%29%3B%0A%09%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09%09stl.opacity%20%3D%20%22%22%3B%0A%09%09%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09%09%09stl.transition%20%3D%20%22%22%3B%0A%09%09%09%09%09%09%09delete%20btn%5Bk%5D%3B%0A%09%09%09%09%09%09%7D%2C%20150%29%3B%0A%09%09%09%09%09%7D%2C%20150%29%3B%0A%09%09%09%09%7D%2C%200%29%3B%0A%09%09%09%09opt.longClick%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%2C%20opt.delay%29%3B%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseUp%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09clearTimeout%28opt.timerId%29%3B%0A%09%09if%28opt.isPressed%29%7B%0A%09%09%09opt.isPressed%20%3D%20false%3B%0A%09%09%09opt.stdClick%28%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseOut%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09opt.isPressed%20%3D%20false%3B%0A%09%7D%0A%7D%3B%0A%0Abtn.addEventListener%28%27mousedown%27%2C%20mouseDown%2C%20false%29%3B%0Abtn.addEventListener%28%27mouseup%27%2C%20mouseUp%2C%20false%29%3B%0Abtn.addEventListener%28%27mouseout%27%2C%20mouseOut%2C%20false%29%3B%0A%0Abtn.onDestroy%20%3D%20function%28%29%7B%0A%20%20%20%20btn.removeEventListener%28%27mousedown%27%2C%20mouseDown%2C%20false%29%3B%0A%09btn.removeEventListener%28%27mouseup%27%2C%20mouseUp%2C%20false%29%3B%0A%09btn.removeEventListener%28%27mouseout%27%2C%20mouseOut%2C%20false%29%3B%0A%7D%3B%0A%0A%0Afunction%20saveScreenshot%28all%29%7B%0A%09var%20win%20%3D%20content%2C%20doc%20%3D%20win.document%2C%20docEle%20%3D%20%28doc.compatMode%20%3D%3D%20%22CSS1Compat%22%29%20%3F%20doc.documentElement%20%3A%20doc.body%3B%0A%09var%20canvas%20%3D%20document.createElementNS%28%22http%3A//www.w3.org/1999/xhtml%22%2C%20%22canvas%22%29%3B%0A%09canvas.width%20%3D%20Math.min%28%28all%20%26%26%20docEle.scrollWidth%20%3E%20docEle.clientWidth%29%20%3F%20docEle.scrollWidth%20%3A%20docEle.clientWidth%2C%2016383%29%3B%0A%09canvas.height%20%3D%20Math.min%28%28all%20%26%26%20docEle.scrollHeight%20%3E%20docEle.clientHeight%29%20%3F%20docEle.scrollHeight%20%3A%20docEle.clientHeight%2C%2016383%29%3B%0A%09var%20context%20%3D%20canvas.getContext%28%222d%22%29%3B%0A%09context.drawWindow%28win%2C%200%2C%200%2C%20canvas.width%2C%20canvas.height%2C%20%22white%22%29%3B%0A%09var%20uri%20%3D%20makeURI%28canvas.toDataURL%28%22image/png%22%29%29%3B%0A%0A%09var%20fileName%20%3D%20doc.title%20%3F%20doc.title%20%3A%20win.location.pathname.split%28%27/%27%29.pop%28%29%3B%0A%09fileName%20%3D%20fileName.replace%28/%5B%3A%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%27_%27%29.replace%28/%5Cs+/g%2C%20%27%20%27%29.slice%280%2C%20100%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%27%27%29%3B%0A%09fileName%20+%3D%20%28function%20%28%29%20%7B%0A%09%09var%20d%20%3D%20new%20Date%28%29%2C%20z%20%3D%20function%20%28n%29%20%7B%0A%09%09%09return%20%27_%27%20+%20%28n%20%3C%2010%20%3F%20%270%27%20%3A%20%27%27%29%20+%20n%0A%09%09%7D%3B%0A%09%09return%20z%28d.getHours%28%29%29%20+%20z%28d.getMinutes%28%29%29%20+%20z%28d.getSeconds%28%29%29%3B%0A%09%7D%29%28%29%3B%0A%0A%09var%20fp%20%3D%20Cc%5B%27@mozilla.org/filepicker%3B1%27%5D.createInstance%28Ci.nsIFilePicker%29%3B%0A%09fp.init%28window%2C%20%22Save%20Screenshot%20As%22%2C%20fp.modeSave%29%3B%0A%09fp.appendFilter%28%22%22%2C%20%22*.png%22%29%3B%0A%09fp.appendFilters%28fp.filterImages%20%7C%20fp.filterAll%29%3B%0A%09fp.defaultExtension%20%3D%20%22png%22%3B%0A%09fp.defaultString%20%3D%20fileName%20+%20%22.png%22%3B%0A%09if%20%28fp.show%28%29%20%3D%3D%20fp.returnCancel%20%7C%7C%20%21fp.file%29%20return%3B%0A%0A%09var%20persist%20%3D%20Cc%5B%27@mozilla.org/embedding/browser/nsWebBrowserPersist%3B1%27%5D.createInstance%28Ci.nsIWebBrowserPersist%29%3B%0A%20%20%20%20%20%20%20%20parseInt%28Application.version%29%20%3C%2036%0A%20%20%20%20%20%20%20%20%3F%20persist.saveURI%28uri%2C%20null%2C%20null%2C%20null%2C%20null%2C%20fp.file%2C%20null%29%0A%20%20%20%20%20%20%20%20%3A%20persist.saveURI%28uri%2C%20null%2C%20null%2C%20null%2C%20null%2C%20null%2C%20fp.file%2C%20null%29%3B%20//%20%u0435%u0441%u043B%u0438%20FF36+%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
wolwerine > 21-11-2013 19:56:17 |
Go and paste (Firefox)- трёхфункционная кнопка для перехода по адресу в адресбаре - из буфера или уже в поле. ЛКМ - перейти по адресу в адресбаре скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EGo%20and%20paste%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQALMJAMzMmZmZmWZmZmZmmZmZzDMzM//M/////8zM/////wAAAAAAAAAAAAAAAAAAAAAAACH5BAHoAwkALAAAAAAQABAAAARRMMlJq60gCHGlFkEiDOH0AQIRFCAwbSHbXlvBBnieS2k4GLhE4BDiCEHCnc4oPDif0ANzGI1OqwjoFMHteqUmREIslpCnFe4Ewdy43+5S5xIBADs%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.pasteURL%20%3D%20function%28aEvent%2C%20go%29%20%7B%0A%20%20var%20paste%20%3D%20readFromClipboard%28%29%3B%0A%20%20if%28%21paste%29%20return%3B%0A%20%20if%28%21go%29%20%7B%0A%20%20%20%20gURLBar.value%20%3D%20paste%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20openUILink%28paste%2C%20aEvent%2C%20false%2C%20true%29%3B%0A%20%20%7D%0A%7D%0Athis.midclick%20%3D%20function%28%29%20%7B%0Avar%20paste%20%3D%20readFromClipboard%28%29%3B%0A%09getBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28%20paste%20%29%3B%0A%7D%3B%0Athis.rightclick%20%3D%20function%20%28event%29%20%7B%0A%20%20gURLBar.select%28%29%3B%0A%20%20goDoCommand%28%22cmd_paste%22%29%3B%0A%20%20gURLBar.handleCommand%28%29%3B%0A%7D%0Athis.leftclick%20%3D%20function%20%28event%29%20%7B%0A%20%20gURLBar.select%28%29%3B%0A%20%20gURLBar.handleCommand%28%29%3B%0A%7D%0A%0Athis.setAttribute%28%22onclick%22%2C%20%22custombuttons.gQuot.mHandler%28event%2C%20this%29%22%29%3B%0Athis.setAttribute%28%22onmouseover%22%2C%20%22this.tooltipText%20%3D%20readFromClipboard%28%29%20%3F%20readFromClipboard%28%29%20%3A%20this.label%3B%22%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this.pasteURL = function(aEvent, go) { var paste = readFromClipboard(); if(!paste) return; if(!go) { gURLBar.value = paste; } else { openUILink(paste, aEvent, false, true); } } this.midclick = function() { var paste = readFromClipboard(); getBrowser (). selectedTab = getBrowser (). addTab ( paste ); }; this.rightclick = function (event) { gURLBar.select(); goDoCommand("cmd_paste"); gURLBar.handleCommand(); } this.leftclick = function (event) { gURLBar.select(); gURLBar.handleCommand(); } this.setAttribute("onclick", "custombuttons.gQuot.mHandler(event, this)"); this.setAttribute("onmouseover", "this.tooltipText = readFromClipboard() ? readFromClipboard() : this.label;"); |
bunda1 > 07-03-2014 00:39:31 |
Переключить JavaScript для сайтов( Firefox17+ ) от 12.06.2016. ЛКМ => Переключить JavaScript для сайта. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20JavaScript%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u043E%u0432%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRfQAU0X0AhNF9AKPRfQC20X0AydF9ANrRfQDr0X0A+tF6AP/UfwD/1n0A/9uMFv/RfQDZ0X0ANP///wD///8A1oEAaOCaKP/twHv/8sqR//fZqP/34sH//OvU///05v//+/D///36///ox///7tb/46VJ/9aBAG////8A////ANuHAInorU/////////////////////////++v//+/D///Xm///z5v//qC7//+TC/+u2Z//bhwCL////AP///wDejQBX3o0A9uiTAP//pyT//5sF//+ZAP//lQD//5UA//+VAP//mQD//5UA///drf/yxHn/3o0Anv///wD///8A45AAFOOQAKv3t0///+3R//+3Uv//xGb//8p1///Shf//2o///9uU///go///9Nv/9dad/+OQALP///8A////AP///wDolwAo7ZoA////////2I///9KF///Siv//0or//9iP///Siv//0o///+TC//riuf/olwDK////AP///wD///8A7Z4AHvKdAP///PX//9aK///Uiv//1or//9KP///Wj///1o///9SP///hrf/88tT/7Z4A5P///wD///8A////APWnAAn1pwD///vw///Wj///2Ir//9iK///Uiv//2Ir//9iK///Wj///257///vw//WnAPv1pwAB////AP///wD///8A+qsA+f/25v//2pn//9aF///Shf//0Ir//9SP///Wj///1pT//9iZ///69f/6qwD/+qsAD////wD///8A////AP+yANr/68L//+Ct///Uhf//1IX//9CF///Uiv//1Ir//9aU///amf//+/X//64A//+yABL///8A////AP///wD/sgC7/92Z///rzP//0Ir//9SP///YlP//2pn//92e///co///4aj///36//+dAP//sgDx/7IARf///wD///8A/7cApP/UgP//8eD//9ue///bnv//3Kj//+Ct///nsv//5Lj//+S9//7/+v//oRT//+Ce//+3AOX///8A////AP+3AJL/z2b///v1///irf//5bL//+O9///owv//7Mf//+7M///tzP///////5UA///69f//wzj/////AP///wD/twCE/8tS////////7cz//+vR///t2///8+D///jm//z58v//+vX////////78P//2pT//7cA6v///wD///8A/7sAbf/CM/////////////////////////nr///02///78L//+Wy///gnv//02v//7sA7f+7AF3///8A////AP+7ADb/uwDG/74a//+4Bf//twD//7sA//+7APD/uwDj/7sAz/+7AMz/uwC7/7sAqP+7AEv/uwAFAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQYABrEHAAaxBwAGsQcAArEHAAKxBwACsQcAArEHAAKxBwACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20var%20scriptEnabled%20%3D%20gBrowser.docShell.allowJavascript%3B%20//%20%u0442%u0435%u043A%u0443%u0449%u0435%u0435%20%u0441%u043E%u0441%u0442%u043E%u044F%u043D%u0438%u0435%20JavaScript%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%0A%20%20%20var%20currHost%20%3D%20content.document.domain%3B%0A%20%20%20if%20%28%20%21currHost%20%29%20return%3B%0A%0A%20%20%20saveTextToHelp%28currHost%2C%20scriptEnabled%29%3B%0A%20%20%20tabsReload%28false%2C%20currHost%2C%20%21scriptEnabled%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0430%u0435%u043C%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%27%u0421%u043F%u0440%u0430%u0432%u043A%u0430%27%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u0441%20%u0434%u043E%u043C%u0435%u043D%u0430%u043C%u0438%20..............%0Avar%20hosts%20%3D%20self.getAttribute%28%27Help%27%29.split%28%27%5Cn%27%29.filter%28%28host%29%3D%3E%20/%5CS/.test%28host%29%29.map%28%28host%29%3D%3E%20host.trim%28%29%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%u0438%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20JavaScript%20%u0434%u043B%u044F%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0438%u043B%u0438%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20%u0441%u0430%u0439%u0442%u0430%20%u0438%u043B%u0438%20%u0432%u0441%u0435%u0445%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0438%u0437%20%u043C%u0430%u0441%u0441%u0438%u0432%u0430%20..............%20%0Afunction%20tabsReload%28%20reason%2C%20currHost%2C%20scriptEnabled%20%29%20%7B%0A%20%20%20if%20%28%20reason%20%3D%3D%20%27destructor%27%20%29%20return%3B%0A%20%20%20if%20%28%20reason%20%29%20scriptEnabled%20%3D%20reason%20%21%3D%20%27update%27%3B%0A%0A%20%20%20//%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0435%u0441%u043B%u0438%20%u043B%u0435%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0435%0A%20%20%20if%20%28%20%21reason%20%29%20%7B%0A%20%20%20%20%20%20%20%20gBrowser.docShell.allowJavascript%20%3D%20scriptEnabled%3B%20%0A%20%20%20%20%20%20%20%20BrowserReload%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20//%20%u0421%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20....%0A%20%20%20var%20notification%20%20%3D%20reason%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20%27%u041F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%27%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20%27%u041F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0441%u0430%u0439%u0442%u0430%27%3B%20%0A%20%20%20var%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%20notification%2C%20true%2C%20%22%22%2C%20listener%2C%20%22%22%29%3B%0A%20%20%20%0A%20%20%20//%20%u0441%u0442%u0438%u043B%u044C%20%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0439%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0438%0A%20%20%20var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%20%20%20%23alertImage%20%7B%20height%3A%2035px%20%21important%3B%20width%3A%2035px%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%23alertNotification%3Ahover%20%7B%20cursor%3A%20pointer%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%23alertTextLabel%20%7B%20color%3A%20%230000FF%20%21important%3B%20text-decoration%3A%20underline%3B%20%7D%5C%0A%20%20%20%27%29%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%20%20%20%0A%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0441%u0442%u0438%u043B%u044C%20%u0438%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0443%20%u0447%u0435%u0440%u0435%u0437%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u043E%u0435%20%u0432%u0440%u0435%u043C%u044F%0A%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20sss.unregisterSheet%28uri%2C%200%29%3B%20alertsService.closeAlert%28%29%3B%20%7D%2C%204000%29%3B%20%0A%20%20%20%20%0A%20%20%20//%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0441%u0430%u0439%u0442%u0430%20%u0438%u043B%u0438%20%u0432%u0441%u0435%u0445%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0438%u0437%20%u043C%u0430%u0441%u0441%u0438%u0432%u0430%20%u0435%u0441%u043B%u0438%20%u043A%u043B%u0438%u043A%u043D%u0443%u0442%u044C%20%u043D%u0430%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0435%0A%20%20%20function%20listener%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20if%20%28%20topic%20%21%3D%3D%20%27alertclickcallback%27%20%29%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20currTab%20%3D%20gBrowser.mCurrentTab%3B%0A%20%20%20%20%20%20for%28%20var%20tab%20of%20gBrowser.tabs%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20uri%20%3D%20tab.linkedBrowser.currentURI%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20%21uri.scheme.startsWith%28%22http%22%29%20%29%20continue%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20var%20tabHost%20%3D%20tab.linkedBrowser.contentDocument.location.host%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20tabHost%20%3D%3D%20%27%27%20%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20var%20tabReload%20%3D%20reason%20%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%3F%20hosts.indexOf%28tabHost%29%20%21%3D%3D%20-1%20%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%3A%20tab%20%21%3D%3D%20currTab%20%26%26%20tabHost%20%3D%3D%20currHost%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20tabReload%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tab.linkedBrowser.docShell.allowJavascript%20%3D%20scriptEnabled%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.reloadTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%0A%7D%3B%0AaddDestructor%28tabsReload%29%3B%0A%0A%0A//%20%u0417%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%27%u0421%u043F%u0440%u0430%u0432%u043A%u0430%27%20..............%0Afunction%20saveTextToHelp%28currHost%2C%20addHost%29%20%7B%0A%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0438%u043B%u0438%20%u0434%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u0441%u0430%u0439%u0442%20%u0432%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u0441%20%u0434%u043E%u043C%u0435%u043D%u0430%u043C%u0438%0A%20%20%20addHost%0A%20%20%20%3F%20hosts.push%28currHost%29%20%20%20%20%20%0A%20%20%20%3A%20hosts%20%3D%20hosts.filter%28%28host%29%3D%3E%20%7B%20return%20%28host%20%21%3D%3D%20currHost%29%20%7D%29%20%20%20%0A%20%20%20var%20value%20%3D%20hosts.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20//%20%u0437%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u043C%u0430%u0441%u0441%u0438%u0432%0A%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20dir.initWithPath%28dir.path%20+%20%22%5C%5Cextensions%5C%5Ccustombuttons@xsms.org%5C%5Ccomponents%5C%5CCustomButtonsService.js%22%29%3B%0A%20%20%20var%20url%20%3D%20Services.io.newFileURI%28dir%29.spec%2C%20cbs%20%3D%20%7B%7D%3B%0A%20%20%20Services.scriptloader.loadSubScript%28url%2C%20cbs%29%3B%0A%20%20%20var%20AO%20%3D%20new%20cbs.AppObject%28%29%2C%20btn%20%3D%20AO.getButton%28_id%29%3B%0A%0A%20%20%20self.setAttribute%28%22Help%22%2C%20value%29%3B%0A%20%20%20btn.setAttribute%28%22Help%22%2C%20value%29%3B%0A%20%20%20AO.overlay.saveOverlayToProfile%28%29%3B%20%20%20%0A%7D%3B%0A%0A%0A//%20%u041E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0441%u043B%u0435%u0434%u0438%u0442%20%u0437%u0430%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u043C%u0438%20%u0442%u0430%u0431%u043E%u0432%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u043A%u0430%u044E%u0442%20%u043D%u0443%u0436%u043D%u044B%u0435%20%u043A%u043E%u0434%u044B%20%u0438%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20..............%0AaddEventListener%28%22TabAttrModified%22%2C%20e%3D%3E%20%7B%0A%20%20%20var%20browser%20%3D%20e.target.linkedBrowser%3B%20%20%20%0A%0A%20%20%20//%20%u043E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20JavaScript%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u0430%20%u0435%u0441%u043B%u0438%20%u0434%u043E%u043C%u0435%u043D%20%u0441%u0430%u0439%u0442%u0430%20%u0441%u043E%u0432%u043F%u0430%u0434%u0430%u0435%u0442%20%u0441%20%u043C%u0430%u0441%u0441%u0438%u0432%u043E%u043C%20%27hosts%27%0A%20%20%20var%20specifiedSite%20%3D%20hosts.indexOf%28%20browser.contentDocument.location.host%20%29%20%21%3D%3D%20-1%3B%20%0A%20%20%20browser.docShell.allowJavascript%20%3D%20%21specifiedSite%3B%0A%0A%20%20%20//%20%u0435%u0441%u043B%u0438%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u043E%u0442%u043A%u043B%u044E%u0447%u0435%u043D%20JavaScript%20%u043C%u0435%u043D%u044F%u0435%u043C%20%u0438%u043A%u043E%u043D%u043A%u0443%0A%20%20%20if%20%28%20browser%20%3D%3D%20gBrowser.selectedBrowser%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20self.style.filter%20%3D%20specifiedSite%20%7C%7C%20%21cbu.getPrefs%28%22javascript.enabled%22%29%20%3F%20grayscale%20%3A%20%27%27%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%0A%7D%2C%20true%2C%20gBrowser.tabContainer%29%3B%0Avar%20grayscale%20%3D%20parseInt%28Services.appinfo.version%29%20%3C%2036%20%3F%20%27url%28%22chrome%3A//mozapps/skin/extensions/extensions.svg%23greyscale%22%29%27%20%3A%20%27grayscale%281%29%27%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bru.wikipedia.org%0Awww.pinterest.com%0Awebcache.googleusercontent.com%0Aweb.archive.org%0Adeveloper.mozilla.org%0Agithub.com%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки .............. this._handleClick =()=> { var scriptEnabled = gBrowser.docShell.allowJavascript; // текущее состояние JavaScript на странице var currHost = content.document.domain; if ( !currHost ) return; saveTextToHelp(currHost, scriptEnabled); tabsReload(false, currHost, !scriptEnabled); }; // Получаем из вкладки 'Справка' массив с доменами .............. var hosts = self.getAttribute('Help').split('\n').filter((host)=> /\S/.test(host)).map((host)=> host.trim()); // Перегрузить и переключить JavaScript для текущей вкладки или вкладок сайта или всех сайтов из массива .............. function tabsReload( reason, currHost, scriptEnabled ) { if ( reason == 'destructor' ) return; if ( reason ) scriptEnabled = reason != 'update'; // переключить текущую вкладку если левый клик на кнопке if ( !reason ) { gBrowser.docShell.allowJavascript = scriptEnabled; BrowserReload(); }; // Сплывающая подсказка .... var notification = reason ? 'Перегрузить все вкладки сайтов из списка' : 'Перегрузить все вкладки сайта'; var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) alertsService.showAlertNotification(self.image, self.label, notification, true, "", listener, ""); // стиль сплывающей подсказки var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #alertImage { height: 35px !important; width: 35px !important; }\ #alertNotification:hover { cursor: pointer !important; }\ #alertTextLabel { color: #0000FF !important; text-decoration: underline; }\ ')); sss.loadAndRegisterSheet(uri, 0); // удалить стиль и подсказку через указанное время setTimeout(()=> { sss.unregisterSheet(uri, 0); alertsService.closeAlert(); }, 4000); // переключить вкладки сайта или всех сайтов из массива если кликнуть на подсказке function listener(subject, topic, data) { if ( topic !== 'alertclickcallback' ) return; var currTab = gBrowser.mCurrentTab; for( var tab of gBrowser.tabs ) { var uri = tab.linkedBrowser.currentURI; if ( !uri.scheme.startsWith("http") ) continue; var tabHost = tab.linkedBrowser.contentDocument.location.host; if ( tabHost == '' ) return; var tabReload = reason ? hosts.indexOf(tabHost) !== -1 : tab !== currTab && tabHost == currHost; if ( tabReload ) { tab.linkedBrowser.docShell.allowJavascript = scriptEnabled; gBrowser.reloadTab(tab); } } } }; addDestructor(tabsReload); // Записать текст в вкладку 'Справка' .............. function saveTextToHelp(currHost, addHost) { // удалить или добавить текущий сайт в массив с доменами addHost ? hosts.push(currHost) : hosts = hosts.filter((host)=> { return (host !== currHost) }) var value = hosts.join("\n"); // записать массив var dir = Services.dirsvc.get("ProfD", Ci.nsIFile); dir.initWithPath(dir.path + "\\extensions\\custombuttons@xsms.org\\components\\CustomButtonsService.js"); var url = Services.io.newFileURI(dir).spec, cbs = {}; Services.scriptloader.loadSubScript(url, cbs); var AO = new cbs.AppObject(), btn = AO.getButton(_id); self.setAttribute("Help", value); btn.setAttribute("Help", value); AO.overlay.saveOverlayToProfile(); }; // Обработчик следит за изменениями табов и запускают нужные коды и функции .............. addEventListener("TabAttrModified", e=> { var browser = e.target.linkedBrowser; // отключить JavaScript для сайта если домен сайта совпадает с массивом 'hosts' var specifiedSite = hosts.indexOf( browser.contentDocument.location.host ) !== -1; browser.docShell.allowJavascript = !specifiedSite; // если на странице отключен JavaScript меняем иконку if ( browser == gBrowser.selectedBrowser ) { self.style.filter = specifiedSite || !cbu.getPrefs("javascript.enabled") ? grayscale : ''; } }, true, gBrowser.tabContainer); var grayscale = parseInt(Services.appinfo.version) < 36 ? 'url("chrome://mozapps/skin/extensions/extensions.svg#greyscale")' : 'grayscale(1)'; Большое спасибо Dumby за помощь с кнопкой. |
lex0kz > 03-04-2014 02:17:04 |
Xdebug ( Firefox ) rev 1 скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ExDebug%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjA4RjhBNDRCOEYyMTFFM0EyQkZGMUI5QTM4MUNEQTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjA4RjhBNDVCOEYyMTFFM0EyQkZGMUI5QTM4MUNEQTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCMDhGOEE0MkI4RjIxMUUzQTJCRkYxQjlBMzgxQ0RBOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCMDhGOEE0M0I4RjIxMUUzQTJCRkYxQjlBMzgxQ0RBOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PifrerwAAANsSURBVHjadFNdSBtZFD4z+anRoFGpjMEtbv1trTHRTgpu7cYtzUOQtQ0IBUntSxFkfVhsZBdctkofWmwfLII+LGUtFtmAPqQuW5ZsVazB1ZjWEhWMWP8inXSC5j8zyWR6Z1pd2O6ey5mBe+855/u+cy7wPA//5YlEAjObzQ9KSkpmJyYmzv/fPfETjUZhY2PjeJNlWbBarZaqqipGq9Xy9fX1zrm5ueyj80gkAuvr6/8k6OnpuWE0Gh8IBz6fT9bS0tJXWVkZq6ur4wXXaDS8Tqd7NTw8XCPct9ls1eXl5eNerzcbB2QUReWtrq5e393dheXlZZ3L5fopKytLAZ9MJpMJlLSTk5N3BbQOh+MCKmY4ODhIiwmam5vdGIad9Pv9eU6nExcC/m0KhQJ8u77sra0tCIVCF8hacr3mbE1ETIC4vlapVPtDQ0MPTSaTmyCIIY7jDtPpNLBxFpg4w8RiMY+h2fADgl05Pzffpj6nfkLJKMBEIZD19vZeHhkZ+V2tVi8g5Qf0en0iV5VbUFBacCfJJ52j9tHRtdk1HRtgv1NkKRYv3r94NfNUJnecQLDW1tZ+t9t9OyMjAxiG2bvSeCV66f6lcipIQaGvEJt6PAXTL6bDGqvmy9JvSwOpaAqkFovlMYqtlkgksL+//4XAFcdFZkV8modAOACL/kXIU+UB+TMJmsuaEwt/L9gdHQ4WNTUqRQicSEAKCceg/2kUaDlChAH2PpqKnoykIsCGWXgWegaElpDrz+jra1/W0lMzU78eU0DQJZ2dnf3hcPh7uVwOSDQwGox7udbcomnfNCgkH7vK8Rwk0CIJEsyE+Z6IFbWuqK2tzZVKpa7l5OTMJpPJYxChZAhohoYAEwB/wg87sR3Il+dDWbAs5tnxvJYuLS1Jurq6HiHe2ODgoFYo0t7e/jwYDH6FAy4VE7C0OLEqmQo6yjpCBEX8NXZ7zLBSuuLFaZouQxPViMb3R5Ikg8gjAwMDVysqKn6Jx+NhP+MHKkGBiTDBU/LpnwjB190r3Wbve++OPCi/IUUVpejxzDc1Na0d4W5oaKDtdvut7bfb39hw2x+N1Y0bSomy76br5m8e2gNQAFBcVDzJhTkOQ9Vhc3PzBHocjFKp/GyEx33j594cvtmbCcwc4hguisljPGS+y5SiNsIHAQYAli7a8dHB0UkAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20trim%20%3D%20function%28text%29%7B%0A%09if%20%28typeof%20text%20%21%3D%20%27string%27%29%20%7B%0A%09%09return%20text%3B%0A%09%7D%0A%09return%20text.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%27%27%29%3B%0A%7D%3B%0A%0Avar%20xdebug%20%3D%20%7B%0A%09init%3A%20function%28button%29%20%7B%0A%09%09xdebug.button%20%20%20%3D%20button%3B%0A%09%09xdebug.start%20%20%20%20%3D%20xdebug.button.image%3B%0A%09%09xdebug.stop%20%20%20%20%20%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjcyQ0RFRDBCOEYyMTFFMzg0Nzk4OTc2QUI3RkQ1MEQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjcyQ0RFRDFCOEYyMTFFMzg0Nzk4OTc2QUI3RkQ1MEQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNzJDREVDRUI4RjIxMUUzODQ3OTg5NzZBQjdGRDUwRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNzJDREVDRkI4RjIxMUUzODQ3OTg5NzZBQjdGRDUwRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqR9GwoAAALrSURBVHjajFNfSFNRGP/u3d10bagsBFlKzJFORNtSEVdCEfgggiVsCroGQfgQPplgtB4Me9IeFsJ8kMjwRSMfhlEP+lDLkTlXE7IxZRuKi9lgjs25e/Xe23dWOimDfvBt95zznd/3+/4cEEURTrNMJkN1dHSMarVa1+zsbP2//LI/e3t7sLGxcbzJcRwMDAxYqqurWb1eLxqNRvfi4mLB0XkqlYJAIJAjsNlst1paWkbJwfb2ttRkMj3S6XTpuro6kVhtba1oMBg+j4+PXyT+MzMzNRUVFa/W19cLaEBEo1HV2tpa19bWFvh8PoPH43moUCjk8BtSqZSkpJ+bmxsmaufn5xsx2NV4PC5kCdrb270URRXv7Oyo3G43TS78CblcDpubmwXhcBiSyWQjKgpUVVWlsgSY65eioqKIw+F40tra6i0pKXHwPB8/cV9gWfar2WweRNk6l8tlbWhoeKFUKoHKFgIxNDR0fXJy8rVarf6Elbc3NTVxGE34sLREmzo7z0QikcTy8nJ9KBS6q1Kp3r2cnu4qLyvLERB0d3ePeL3ee/n5+SAIQuS8RvN9sKdHyOO4YqDp0oODA4amKDirUi1p9foYqNW3GYvF8gzv1kgkEsAoZSRXmqYBJavPaTRq4+4ugNsNgKTHSKcbsY/wmOOcDCpwYwGjWDgW/8vx2HKcOM//QOdiIZMh/c4R4JwQJQgPMzU1NUG+ULqkr69v5PDwEGQy2S9HimIB1yLLku8cAa6FZBIe2GzPs13A1pVarVYPXr5ZWFjowlyPXCkSTUQFfxnuI/KYlZUVSX9//1PMmxobG9PjJt/b2/s2kUhcxqgMINlpCsj+m4UFBR2LxS7gRF3D8b2PvU2gpex2+43KysqJ9P5+Ch8KiPE4iIlEznDN8DxEotErDPIx+Hg+trW1fTsK0NzcHHM6nXeC4fAlLMgwYzaT1pwYKwHe+3zKkN+/T2F0CAaDefg4WDJZ/4tVvx9koij9KcAAdtiwKOd2K98AAAAASUVORK5CYII%3D%27%3B%0A%09%09xdebug.disabled%20%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxMDc1OUYwQUYwQjhFMzExQkQ0N0U0RURENEE2OUZFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDOUM2RDMwMUI5MjQxMUUzOEIwNUYwMzNDNjhENjMxMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDOUM2RDMwMEI5MjQxMUUzOEIwNUYwMzNDNjhENjMxMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdFQTFFMEQzMjNCOUUzMTFCODlFQUIwODMyNzQ0MzY1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEwNzU5RjBBRjBCOEUzMTFCRDQ3RTRFREQ0QTY5RkVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+3SsfLQAAAwBJREFUeNqMU11ImmEUfr9PP3+yUphNZ4PKoBYGGSMQuojJ5jYJHFF5kVswiFgUXXQXdNFNEXSxIJAug8C66aZoDbxa4C5KzRvBlVqpuVozTC3Nvz2vzAaxwQ4c3vN95z0/z3POS4rFIvmbptNp0tPTY2hsbBxaX19X/eseSyDX19fE7/eTsmSzWTI1NdXm8/k6q6qq6ufn5187HA5h2Z9KpcjBwUHJLiWYnZ1tGxkZMVDH6ekpOzAw8GxjY+ONSCRieDxeNplM1o+Ojr5fWlpS0vtbW1sPu7u7zYeHh8JSgrOzM7HX620NhULE4/E82tvbey6RSPhwFaif47g8IDVsbm7qaRG73f6YJr28vCyWEphMpijDMJLz83MxWmUQQIOL5I8wYrGYnJycCI+Ojkgikahtb2//2dLScltKoNFovstksoTVan1pNBqjSqXySz6fT8PFg5Y6yWQyof7+fjuwy3d2drQdHR2eyspKwlAmqUxPT6uXl5ffqlSqMJj/qtPpcuFwmOzu7jK9vb1cNBpNw64NBoOdFRUVR2tra6tqtbpwl4AKyDO4XC4DyMuAvBhgpaCkUCiI4K7GdCTQ+OLi4ke9Xn9dwmaxWEw4FQggx8fH0ng8XsmybBGBAhAXAVleuVz+AoWyNADJ8k1NTT/AE62cYuEIwQjgxzcE+cujpYuk1WrDgOaGffu7SepLoJgXSu8G+SsrKy7qQevM2NjYq1wuxwkEgjxOAjLzXV1dLPakIBQKKaEslo5fV1fnn5mZCd8tEkZXPTg4+AFBT6RSqQ84OYod3wzdUmrTiWASyYaGhgiKDo2Pj+tol3yn08lMTEwYgZsFOVZczA8PD78DF63lAsDNxWIxBvvyaXJych8dPbXZbKaampoIe3Fx8QAbVd/X1/cZs01DswsLC7bm5mbHzc1NBt2wwBsB2atzc3P7CCKo7lQoFFFsroZsb28r0JbF7XbL7r9GPCbR1dUVh5O7/wrNZrOevhkG1UkgEOBjNDm6Wf8rSMpSbn4JMAD2UrKpGLdeUwAAAABJRU5ErkJggg%3D%3D%27%3B%0A%0A%09%09xdebug.set_id%28%29%3B%0A%09%09xdebug.update_icon%28%29%3B%0A%09%7D%2C%0A%09check_status%3A%20function%28%29%20%7B%0A%09%09return%20%21%21%28cookie_exists%20%3D%20new%20RegExp%28%27%28%5E%7C%3B%29%5C%5Cs*XDEBUG_SESSION%5C%5Cs*%3D%5C%5Cs*%28%5B%5E%5C%5Cs%3B%5D+%29%27%2C%20%27g%27%29.exec%28content.document.cookie%29%29%3B%0A%09%7D%2C%0A%09update_icon%3A%20function%28hide_notify%29%7B%0A%09%09var%20icon_image%20%3D%20xdebug.start%3B%0A%09%09var%20icon_title%20%3D%20%27Start%20Debug%27%3B%0A%09%09var%20notify_msg%20%3D%20%27Debug%20stopped%27%3B%0A%0A%09%09if%20%28%20%21content.window.location.protocol.startsWith%28%22http%22%29%20%29%20%7B%0A%09%09%09icon_image%20%3D%20xdebug.disabled%3B%0A%09%09%09icon_title%20%3D%20%27%27%3B%0A%09%09%7D%0A%09%09else%20if%20%28xdebug.check_status%28%29%29%20%7B%0A%09%09%09icon_image%20%3D%20xdebug.stop%3B%0A%09%09%09icon_title%20%3D%20%27Stop%20Debug%27%3B%0A%09%09%09notify_msg%20%3D%20%27Debug%20started%27%3B%0A%09%09%7D%0A%0A%09%09xdebug.button.image%20%20%20%20%20%20%20%3D%20icon_image%3B%0A%09%09xdebug.button.tooltipText%20%3D%20icon_title%3B%0A%0A%09%09if%20%28%21hide_notify%29%20%7B%0A%09%09%09try%20%7B%0A%09%09%09%09Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%0A%09%09%09%09%09.showAlertNotification%28%22chrome%3A//global/skin/icons/information-16.png%22%2C%20%22Xdebug%22%2C%20notify_msg%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%09%09%09%7D%20catch%20%28e%29%20%7B%7D%0A%09%09%7D%0A%09%7D%2C%0A%09change_status%3A%20function%28%29%20%7B%0A%09%09var%20status%20%3D%20%21xdebug.check_status%28%29%3B%0A%0A%09%09if%20%28status%29%20%7B%0A%09%09%09content.document.cookie%20%3D%20%5B%0A%09%09%09%09%27XDEBUG_SESSION%3D%27%20+%20escape%28custombuttons.getPrefs%28%27xdebug.session_id%27%29%29%2C%0A%09%09%09%09%27path%3D/%27%2C%0A%09%09%09%09%27domain%3D.%27+%20content.window.location.hostname%20+%27%3B%27%0A%09%09%09%5D.join%28%27%3B%20%27%29%3B%0A%09%09%7D%0A%09%09else%20%7B%0A%09%09%09content.document.cookie%20%3D%20%5B%0A%09%09%09%09%27XDEBUG_SESSION%3D%27%20+%20escape%28custombuttons.getPrefs%28%27xdebug.session_id%27%29%29%2C%0A%09%09%09%09%27expires%3DMon%2C%2005%20Jul%202000%2000%3A00%3A00%20GMT%27%2C%0A%09%09%09%09%27path%3D/%27%2C%0A%09%09%09%09%27domain%3D.%27+%20content.window.location.hostname%20+%27%3B%27%0A%09%09%09%5D.join%28%27%3B%20%27%29%3B%0A%09%09%7D%0A%0A%09%09xdebug.update_icon%28%29%3B%0A%09%7D%2C%0A%09set_id%3A%20function%28id%29%20%7B%0A%09%09id%20%3D%20trim%28id%29%3B%0A%09%09%0A%09%09if%20%28typeof%20id%20%21%3D%20%27string%27%20%7C%7C%20%21id%29%20%7B%0A%09%09%09id%20%3D%20%27PHPSTORM%27%3B%0A%09%09%7D%0A%09%09custombuttons.setPrefs%28%27xdebug.session_id%27%2C%20id%29%3B%0A%09%7D%0A%7D%0A%0Axdebug.init%28this%29%3B%0A%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%09if%20%28e.button%20%3D%3D%200%29%20%7B%0A%09%09if%20%28%20content.window.location.protocol.startsWith%28%22http%22%29%20%29%20%7B%0A%09%09%09xdebug.change_status%28%29%3B%0A%09%09%7D%0A%09%7D%0A%09else%20if%20%28e.button%20%3D%3D%201%29%20%7B%0A%09%09var%20prompt_val%20%3D%20custombuttons.promptBox%28%27%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%27%2C%20%27%u041D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20IDE%20key%20%28session%20id%29%3A%27%2C%20custombuttons.getPrefs%28%27xdebug.session_id%27%29%29%3B%0A%0A%09%09xdebug.set_id%28prompt_val%5B1%5D%29%3B%0A%0A%09%09if%20%28%20content.window.location.protocol.startsWith%28%22http%22%29%20%29%20%7B%0A%09%09%09if%20%28%20xdebug.check_status%28%29%20%29%20%7B%0A%09%09%09%09content.document.cookie%20%3D%20%27XDEBUG_SESSION%3D%27%20+%20custombuttons.getPrefs%28%27xdebug.session_id%27%29%20+%20%27%3B%27%3B%0A%09%09%09%7D%0A%09%09%7D%0A%0A%09%09xdebug.update_icon%28true%29%3B%0A%09%7D%0A%7D%0A%0Avar%20main%20%3D%20%7B%0A%09onStateChange%3A%20function%28aWebProgress%2C%20aRequest%2C%20aFlag%29%20%7B%0A%09%09if%20%28%20aFlag%20%26%26%20Ci.nsIWebProgressListener.STATE_STOP%20%29%20%7B%0A%09%09%09xdebug.update_icon%28true%29%3B%0A%09%09%7D%0A%09%7D%2C%0A%09onLocationChange%3A%20function%28aWebProgress%2C%20aRequest%29%20%7B%0A%09%09if%20%28%20aRequest%20%29%20return%3B%0A%09%09if%20%28%20aWebProgress.DOMWindow.document.readyState%20%21%3D%3D%20%27complete%27%20%29%20return%3B%0A%0A%09%09xdebug.update_icon%28true%29%3B%0A%09%7D%0A%7D%3B%0A%0AgBrowser.addProgressListener%28%20main%20%29%3B%0AaddDestructor%28function%28%29%20%7B%20gBrowser.removeProgressListener%28%20main%20%29%20%7D%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u0417%u0430%u043F%u0443%u0441%u043A%u0430%u0435%u043C%20%u043E%u0442%u043B%u0430%u0434%u043A%u0443%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var trim = function(text){ if (typeof text != 'string') { return text; } return text.replace(/^\s+|\s+$/g, ''); }; var xdebug = { init: function(button) { xdebug.button = button; xdebug.start = xdebug.button.image; xdebug.stop = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjcyQ0RFRDBCOEYyMTFFMzg0Nzk4OTc2QUI3RkQ1MEQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjcyQ0RFRDFCOEYyMTFFMzg0Nzk4OTc2QUI3RkQ1MEQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNzJDREVDRUI4RjIxMUUzODQ3OTg5NzZBQjdGRDUwRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNzJDREVDRkI4RjIxMUUzODQ3OTg5NzZBQjdGRDUwRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqR9GwoAAALrSURBVHjajFNfSFNRGP/u3d10bagsBFlKzJFORNtSEVdCEfgggiVsCroGQfgQPplgtB4Me9IeFsJ8kMjwRSMfhlEP+lDLkTlXE7IxZRuKi9lgjs25e/Xe23dWOimDfvBt95zznd/3+/4cEEURTrNMJkN1dHSMarVa1+zsbP2//LI/e3t7sLGxcbzJcRwMDAxYqqurWb1eLxqNRvfi4mLB0XkqlYJAIJAjsNlst1paWkbJwfb2ttRkMj3S6XTpuro6kVhtba1oMBg+j4+PXyT+MzMzNRUVFa/W19cLaEBEo1HV2tpa19bWFvh8PoPH43moUCjk8BtSqZSkpJ+bmxsmaufn5xsx2NV4PC5kCdrb270URRXv7Oyo3G43TS78CblcDpubmwXhcBiSyWQjKgpUVVWlsgSY65eioqKIw+F40tra6i0pKXHwPB8/cV9gWfar2WweRNk6l8tlbWhoeKFUKoHKFgIxNDR0fXJy8rVarf6Elbc3NTVxGE34sLREmzo7z0QikcTy8nJ9KBS6q1Kp3r2cnu4qLyvLERB0d3ePeL3ee/n5+SAIQuS8RvN9sKdHyOO4YqDp0oODA4amKDirUi1p9foYqNW3GYvF8gzv1kgkEsAoZSRXmqYBJavPaTRq4+4ugNsNgKTHSKcbsY/wmOOcDCpwYwGjWDgW/8vx2HKcOM//QOdiIZMh/c4R4JwQJQgPMzU1NUG+ULqkr69v5PDwEGQy2S9HimIB1yLLku8cAa6FZBIe2GzPs13A1pVarVYPXr5ZWFjowlyPXCkSTUQFfxnuI/KYlZUVSX9//1PMmxobG9PjJt/b2/s2kUhcxqgMINlpCsj+m4UFBR2LxS7gRF3D8b2PvU2gpex2+43KysqJ9P5+Ch8KiPE4iIlEznDN8DxEotErDPIx+Hg+trW1fTsK0NzcHHM6nXeC4fAlLMgwYzaT1pwYKwHe+3zKkN+/T2F0CAaDefg4WDJZ/4tVvx9koij9KcAAdtiwKOd2K98AAAAASUVORK5CYII='; xdebug.disabled = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxMDc1OUYwQUYwQjhFMzExQkQ0N0U0RURENEE2OUZFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDOUM2RDMwMUI5MjQxMUUzOEIwNUYwMzNDNjhENjMxMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDOUM2RDMwMEI5MjQxMUUzOEIwNUYwMzNDNjhENjMxMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdFQTFFMEQzMjNCOUUzMTFCODlFQUIwODMyNzQ0MzY1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEwNzU5RjBBRjBCOEUzMTFCRDQ3RTRFREQ0QTY5RkVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+3SsfLQAAAwBJREFUeNqMU11ImmEUfr9PP3+yUphNZ4PKoBYGGSMQuojJ5jYJHFF5kVswiFgUXXQXdNFNEXSxIJAug8C66aZoDbxa4C5KzRvBlVqpuVozTC3Nvz2vzAaxwQ4c3vN95z0/z3POS4rFIvmbptNp0tPTY2hsbBxaX19X/eseSyDX19fE7/eTsmSzWTI1NdXm8/k6q6qq6ufn5187HA5h2Z9KpcjBwUHJLiWYnZ1tGxkZMVDH6ekpOzAw8GxjY+ONSCRieDxeNplM1o+Ojr5fWlpS0vtbW1sPu7u7zYeHh8JSgrOzM7HX620NhULE4/E82tvbey6RSPhwFaif47g8IDVsbm7qaRG73f6YJr28vCyWEphMpijDMJLz83MxWmUQQIOL5I8wYrGYnJycCI+Ojkgikahtb2//2dLScltKoNFovstksoTVan1pNBqjSqXySz6fT8PFg5Y6yWQyof7+fjuwy3d2drQdHR2eyspKwlAmqUxPT6uXl5ffqlSqMJj/qtPpcuFwmOzu7jK9vb1cNBpNw64NBoOdFRUVR2tra6tqtbpwl4AKyDO4XC4DyMuAvBhgpaCkUCiI4K7GdCTQ+OLi4ke9Xn9dwmaxWEw4FQggx8fH0ng8XsmybBGBAhAXAVleuVz+AoWyNADJ8k1NTT/AE62cYuEIwQjgxzcE+cujpYuk1WrDgOaGffu7SepLoJgXSu8G+SsrKy7qQevM2NjYq1wuxwkEgjxOAjLzXV1dLPakIBQKKaEslo5fV1fnn5mZCd8tEkZXPTg4+AFBT6RSqQ84OYod3wzdUmrTiWASyYaGhgiKDo2Pj+tol3yn08lMTEwYgZsFOVZczA8PD78DF63lAsDNxWIxBvvyaXJych8dPbXZbKaampoIe3Fx8QAbVd/X1/cZs01DswsLC7bm5mbHzc1NBt2wwBsB2atzc3P7CCKo7lQoFFFsroZsb28r0JbF7XbL7r9GPCbR1dUVh5O7/wrNZrOevhkG1UkgEOBjNDm6Wf8rSMpSbn4JMAD2UrKpGLdeUwAAAABJRU5ErkJggg=='; xdebug.set_id(); xdebug.update_icon(); }, check_status: function() { return !!(cookie_exists = new RegExp('(^|;)\\s*XDEBUG_SESSION\\s*=\\s*([^\\s;]+)', 'g').exec(content.document.cookie)); }, update_icon: function(hide_notify){ var icon_image = xdebug.start; var icon_title = 'Start Debug'; var notify_msg = 'Debug stopped'; if ( !content.window.location.protocol.startsWith("http") ) { icon_image = xdebug.disabled; icon_title = ''; } else if (xdebug.check_status()) { icon_image = xdebug.stop; icon_title = 'Stop Debug'; notify_msg = 'Debug started'; } xdebug.button.image = icon_image; xdebug.button.tooltipText = icon_title; if (!hide_notify) { try { Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService) .showAlertNotification("chrome://global/skin/icons/information-16.png", "Xdebug", notify_msg, false, "", null, ""); } catch (e) {} } }, change_status: function() { var status = !xdebug.check_status(); if (status) { content.document.cookie = [ 'XDEBUG_SESSION=' + escape(custombuttons.getPrefs('xdebug.session_id')), 'path=/', 'domain=.'+ content.window.location.hostname +';' ].join('; '); } else { content.document.cookie = [ 'XDEBUG_SESSION=' + escape(custombuttons.getPrefs('xdebug.session_id')), 'expires=Mon, 05 Jul 2000 00:00:00 GMT', 'path=/', 'domain=.'+ content.window.location.hostname +';' ].join('; '); } xdebug.update_icon(); }, set_id: function(id) { id = trim(id); if (typeof id != 'string' || !id) { id = 'PHPSTORM'; } custombuttons.setPrefs('xdebug.session_id', id); } } xdebug.init(this); this.onclick = function(e) { if (e.button == 0) { if ( content.window.location.protocol.startsWith("http") ) { xdebug.change_status(); } } else if (e.button == 1) { var prompt_val = custombuttons.promptBox('Настройки', 'Название IDE key (session id):', custombuttons.getPrefs('xdebug.session_id')); xdebug.set_id(prompt_val[1]); if ( content.window.location.protocol.startsWith("http") ) { if ( xdebug.check_status() ) { content.document.cookie = 'XDEBUG_SESSION=' + custombuttons.getPrefs('xdebug.session_id') + ';'; } } xdebug.update_icon(true); } } var main = { onStateChange: function(aWebProgress, aRequest, aFlag) { if ( aFlag && Ci.nsIWebProgressListener.STATE_STOP ) { xdebug.update_icon(true); } }, onLocationChange: function(aWebProgress, aRequest) { if ( aRequest ) return; if ( aWebProgress.DOMWindow.document.readyState !== 'complete' ) return; xdebug.update_icon(true); } }; gBrowser.addProgressListener( main ); addDestructor(function() { gBrowser.removeProgressListener( main ) }); 03-04-2014 02:26:11 Короткая ссылка goo.gl ( Firefox ) Копирует в буфер, короткую ссылку на текущую страницу. скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041A%u043E%u0440%u043E%u0442%u043A%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDgxQ0Y0RjBCQThCMTFFM0FCQzA5MUYzRjQyNTcyRjMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NDgxQ0Y0RjFCQThCMTFFM0FCQzA5MUYzRjQyNTcyRjMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo0ODFDRjRFRUJBOEIxMUUzQUJDMDkxRjNGNDI1NzJGMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo0ODFDRjRFRkJBOEIxMUUzQUJDMDkxRjNGNDI1NzJGMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PooqD4IAAAINSURBVHjajJPNaxpBGMZndTWLymoR6qHWXAJaKbnESgnBSyCnntpDKjSQHEKQBEJy8U8ISENKKfTQHkopGhSikWLbgD3kYkG8VXNIQC+BXIIY8Kt+5XmXWUmWLTjwY2ffmXnmnWfeEUajEZukRaNRls1m31it1j38PgTfwYaoTmg0GqzdbjODwaArgLFngiB8QlfioZdgNBaIxWIsl8sx7KAr0Ov1XlgsFkkTfjUW6HQ6rNls/u8ET5DZIjLQxv+NBcxms5K+0Wi8O2Ea7IIIMKlB8q3b7VJ3X0wkEtSRa7XaPERa6J8CJ9jmyKAO3oI8Focxz+X3+38go6+C1+udw8A3SZJ8JpOJ1P/g/xF4TCcDH8A7cMm9YG63m2UyGUbzRZvN9gVxn5oa2nNA+X0EB+Bcz5ThcKh8yYOnOuNFsEma2gHaZDAYKJ5Ro0v/qyOwwHfe4X4oDQsfOJ1OVygUYpVKRTmOngcn3LRlvu4KvAcWsI6bmsJN/RJFMZJKpepCPB5XbgFlOl8ul1tI7ZQvJOEtsALu3W2/32eyLH9OJpPrYjgcpthNqVT6WSgUGExV55XAGhUpRA+x86w6QAUFltCdGheSx+NhwWCQ4ShaP86q1epvVOms5p1cUzLCJK8RWc4Ui8U8xD3czI7dbn+dTqePxUmeciAQuHA4HCEcZRW/NtTAER5WgbK9FWAAa2WspyGuzhMAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%28function%28location%29%7B%0A%09var%20icon%20%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzQxNEMxNjhCQkFFMzExQjBBMUQ4Qzc3OUM1QjM5QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RUQ1MTc3NUJBQUYxMUUzQTcwOUY5Qzg3QkE3RDUwRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RUQ1MTc3NEJBQUYxMUUzQTcwOUY5Qzg3QkE3RDUwRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4NDE0QzE2OEJCQUUzMTFCMEExRDhDNzc5QzVCMzlDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3NDE0QzE2OEJCQUUzMTFCMEExRDhDNzc5QzVCMzlDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pwkIsgAAA5BJREFUeNq0l11IU2EYx9+zneFyynIFFUXDwmBkDNHYVaJhXVTYh4VUtIu+KIToQ/u4yoiWFBkkfVwUBHURZhRh3hSVN90oJESDunARBactE1KHm9P1f8ZzYm4785zDfODHznbec97nfd7n/T/PpGQyKQppvb29orW1VZSUlNDXleAs2AGWg5/gBbgGvtMAi5g/qwVvQQtPLvizhX+vnRcHZFmmjwpe6WqNYfT7c7BGzrwzPj4uIpGIkCTJlAOKogiLxXIRl2VzDHWB9iwH+vv7RVtbm3A4HGaDsLC4uHizzrGbshyYmZkRiURCTE9Pm5odkXMROocvlnO8gEKYwqQ5aR3AqmNsvJBJuBCcp5MIbDqf+SIXYGI7OAjOgFUGn+3KuQU6jUK8F5wDlSYcfwQeyJlKSEmow7aDC8Cncf8luA42gBNgqfruaDSq4PIOCNBPUlNTU/qDXujAlnA4XIEk/IvvH3hPo3x/I0/coDHxO3AVvE7PdLAep2qJ0+n8VVdXN4Ao//4f8crKVPRsrM8tVqvVxmqm2idwA2wFezQmHgQd4JlWyGKxmPB4PKK7u3u2chYVFdHnLXBM49l14KHGvSCH+jFIzLVvtAW05el5RkttzjO5ln0DN8H9tO0xVzvAaSNSD25zEv0pSPECVQbGnwJPClk9jSrhNhNik9p7SsKpqamcDnw08K79PP4uWKvnASpqLpdL1NTUCDpxmUInVVdXN5sM6yR4SnIKBjTGuLFyu8/nCzc2No6qSktAD1JtGzkgeEX5TkKMK9yCXItk5etiISI7Ao4CDyazI/TheDxO4nQFpf4rtEb09fWJ8vJyIdPesFxOagjRZ3aOsv4k2AccGTVhJ/OKnd2l3qRzj/ctA34SM+TDbszxXi33RqVY7feOA3rhIhMJqcCBqp6eHsXtdgsps/hQW00tGbfV+WwFOAwO8bXuEwEHLsGBdnLAoiaFioFO6Ac1lawj1AuEDASiIV2IZpmJPypU2TrBSJ6akdUL0vbTdFkOUEM6NjZmvC2y28M2m03vAsjpZM4I0NHw+/30QkMODA0NDYZCoVFke5mO4W80t8Dr9aYwaoFAIBIMBjtLS0sv6yho98zWAk0jnUcSd3BvoGUj3EcqmhEwa1A6MTExkcApOkB/sFgNPdw1R7hNC+AYppRQzRWpUH/PkQNieHhYUCKm1wJ2IAxG1VNGx72+vj6lNf8EGADGSCd20PLWBgAAAABJRU5ErkJggg%3D%3D%27%3B%0A%09if%20%28location.protocol.startsWith%28%27http%27%29%29%20%7B%0A%09%09var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%09%09var%20request%20%3D%20%7B%0A%09%09%09longUrl%20%3A%20location.toString%28%29%2C%0A%09%09%09key%20%20%20%20%20%3A%20%27%7BYOUR_API_KEY%7D%27%0A%09%09%7D%0A%09%09xhr.onload%20%3D%20function%28%29%7B%0A%09%09%09var%20link%20%3D%20JSON.parse%28xhr.response%29.id%3B%0A%0A%09%09%09const%20gClipboardHelper%20%3D%20Components.classes%5B%22@mozilla.org/widget/clipboardhelper%3B1%22%5D.getService%28Components.interfaces.nsIClipboardHelper%29%3B%0A%09%09%09gClipboardHelper.copyString%28link%29%0A%09%09%09%0A%09%09%09try%20%7B%0A%09%09%09%09Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%0A%09%09%09%09%09.showAlertNotification%28icon%2C%20link%2C%20%27%u0421%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%20%u0432%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%09%09%09%7D%20catch%20%28e%29%20%7B%7D%0A%09%09%7D%0A%09%09xhr.open%28%27POST%27%2C%20%27https%3A//www.googleapis.com/urlshortener/v1/url%27%2C%20true%29%3B%0A%09%09xhr.setRequestHeader%28%22Content-type%22%2C%20%22application/json%22%29%3B%0A%09%09xhr.send%28JSON.stringify%28request%29%29%3B%0A%09%7D%0A%7D%29%28content.window.location%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:(function(location){ var icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzQxNEMxNjhCQkFFMzExQjBBMUQ4Qzc3OUM1QjM5QyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo0RUQ1MTc3NUJBQUYxMUUzQTcwOUY5Qzg3QkE3RDUwRSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo0RUQ1MTc3NEJBQUYxMUUzQTcwOUY5Qzg3QkE3RDUwRSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjA4NDE0QzE2OEJCQUUzMTFCMEExRDhDNzc5QzVCMzlDIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3NDE0QzE2OEJCQUUzMTFCMEExRDhDNzc5QzVCMzlDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+pwkIsgAAA5BJREFUeNq0l11IU2EYx9+zneFyynIFFUXDwmBkDNHYVaJhXVTYh4VUtIu+KIToQ/u4yoiWFBkkfVwUBHURZhRh3hSVN90oJESDunARBactE1KHm9P1f8ZzYm4785zDfODHznbec97nfd7n/T/PpGQyKQppvb29orW1VZSUlNDXleAs2AGWg5/gBbgGvtMAi5g/qwVvQQtPLvizhX+vnRcHZFmmjwpe6WqNYfT7c7BGzrwzPj4uIpGIkCTJlAOKogiLxXIRl2VzDHWB9iwH+vv7RVtbm3A4HGaDsLC4uHizzrGbshyYmZkRiURCTE9Pm5odkXMROocvlnO8gEKYwqQ5aR3AqmNsvJBJuBCcp5MIbDqf+SIXYGI7OAjOgFUGn+3KuQU6jUK8F5wDlSYcfwQeyJlKSEmow7aDC8Cncf8luA42gBNgqfruaDSq4PIOCNBPUlNTU/qDXujAlnA4XIEk/IvvH3hPo3x/I0/coDHxO3AVvE7PdLAep2qJ0+n8VVdXN4Ao//4f8crKVPRsrM8tVqvVxmqm2idwA2wFezQmHgQd4JlWyGKxmPB4PKK7u3u2chYVFdHnLXBM49l14KHGvSCH+jFIzLVvtAW05el5RkttzjO5ln0DN8H9tO0xVzvAaSNSD25zEv0pSPECVQbGnwJPClk9jSrhNhNik9p7SsKpqamcDnw08K79PP4uWKvnASpqLpdL1NTUCDpxmUInVVdXN5sM6yR4SnIKBjTGuLFyu8/nCzc2No6qSktAD1JtGzkgeEX5TkKMK9yCXItk5etiISI7Ao4CDyazI/TheDxO4nQFpf4rtEb09fWJ8vJyIdPesFxOagjRZ3aOsv4k2AccGTVhJ/OKnd2l3qRzj/ctA34SM+TDbszxXi33RqVY7feOA3rhIhMJqcCBqp6eHsXtdgsps/hQW00tGbfV+WwFOAwO8bXuEwEHLsGBdnLAoiaFioFO6Ac1lawj1AuEDASiIV2IZpmJPypU2TrBSJ6akdUL0vbTdFkOUEM6NjZmvC2y28M2m03vAsjpZM4I0NHw+/30QkMODA0NDYZCoVFke5mO4W80t8Dr9aYwaoFAIBIMBjtLS0sv6yho98zWAk0jnUcSd3BvoGUj3EcqmhEwa1A6MTExkcApOkB/sFgNPdw1R7hNC+AYppRQzRWpUH/PkQNieHhYUCKm1wJ2IAxG1VNGx72+vj6lNf8EGADGSCd20PLWBgAAAABJRU5ErkJggg=='; if (location.protocol.startsWith('http')) { var xhr = new XMLHttpRequest(); var request = { longUrl : location.toString(), key : '{YOUR_API_KEY}' } xhr.onload = function(){ var link = JSON.parse(xhr.response).id; const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"].getService(Components.interfaces.nsIClipboardHelper); gClipboardHelper.copyString(link) try { Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService) .showAlertNotification(icon, link, 'Скопирован в буфер обмена', false, "", null, ""); } catch (e) {} } xhr.open('POST', 'https://www.googleapis.com/urlshortener/v1/url', true); xhr.setRequestHeader("Content-type", "application/json"); xhr.send(JSON.stringify(request)); } })(content.window.location); |
Indomito > 09-05-2014 09:32:36 |
Удалено — Вставка символа или Запуск таблицы символов Windows (Firefox) от 10.05.2014 Left — Вставка символа из списка |
Indomito > 18-05-2014 17:42:37 |
Page Navigation(Firefox) Работает в FF29 и выше - это замена кнопки UpDownCenterPage Left/Right ― Вниз/Вверх по странице скрытый текст Код кнопки Выделить код Код: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%0A%20%20%3Cname%3EPage%20Navigation%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0A%0A//this.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u0412%u0432%u0435%u0440%u0445/%u0412%u043D%u0438%u0437%20%u043F%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%5CnDLeft%20%3D%3E%20%u0426%u0435%u043D%u0442%u0440%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%22%3B%0Athis.tooltipText%20%3D%20%0A%22Left/Right%20%20%20%20%u2015%20%20%20%u0412%u043D%u0438%u0437/%u0412%u0432%u0435%u0440%u0445%20%u043F%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%5Cn%22%20+%20%0A%22DLeft%20%20%20%20%20%20%20%20%20%20%20%20%u2015%20%20%20%u0412%20%u043D%u0430%u0447%u0430%u043B%u043E/%u043A%u043E%u043D%u0435%u0446%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%5Cn%22%20+%0A%22DRight%20%20%20%20%20%20%20%20%20%u2015%20%20%20%u0426%u0435%u043D%u0442%u0440%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%22%3B%0A%0A%0Athis.__defineGetter__%28%22scroller%22%2C%20function%28%29%20%7B%0A%20%20%20%20var%20doc%20%3D%20content.document%3B%0A%20%20%20%20var%20root%20%3D%20doc.documentElement%3B%0A%20%20%20%20var%20body%20%3D%20doc.body%20%7C%7C%20root%3B%0A%20%20%20%20return%20body.scrollHeight%20%3E%20root.scrollHeight%20%3F%20body%20%3A%20root%3B%0A%7D%29%3B%0A%0A//%u0412%u043D%u0438%u0437%20%u043F%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0Athis.leftclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20var%20scroller%20%3D%20this.scroller%3B%0A%20%20%20%20content.scrollByPages%281%29%20%20%20%0A%7D%3B%0A%0A%0A//%u0412%u0432%u0435%u0440%u0445%20%u043F%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0Athis.rightclick%20%3D%20function%28event%29%20%7B%0A%20%20var%20scroller%20%3D%20this.scroller%3B%0A%20%20if%28%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%09event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20content.scrollByPages%28-1%29%3B%0A%20%20%20%20%09%7D%0A%7D%3B%0A%0A//%u0426%u0435%u043D%u0442%u0440%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0Athis.rightDclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20var%20scroller%20%3D%20this.scroller%3B%0A%20%20%20%20content.scrollTo%280%2C%20%28scroller.scrollHeight%20-%20scroller.clientHeight%29/2%29%3B%0A%7D%3B%0A%0A//%u0412%20%u043D%u0430%u0447%u0430%u043B%u043E/%u043A%u043E%u043D%u0435%u0446%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0Athis.leftDclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20var%20scroller%20%3D%20this.scroller%3B%0A%20%20%20%20if%28scroller.scrollTop%20%3E%20%28scroller.scrollHeight%20-%20scroller.clientHeight%29/2%29%0A%09%20%20content.scrollTo%28scroller.scrollHeight%2C%20%200%29%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20content.scrollTo%280%2C%20scroller.scrollHeight%29%3B%0A%7D%3B%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27custombuttons.gQuot.mHandler%28event%2C%20this%29%27%29%3B%0Athis.setAttribute%28%27ondblclick%27%2C%20%27custombuttons.gQuot.mHandler%28event%2C%20this%29%27%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация Выделить код Код:/*Initialization code*/ //this.tooltipText = "Left => Вверх/Вниз по странице \nDLeft => Центрирование страницы"; this.tooltipText = "Left/Right ― Вниз/Вверх по странице\n" + "DLeft ― В начало/конец страницы\n" + "DRight ― Центрирование страницы"; this.__defineGetter__("scroller", function() { var doc = content.document; var root = doc.documentElement; var body = doc.body || root; return body.scrollHeight > root.scrollHeight ? body : root; }); //Вниз по странице this.leftclick = function(event) { var scroller = this.scroller; content.scrollByPages(1) }; //Вверх по странице this.rightclick = function(event) { var scroller = this.scroller; if(!event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { event.preventDefault(); event.stopPropagation(); content.scrollByPages(-1); } }; //Центрирование страницы this.rightDclick = function(event) { var scroller = this.scroller; content.scrollTo(0, (scroller.scrollHeight - scroller.clientHeight)/2); }; //В начало/конец страницы this.leftDclick = function(event) { var scroller = this.scroller; if(scroller.scrollTop > (scroller.scrollHeight - scroller.clientHeight)/2) content.scrollTo(scroller.scrollHeight, 0); else content.scrollTo(0, scroller.scrollHeight); }; this.setAttribute('onclick', 'custombuttons.gQuot.mHandler(event, this)'); this.setAttribute('ondblclick', 'custombuttons.gQuot.mHandler(event, this)'); |
Indomito > 27-05-2014 07:09:45 |
Insert special symbol(Firefox) All the versions Indomito & difabor - версия от 27.05.2014 Left Short — Вставка символа из списка Short(быстрый клик ЛКМ‖ПКМ) и Long(Удержание ЛКМ‖ПКМ) определяются значением переменной delay в ms (по умолчанию delay=600) Выделить код Код:var delay = 600, array = [], symbList, myID = _id, symbName = myID + ".symbols",mynum=0; скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%20Indomito%20%u0438%20Difabor%20-%20%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2027.05.2014%0A//%20%u0417%u0430%20%u043E%u0441%u043D%u043E%u0432%u0443%20%u0432%u0437%u044F%u0442%20%u043A%u043E%u0434%20-%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28%20Firefox%20%29%20%u043E%u0442%2011.05.2013%20%u0430%u0432%u0442%u043E%u0440%20bunda1%0A%0Avar%20delay%20%3D%20600%2C%20array%20%3D%20%5B%5D%2C%20symbList%2C%20myID%20%3D%20_id%2C%20symbName%20%3D%20myID%20+%20%22.symbols%22%2Cmynum%3D0%3B%0Avar%20symbListOrig%20%3D%20%22%A4%2C%A6%2C%A7%2C@%2C%A9%2C%AB%2C%BB%2C%AC%2C%AE%2C%B0%2C%B1%2C%B5%2C%B6%2C%u2014%2C%u2018%2C%u2019%2C%u201C%2C%u201D%2C%u2022%2C%u2030%2C%u2039%2C%u203A%2C%u2122%22%3B%20%0A%0Athis.onmousedown%20%3D%20function%28event%29%20%7Bthis._mouseDownTime%20%3D%20Date.now%28%29%3B%7D%3B%0A%20%20%20%20//if%28e.button%20%21%3D%200%29%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20//if%28event.button%20%3D%3D%202%29%20%20this._mouseDownTime%20%3D%20Date.now%28%29%3B%0A//%7D%3B%0A%0Athis.tooltipText%20%3D%20%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043F%u0435%u0446%u0438%u0430%u043B%u044C%u043D%u044B%u0439%20%u0441%u0438%u043C%u0432%u043E%u043B%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22%20+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%20%5Cn%22%20+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Middle%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22%20+%0A%22Right%20Long%20%20%u2014%20%20%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%20%22%3B%0A%0A/*%0Athis.tooltipText%20%3D%20%0A%22Left%20Short%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%3D%3E%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%5Cn%22%20+%20%0A%22Left%20Long%20Or%20Left+Shift%20%20%20%20%20%20%20%3D%3E%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Middle%20Or%20Left+Ctrl%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22%28Middle%20Or%20Left+Ctrl%29+Shift%20%3D%3E%20%u041C%u0435%u0440%u044F%u0442%u044C%20%u0434%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%20%u043A%u043B%u0438%u043A%u0430%5Cn%22%20+%0A%22Right%20Short%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%3D%3E%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22%20+%20%0A%22Right%20Long%20Or%20Right+Shift%20%3D%3E%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%20%22%3B%0A*/%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20symbList%20%3D%20%28custombuttons.isPref%28symbName%29%29%3F%20unescape%28custombuttons.getPrefs%28symbName%29%29%3A%20symbListOrig%3B%0A%20%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%7B%0A%20%20%20%20%20%20array%20%3D%20symbList.split%28%22%2C%22%29%3B%0A%20%20%20%20%20%20var%20node%20%3D%20document.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A%20%20%20%20%20%20if%20%28%20node%20%26%26%20node.parentNode%20%29%20node.parentNode.removeChild%28node%29%3B%20//%20%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%0A%0A%20%20%20%20%20%20var%20menuPopup%20%3D%20document.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20menuPopup.id%20%3D%20this.id%20+%20%22-menuPopup%22%3B%0A%0A%20%20%20%20%20%20array.forEach%28function%28symbol%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20var%20menuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2C%20symbol%20%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.style.fontSize%20%3D%20%2212px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2C%20insertText%2C%20false%29%3B%20%0A%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%7D%20%20%0A%20%20%20%20else%20if%28event.button%20%3D%3D%200%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3D%20delay%29%7C%7C%28%21event.ctrlKey%20%26%26%20event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%29%20%7B%0A%20%20%20%20%20%20var%20a%3Dprompt%28%22%u0420%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u0441%u0442%u0440%u043E%u043A%u0443%2C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u044F%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%u043B%u0438%20%u0433%u0440%u0443%u043F%u043F%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u0437%u0430%u043F%u044F%u0442%u0443%u044E%3A%22%2CsymbList%29%3B%0A%20%20%20%20%20%20if%20%28a%29%20custombuttons.setPrefs%28symbName%2Cescape%28a%29%29%3B%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%28event.button%20%3D%3D%201%20%7C%7C%20%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%29%29%20%26%26%20%28%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20//mbMouse%28%29%3B%0A%20%20%20%20%20%20%20%20custombuttons.clearPrefs%28symbName%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%28event.button%20%3D%3D%201%20%7C%7C%20%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%29%29%20%26%26%20%28event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%20%7B%0A%20%20%20%20%20alert%28%22%u0414%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%3A%20%22+%28Date.now%28%29%20-%20this._mouseDownTime%29+%20%22%u043C%u0441%20%22%20+%20mynum%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20//if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%20%20%20%20startProcess%28%22C%3A%5C%5CWindows%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Afunction%20startProcess%28path%2C%20args%29%20%7B%0A%20%20%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%20%7B%0A%20%20%20%20%20%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%20%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2C%20path%29%3B%20%0A%7D%3B%0A%0A//this.type%20%3D%20%22menu%22%3B%20%0A%0A//%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20............%0Afunction%20insertText%28%29%20%7B%20%0A%20%20%20var%20text%20%3D%20this.label%3B%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20if%20%28%20controller%20%26%26%20controller.isCommandEnabled%28cmd%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Инициализация: Выделить код Код:/*Initialization Code*/ // Indomito и Difabor - версия от 27.05.2014 // За основу взят код - Вставка символа в текстовое поле( Firefox ) от 11.05.2013 автор bunda1 var delay = 600, array = [], symbList, myID = _id, symbName = myID + ".symbols",mynum=0; var symbListOrig = "¤,¦,§,@,©,«,»,¬,®,°,±,µ,¶,—,‘,’,“,”,•,‰,‹,›,™"; this.onmousedown = function(event) {this._mouseDownTime = Date.now();}; //if(e.button != 0) return; //if(event.button == 2) this._mouseDownTime = Date.now(); //}; this.tooltipText = " Вставить специальный символ\n—————————————————————————\n" + "Left — Вставка символа из списка \n" + "Left Long — Редактирование списка символов\n" + "Middle — Возврат к исходному списку символов\n" + "Right — Запуск таблицы символов Windows\n" + "Right Long — Стандартное Меню Кнопки "; /* this.tooltipText = "Left Short => Вставка символа из списка\n" + "Left Long Or Left+Shift => Редактирование списка символов\n" + "Middle Or Left+Ctrl => Возврат к исходному списку символов\n" + "(Middle Or Left+Ctrl)+Shift => Мерять длительность клика\n" + "Right Short => Запуск таблицы символов Windows\n" + "Right Long Or Right+Shift => Стандартное Меню Кнопки "; */ this.onclick = function(event) { symbList = (custombuttons.isPref(symbName))? unescape(custombuttons.getPrefs(symbName)): symbListOrig; if(event.button == 0 && ((Date.now() - this._mouseDownTime) < delay) && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey){ array = symbList.split(","); var node = document.getElementById(this.id + "-menuPopup"); if ( node && node.parentNode ) node.parentNode.removeChild(node); // блокировать дублирование меню var menuPopup = document.getElementById("mainPopupSet").appendChild(document.createElement("menupopup")); menuPopup.id = this.id + "-menuPopup"; array.forEach(function(symbol) { var menuItem = document.createElement("menuitem"); menuItem.setAttribute("label", symbol ); menuItem.style.fontSize = "12px"; // размер шрифта menuItem.addEventListener("command", insertText, false); menuPopup.appendChild(menuItem); }); menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); } else if(event.button == 0 && (((Date.now() - this._mouseDownTime) >= delay)||(!event.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey))) { var a=prompt("Рредактировать эту строку, вставляя символы или группы символов через запятую:",symbList); if (a) custombuttons.setPrefs(symbName,escape(a)); } else if ((event.button == 1 || (event.button == 0 && event.ctrlKey )) && (!event.shiftKey && !event.altKey && !event.metaKey)) { // Действие при клике СКМ //mbMouse(); custombuttons.clearPrefs(symbName); } else if ((event.button == 1 || (event.button == 0 && event.ctrlKey )) && (event.shiftKey && !event.altKey && !event.metaKey)) { alert("Длительность: "+(Date.now() - this._mouseDownTime)+ "мс " + mynum); } else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey && ((Date.now() - this._mouseDownTime) < delay)) { // Действие при клике ПКМ без модификаторов //if ((Date.now() - this._mouseDownTime) < delay) startProcess("C:\\Windows\\system32\\charmap.exe",[]); startProcess("C:\\Windows\\system32\\charmap.exe",[]); } }; this.oncontextmenu = function(event) { if(event.button == 2 && ((Date.now() - this._mouseDownTime) < delay) && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) { // Блокируем контекстное меню при клике ПКМ без модификаторов event.preventDefault(); event.stopPropagation(); } }; function startProcess(path, args) { var file = Components.classes["@mozilla.org/file/local;1"] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath(path); if(file.exists()) { var process = Components.classes["@mozilla.org/process/util;1"] .createInstance(Components.interfaces.nsIProcess); process.init(file); process.run(false, args, args.length); } else custombuttons. alertBox ("Файл не найден", path); }; //this.type = "menu"; // Вставить текст в текстовое поле ............ function insertText() { var text = this.label; var cmd = "cmd_insertText"; var controller = document.commandDispatcher.getControllerForCommand(cmd); if ( controller && controller.isCommandEnabled(cmd) ) { var controller = controller.QueryInterface(Components.interfaces.nsICommandController); var params = Components.classes["@mozilla.org/embedcomp/command-params;1"].createInstance(Components.interfaces.nsICommandParams); params.setStringValue("state_data", text); controller.doCommandWithParams(cmd, params); } }; |
Indomito > 11-06-2014 12:07:11 |
HideShowTunePanels(Firefox) All the versions Left ― Панель дополнений Что бы всё корректно работало надо настроить ID-панелей скрытый текст Выделить код Код://----------Описание индификаторов панелей------------ /* Что найти ID-панели истользуйте готовую кнопку Attributes Inspector Автор Infocatcher https://github.com/Infocatcher/Custom_Buttons/tree/master/Attributes_Inspector */ //ID панелей связаных с действиями кликов мыши для корректной работы функции - HideShowPanel(ptId) var idLeft = "GiT-addon-bar"; //ID для Left var idDLeft = "status4evar-status-bar"; //ID для DLeft //ID для Left Long - описание не требуется, без явной замены на другую функцию var idRight = "toolbar-menubar"; //ID для Right - описание не требуется, без явной замены на другую функцию var idDRight = "vertical-toolbar"; //ID для DRight //ID для Right Long - описание не требуется, без явной замены на другую функцию //---------------------------------------------------- Две переменные для настройки под себя Выделить код Код:var delayLeft = 800; // Задержка для Long Left var delayRight = 1200; // Задержка для Long Right скрытый текст Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EHideShowTunePanels%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0A%0A//Indomito%20-%20%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2011.06.2014%0A%0A//----------%u041E%u043F%u0438%u0441%u0430%u043D%u0438%u0435%20%u0438%u043D%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%20%u043F%u0430%u043D%u0435%u043B%u0435%u0439------------%0A/*%0A%u0427%u0442%u043E%20%u043D%u0430%u0439%u0442%u0438%20ID-%u043F%u0430%u043D%u0435%u043B%u0438%20%u0438%u0441%u0442%u043E%u043B%u044C%u0437%u0443%u0439%u0442%u0435%20%u0433%u043E%u0442%u043E%u0432%u0443%u044E%20%u043A%u043D%u043E%u043F%u043A%u0443%20Attributes%20Inspector%0A%u0410%u0432%u0442%u043E%u0440%20Infocatcher%0Ahttps%3A//github.com/Infocatcher/Custom_Buttons/tree/master/Attributes_Inspector%0A*/%0A%0A//ID%20%u043F%u0430%u043D%u0435%u043B%u0435%u0439%20%u0441%u0432%u044F%u0437%u0430%u043D%u044B%u0445%20%u0441%20%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u044F%u043C%u0438%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043E%u0440%u0440%u0435%u043A%u0442%u043D%u043E%u0439%20%u0440%u0430%u0431%u043E%u0442%u044B%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20-%20HideShowPanel%28ptId%29%0Avar%20idLeft%20%3D%20%22GiT-addon-bar%22%3B%20//ID%20%u0434%u043B%u044F%20Left%0Avar%20idDLeft%20%3D%20%22status4evar-status-bar%22%3B%20//ID%20%u0434%u043B%u044F%20DLeft%0A//ID%20%u0434%u043B%u044F%20Left%20Long%20-%20%u043E%u043F%u0438%u0441%u0430%u043D%u0438%u0435%20%u043D%u0435%20%u0442%u0440%u0435%u0431%u0443%u0435%u0442%u0441%u044F%2C%20%u0431%u0435%u0437%20%u044F%u0432%u043D%u043E%u0439%20%u0437%u0430%u043C%u0435%u043D%u044B%20%u043D%u0430%20%u0434%u0440%u0443%u0433%u0443%u044E%20%u0444%u0443%u043D%u043A%u0446%u0438%u044E%0Avar%20idRight%20%3D%20%22toolbar-menubar%22%3B%20//ID%20%u0434%u043B%u044F%20Right%20-%20%u043E%u043F%u0438%u0441%u0430%u043D%u0438%u0435%20%u043D%u0435%20%u0442%u0440%u0435%u0431%u0443%u0435%u0442%u0441%u044F%2C%20%u0431%u0435%u0437%20%u044F%u0432%u043D%u043E%u0439%20%u0437%u0430%u043C%u0435%u043D%u044B%20%u043D%u0430%20%u0434%u0440%u0443%u0433%u0443%u044E%20%u0444%u0443%u043D%u043A%u0446%u0438%u044E%0Avar%20idDRight%20%3D%20%22vertical-toolbar%22%3B%20//ID%20%u0434%u043B%u044F%20DRight%0A//ID%20%u0434%u043B%u044F%20Right%20Long%20-%20%u043E%u043F%u0438%u0441%u0430%u043D%u0438%u0435%20%u043D%u0435%20%u0442%u0440%u0435%u0431%u0443%u0435%u0442%u0441%u044F%2C%20%u0431%u0435%u0437%20%u044F%u0432%u043D%u043E%u0439%20%u0437%u0430%u043C%u0435%u043D%u044B%20%u043D%u0430%20%u0434%u0440%u0443%u0433%u0443%u044E%20%u0444%u0443%u043D%u043A%u0446%u0438%u044E%0A%0A//----------------------------------------------------%0A%0Avar%20delayLeft%20%3D%20800%3B%20//%20%u0417%u0430%u0434%u0435%u0440%u0436%u043A%u0430%20%u0434%u043B%u044F%20Long%20Left%0Avar%20delayRight%20%3D%201200%3B%20//%20%u0417%u0430%u0434%u0435%u0440%u0436%u043A%u0430%20%u0434%u043B%u044F%20Long%20Right%0Athis.onmousedown%20%3D%20function%28event%29%20%7Bthis._mouseDownTime%20%3D%20Date.now%28%29%3B%7D%3B%0A%0Athis.tooltipText%20%3D%20%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C/%u0421%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u0438%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2015%20%20%u041F%u0430%u043D%u0435%u043B%u044C%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%5Cn%22%20+%0A%22DLeft%20%20%20%20%20%20%20%20%20%20%20%20%u2015%20%20%u041F%u0430%u043D%u0435%u043B%u044C%20Status%20Bar%5Cn%22%20+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%u0412%u0445%u043E%u0434%20%u0432%20%5C%22%u041D%u0430%u0441%u0442%u0440%u043E%u0438%u0442%u044C...%5C%22%5Cn%22%20+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%20%u2015%20%20%u041F%u0430%u043D%u0435%u043B%u044C%20%u043C%u0435%u043D%u044E%20%28%u043F%u0430%u043F%u043A%u0438%29%5Cn%22%20+%0A%22DRight%20%20%20%20%20%20%20%20%20%20%u2015%20%20%u0412%u0435%u0440%u0442%u0438%u043A%u0430%u043B%u044C%u043D%u0430%u044F%20%u043F%u0430%u043D%u0435%u043B%u044C%5Cn%22%20+%0A%22Right%20Long%20%20%20%u2014%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%22%3B%0A%0A//%u041F%u0430%u043D%u0435%u043B%u044C%20%u0434%u043E%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0439%0Athis.leftclick%20%3D%20function%28event%29%20%7B%0A%20%20%09if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%20delayLeft%29%0A%09%09BrowserCustomizeToolbar%28%29%3B%20//%u0412%u0445%u043E%u0434%20%u0432%20%22%u041D%u0430%u0441%u0442%u0440%u043E%u0438%u0442%u044C...%22%0A%09%0A%09else%20%0A%09%20%20HideShowPanel%28idLeft%29%3B%20//%u0410%u043B%u044C%u0442%u0435%u0440%u043D%u0430%u0442%u0438%u0432%u043D%u0430%u044F%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u0441%u043D%u0438%u0437%u0443%20%28%u043D%u043E%u0440%u043C%u0430%u043B%u044C%u043D%u044B%u0435%20%u0437%u043D%u0430%u0447%u043A%u0438%29%0A%7D%3B%0A%0A//%u041F%u0430%u043D%u0435%u043B%u044C%20%u043C%u0435%u043D%u044E%20%28%u043F%u0430%u043F%u043A%u0438%29%0Athis.leftDclick%20%3D%20function%28event%29%20%7B%0A%09HideShowPanel%28idDLeft%29%3B%0A%7D%3B%0A%0A%0A//%u041F%u0430%u043D%u0435%u043B%u044C%20%u043C%u0435%u043D%u044E%20%28%u043F%u0430%u043F%u043A%u0438%29%0Athis.rightclick%20%3D%20function%28event%29%20%7B%0A%20%20if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%20delayRight%29%20//%u0420%u0435%u0434%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%0A%20%20%20%20%20%20%20gShowPopup%28this%29%3B%0A%20%20%0A%20%20else%20if%28%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%20%29%20%7B%0A%09event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20HideShowPanel%28idRight%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%09%7D%0A%7D%3B%0A%0A//%u0412%u0435%u0440%u0442%u0438%u043A%u0430%u043B%u044C%u043D%u0430%u044F%20%u043F%u0430%u043D%u0435%u043B%u044C%0Athis.rightDclick%20%3D%20function%28event%29%20%7B%0A%09HideShowPanel%28idDRight%29%3B%0A%7D%3B%0A%0Afunction%20HideShowPanel%28ptId%29%7B%0A%09var%20pt%20%3D%20document.getElementById%28ptId%29%3B%0A%09var%20pt_hideAttr%20%3D%20pt.getAttribute%28%22type%22%29%20%3D%3D%20%22menubar%22%20%3F%20%22autohide%22%20%3A%20%22collapsed%22%3B%0A%09pt.setAttribute%28pt_hideAttr%2C%20pt.getAttribute%28pt_hideAttr%29%20%21%3D%20%22true%22%29%3B%0A%09document.persist%28ptId%2C%20pt_hideAttr%29%3B%0A%7D%3B%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27custombuttons.gQuot.mHandler%28event%2C%20this%29%27%29%3B%0Athis.setAttribute%28%27ondblclick%27%2C%20%27custombuttons.gQuot.mHandler%28event%2C%20this%29%27%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Инициализация: Выделить код Код:/*Initialization code*/ //Indomito - версия от 11.06.2014 //----------Описание индификаторов панелей------------ /* Что найти ID-панели истользуйте готовую кнопку Attributes Inspector Автор Infocatcher https://github.com/Infocatcher/Custom_Buttons/tree/master/Attributes_Inspector */ //ID панелей связаных с действиями кликов мыши для корректной работы функции - HideShowPanel(ptId) var idLeft = "GiT-addon-bar"; //ID для Left var idDLeft = "status4evar-status-bar"; //ID для DLeft //ID для Left Long - описание не требуется, без явной замены на другую функцию var idRight = "toolbar-menubar"; //ID для Right - описание не требуется, без явной замены на другую функцию var idDRight = "vertical-toolbar"; //ID для DRight //ID для Right Long - описание не требуется, без явной замены на другую функцию //---------------------------------------------------- var delayLeft = 800; // Задержка для Long Left var delayRight = 1200; // Задержка для Long Right this.onmousedown = function(event) {this._mouseDownTime = Date.now();}; this.tooltipText = " Показать/Скрыть панели\n——————————————————————\n"+ "Left ― Панель дополнений\n" + "DLeft ― Панель Status Bar\n" + "Left Long — Вход в \"Настроить...\"\n" + "Right ― Панель меню (папки)\n" + "DRight ― Вертикальная панель\n" + "Right Long — Редактировать кнопку"; //Панель дополнений this.leftclick = function(event) { if ((Date.now() - this._mouseDownTime) > delayLeft) BrowserCustomizeToolbar(); //Вход в "Настроить..." else HideShowPanel(idLeft); //Альтернативная панель снизу (нормальные значки) }; //Панель меню (папки) this.leftDclick = function(event) { HideShowPanel(idDLeft); }; //Панель меню (папки) this.rightclick = function(event) { if ((Date.now() - this._mouseDownTime) > delayRight) //Редктирование кнопки gShowPopup(this); else if(!event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey ) { event.preventDefault(); event.stopPropagation(); HideShowPanel(idRight); } }; //Вертикальная панель this.rightDclick = function(event) { HideShowPanel(idDRight); }; function HideShowPanel(ptId){ var pt = document.getElementById(ptId); var pt_hideAttr = pt.getAttribute("type") == "menubar" ? "autohide" : "collapsed"; pt.setAttribute(pt_hideAttr, pt.getAttribute(pt_hideAttr) != "true"); document.persist(ptId, pt_hideAttr); }; this.setAttribute('onclick', 'custombuttons.gQuot.mHandler(event, this)'); this.setAttribute('ondblclick', 'custombuttons.gQuot.mHandler(event, this)'); P.S. Надоело нажимать на панель... кнопка написана из за лени, как и всё в этом мире |
bunda1 > 03-12-2015 20:36:54 |
Ночной режим( Firefox 24+ ) от 11.06.16. ЛКМ => Переключить черный фон страниц. Код кнопки и инициализации и справки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041D%u043E%u0447%u043D%u043E%u0439%20%u0440%u0435%u0436%u0438%u043C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDtAACsQX/+rEF//qxBf/6sQX/+rEF//qxBf/6sQX/+rEF//qxBf/6sQX/+rEF//qxBf/6sQX/+rEF//qxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041B%u041A%u041C%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20%u0441%u0442%u0438%u043B%u044C%20..........%0Athis._handleClick%20%3D%28%29%3D%3E%20setStyleForPages%28%20void%28custombuttons.setPrefs%28s%2C%20%21custombuttons.getPrefs%28s%29%29%29%20%29%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0432%20about%3Aconfig%20%u0435%u0441%u043B%u0438%20%u043E%u043D%u0438%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%20%u0438%20%u043F%u043E%u043B%u0443%u0447%u0442%u044C%20..........%0Avar%20s%20%3D%20%22CB.%22%20+%20_id.slice%2820%29%20+%20%22.setStyleForPage%22%3B%0Acustombuttons.isPref%28s%2C%20false%29%3B%0A%20%20%20%20%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20var%20%5Bimg%5D%20%3D%20document.getAnonymousNodes%28self%29%3B%0A%20%20%20img.style.backgroundColor%20%3D%20custombuttons.getPrefs%28s%29%20%3F%20%22%23131d24%22%20%3A%20%22%23ffeeaa%22%3B%20%20%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20..........%0Afunction%20setStyleForPages%28reason%29%20%7B%0A%20%20%20if%20%28%20reason%20%3D%3D%20%22destructor%22%20%29%20return%3B%20%0A%0A%20%20%20var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%20%0A%20%20%20var%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28self.Help%29%29%3B%20%0A%20%20%20%0A%20%20%20try%20%7B%20sss.unregisterSheet%28Services%5B_id%20+%20%22previousUri%22%5D%20%7C%7C%20uri%2C%200%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20Services%5B_id%20+%20%22-previousUri%22%5D%20%3D%20uri%3B%0A%20%20%20%0A%20%20%20custombuttons.getPrefs%28s%29%20%26%26%20%21reason%20%26%26%20sss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%7D%3B%0AaddDestructor%28setStyleForPages%29%3B%0Acustombuttons.getPrefs%28s%29%20%26%26%20setStyleForPages%28%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%20%0Athis.tooltipText%20%3D%20self.label%20+%20%22%5Cn%u041B%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0447%u0435%u0440%u043D%u044B%u0439%20%u0444%u043E%u043D%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B@-moz-document%20url-prefix%28http%3A//%29%2C%20url-prefix%28https%3A//%29%2C%20url-prefix%28ftp%3A//%29%2C%20url-prefix%28file%3A//%29%2C%20url%28about%3Ablank%29%2C%20url-prefix%28%22about%3Aneterror%22%29%7B%0A%0A/*%20Firefox%20Scrollbars%20*/%0Ascrollbar%20%7Bopacity%3A%20.75%20%21important%3B%7D%0A%0A/*%20Base%20*/%0A*%2C%20%3A%3Abefore%2C%20%3A%3Aafter%20%7B%0A%20%20color%3A%20%23CCC%20%21important%3B%20%0A%20%20border-color%3A%20%23444%20%21important%3B%0A%20%20outline-color%3A%20%23444%20%21important%3B%0A%20%20text-shadow%3A%20none%20%21important%3B%0A%20%20box-shadow%3A%20none%20%21important%3B%0A%20%20box-shadow%3A%20none%20%21important%3B%0A%20%20background-color%3A%20transparent%20%21important%3B%0A%7D%0A%0Ahtml%20*%20%7B%0A%20%20color%3A%20%23CCC%20%21important%3B%0A%7D%0A%0Ap%3A%3Afirst-letter%2C%0Ah1%3A%3Afirst-letter%2C%0Ah2%3A%3Afirst-letter%2C%0Ap%3A%3Afirst-line%20%7B%0A%20%20color%3A%20inherit%20%21important%3B%20%0A%20%20background%3A%20none%20%21important%3B%0A%7D%0A%0A/*%20%3A%3A%20Give%20solid%20BG%20%3A%3A%20*/%0A/*%20element%20*/%0Ahtml%2Cbody%2C%0Ali%20ul%2C%20ul%20li%2C%0Atable%2C%20header%2C%0Aarticle%2C%20section%2C%0Anav%2C%20menu%2C%0Aaside%2C%0A%0A/*%20common%20*/%0A%5Bclass*%3D%22nav%22%5D%2C%0A%5Bclass*%3D%22open%22%5D%2C%0A%5Bid*%3D%22ropdown%22%5D%2C%20/*dropdown*/%0A%5Bclass*%3D%22ropdown%22%5D%2C%20%0Adiv%5Bclass*%3D%22menu%22%5D%2C%0A%5Bclass*%3D%22tooltip%22%5D%2C%0Adiv%5Bclass*%3D%22popup%22%5D%2C%20%0Adiv%5Bid*%3D%22popup%22%5D%2C%0A%0A/*%20Notes%2C%20details%2C%20etc.%20%20Maybe%20useful%20*/%0Adiv%5Bclass*%3D%22note%22%5D%2C%20span%5Bclass*%3D%22note%22%5D%2C%0Adiv%5Bid*%3D%22detail%22%5D%2Cdiv%5Bclass*%3D%22detail%22%5D%2C%0Adiv%5Bclass*%3D%22description%22%5D%2C%0A%0A/*%20Also%20common%20*/%0Adiv%5Bclass*%3D%22content%22%5D%2C%20div%5Bclass*%3D%22container%22%5D%2C%0A%0A/*%20Popup%20divs%20that%20use%20visibility%3A%20hidden%20and%20display%3A%20none%20*/%0Adiv%5Bstyle*%3D%22display%3A%20block%22%5D%2C%20%0Adiv%5Bstyle*%3D%22visibility%3A%20visible%22%5D%20%7B%0A%20%20background-color%3A%20%231a1a1a%20%21important%3B%0A%7D%0A%0A/*%3A%20No%20BG%20%3A*/%0A*%3Anot%28%3Aempty%29%3Anot%28span%29%3Anot%28%5Bclass%3D%22html5-volume-slider%20html5-draggable%22%5D%29%3Anot%28%5Bclass%3D%22html5-player-chrome%20html5-stop-propagation%22%5D%29%2C%20*%3A%3Abefore%2C%20*%3A%3Aafter%2C%0Atd%3Aempty%2C%20p%3Aempty%2C%20div%3Aempty%3Anot%28%5Brole%5D%29%3Anot%28%5Bstyle*%3D%22flashblock%22%5D%29%3Anot%28%5Bclass%5E%3D%22html5%22%5D%29%3Anot%28%5Bclass*%3D%22noscriptPlaceholder%22%5D%29%20%7B%0A%20%20background-image%3A%20none%20%21important%3B%0A%7D%0A%0A/*%3A%20Filter%20non-icons%20%3A*/%0Aspan%3Anot%28%3Aempty%29%3Anot%28%5Bclass*%3D%22icon%22%5D%29%3Anot%28%5Bid*%3D%22icon%22%5D%29%3Anot%28%5Bclass*%3D%22star%22%5D%29%3Anot%28%5Bid*%3D%22star%22%5D%29%3Anot%28%5Bid*%3D%22rating%22%5D%29%3Anot%28%5Bclass*%3D%22rating%22%5D%29%3Anot%28%5Bclass*%3D%22prite%22%5D%29%20%7B%0A%20%20background-image%3A%20none%20%21important%3B%0A%20%20text-indent%3A%200%20%21important%3B%0A%7D%0A%0A/*%3A%20Image%20opacity%20%3A*/%0Aimg%3Anot%28%5Bid%3D%22mpiv-preview%22%5D%29%2C%20svg%20%7B%20opacity%3A%20.75%20%21important%3B%20%7D%0Aimg%3Ahover%2C%20svg%3Ahover%20%7B%20opacity%3A%201%20%21important%3B%20%7D%0A%0A/*%20Highlight%20*/%0A%3A%3A-moz-selection%20%7B%0A%20%20background-color%3A%20%23626F61%20%21important%3B%0A%20%20color%3A%20%23F6F7B9%20%21important%3B%0A%7D%0A%0A/*%20%3A%3A%3A%20anchor/links%20%3A%3A%3A%20*/%0Aa%20%7B%0A%20%20color%3A%20%2371BAA5%20%21important%3B%20%0A%20%20background-color%3A%20%231a1a1a%20%21important%3B%0A%20%20opacity%3A%201%20%21important%3B%20%0A%20%20text-indent%3A%200%20%21important%3B%0A%7D%0A%0Aa%3Alink%20%7B%20color%3A%20%23ACC7F6%20%21important%3B%20%7D%20/*%20hyperlink%20*/%0Aa%3Avisited%20%7B%20color%3A%20%23CDB4E7%20%21important%3B%20%7D%0Aa%3Ahover%20%7B%20color%3A%20%23FFE900%20%21important%3B%20background-color%3A%20%23363037%20%21important%3B%20%7D%0Aa%3Aactive%20%7B%20color%3A%20%23FFAE00%20%21important%3B%20%7D%0A%0A/*%20%22Top%20level%22%20div%20*/%0Abody%20%3E%20div%20%7B%20background-color%3A%20inherit%20%21important%3B%20%7D%0A%0A/*%20%3A%3A%3A%3A%3A%3A%20Text%20Presentation%20%3A%3A%3A%3A%3A%3A%20*/%0Asummary%2C%20details%20%7B%20background-color%3A%20inherit%20%21important%3B%20%7D%0Akbd%2C%20time%2C%20label%2C%20.date%20%7B%20color%3A%20%23B6D2AC%20%21important%3B%20%7D%0Aacronym%2C%20abbr%20%7B%20border-bottom%3A%201px%20dotted%20%21important%3B%20cursor%3A%20help%20%21important%3B%20%7D%0Amark%2Ccode%2Cpre%2Csamp%2Cblockquote%20%7B%20background-color%3A%20%23282826%20%21important%20%7D%0A%0A/*%20%3A%3A%3A%3A%3A%3A%20Headings%20%3A%3A%3A%3A%3A%3A%20*/%0Ah1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%20%20%7B%20%0A%20%20background-image%3A%20none%20%21important%3B%0A%20%20border-radius%3A%205px%20%21important%3B%0A%20%20text-indent%3A%200%20%21important%3B%0A%7D%0A%0Ah1%2Ch2%20%7B%20background-color%3A%20%2328313E%20%21important%3B%20%7D%0Ah3%2Ch4%20%7B%20background-color%3A%20%232A3731%20%21important%3B%20%7D%0Ah5%2Ch6%20%7B%20background-color%3A%20%23372A2A%20%21important%3B%20%7D%0A%0A/*%20%3A%3A%3A%3A%3A%3A%20Tables%2C%20cells%20%3A%3A%3A%3A%3A%3A%20*/%0Atable%20table%20%7B%20background%3A%20%23212121%20%21important%3B%20%7D%0Ath%2C%20caption%20%7B%20background%3A%20%23313131%20%21important%3B%20%7D%0A%0A/*%20%3A%3A%3A%20Inputs%2C%20textareas%20%3A%3A%3A%20*/%0Ainput%2C%20textarea%2C%20button%2C%0Aselect%2C%20option%2C%20optgroup%20%7B%0A%20%20color%3A%20%23DDD%20%21important%3B%0A%20%20background%3A%20none%20%23404046%20%21important%3B%0A%20%20-moz-appearance%3A%20none%20%21important%3B%20%0A%7D%0A%0Ainput%2C%0Atextarea%2C%20%0Abutton%20%7B%0A%20%20border-color%3A%20%23000%20%21important%3B%20%0A%20%20border-width%3A%201px%20%21important%3B%0A%7D%0A%0A/*%20%3A%3A%3A%3A%3A%3A%20Button%20styling%20%3A%3A%3A%3A%3A%3A%20*/%0Ainput%5Btype%3D%22button%22%5D%2C%0Ainput%5Btype%3D%22submit%22%5D%2C%0Ainput%5Btype%3D%22reset%22%5D%2C%0Abutton%20%7B%0A%20%20background%3A%20%23343855%20%21important%3B%0A%7D%0A%0Ainput%5Btype%3D%22button%22%5D%3Ahover%2C%0Ainput%5Btype%3D%22submit%22%5D%3Ahover%2C%0Ainput%5Btype%3D%22reset%22%5D%3Ahover%2C%0Abutton%3Ahover%20%7B%0A%20%20color%3A%20%23FFF%20%21important%3B%0A%20%20background%3A%20%23435B6B%20%21important%3B%0A%7D%0A%0Ainput%5Btype%3D%22image%22%5D%20%7B%20opacity%3A%20.85%20%21important%3B%20%7D%0Ainput%5Btype%3D%22image%22%5D%3Ahover%20%7B%20opacity%3A%20.95%20%21important%3B%20%7D%0A%0A/*%20Lightbox%20fix%20*/%0Ahtml%20%5Bid*%3D%22lightbox%22%5D%20*%20%7B%20background-color%3A%20transparent%20%21important%3B%20%7D%0Ahtml%20%5Bid*%3D%22lightbox%22%5D%20img%20%7B%20opacity%3A%201%20%21important%3B%20%7D%0A%0A/*%20Youtube%20Annotation%20*/%0A%23movie_player-html5%20.annotation%20%7B%20background%3A%20%23333%20%21important%3B%20%7D%0A%0A/*%20Mozilla%20addons%20shrink/expand%20sections%20*/%0A.expando%20a%20%7B%20background%3A%20none%20transparent%20%21important%3B%20%7D%0A%7D%0A%0A@-moz-document%20url%28about%3Anewtab%29%20%7B%0Awindow%20%7B%0A%20%20background%3A%20%231a1a1a%20%21important%3B%0A%7D%0A%0A%23newtab-scrollbox%20%7B%0A%20%20background%3A%20transparent%20none%20%21important%3B%0A%7D%0A%0A.newtab-title%20%7B%0A%20%20background-color%3A%20rgba%280%2C0%2C0%2C.75%29%20%21important%3B%20%0A%20%20color%3A%20%23eee%20%21important%3B%0A%7D%0A%7D%0A%0A@-moz-document%20url%28chrome%3A//browser/content/browser.xul%29%20%7B%0A/*%20Browser%20Background%20*/%0Abrowser%5Btype%3D%22content-primary%22%5D%20%7B%0A%20%20background-color%3A%20%231a1a1a%20%21important%3B%0A%7D%20%0A%7D%0A%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// ЛКМ переключить настройки кнопки и стиль .......... this._handleClick =()=> setStyleForPages( void(custombuttons.setPrefs(s, !custombuttons.getPrefs(s))) ); // Создать настройки кнопки в about:config если они не существует и получть .......... var s = "CB." + _id.slice(20) + ".setStyleForPage"; custombuttons.isPref(s, false); // Установить нужную иконку кнопки при старте браузера или при изменениях настроек кнопки .......... function toggleImage() { var [img] = document.getAnonymousNodes(self); img.style.backgroundColor = custombuttons.getPrefs(s) ? "#131d24" : "#ffeeaa"; }; toggleImage(); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage) ); // Переключить css стиль для страницы .......... function setStyleForPages(reason) { if ( reason == "destructor" ) return; var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var uri = makeURI("data:text/css," + encodeURIComponent(self.getAttribute("Help"))); try { sss.unregisterSheet(Services[_id + "previousUri"] || uri, 0) } catch(e) {}; Services[_id + "-previousUri"] = uri; custombuttons.getPrefs(s) && !reason && sss.loadAndRegisterSheet(uri, 0); }; addDestructor(setStyleForPages); custombuttons.getPrefs(s) && setStyleForPages(); // Подсказка для кнопки .......... this.tooltipText = self.label + "\nЛ: Переключить черный фон страниц"; |
bunda1 > 03-12-2015 22:18:22 |
Остановить - Перезагрузить( Firefox24+ ) от 17.01.2015. ЛКМ => Остановить - Перезагрузить, Код кнопки для FF24-54: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20-%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAABFklEQVQ4jdWToW7DQBBEI4WUBJbnC8rLAssjc9OAssqZzWx9Q/0J+QHTULOQfEBwsLFRUEkK6ki2ZTsuqjrSktPuu73ZvdnsXypJkkX3LIqiuTFkD4uxUwyGI6gvc91AXY0q4HqLomgOKgdVjd5uVGGu21DAda7hwyDzcGgUXODS1tONMWSgqhZwCASm60ZSHsd6anoCKp8ICkdz3YwqH0EegHT9AbWncX9WN4wq+02ub9p6uhk0cYqGOvq17mMHVb2bPfflJEmy6FvQdkeuVcPMUxcGaGkMGVyCazUOY9g3pnIFlRtDZh4OcF2MKsCwN/t8HQXd/1DvRlMVXGcwXY9CmvrY6QUM+7qL0lwnY8gALSdD/lTfBU/9GCESstoAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u0438%20%u0434%u043B%u0438%u043D%u043D%u044B%u0445%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmousedown%20%3De%3D%3E%20%7B%0A%20%20%20%20self.onclick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%2C%20clearTimeout%28self.timer%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%21e.button%20%26%26%20stopButt.disabled%20%3F%20BrowserReload%28%29%20%3A%20BrowserStop%28%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20self.timer%20%3D%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20if%20%28%21e.button%29%20for%20%28var%20br%20of%20gBrowser.browsers%29%20br.stop%28%29%3B%20%20%20%20%0A%20%20%20%20%7D%2C%20500%20%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u044B%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u043A%u0438%20%u0438%20%u043E%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%20..............%0Avar%20stopButt%20%3D%20document.getElementById%28%27urlbar-stop-button%27%29%3B%20%0Avar%20reloadButt%20%3D%20document.getElementById%28%27urlbar-reload-button%27%29%3B%20%0AstopButt.style.display%20%3D%20%27none%27%3B%20reloadButt.style.display%20%3D%20%27none%27%3B%0AaddDestructor%28%28%29%3D%3E%20%7B%20stopButt.style.display%20%3D%20%27%27%3B%20reloadButt.style.display%20%3D%20%27%27%3B%20%7D%29%3B%0A%0A%0A//%20%u0421%u043B%u0435%u0434%u0438%u043C%20%u0437%u0430%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u0435%u043C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u043E%u0439%20%u043F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u043A%u0438%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0438%20%u0430%u043D%u0430%u043B%u043E%u0433%u0438%u0447%u043D%u043E%20%u043C%u0435%u043D%u044F%u0435%u043C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Avar%20stopButtHandler%20%3D%20new%20MutationObserver%28%28%29%3D%3E%20%7B%0A%20%20%20document.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20stopButt.disabled%20%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAoklEQVQ4jc2TMQ7DIAxFkXJGHyJ7pICMYp8ma1Y2lt4rHapUkBpjptSSJ74eH3/s3N9XQF56mjVusyrwyHuIfHqk3NZQ/mh4bzoJkc9vIydBk0qN6AwApruwhN3PPFIGgEl01YINQVTYKKSCRTp+QMjJDLnqSrBuOoYg2tPMrqTBSgGoMC0dM2yN29xLx/QhnasG/GpZ765IcevSG6ZlsZ+vN6qE/1DgPtqbAAAAAElFTkSuQmCC%22%3B%0A%7D%29%3B%0AstopButtHandler.observe%28%20stopButt%2C%20%7Battributes%3A%20true%7D%20%29%3B%0AaddDestructor%28%28%29%3D%3E%20stopButtHandler.disconnect%28%29%20%29%3B%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20-%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%5Cn%u041B%u0434%3A%20%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%5Cn%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код кнопки для FF55+: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20-%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAABFklEQVQ4jdWToW7DQBBEI4WUBJbnC8rLAssjc9OAssqZzWx9Q/0J+QHTULOQfEBwsLFRUEkK6ki2ZTsuqjrSktPuu73ZvdnsXypJkkX3LIqiuTFkD4uxUwyGI6gvc91AXY0q4HqLomgOKgdVjd5uVGGu21DAda7hwyDzcGgUXODS1tONMWSgqhZwCASm60ZSHsd6anoCKp8ICkdz3YwqH0EegHT9AbWncX9WN4wq+02ub9p6uhk0cYqGOvq17mMHVb2bPfflJEmy6FvQdkeuVcPMUxcGaGkMGVyCazUOY9g3pnIFlRtDZh4OcF2MKsCwN/t8HQXd/1DvRlMVXGcwXY9CmvrY6QUM+7qL0lwnY8gALSdD/lTfBU/9GCESstoAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u0438%20%u0434%u043B%u0438%u043D%u043D%u044B%u0445%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmousedown%20%3De%3D%3E%20%7B%0A%20%20%20%20self.onclick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%2C%20clearTimeout%28self.timer%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%21e.button%20%26%26%20stopButt.disabled%20%3F%20BrowserReload%28%29%20%3A%20BrowserStop%28%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20self.timer%20%3D%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20if%20%28%21e.button%29%20for%20%28var%20br%20of%20gBrowser.browsers%29%20br.stop%28%29%3B%20%20%20%20%0A%20%20%20%20%7D%2C%20500%20%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u044B%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u043A%u0438%20%u0438%20%u043E%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%20..............%0Avar%20stopButt%20%3D%20document.getElementById%28%27stop-button%27%29%3B%20%0Avar%20reloadButt%20%3D%20document.getElementById%28%27reload-button%27%29%3B%20%0AstopButt.style.display%20%3D%20%27none%27%3B%20reloadButt.style.display%20%3D%20%27none%27%3B%0AaddDestructor%28%28%29%3D%3E%20%7B%20stopButt.style.display%20%3D%20%27%27%3B%20reloadButt.style.display%20%3D%20%27%27%3B%20%7D%29%3B%0A%0A%0A//%20%u0421%u043B%u0435%u0434%u0438%u043C%20%u0437%u0430%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u0435%u043C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u043E%u0439%20%u043F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u043A%u0438%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0438%20%u0430%u043D%u0430%u043B%u043E%u0433%u0438%u0447%u043D%u043E%20%u043C%u0435%u043D%u044F%u0435%u043C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Avar%20stopButtHandler%20%3D%20new%20MutationObserver%28%28%29%3D%3E%20%7B%0A%20%20%20document.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20stopButt.disabled%20%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAoklEQVQ4jc2TMQ7DIAxFkXJGHyJ7pICMYp8ma1Y2lt4rHapUkBpjptSSJ74eH3/s3N9XQF56mjVusyrwyHuIfHqk3NZQ/mh4bzoJkc9vIydBk0qN6AwApruwhN3PPFIGgEl01YINQVTYKKSCRTp+QMjJDLnqSrBuOoYg2tPMrqTBSgGoMC0dM2yN29xLx/QhnasG/GpZ765IcevSG6ZlsZ+vN6qE/1DgPtqbAAAAAElFTkSuQmCC%22%3B%0A%7D%29%3B%0AstopButtHandler.observe%28%20stopButt%2C%20%7Battributes%3A%20true%7D%20%29%3B%0AaddDestructor%28%28%29%3D%3E%20stopButtHandler.disconnect%28%29%20%29%3B%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20-%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%5Cn%u041B%u0434%3A%20%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%5Cn%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
bunda1 > 07-12-2015 19:47:22 |
Переключить стиль на странице( Firefox24+ ) от 07.12.2015. Код кнопки и вкладки код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0441%u0442%u0438%u043B%u044C%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAyhJREFUOMtdk11oW3UYh59zzj8nyUnz2TSmaWfT2lY3nWvRi7KBX3gxxBsHguKY84OyG9ErL7yQgdfFKYKI4gQvnKDI5kVRkNWqGyg6R9utpraNXWzztTRZ0pPk5Jz/8aJbaf3Be/e+Dw8v76twO2ff63uj0ejMBHziRZ9P/VEX6uvArCYCj0i5VbXcePr5yT/G+V80gOnpqx9n5+tv9QYap2rWSxNJY/G5n+ZPpwe6jUfrzvF0NNR/n99uJOPpl080LJlNpcfq3eGDzVLpmhQA5ZvtsSdPvIOz/Db37nsFf3sUbd8ghycmKOVWGThwjFuVAlkuhX6+EjsiPCKTCOmVhQVsASClVHtSAazUGVzHReNp9g+DL+xhqHsYAFuEmZuf8wmhJhXXjhCwjMmHJrcBruuqEoiHPQhgy7RxJSgKWLnz5ItVPp0u4JjrXe+/sHz0yoqSPXfZX92M5231zjIcYL3WIVux2GxJGpZEupD/5Qzh1iz3jw4imxuEjXwiHmoe99B5rGLKxA7gjkFvTCcV00lFFNT5N4mnoijqdlvHktRKdYYTq0NTp5iqNZ0hsdvg6pqJZUl8msLdMZ3fP/mMo8cO47SzjChfwoEStgVW1WXpekV37OCzewyWNlrMrZk0O5KFf5scfGYKUDC32vQaOcZHW3SnwnhDI3z9vafasTB2DGxgsNeHZUk0VSER0tjsPMyv776GHhzniadUfrvUplG0IWHLa6aRi6jOithtkIh6QIK0JfmyRfKuISInZ3ngwf18dbKfizdj9loleqtLc6qGRgbUi3sALQk4Ll26ynCfn6ihcU/yEB7g1QtF2h+ctRc//Gheuu5MROssK5Dds0QJuIBhCHyasgN2AAXQhGYHE31FT6d52WM3Mk67XtwDiNw+JHYN7S7TbJtC91Z0n1EM+nvKhzbXTAGQ+eufC4+3RsYMj8NW3WTp71U7v1G084WyvZhZaeVubDT+nLteFkKsj46kl1Upqj09mnX6m5ntZ/r2uy8+P//DuVq+UDjiujLk9epqOBS0DMNver16VVWV9fRA/416w1xstzp51+etpFIpC+A/x3JsuL3cxBcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BgetMarkupDocumentViewer%28%29.authorStyleDisabled%20%3F%20gPageStyleMenu.switchStyleSheet%28%27%27%29%20%3A%20gPageStyleMenu.disableStyle%28%29%3B%0A%0A%0A%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Вкладка код: Выделить код Код:getMarkupDocumentViewer().authorStyleDisabled ? gPageStyleMenu.switchStyleSheet('') : gPageStyleMenu.disableStyle(); |
jars > 12-12-2015 02:08:14 |
Открыть как ссылку скрытый текст Init Выделить код Код:// Открыть как ссылку. (function() { if ( document.getElementById("go2link") ) return; var menuItem = document.createElement("menuitem"); menuItem.id = "go2link"; menuItem.setAttribute("label", "Перейти по ссылке"); menuItem.setAttribute("class", "menuitem-iconic"); menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACIUlEQVQ4jZ2STUtUYRSAn3vfj3tnnBybUdEKTZ2gJjDQ/AHt3PWhTNAmadsq2tUPadG2JGWwRZugRbSKSAqHmkUpVMagoo7a1Rnv3Pu+LdJQYYQ6u8N5znM4nOPQJPLj079c1/1ijLlTLhbmmnFuswKQwuGSK9xn+fHpgf8RcHGoVyTbTpx3hfsuPz6d+2fBZhDRf66TdEc6K5QsDd6aGT3KOJncXatbMqiWNNJPIbSP0AqhFReGB4hjQ+dJn6XlLb4vrBiL86r09NroIUH+6k2kcJBSoJWL1gJrQQqXza06rnDItHrUd0KWK1W2g93Z0uT1EQC5b6qUPuOl2tBJHy/p4adTaP2nLIVLUI/ozCTpP93Kh0+Vy8MTL9biRjQmwQKwXd0gjhWNyBBGlkgo/IRFKwGAVoLQwHotoqennW8Ly5lGLF66e/0AWCwH86NRq0dIx2GpUiXYDqOu3o6Bvyv0DA3iJRIIJdFKoH2JtRAE4b6dbKti/usKqytbi6dy3bnnD0ZCCZafs+/RyRTKb0F5HspTKE/R3deF6zokfUkqIZn7uEjYiGdKkzfGSnuDJXClVl0nCg3Ktwgd7Z1Rvs6eiWnPJnGsZfbtvMVx3pgonjj0B832zY9N2b7BszSCHSo/1izw2MTmYblYWD3IySb9AKxUqtQ2AmOMfYK198vFQnCUOVZQ2wh2TWzulYuFR82Y5gLHMSY2t8vFwtRxQ34DLk/NkLifJmMAAAAASUVORK5CYII="); // menuItem.setAttribute("oncommand", "gBrowser.addTab(document.commandDispatcher.focusedWindow.getSelection().toString())"); menuItem.setAttribute("oncommand", "gBrowser.addTab(document.commandDispatcher.focusedWindow.getSelection().toString());gURLBar.handleCommand();"); document.getElementById("context-copy").parentNode.insertBefore( menuItem, document.getElementById("context-sep-open") ); document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() { menuItem.hidden = !gContextMenu.isTextSelected; }, false); })(); Автоскрытие панели поиска Взято отсюда, продублирую шобы было и тут. скрытый текст Выделить код Код://(auto-hide Findbar)................................. (function(e) { this.clickPage = function(event) {gBrowser.addEventListener('mousedown',on, false); }; function go() { clickPage(event); gFindBar.close(); } function on() { gBrowser.removeEventListener('mousedown',on, false); timeoutId = setTimeout(go, 1000) } function off() { clickPage(event); clearTimeout(timeoutId) } gFindBar.addEventListener('click',off, false); clickPage(event); })(); зы. Эти функции можно ложить в одну кнопку в Init и работают. |
bunda1 > 13-12-2015 00:32:33 |
Free Download Manager(Firefox24 +), от 12.12.2015. Клики на кнопке: Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EFree%20Download%20Manager%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20e.button%20%3D%3D%200%20%26%26%20runFDM%28%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u041B%u041A%u041C%20%20%20%20%0A%20%20%20e.button%20%3D%3D%201%20%26%26%20runFDM%28%20gClipboard.read%28%29%20%29%3B%20%20//%20%u0421%u041A%u041C%20%0A%7D%3B%0A%0A%0A//%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20Free%20Download%20Manager%20%u0441%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0435%u0439%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u0441%u0441%u044B%u043B%u043A%u0438%20..............%0Afunction%20runFDM%28url%29%20%7B%0A%20%20%20var%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20file.initWithPath%28file.path%20+%20%22%5C%5C..%5C%5CSoft%5C%5CFreeDownloadManager%5C%5Cfdm.exe%22%29%3B%0A%20%20%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5Burl%5D%2C%201%29%3B%0A%7D%3B%0A%0A%0A//%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20Free%20Download%20Manager%20%u0441%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0435%u0439%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u043F%u0440%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0438%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20..............%0Athis.ondrop%20%3De%3D%3E%20%7B%0A%20%20%20var%20url%20%3D%20e.dataTransfer.mozGetDataAt%28%22text/x-moz-url-data%22%2C%200%29%3B%0A%20%20%20if%20%28%20%21url%20%29%20%7B%0A%09var%20text%20%3D%20e.dataTransfer.mozGetDataAt%28%22text/plain%22%2C%200%29.trim%28%29%3B%0A%09%20%20%0A%20%20%20%20%20%20%20%20if%20%28%20/%5E%28%3F%3Ahttps%3F%29%3A/i.test%28text%29%20%29%20%7B%20try%20%7B%20url%20%3D%20makeURI%28text%29%20%7D%20catch%20%28e%29%20%7B%7D%20%7D%0A%20%20%20%20%20%20%20%20else%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%5E%28%3F%3A%5Ba-z%5Cd-%5D+%5C.%29+%5Ba-z%5D+%24/i.test%28text%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20uriFixup%20%3D%20Cc%5B%22@mozilla.org/docshell/urifixup%3B1%22%5D.getService%28Ci.nsIURIFixup%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20url%20%3D%20uriFixup.createFixupURI%28text%2C%20uriFixup.FIXUP_FLAG_NONE%29%20%7D%20catch%20%28e%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28%20url%20%26%26%20url.host%20%29%20url%20%3D%20url.spec%3B%0A%09%7D%0A%20%20%20url%20%3D%20url%20%26%26%20url.substring%280%2C%204%29%20%3D%3D%20%22http%22%20%3F%20url%20%3A%20null%3B%0A%0A%20%20%20runFDM%28url%29%3B%20%0A%7D%3B%0Athis.ondragover%20%3De%3D%3E%20e.preventDefault%28%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.tooltipText%20%3D%20%22Free%20Download%20Manager%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041B%3A%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20FDM%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u0421%3A%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20FDM%20%u0441%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0435%u0439%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20FDM%20%u0441%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0435%u0439%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043F%u0440%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0438%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки .............. this.onclick =e=> { e.button == 0 && runFDM(); // ЛКМ e.button == 1 && runFDM( gClipboard.read() ); // СКМ }; // Запустить Free Download Manager с передачей адреса ссылки .............. function runFDM(url) { var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(file.path + "\\..\\Soft\\FreeDownloadManager\\fdm.exe"); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.run(false, [url], 1); }; // Запустить Free Download Manager с передачей адреса при перетаскивании ссылки на кнопку .............. this.ondrop =e=> { var url = e.dataTransfer.mozGetDataAt("text/x-moz-url-data", 0); if ( !url ) { var text = e.dataTransfer.mozGetDataAt("text/plain", 0).trim(); if ( /^(?:https?):/i.test(text) ) { try { url = makeURI(text) } catch (e) {} } else if ( /^(?:[a-z\d-]+\.)+[a-z]+$/i.test(text) ) { var uriFixup = Cc["@mozilla.org/docshell/urifixup;1"].getService(Ci.nsIURIFixup); try { url = uriFixup.createFixupURI(text, uriFixup.FIXUP_FLAG_NONE) } catch (e) {} } if ( url && url.host ) url = url.spec; } url = url && url.substring(0, 4) == "http" ? url : null; runFDM(url); }; this.ondragover =e=> e.preventDefault(); // Подсказка кнопки .............. this.tooltipText = "Free Download Manager\ \nЛ: Запустить FDM\ \nС: Запустить FDM с передачей адреса из буфера\ \nЗапустить FDM с передачей ссылки при перетаскивании ссылки на кнопку"; |
bunda1 > 17-12-2015 21:10:51 |
Открыть видео в PotPlayerMini( Firefox24+ ), от 05.10.2018. Клики на кнопке: Клики на пункте контекстного меню: Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20PotPlayerMini%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bmoz-icon%3A//file%3A//C%3A%5CProgram%20Files%5CDAUM%5CPotPlayer%5CPotPlayerMini.exe%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20path%20%3D%20%22C%3A%5C%5CProgram%20Files%5C%5CDAUM%5C%5CPotPlayer%5C%5CPotPlayerMini.exe%22%3B%0A%0A%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%0A%20%20%20%20%20%20%20%20play%28gBrowser.currentURI.spec%2C%20%22%22%29%3B%0A%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28self%29%3B%20%0A%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20play%28gBrowser.currentURI.spec%2C%20%22/add%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%0Aself.image%20%3D%20%22moz-icon%3A//file%3A//%22%20+%20path%3B%0Avar%20playerName%20%3D%20path.split%28%22%5C%5C%22%29.pop%28%29.replace%28%22.exe%22%2C%22%22%29%3B%0Aself.label%20%3D%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20%22%20+%20playerName%3B%0A%0A%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%20%0Avar%20menuitem%20%3D%20contextMenu.insertBefore%28document.createElement%28%22menuitem%22%29%2C%20document.getElementById%28%22context-sep-open%22%29%29%3B%0Amenuitem.setAttribute%28%22label%22%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%22%20+%20playerName%29%3B%20%20%20%20%20%20%0Amenuitem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0Amenuitem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20path%29%3B%20%0Amenuitem.onclick%20%3De%3D%3E%20play%28%28%27getLinkURL%27%20in%20gContextMenu%20%3F%20gContextMenu.getLinkURL%28%29%20%3A%20gContextMenu.linkURL%29%2C%20e.button%20%3F%20%22/add%22%20%3A%20%22%22%29%3B%0AaddEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20menuitem.hidden%20%3D%20%21gContextMenu.onLink%2C%20false%2C%20contextMenu%29%3B%0AaddDestructor%28%28%29%3D%3E%20menuitem.remove%28%29%20%29%3B%0A%0A%20%20%20%20%0Afunction%20play%28link%2C%20param%29%20%7B%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5Blink%2C%20param%5D%2C%202%29%3B%0A%7D%3B%0A%0A%0Aself.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20%22%20+%20playerName%20+%20%22%5Cn%u0421%3A%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20%u043F%u043B%u0435%u0439%u043B%u0438%u0441%u0442%20%22%20+%20playerName%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var path = "C:\\Program Files\\DAUM\\PotPlayer\\PotPlayerMini.exe"; this.onclick =e=> { if ( e.button == 0 ) play(gBrowser.currentURI.spec, ""); if ( e.button == 1 ) gShowPopup(self); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); play(gBrowser.currentURI.spec, "/add"); } }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() }; self.image = "moz-icon://file://" + path; var playerName = path.split("\\").pop().replace(".exe",""); self.label = "Открыть видео в " + playerName; var contextMenu = document.getElementById("contentAreaContextMenu"); var menuitem = contextMenu.insertBefore(document.createElement("menuitem"), document.getElementById("context-sep-open")); menuitem.setAttribute("label", "Открыть в " + playerName); menuitem.setAttribute("class", "menuitem-iconic"); menuitem.setAttribute("image", "moz-icon://file://" + path); menuitem.onclick =e=> play(('getLinkURL' in gContextMenu ? gContextMenu.getLinkURL() : gContextMenu.linkURL), e.button ? "/add" : ""); addEventListener("popupshowing", ()=> menuitem.hidden = !gContextMenu.onLink, false, contextMenu); addDestructor(()=> menuitem.remove() ); function play(link, param) { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); file.initWithPath(path); process.init(file); process.run(false, [link, param], 2); }; self.tooltipText = "Л: Открыть видео в " + playerName + "\nС: CB Меню \nП: Добавить видео в плейлист " + playerName; |
bunda1 > 10-01-2016 19:27:13 |
Добавлять новые СВ кнопки справа от этой кнопки( Firefox24+ ) от 13.02.2016. ЛКМ => Включить кнопку, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ENew%20Button%20at%20Right%20from%20current%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACDUlEQVR42nWT30sUURTHz91Zd9FkVBRrX0oScTMI8weSIYSU/QMFbb5oGAn+AQo9B/UH9BAF+lIr+OLrSETQQ4GhEVRrUFkP/SLRNcvUnXv8nrmz7XVcB86cy7nn+5kz556ryHrueKxIYcFkPMmbxXHgzA6NDyguatQewBzHkKMMQDnWPgDsIwYh8/hATP8HQCRJEFIc5iA1DpljZIGogJU/9WXp39DR1pj99QBwe45dZb6UhCXE2Hx6m4xtQZQ/8SDni+DdSNopVYtysUiFpVbDqp4vPL4uCWc6zt+H+wvbAOBrCBCRFgh0AtIA6BboBVADc6eeZLMCGOq/kkF8Hcs8AO8tgDwav5M0AI/bw87Xw9dml+bvSUamtfsGYmuIrQDwKgIoQirkF3pR9uCbz28vx+tTMWo6VRdsL79eLax80yePtc3MTlwYKwMIT8HTvYufFkc+bq4NOjWN9Kf6cIVsHNr4sePnf9LxytqH06Od1w6oICGA9uZGOnvEpb7tgkrefLl8UXZvdTV5CYe3vv9Wzy6dVnfL9KAKfkcALeihaSKT+yj3Imji1XRPBvFyTTSn4LHMi5Y5SCnrGFc3c5MCqKtMD5c5RnsOisfILlmD1NxA5yThwy96GhkkRtlxrP3oIO0d5ZKXfSSbUYaJ1/tGef9lovAyUeQyAaKCO4nLpPRBABWJlwCWt6vYBccZ9A793wmLAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20self.checked%20%3D%20%21self.checked%3B%0A%20%20%20document.persist%28self.id%2C%20%22checked%22%29%3B%0A%7D%3B%0A%0Avar%20observer%20%3D%20%7B%0A%20%20%20observe%3A%20button%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%20%21self.checked%20%29%20return%3B%0A%20%20%20%20%20%20var%20toolbar%20%3D%20self.parentNode%3B%0A%20%20%20%20%20%20toolbar.insertBefore%28button%2C%20self.nextSibling%29%3B%0A%20%20%20%20%20%20custombuttons.persistCurrentSets%28toolbar.id%2C%20_id%2C%20button.id%29%3B%0A%0A%20%20%20%20%20%20if%20%28%20parseInt%28Services.appinfo.version%29%20%3C%2043%20%29%20return%3B%0A%0A%20%20%20%20%20%20function%20observer%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20Services.ww.unregisterNotification%28observer%29%2C%20500%29%3B%0A%20%20%20%20%20%20%20%20%20subject.close%28%29%3B%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20Services.ww.registerNotification%28observer%29%3B%20%20%20%20%20%20%0A%20%20%20%20%7D%0A%7D%3B%0Avar%20notificationPrefix%20%3D%20custombuttons.notificationPrefix%20+%20%22installButton%22%3B%0AServices.obs.addObserver%28observer%2C%20notificationPrefix%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.obs.removeObserver%28observer%2C%20notificationPrefix%29%20%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this._handleClick =()=> { self.checked = !self.checked; document.persist(self.id, "checked"); }; var observer = { observe: button=> { if ( !self.checked ) return; var toolbar = self.parentNode; toolbar.insertBefore(button, self.nextSibling); custombuttons.persistCurrentSets(toolbar.id, _id, button.id); if ( parseInt(Services.appinfo.version) < 43 ) return; function observer(subject, topic, data) { setTimeout(()=> Services.ww.unregisterNotification(observer), 500); subject.close(); }; Services.ww.registerNotification(observer); } }; var notificationPrefix = custombuttons.notificationPrefix + "installButton"; Services.obs.addObserver(observer, notificationPrefix, false); addDestructor(()=> Services.obs.removeObserver(observer, notificationPrefix) ); |
bunda1 > 12-01-2016 19:53:44 |
Объекты: перебор свойств( Firefox24+ ) от 29.01.2017. Скриншот меню с объектами: ЛКМ => Открыть меню с объектами. Код кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041E%u0431%u044A%u0435%u043A%u0442%u044B%3A%20%u043F%u0435%u0440%u0435%u0431%u043E%u0440%20%u0441%u0432%u043E%u0439%u0441%u0442%u0432%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2WQD/dlkA/3ZZAP92WQD/dlkA/3ZZAP92WQD/dlkA/3BTAN92WQCfdlkAQAAAAAAAAAAAAAAAAAAAAAAAAAAAdlkA/4VxAP+FjgD/hY4A/4WOAP+FjgD/hXkA/5FwAP+IZwD/gmUA/4VoAP+FaACvhWgAEAAAAAAAAAAAAAAAAHZZAP+FjgD/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/4WrAP+ObQD/hWgA/4VoAM+FaAAQAAAAAAAAAAB2WQD/hYoA/6j/HP+o/xz/qP8c/6j/HP+FcQD/qP8c/6j/HP+o/xz/qP8c/4WGAP+FaAD/hWgAzwAAAAAAAAAAdlkA/4WGAP+o/xz/qP8c/6j/HP+FcQD/hXEA/4VxAP+o/xz/qP8c/6j/HP+o/xz/hXEA/4VoAP+FaABgAAAAAHlcAP+FigD/qP8c/6j/HP+FcQD/hXEA/4VxAP+FcQD/hXEA/6j/HP+o/xz/qP8c/6j/HP+FaAD/hWgAvwAAAAB2WQD/hY4A/6j/HP+FcQD/hXEA/4VxAP+FcQD/hXEA/4VxAP+FcQD/qP8c/6j/HP+o/xz/hWQA/4VoAP8AAAAAdlkA/4WOAP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/4VxAP+FaAD/AAAAAHZZAP+FjgD/qP8c/6j/HP+o/xz/qP8c/4VxAP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+FeQD/hWgA/wAAAAB2WQD/hY4A/6j/HP+o/xz/qP8c/4VxAP+FcQD/hXEA/6j/HP+o/xz/qP8c/6j/HP+o/xz/hWQA/4VoAP8AAAAAdlkA/4WOAP+o/xz/qP8c/4VxAP+FcQD/hXEA/4VxAP+FcQD/qP8c/6j/HP+o/xz/qP8c/4VoAP+FaADPAAAAAHZZAP+FjgD/qP8c/4VxAP+FcQD/hXEA/4VxAP+FcQD/hXEA/4VxAP+o/xz/qP8c/451AP+FaAD/hWgAYAAAAAB2WQD/hY4A/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/4V9AP+FaAD/hWgAzwAAAAAAAAAAdlkA/4WOAP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/hasA/45tAP+FaAD/hWgAz4VoABAAAAAAAAAAAHZZAP+FcQD/hY4A/4WOAP+FjgD/hY4A/5GFAP+LfwD/l3oA/4tuAP+FaAD/hWgAv4VoABAAAAAAAAAAAAAAAAB2WQD/dlkA/3ZZAP92WQD/dlkA/3ZZAP92WQD/dlkA/3ZZAN92WQCfdlkAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+sQQAHrEEAA6xBAAOsQQABrEEAAaxBAAGsQQABrEEAAaxBAAGsQQABrEEAAaxBAAOsQQADrEEAB6xBAB+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20data%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%22Cc%22%2C%20Cc%2C%0A%20%20%20%20%20%20%20%20%22Ci%22%2C%20Ci%2C%0A%20%20%20%20%20%20%20%20%22Components.Constructor%22%2C%20Components.Constructor%2C%0A%20%20%20%20%20%20%20%20%22XPCOMUtils%22%2C%20XPCOMUtils%2C%0A%09%22window%22%2C%20window%2C%0A%09%22document%22%2C%20document%2C%0A%09%22documentElement%22%2C%20document.documentElement%2C%0A%09%22Services%22%2C%20Services%2C%0A%09%22gPrefService%22%2C%20gPrefService%2C%0A%09%22makeFilePicker%28%29%22%2C%20window.makeFilePicker%28%29%2C%0A%09%22XULBrowserWindow%22%2C%20XULBrowserWindow%2C%0A%09%22Components%22%2C%20Components%2C%0A%09%2C%2C%0A%09%22content%22%2C%20content%2C%0A%09%22content.document%22%2C%20content.document%2C%0A%09%22focusedWindow%22%2C%20document.commandDispatcher.focusedWindow%2C%0A%09%22focusedElement%22%2C%20document.commandDispatcher.focusedElement%2C%0A%20%20%20%20%20%20%20%20%22Services.focus.focusedElement%22%2C%20Services.focus.focusedElement%2C%0A%09%22selection%22%2C%20document.commandDispatcher.focusedWindow.getSelection%28%29%2C%0A%09%22selection%20in%20defaultView%22%2C%20gBrowser.contentDocument.defaultView.getSelection%28%29%2C%0A%09%22window.content%22%2C%20window.content%2C%0A%09%22location%22%2C%20content.document.location%2C%0A%09%2C%2C%0A%09%22new%20Date%28%29%22%2C%20new%20Date%28%29%2C%0A%09%22gURLBar%22%2C%20gURLBar%2C%0A%09%22gBrowser%22%2C%20gBrowser%2C%0A%09%22gCustomizeMode%22%2C%20gCustomizeMode%2C%0A%09%22gFindBar%22%2C%20gFindBar%2C%0A%09%22gClipboard%22%2C%20gClipboard%2C%0A%09%22gPageStyleMenu%22%2C%20gPageStyleMenu%2C%0A%09%22gBrowser.docShell%22%2C%20gBrowser.docShell%2C%0A%09%22nsIWebBrowserPersist%22%2C%20Cc%5B%27@mozilla.org/embedding/browser/nsWebBrowserPersist%3B1%27%5D.createInstance%28Ci.nsIWebBrowserPersist%29%2C%0A%20%20%20%20%20%20%20%20%22nsIStyleSheetService%22%2C%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%2C%0A%20%20%20%20%20%20%20%20%22nsIDownloadManager%22%2C%20Cc%5B%22@mozilla.org/download-manager%3B1%22%5D.getService%28Ci.nsIDownloadManager%29%2C%0A%09%22gNavigatorBundle%22%2C%20gNavigatorBundle%2C%0A%09%22PopupNotifications%22%2C%20PopupNotifications%2C%0A%09%22gBrowser.mCurrentTab%22%2C%20gBrowser.mCurrentTab%2C%0A%09%22gBrowser.tabContainer%22%2C%20gBrowser.tabContainer%2C%0A%09%22deck%22%2C%20document.getElementById%28%22content-deck%22%29%2C%0A%09%22browser%22%2C%20gBrowser.selectedBrowser%2C%0A%09%22gNavToolbox%22%2C%20gNavToolbox%2C%0A%09%22nav-bar%22%2C%20document.getElementById%28%22nav-bar%22%29%2C%0A%09%22searchBar%22%2C%20BrowserSearch.searchBar%2C%0A%09%22Scratchpad%22%2C%20Scratchpad%2C%0A%09%2C%2C%0A%09%22gFindBar%22%2C%20gFindBar%2C%0A%09%22gFindBar._findField%22%2C%20gFindBar._findField%2C%0A%09%22BrowserUtils%22%2C%20BrowserUtils%2C%0A%09%22BrowserUtils.getSelectionDetails%22%2C%20BrowserUtils.getSelectionDetails%28window%29%2C%20%0A%09%22BrowserSearch%22%2C%20BrowserSearch%2C%20%0A%09%2C%2C%0A%09%22cbu%22%2C%20cbu%2C%0A%09%22CB2const%22%2C%20CB2const%2C%0A%09%22custombutton%22%2C%20custombutton%2C%0A%09%22custombuttons%22%2C%20custombuttons%2C%0A%09%22custombuttonsUtils%22%2C%20custombuttonsUtils%2C%0A%09%2C%2C%0A%09%2C%2C%0A%09%22StarUI%22%2C%20StarUI%2C%0A%09%22PlacesUIUtils%22%2C%20PlacesUIUtils%2C%0A%09%22PlacesUtils%22%2C%20PlacesUtils%2C%0A%09%22placesContext%22%2C%20document.getElementById%28%22placesContext%22%29%2C%0A%09%22BookmarksService%22%2C%20Cc%5B%22@mozilla.org/browser/nav-bookmarks-service%3B1%22%5D.getService%28Ci.nsINavBookmarksService%29%2C%0A%09%22BookmarkingUI%22%2C%20BookmarkingUI%2C%0A%09%22PlacesCommandHook%22%2C%20PlacesCommandHook%2C%0A%09%22BookmarksEventHandler%22%2C%20BookmarksEventHandler%2C%0A%09%22window.content.SidebarUtils%22%2C%20document.getElementById%28%22sidebar%22%29.contentWindow.SidebarUtils%2C%0A%09%2C%2C%0A%09%2C%2C%0A%09%22new%20MouseEvent%22%2C%20new%20MouseEvent%28%22click%22%29%0A%5D%3B%0Athis.textContent%20%3D%20%22%22%3B%0A%0Avar%20popup%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Apopup.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%3B%20this.open%28event%29%3B%22%29%3B%0Apopup.setAttribute%28%22oncontextmenu%22%2C%20%22return%20false%22%29%3B%0Apopup.position%20%3D%20%22after_start%22%3B%0A%0Afor%28var%20ind%20%3D%200%3B%20ind%20%3C%20data.length%3B%20ind%20+%3D%202%29%20%7B%0A%09var%20lab%20%3D%20data%5Bind%5D%2C%20obj%20%3D%20data%5Bind%20+%201%5D%3B%0A%09if%20%28%21lab%20%26%26%20%21obj%29%20%7B%0A%09%09popup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%09%09continue%3B%0A%09%7D%0A%09var%20menuitem%20%3D%20popup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%09menuitem.setAttribute%28%22label%22%2C%20lab%29%3B%0A%09menuitem.obj%20%3D%20obj%3B%0A%7D%0A%0A%0A//%20Compact%20Style%0Avar%20style%20%3D%20self.getAttribute%28%27Help%27%29.replace%28/%25id%25/g%2C%20%22%23%22%20+%20_id%29.replace%28/%3B/g%2C%20%22%20%21important%3B%22%29%3B%0Avar%20pi%20%3D%20document.createProcessingInstruction%28%22xml-stylesheet%22%2C%27type%3D%22text/css%22%20href%3D%22data%3Atext/css%2C%27%20+%20encodeURIComponent%28style%29%20+%20%27%22%27%29%3B%0Apopup.pi%20%3D%20document.insertBefore%28pi%2C%20document.firstChild%29%3B%0AparseInt%28Services.appinfo.version%29%20%3C%2029%0A%3F%20popup.setAttribute%28%22onpopuphidden%22%2C%20%22document.removeChild%28this.pi%29%22%29%0A%3A%20popup.setAttribute%28%22onpopuphidden%22%2C%20%22this.pi.remove%28%29%22%29%3B%0A%0A%20%0Apopup.open%20%3D%20function%28e%29%20%7B%0A%09var%20node%20%3D%20e.target%3B%0A%09if%20%28%21node.hasOwnProperty%28%22obj%22%29%29%20return%3B%0A%09var%20obj%20%3D%20node.obj%3B%0A%09if%20%28obj%20instanceof%20Node%20%26%26%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%29%29%20%7B%20inspectDOMNode%28obj%29%3B%20return%3B%20%7D%0A%09var%20win%20%3D%20openDialog%28%0A%09%09%22chrome%3A//inspector/content/object.xul%22%2C%0A%09%09%22_blank%22%2C%20%22chrome%2Call%2Cdialog%3Dno%22%2C%20obj%0A%09%29%3B%0A%09win.addEventListener%28%22pageshow%22%2C%20function%20onPS%28e%29%20%7B%0A%09%09var%20vDoc%20%3D%20e.target%2C%20vHref%20%3D%20vDoc.location.href%3B%0A%09%09if%20%28vHref.indexOf%28%22viewers%22%29%20%3D%3D%20-1%29%20return%3B%0A%0A%09%09var%20doc%20%3D%20win.document%3B%0A%09%09if%20%28%21win.dFlag%29%20%7B%0A%09%09%09doc.querySelector%28%22domi-panel%22%29.switchViewer%288%29%3B%20//%20%22JavaScript%20Object%22%0A%09%09%09win.addEventListener%28%22unload%22%2C%20function%20onUnload%28e%29%20%7B%0A%09%09%09%09win.removeEventListener%28%22unload%22%2C%20onUnload%2C%20false%29%3B%0A%09%09%09%09win.removeEventListener%28%22pageshow%22%2C%20onPS%2C%20false%29%3B%0A%09%09%09%7D%29%3B%0A%09%09%09win.dFlag%20%3D%20true%3B%0A%09%09%7D%0A%09%09if%20%28vHref.indexOf%28%22jsObject%22%29%20%3D%3D%20-1%29%20return%3B%0A%0A%09%09var%20popup%20%3D%20vDoc.getElementById%28%22popupContext%22%29%3B%0A%09%09var%20point%20%3D%20popup.querySelector%28%27menuitem%5Bcommand%3D%22cmdCopyValue%22%5D%27%29%3B%0A%09%09var%20menuitem%20%3D%20popup.insertBefore%28document.createElement%28%22menuitem%22%29%2C%20point.nextSibling%29%3B%0A%09%09menuitem.setAttribute%28%22label%22%2C%20%22%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0441%u0432%u043E%u0439%u0441%u0442%u0432%u043E%22%29%3B%0A%09%09menuitem.setAttribute%28%22oncommand%22%2C%20%22this.run%28%29%22%29%3B%0A%09%09menuitem.run%20%3D%20function%28%29%20%7B%0A%09%09%09var%20view%20%3D%20vDoc.defaultView.viewer.mView%3B%0A%09%09%09var%20inds%20%3D%20view.getSelectedIndices%28%29%3B%0A%09%09%09var%20keys%20%3D%20%5B%5D%3B%0A%09%09%09inds.forEach%28function%28ind%29%20keys.push%28view.mKeys%5Bind%5D%29%29%3B%0A%09%09%09gClipboard.write%28keys.join%28%22%5Cr%5Cn%22%29%29%3B%0A%09%09%7D%0A%09%7D%2C%20false%29%3B%0A%7D%0Apopup.openPopup%28this%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%25id%25%20*%20%7B%0A%09-moz-appearance%3A%20none%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%7B%0A%09border%3A%201px%20solid%20rgb%28151%2C151%2C151%29%3B%0A%09padding%3A%20.25em%200%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuitem%20%7B%0A%09height%3A%201.3em%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuitem%5B_moz-menuactive%3D%22true%22%5D%20%7B%0A%09background-color%3A%20rgb%28191%2C223%2C255%29%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuseparator%20%7B%0A%09padding%3A%200%3B%0A%09border-top%3A%201px%20solid%20rgb%28224%2C224%2C224%29%3B%0A%09margin%3A%202px%200%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuitem%20%3E%20.menu-text%20%7B%0A%09padding%3A%200%20.5em%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuitem%20%3E%20.menu-accel-container%20%7B%0A%09display%3A%20none%3B%0A%7D%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Автор кнопки: Dumby |
bunda1 > 14-01-2016 13:09:23 |
Callers( Firefox24+ ) от 14.01.2015. ЛКМ => Включить кнопку, Код кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3Ecallers%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA////////////////////////////////////////////////////////////////////////////mTMA/5kzAP//////////////////////+PPv//jy7v/58/D/+fPw//jy7v/48+///////////////////////5kzAP+ZMwD/////////////////8eDZ/6ZOIv+dOwr/nTsK/5w6CP+cOQf/pUwg//Dg2f////////////////+ZMwD/mTMA////////////8eDZ/6ZPIv+TJgD/kyYA/505Cf+dPAv/nDcH/5ImAP+lSx7/8ODZ////////////mTMA/5kzAP//////+PPv/6ZOIv+TKAD/lSoA/6hTJ//y5N3/+/f1//Lk3P+mTSH/kCIA/6NIG//38ez//////5kzAP+ZMwD///////jy7v+ePQz/kygA/6A/EP/y5N3/////////////////8eDZ/6NIG/+lSBz/9/Dr//////+ZMwD/mTMA///////58/D/nz8P/5MnAP+gQBH/+vXz///////////////////////59PH/+PPv////////////mTMA/5kzAP//////+fPw/58/D/+TJwD/oEAR//r18///////////////////////+fTx//jz7////////////5kzAP+ZMwD///////jy7v+ePQz/kygA/6A/EP/y5N3/////////////////8eDZ/6NIG/+lSBz/9/Dr//////+ZMwD/mTMA///////48+//pk4i/5MoAP+VKgD/qFMn//Lk3f/79/X/8uTc/6ZNIf+QIgD/o0gb//fx7P//////mTMA/5kzAP////////////Hg2f+mTyL/kyYA/5MmAP+dOQn/nTwL/5w3B/+SJgD/pUse//Dg2f///////////5kzAP+ZMwD/////////////////8eDZ/6ZOIv+dOwr/nTsK/5w6CP+cOQf/pUwg//Dg2f////////////////+ZMwD/mTMA///////////////////////48+//+PLu//nz8P/58/D/+PLu//jz7///////////////////////mTMA/5kzAP///////////////////////////////////////////////////////////////////////////5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20obj%20%3D%20gBrowser%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0443%u043A%u0430%u0437%u0430%u0442%u044C%20%u043E%u0431%u044A%u0435%u043A%u0442%20%u0432%20%u0441%u0432%u043E%u0439%u0441%u0442%u0432%u0430%u0445%20%u043A%u043E%u0442%u043E%u0440%u043E%u0433%u043E%20%u0435%u0441%u0442%u044C%20%u0444%u0443%u043D%u043A%u0446%u0438%u044F%20Firefox%20%u043A%u043E%u0442%u043E%u0440%u0443%u044E%20%u043D%u0443%u0436%u043D%u043E%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u0442%u044C%0Avar%20funcName%20%3D%20%22loadURIWithFlags%22%3B%20//%20%u0443%u043A%u0430%u0437%u0430%u0442%u044C%20%u0432%u043D%u0443%u0442%u0440%u0435%u043D%u043D%u044E%u044E%20%u0444%u0443%u043D%u043A%u0446%u0438%u044E%20Firefox%20%u043A%u043E%u0442%u043E%u0440%u0443%u044E%20%u043D%u0443%u0436%u043D%u043E%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u0442%u044C%0A%0Avar%20originalFunc%20%3D%20obj%5BfuncName%5D%3B%0Afunction%20destr%28%29%20%7B%0A%09self.checked%20%3D%20false%3B%0A%09obj%5BfuncName%5D%20%3D%20originalFunc%3B%0A%7D%0AaddDestructor%28destr%29%3B%0A%0Avar%20ms%20%3D%200%3B%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%09if%20%28e.button%29%20return%3B%0A%0A%09this.checked%20%3D%20%21this.checked%3B%0A%09if%20%28%21this.checked%29%20%7B%20destr%28%29%3B%20return%3B%20%7D%0A%0A%09obj%5BfuncName%5D%20%3D%20function%20%28%29%20%7B%0A%09%09originalFunc.apply%28obj%2C%20arguments%29%3B%0A%0A%09%09var%20now%20%3D%20Date.now%28%29%3B%0A%09%09var%20delta%20%3D%20now%20-%20ms%3B%0A%09%09ms%20%3D%20now%3B%0A%09%09if%20%28delta%20%3C%20500%29%20return%3B%0A%09%09%0A%09%09var%20data%20%3D%20%7B%7D%3B%0A%09%09Object.defineProperty%28data%2C%20%22toString%22%2C%20%7B%0A%09%09%09value%3A%20function%28%29%20%22CALLERS%20%3A%22%2C%0A%09%09%09configurable%3A%20true%2C%0A%09%09%09enumerable%3A%20false%0A%09%09%7D%29%3B%0A%09%09var%20count%20%3D%200%3B%0A%09%09for%28var%20f%20%3D%20arguments.callee.caller%3B%20f%3B%20f%20%3D%20f.caller%29%0A%09%09%09data%5B++count%20+%20%22.%20%22%20+%20%28f.name%20%7C%7C%20%22unnamed%22%29%5D%20%3D%20f%3B%0A%09%09inspectObject%28data%29%3B%0A%09%7D%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Автор кнопки: Dumby |
bunda1 > 01-02-2016 23:29:24 |
CustomPaste for CustomButtons( Firefox24+ ) от 11.06.2016. Скриншот меню с кодами в редакторе CB: ЛКМ => Включить кнопку, ПКМ => CB Меню. Код кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ECustomPaste%20for%20CustomButtons%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//rq7///////////////////////9eXv////////////9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/////////////////////////////Xl7/////////////Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////+urv//Xl7//15e//9eXv//Xl7/////////////Xl7//15e//9eXv//Xl7/////////////3Nz//9jY/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////9eXv/////////////c3P//2Nj/////////////Xl7//15e//9eXv//Xl7//66u////////////////////////Xl7/////////////////////////////rq7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//-----------------------%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438--------------------------------%0Aconst%20insertButtonBackgroundColor%20%3D%20%22rgb%28205%2C109%2C252%29%22%3B//%20%20%20%20%20%20%20%u0426%u0432%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0432%20%u043E%u043A%u043D%u0435%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0430%0Aconst%20insertButtonTooltip%20%3D%20%22%u041F%u0440%u0438%u043C%u0435%u0440%22%3B//%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%u041D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%u0442%u043E%20%u0447%u0442%u043E%20%u0431%u0443%u0434%u0435%u0442%20%u0432%u043E%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0439%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0435.%0Aconst%20cursorIndex%20%3D%20%22%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%22%3B//%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%u041C%u0435%u0442%u043A%u0430%20%u043A%u0443%u0434%u0430%20%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u043A%u0443%u0440%u0441%u043E%u0440%20%u043F%u043E%u0441%u043B%u0435%20%u0432%u0441%u0442%u0430%u0432%u043A%u0438%0Aconst%20allowSelection%20%3D%20true%3B//%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%20%20%20%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0440%u0435%u0436%u0438%u043C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%20%u043F%u043E%u0441%u043B%u0435%20%u0432%u0441%u0442%u0430%u0432%u043A%u0438%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u0443%u043A%u0430%u0437%u0430%u043D%u0430%20%u043F%u043E%u0437%u0438%u0446%u0438%u044F%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%0Athis.allowChecked%20%3D%20false%3B//%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%20%20%20%20%20%20%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u0432%u043A%u043B%u044E%u0447%u0435%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0430%20%u0438%u043B%u0438%20%u043D%u0435%u0442%20%u043D%u0435%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u0446%u0432%u0435%u0442%u043E%u043C%20%u043D%u043E%20%u0438%20%u043D%u0430%u0436%u0430%u0442%u0438%u0435%u043C%0A//-------------------------------------------------------%0A%0A%0Avar%20theSeparator%20%3D%20%22%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%22%3B//%u0420%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432%20%u043C%u0435%u043D%u044E%0Aconst%20insertButtonImage%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%20%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfV1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/8AAABfV1dX/wAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArV1dX/1dXV/8AAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAA/////////////////////wAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAArV1dX/1dXV/8AAAAr//////////////////////////8AAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAK///////////AAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACv//////////wAAAAAAAAAAAAAAAAAAAAD//////////////////////////wAAAAAAAAArV1dX/1dXV/8AAAAr//////////8AAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAP//////////AAAAK1dXV/9XV1f/AAAAK///////////AAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAD//////////wAAACtXV1f/V1dX/wAAACv//////////////////////////wAAAAD//////////wAAAAAAAAAA//////////8AAAArV1dX/1dXV/8AAAArAAAAAP////////////////////8AAAAA//////////////////////////8AAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAK1dXV/8AAABfV1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/8AAABfAACsQQAArEE//KxBP/ysQSE8rEEBPKxBDzysQQ8ErEEPMKxBDzCsQQEwrEEhBKxBP/ysQT/8rEEAAKxBAACsQQ%3D%3D%22%3B%0Aconst%20insertButtonImageOnSelf%20%20%20%20%20%20%20%20%3D%20%20%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfV1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/8AAABfV1dX/wAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArV1dX/1dXV/8AAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAA//////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAAP///////////////////////////////////////////////wAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAAAAAAAD/////////////////////////////////////AAAAAAAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAAAAAAAP//////////////////////////////////////////AAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAK1dXV/8AAABfV1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/8AAABfAACsQQAArEE//KxBP/ysQSAcrEEgDKxBP8ysQTgMrEEwHKxBM/ysQTAMrEE4DKxBP/ysQT/8rEEAAKxBAACsQQ%3D%3D%22%3B%0Aconst%20editor%20%3D%20%22chrome%3A//custombuttons/content/editor.xul%22%3B%0Athis.tooltipText%20%3D%20%27%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u043A%u043E%u0434%u043E%u0432%20%22%27+insertButtonTooltip+%27%22%20%u0434%u043B%u044F%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0430%20%u0421ustom%20buttons%27%3B%0A%0AtheSeparator%20%3D%20%22%5Cn%22%20+%20theSeparator%20+%20%22%5Cn%22%3B%0Avar%20items%20%3D%20self.getAttribute%28%22Help%22%29.split%28theSeparator%29%3B%0Avar%20thisCB%20%3D%20this%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0Athis.imageOn%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//rq7///////////////////////9eXv////////////9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/////////////////////////////Xl7/////////////Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////+urv//Xl7//15e//9eXv//Xl7/////////////Xl7//15e//9eXv//Xl7/////////////3Nz//9jY/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////9eXv/////////////c3P//2Nj/////////////Xl7//15e//9eXv//Xl7//66u////////////////////////Xl7/////////////////////////////rq7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0Athis.imageOff%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P/JyfD//////////////////////5ub4P///////////5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D///////////////////////////+bm+D///////////+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg////////////m5vg/5ub4P+bm+D/m5vg////////////m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P///////////5ub4P+bm+D/m5vg/5ub4P///////////////////////////8nJ8P+bm+D/m5vg/5ub4P+bm+D///////////+bm+D/m5vg/5ub4P+bm+D////////////o6Pr/5ub6////////////m5vg/5ub4P+bm+D/m5vg////////////m5vg/5ub4P+bm+D/m5vg////////////m5vg/5ub4P///////////5ub4P+bm+D/m5vg/5ub4P///////////////////////////5ub4P///////////+jo+v/m5vr///////////+bm+D/m5vg/5ub4P+bm+D/ycnw//////////////////////+bm+D////////////////////////////JyfD/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0Athis.image%20%3D%20this.imageOn%3B%20if%20%28this.allowChecked%29%20this.checked%20%3D%20true%3B%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20cbIdNumber%20%3D%20this.id.replace%28%22custombuttons-button%22%2C%20%22%22%29%3B%0Avar%20insertButtonId%20%3D%20%22custom-paste-by-cb%22%20+%20cbIdNumber%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0Avar%20prefs%20%3D%20Cc%5B%22@mozilla.org/preferences-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Ci.nsIPrefService%29%0A%20%20%20%20%20%20%20%20%20%20%20%20.getBranch%28%22custombutton.CustomPasteForCBEditor%5B%22%20+%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%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cbIdNumber%20+%20%22%5D.%22%29%3B%0Atry%20%20%20%20%20%20%7B%20var%20pref%20%3D%20prefs.getBoolPref%28%22off%22%29%3B%20%7D%0Acatch%28e%29%20%7B%20prefs.setBoolPref%28%22off%22%2C%20false%29%3B%20%7D%3B%0A%0Athis.off%20%3D%20prefs.getBoolPref%28%22off%22%29%3B%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Afunction%20setButtonDesign%28aDoc%29%20%7B%0A%0A%20%20var%20button%20%3D%20aDoc.getElementById%28%22custom-paste-by-cb%22%20+%20cbIdNumber%29%3B%0A%20%20%20%20%20%20button.tooltipText%20%3D%20insertButtonTooltip%3B%0A%20%20%20%20%0A%20%20var%20image%20%3D%20aDoc.getAnonymousNodes%28button%29%5B1%5D%3B%0A%20%20%20%20%20%20image.style.backgroundColor%20%3D%20insertButtonBackgroundColor%3B%0A%20%20%20%20%20%20image.style.MozMarginEnd%20%3D%20%220px%22%3B%0A%20%20%20%20%0A%20%20var%20dropmarker%20%3D%20aDoc.getAnonymousNodes%28button%29%5B3%5D%3B%0A%20%20%20%20%20%20dropmarker.hidden%20%3D%20true%3B%20%20%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Aconst%20%20kXULNS%20%3D%20%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3B%0A%0A%20%20var%20place%20%3D%20null%3B%0A%20%20var%20focusedElement%20%3D%20null%3B%0A%0A//%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%0A%0Afunction%20createButton%28aDoc%29%20%7B%0A%0Avar%20%20button%20%3D%20document.createElementNS%28kXULNS%2C%20%22toolbarbutton%22%29%3B%0A%20%20%20%20%20button.setAttribute%28%22image%22%2C%20insertButtonImage%29%3B%0A%20%20%20%20%20button.setAttribute%28%22id%22%2C%20insertButtonId%29%3B%0A%20%20%20%20%20button.setAttribute%28%22type%22%2C%20%22menu%22%29%3B%0A//-------------------------------------------------------------%0A%0A%20%20%20%20%20button.onmouseover%20%3D%20function%28%29%20%7B%20place%20%3D%20aDoc.commandDispatcher.focusedElement%3B%20%7D%0A%20%20%20%20%20%0A//--------------------------------------------------------------%0Avar%20%20menupopup%20%3D%20document.createElementNS%28kXULNS%2C%20%22menupopup%22%29%3B%0A%20%20%20%20%20button.appendChild%28menupopup%29%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20onSelf%20%3D%20false%3B%0A%0Aif%20%28aDoc.location.href.split%28%22custombuttons-button%22%29%5B1%5D%20%3D%3D%20cbIdNumber%29%20%7B%0A%0A%20%20%20%20onSelf%20%3D%20true%3B%0A%20%20%20%20button.setAttribute%28%22image%22%2C%20insertButtonImageOnSelf%29%3B%0A%0A%20%20%20%20%20%20if%20%28items%5B0%5D%20%21%3D%20%22%u0421%u0435%u043F%u0430%u0440%u0430%u0442%u043E%u0440%22%20+%20theSeparator%20%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20items.unshift%28%22%u0421%u0435%u043F%u0430%u0440%u0430%u0442%u043E%u0440%22%20+%20theSeparator%2C%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%22%u0423%u043A%u0430%u0437%u0430%u0442%u0435%u043B%u044C%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%22%20+%20%22%5Cn%22%20+%20cursorIndex%20+%20cursorIndex%29%3B%20%7D%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20items.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%0A%20%20var%20label%20%3D%20items%5Bi%5D.split%28%22%5Cn%22%2C1%29%3B%0A%20%20var%20insertText%20%3D%20items%5Bi%5D.replace%28label%20+%20%22%5Cn%22%2C%20%22%22%29%3B%0A%20%20%0A%20%20var%20%20menuitem%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20menuitem.setAttribute%28%22label%22%2C%20label%29%3B%0A%20%20%20%20%20%20%20menuitem.insertText%20%3D%20insertText%3B%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20if%20%28insertText%20%3D%3D%20theSeparator.substring%281%2C%20theSeparator.length%29%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20insertText%20%3D%3D%20cursorIndex%20+%20cursorIndex%29%20%7B%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%20menuitem.style.fontWeight%20%3D%20%20%20%22bold%22%3B%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%20menuitem.style.color%20%20%20%20%20%20%3D%20%20%20%22rgb%28183%2C53%2C47%29%22%3B%20%20%7D%0A%20%20%20%20%20%20%20%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0A%20%20%20menuitem.inserter%20%3D%20function%20inserter%28aText%29%20%7B%0A%0A%20%20%20%20%20var%20firstPart%20%3D%20aText.split%28cursorIndex%29%5B0%5D%3B%0A%20%20%20%20%20var%20cursorPosition%20%3D%20place.selectionStart%20+%20firstPart.length%3B%0A%20%20%20%20%20var%20cursorIndexPresent%20%3D%20aText.length%20%21%3D%20firstPart.length%3B%0A%20%20%20%20%20aText%20%3D%20aText.replace%28cursorIndex%2C%20%22%22%29%3B%0A%20%20%20%20%20if%20%28aText%20%3D%3D%20cursorIndex%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cursorPosition%20%3D%20place.selectionStart%20+%20cursorIndex.length%3B%0A%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%0A//http%3A//forum.mozilla-russia.org/viewtopic.php%3Fpid%3D450336%23p450336%0A%0A%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20var%20controller%20%3D%20aDoc.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%0A%20if%28controller%20%26%26%20controller.isCommandEnabled%28cmd%29%29%20%7B%0A%0A%20%20%20%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20params.setStringValue%28%22state_data%22%2C%20aText%29%3B%0A%20%20%20%20%0A%20%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%20%7D%0A//------------------------------------------------------------------------------------%20%20%20%20%0A%0Aif%20%28allowSelection%20%26%26%20%21cursorIndexPresent%29%0A%20%20place.setSelectionRange%28place.selectionStart-aText.length%2C%20place.selectionStart%29%3B//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u0435%20%u0432%u0441%u0442%u0430%u0432%u043B%u0435%u043D%u043D%u043E%u0433%u043E%0A%0Aelse%20place.selectionStart%20%3D%20place.selectionEnd%20%3D%20cursorPosition%3B%0A%0A%20%20%20%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0A%20%20var%20%20commandString%20%3D%20%22inserter%28event.target.insertText%29%22%3B%0A%20%20%20%20%20%20%20menuitem.setAttribute%28%22oncommand%22%2C%20commandString%29%3B%0A%20%20%20%20%20%20%20menupopup.appendChild%28menuitem%29%3B%0A%20%7D%0A%20%0A%20if%20%28onSelf%29%20items%20%3D%20self.getAttribute%28%22Help%22%29.split%28theSeparator%29%3B%0A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20button%3B%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%0A%0Afunction%20isButtonAlredyPresent%28aDoc%29%20%7B%20//%20advice%20by%20Inforcatcher%0A%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%21%21aDoc.getElementById%28insertButtonId%29%3B%20%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0Avar%20oSvc%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.getService%28Components.interfaces.nsIObserverService%29%3B%0A%0Avar%20observer%20%3D%20%7B%20//%20thanks%20for%20Infocatcher%0A%0Aobserve%3A%20function%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20%20subject.addEventListener%28%22load%22%2C%20this%2C%20false%29%3B%20%7D%2C%0A%20%20%20%20%20%20%0AhandleEvent%3A%20function%28e%29%20%7B%0A%20%20%20%20var%20doc%20%3D%20e.target%3B%0A%20%20%20%20var%20win%20%3D%20doc.defaultView%3B%0A%20%20%20%20%20%20%20%20win.removeEventListener%28%22load%22%2C%20this%2C%20false%29%3B%0A%0A%20%20%20%20if%20%28doc.location.href.substring%280%2C%2041%29%20%21%3D%20editor%29%20return%3B%0A%0A%20%20%20%20if%20%28%21isButtonAlredyPresent%28doc%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tabs%20%3D%20doc.getElementsByTagName%28%22tabs%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tabs%5B0%5D.appendChild%28createButton%28doc%29%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setButtonDesign%28doc%29%20%20%20%20%20%20%7D%7D%7D%3B%0A%20%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20ww%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/window-watcher%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIWindowWatcher%29%3B%0A%0Avar%20activeWin%20%3D%20null%3B%20%20%20%20%20%20%20%20%20%0Athis.onmouseover%20%3D%20function%28%29%20%7B%20activeWin%20%3D%20ww.activeWindow%3B%20%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Afunction%20alsoForTab%28evt%29%20%7B%20var%20doc%20%3D%20evt.target%3B%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%20if%20%28doc.location.href.substring%280%2C%2041%29%20%21%3D%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%20%22chrome%3A//custombuttons/content/editor.xul%22%29%20return%3B%0A%0A%20%20%20%20%20if%20%28%21isButtonAlredyPresent%28doc%29%29%20%7B%20var%20tabs%20%3D%20doc.getElementsByTagName%28%22tabs%22%29%3B%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%20%20%20%20%20%20%20%20%20%20tabs%5B0%5D.appendChild%28createButton%28doc%29%29%3B%20%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%20%20%20%20%20%20%20%20%20%20setButtonDesign%28doc%29%3B%20%7D%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Athis.run%20%3D%20function%28%29%20%7B%0A%0A%20%20if%20%28%21this.off%29%20%20%7B%20oSvc.addObserver%28observer%2C%20%22domwindowopened%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.addEventListener%28%22DOMContentLoaded%22%2C%20alsoForTab%2C%20false%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prefs.setBoolPref%28%22off%22%2C%20false%29%3B%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20if%20%28this.off%20%29%20%20%7B%20oSvc.removeObserver%28observer%2C%20%22domwindowopened%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.removeEventListener%28%22DOMContentLoaded%22%2C%20alsoForTab%2C%20false%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prefs.setBoolPref%28%22off%22%2C%20true%29%3B%20%7D%0A%0A//------------------------------------------------------------------------------%0A%0A%20%20var%20tabContainer%20%3D%20gBrowser.mTabContainer%3B%0A%20%20var%20tabs%20%3D%20tabContainer.childNodes%3B%0A%0A%20%20for%20%28var%20t%20%3D%200%3B%20t%20%3C%20tabContainer.itemCount%3B%20t++%29%20%7B%20%0A%0A%20%20var%20pageDoc%20%3D%20tabs%5Bt%5D.linkedBrowser.contentDocument%3B%0A%20%20%0A%20%20if%20%28pageDoc.location.href.substring%280%2C%2041%29%20%21%3D%20editor%29%20continue%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%21this.off%29%20%7B%20if%20%28isButtonAlredyPresent%28pageDoc%29%29%20%20continue%3B%20%0A%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%20var%20tbs%20%3D%20pageDoc.getElementsByTagName%28%22tabs%22%29%3B%20%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%20tbs%5B0%5D.appendChild%28createButton%28pageDoc%29%29%3B%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%20setButtonDesign%28pageDoc%29%3B%20%7D%0A%0A%0A%20%20%20%20%20%20%20%20if%20%28this.off%29%20%7B%20var%20b%20%3D%20pageDoc.getElementById%28insertButtonId%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20while%20%28b%29%20%7B%20b%20%3D%20pageDoc.getElementById%28insertButtonId%29%3B%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%20%20%20%20%20%20if%20%28b%29%20%7B%20b.parentNode.removeChild%28b%29%3B%20%7D%7D%7D%0A%20%20%7D%0A%0A//------------------------------------------------------------------------------%0A%0A%20%20var%20enumerator%20%3D%20ww.getWindowEnumerator%28%29%3B%0A%20%20var%20win%20%3D%20true%3B%0A%20%20while%20%28win%29%20%7B%20win%20%3D%20enumerator.getNext%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21win%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20doc%20%3D%20win.document%3B%0A%0A%20%20%20%20%20%20%20if%20%28doc.location.href.substring%280%2C%2041%29%20%21%3D%20editor%29%20continue%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%21this.off%29%20%7B%20if%20%28isButtonAlredyPresent%28doc%29%29%20%20continue%3B%20%0A%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%20var%20tbs%20%3D%20doc.getElementsByTagName%28%22tabs%22%29%3B%20%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%20tbs%5B0%5D.appendChild%28createButton%28doc%29%29%3B%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%20setButtonDesign%28doc%29%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%20if%20%28win%20%3D%3D%20activeWin%29%20win.focus%28%29%3B%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28this.off%29%20%7B%20var%20b%20%3D%20doc.getElementById%28insertButtonId%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20while%20%28b%29%20%7B%20b%20%3D%20doc.getElementById%28insertButtonId%29%3B%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%20%20%20%20%20%20if%20%28b%29%20%7B%20b.parentNode.removeChild%28b%29%3B%20%7D%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%20%20%20%20%20%20if%20%28win%20%3D%3D%20activeWin%29%20win.focus%28%29%3B%20%20%7D%7D%0A%20%20%20%20%7D%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Aif%20%28this.off%29%20%7B%20this.image%20%3D%20this.imageOff%3B%20this.checked%20%3D%20false%3B%20return%3B%20%7D%0A%0Athis.run%28%29%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AaddDestructor%28function%28%29%20%7B%0A%20%20%20var%20on%20%3D%20%21self.off%3B%0A%20%20%20%20if%28on%29%20self.off%20%3D%20true%3B%0A%20%20%20%20self.run%28%29%3B%0A%20%20%20%20if%28on%29%20%7B%20self.off%20%3D%20false%3B%20prefs.setBoolPref%28%22off%22%2C%20false%29%3B%20%7D%3B%0A%7D%29%3B%0A%0A%0A%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.off%20%3D%20%21this.off%3B%0A%0Aif%20%20%28this.off%29%20%7B%20this.image%20%3D%20this.imageOff%3B%20this.checked%20%3D%20false%3B%20%7D%0A%0Aif%20%28%21this.off%29%20%7B%20this.image%20%3D%20this.imageOn%3B%20if%20%28this.allowChecked%29%20this.checked%20%3D%20true%3B%20%7D%0A%0Athis.run%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%22%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%22%22%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%20+%20%22%20%22%20+%20%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%20+%20%22%5Cn%22%20+%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%26%26%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%7C%7C%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aif%20%28%20%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.length%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Areturn%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aarguments.callee%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.toString%28%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%28%28%29%3D%3E%20%7B%20%7D%29%28%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%28function%20%28%29%20%7B%20%7D%29%28%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Atry%20%7B%20%7D%20catch%28e%29%20%7B%20%20%7D%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AsetTimeout%28%28%29%3D%3E%20%7B%20%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%20%7D%2C%20500%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.getAttribute%28%27%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%27%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Adocument.getElementById%28%27%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%27%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Adocument.getAnonymousElementByAttribute%28tab%2C%20%22class%22%2C%20%22tab-icon-image%22%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aalert%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aalert%28%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aalert%28%221%22%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0ALOG%28%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0ALOG%28%221%22%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Afor%20%28var%20key%20in%20o%29%20%7B%20LOG%28%20key%20+%27%3A%27+%20o%5Bkey%5D%20%29%20%7D%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%5B%27%27%2C%27%27%5D.indexOf%28str%29%20%21%3D%3D%20-1%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0ALOG%28content.location.href%20+%20%22%20%22%20+%20e.target.localName%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0ACu.reportError%28%27%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%27%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AServices.console.logStringMessage%28%27CBtab%20%3D%20%27%20+%20e.target.linkedBrowser.currentURI.spec%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgBrowser.selectedTab%20%3D%20gBrowser.addTab%28%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgBrowser.loadOneTab%28URL%2C%20null%2C%20null%2C%20null%2C%20background%2C%20false%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Acustombuttons.alertSlide%28%22alert%22%2C%20%22%22%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Athis.tooltipText%3D%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgBrowser.currentURI%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Acontent.document.domain%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Acontent.window.location%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgBrowser.mCurrentTab%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgClipboard.read%28%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgClipboard.write%28%20content.location.href%20%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.localName%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AappendChild%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.parentNode%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aself._handlers.length%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.target%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.originalTarget%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AaddDestructor%28%28%29%3D%3E%20menu.remove%28%29%20%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aelement.appendChild%28%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.originalTarget.nodeName%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Adocument.popupNode%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.target.triggerNode%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.originalTarget.triggerNode%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E |
bunda1 > 10-02-2016 23:28:36 |
Запуск VBScript( Firefox17+ ) от 29.01.2017. ЛКМ => Запуск VBScript. Код кнопки и вкладки Код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0417%u0430%u043F%u0443%u0441%u043A%20VBScript%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALZSURBVBgZBcFLiFVlAADg7zzuPLzjzDjOMINMitIie5gF+UAkIZSgRQuXLZIWrY021dYIggJdJURElJsoqlWRYA9GshGFCNQeOjoTk6bjeOd5zzn/f07flzRNA459ObcHJ3cM9+1fq2prVa2qa+uh7mAZ9xCxiAV8iu9zgDqEvU9ODOx//dkxALBa1kNrZT202I2TZcVyEd28t+Lb66uHcTwHqEMYH+xJwNyDqJUk8oQsp7eV2tqbytJUK+OpyX5bhtojH07Pv58CxKoabOeEmuUy0al4UNDp0umysM5/KxG8eWbW/u1tj4+2xnKAWFUjG3tSqwWr3ShNEzmyjDQjk8gSaiRxyYUbiy7PduZzgFiW40P9mc56sFY00rSRpaQxkaVkGlmGJnNnqXDq7N9LOJYDhLLcNj7Y0uk2AjRkMZE2iGQaeZOqG2IrCmXY/s1rB+6nALEstk0M9VotG0lKliRSpEjw+YUjPjq3RxkKoSjEsoiQwvMnvusXQ09vK1VGUg1qjVrUqDWKUJoc3emVj3dbWeuEUJZLkEMoyrF2u0+aUEPD19OHNXVQ1kEZgy2bHrZzYq/l7qr766/m3VC0ub+SQyyLDXm7R56SpYlYJ0JdOvzYy2JTi3VUa8x35jwxecBKue7S7E+dXW+nI/nB42dGcWLPI1vdXmrcvBO1++iGUmxqtxb+UtVBqCtVrCwVy3Y/dNBKtZb+OjO1kMeyfA4vXLo6Y3E9t1I0qtjo6goxGB/cKtRRbGr/dmaNDEy4PHfe+etTd8vgSB6r6ukXD+3qf+ulfQDg6OnCJ7+8p6xL3VDaMfqofTuOuHhryrk/fl4tokPz7zRX8lhVM7fvdXx29qrhgX7Dg32G271OHv3dxg09entSvXnqmXcHJGm/6Ru/ad89dmrm9AdXIK9D+GLq4rXJqYvXtmEzNmMTNmGor6fV6utr6YxWfvjzR0P/vDGTh7GvAP4H2uh1wse2x/0AAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0417%u0430%u043F%u0443%u0441%u043A%20VBScript%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0421%u043F%u0440%u0430%u0432%u043A%u0430%20................%0Avar%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0Afile.append%28%22runVBScript.vbs%22%29%3B%0AcustombuttonsUtils.writeFile%28%20file.path%2C%20convertFromUnicode%28%22UTF-16%22%2C%20self.getAttribute%28%27Help%27%29%29%20%29%3B%0Afile.launch%28%29%3B%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20................%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BOption%20Explicit%0ADim%20objShell%0ASet%20objShell%20%3D%20CreateObject%28%22Shell.Application%22%29%0AobjShell.ToggleDesktop%0ASet%20objShell%20%3D%20Nothing%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Вкладка Код: Выделить код Код:// Запуск VBScript из вкладки Справка ................ var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("runVBScript.vbs"); custombuttonsUtils.writeFile( file.path, convertFromUnicode("UTF-16", self.getAttribute('Help')) ); file.launch(); // Конвертировать текст в юникод ................ function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; |
bunda1 > 21-02-2016 12:07:30 |
Автоматически добавлять выделенный текст в SearchBar( Firefox24+ ) от 21.02.2016. ЛКМ => Включить кнопку. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%20%u0410%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20SearchBar%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABcAAAAVCAYAAACt4nWrAAADQklEQVQ4ja3V/08adxzHcf+t/bT90HTLtmT7F5Ym/XUsy4Uu7mdKYiawudaq04DWjVoFxWgRrU5txDL5clKkIDVBVpE77j5wgPW45LkfTMgOf1gb98Pjt/fr+fntbkAIgdfrxel04nA4bszpdOL1ehFCMHDf7cbn81GtVrEs68aq1So+n4/7bjcDkiRRq9UwTZNms3ljpmlSq9WQJIkBh8OBZVnXjlRVJZFIMB9eZPr3IMG5efb399E07T8fsCwLh8NxFe92uzQajZ5qtcrCUoRYKkv8TGfzbZtQ7oyxyBaBQIBarWa779ftdu1xIQRCCBRFYSES4ZWic37Z5fTCJK29Y+20RfC14NHzQ6ZnHqPrem/T71pc13V0XSeZTLL0UqbSucToWpxemCS1dzwrGwRfCyZljeHAArlcrrfpZ4ubpkm9XqderxNaWiZaUik0LjluXpLSLtg+axE5aTKT05jMaDxYP2RlZaW36Weapj2uqiqqqvI4OEe4JNh+a7B71mLz7xbLJ02CeZ3fMnUmUnUebBUIh0K9Tb9rcUVRUBSFpwth/AenPC00WDhuMF8QzB5pTMp1Rv5S8Wc0RqJpVldXe5t+tnin06FUKlEqldjc3MQ7/5zxpMJEWmU8pTB6oOCNnzPyUuFRQmVoNEAymext+nU6HXu8WCxSLBbJ5/OMjY8zHM0wvHeOJ36OZ++chwmFX+M1PE/WGRwcZGpqio1YrLf7t2vxQqHQc3h4yMPRMYb8YX56JjO8cczPUZmhsRnu3XOSTqdZW5wl+90tTrbXbNtCoWCPt9tt8vm8zdHREbFYjIDfz9TkJIGAn52dHaanp4nMz/Bm6Q7WzJdc/vAJb/6M2rbtdtsez+Vy7yUWi7H/7ReYE59C/A4Ev8J0fkRpY7l3Y4u3Wi2y2ex7y+9s0HbegqnP4MU3MPc16o+3iS4tks1mabVa9rgsyx8k92KLzvcfw8RtrL27HKw/4Y9gEFmW7XHDMMhkMh/s1e4Wdefn7AZ/IRQKMTs7SyaTwTCMq7gkSZTLZVRVJZVK3ZiqqpTL5avvudvtxuPxUKlUMAzjxiqVCh6PB7fbzYAQApfLhSRJ/8s/VJIkXC4XQgj+AW9cSYbbZ7hEAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%3B%0A%0Avar%20s%20%3D%20%27CB.pasteIntoSearchBar%27%3B%0Acbu.isPref%28s%2C%20true%29%3B%0A%0AtoggleImage%28%29%3B%0Afunction%20toggleImage%28%29%20self.checked%20%3D%20cbu.getPrefs%28s%29%3B%20%20%20%20%20%20%20%20%20%20%20%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%0Afunction%20pasteIntoSearchBar%28e%29%20%7B%0A%20%20%20if%20%28%20e.button%20%7C%7C%20%21cbu.getPrefs%28s%29%20%29%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29%3B%20%20%20%20%0A%20%20%20if%20%28%20%21sel.isCollapsed%20%29%20BrowserSearch.searchBar._textbox.value%20%3D%20sel%3B%0A%7D%3B%0AaddEventListener%28%27mouseup%27%2C%20pasteIntoSearchBar%2C%20false%2C%20gBrowser%29%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this._handleClick =()=> cbu.setPrefs(s, !cbu.getPrefs(s)); var s = 'CB.pasteIntoSearchBar'; cbu.isPref(s, true); toggleImage(); function toggleImage() self.checked = cbu.getPrefs(s); gPrefService.addObserver(s, toggleImage, false); addDestructor(()=> gPrefService.removeObserver(s, toggleImage) ); function pasteIntoSearchBar(e) { if ( e.button || !cbu.getPrefs(s) ) return; var sel = document.commandDispatcher.focusedWindow.getSelection(); if ( !sel.isCollapsed ) BrowserSearch.searchBar._textbox.value = sel; }; addEventListener('mouseup', pasteIntoSearchBar, false, gBrowser); Дополнительно можно в инициализацию кнопки положить: Код: Выделить код Код:var box = BrowserSearch.searchBar._textbox; box.onmouseleave =()=> box.mo = true; box.onmouseover =()=> { box.mo = false; setTimeout(()=> !box.mo && box.childNodes[1].children[0].children[0].click(), 800); }; addDestructor(()=> box.onmouseover =()=> null ); тогда при удержании курсора на панели поиска будет автоматически открываться меню с поисковиками. Время удержания курсора на панели поиска => 800 можно менять как вам удобней. |
bunda1 > 21-02-2016 16:21:34 |
Запуск программы( Firefox24+ ) от 28.01.2017. ЛКМ => Запуск программы, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0417%u0430%u043F%u0443%u0441%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u044B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20e.button%20%3D%3D%200%20%26%26%20runApp%28%29%3B%20%20%20//%20%u041B%u041A%u041C%20%20%20%20%0A%20%20%20e.button%20%3D%3D%201%20%26%26%20setPath%28%29%3B%20%20//%20%u0421%u041A%u041C%20%0A%7D%3B%0A%0Avar%20s%20%3D%20%22CB%22%20+%20_id.slice%2820%29%20+%20%22.pathForApp%22%3B%0A%0AtoggleButtonData%28%29%3B%0Afunction%20toggleButtonData%28%29%20%7B%0A%20%20%20var%20path%20%3D%20getPath%28%29%3B%0A%20%20%20document.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20%22moz-icon%3A//file%3A//%22%20+%20path%3B%0A%20%20%20self.tooltipText%20%3D%20%22%u041B%3A%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%22%20+%20path.split%28%22%5C%5C%22%29.pop%28%29%20+%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5Cn%u0421%3A%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%20%5Cn%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%0A%7D%3B%20%20%20%20%20%20%20%20%20%0AgPrefService.addObserver%28s%2C%20toggleButtonData%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleButtonData%29%20%29%3B%0A%0Afunction%20runApp%28%29%20%7B%0A%20%20%20var%20arg%20%3D%20%5B%5D%3B%20//%20gClipboard.read%28%29%20%20content.location.href%20%20document.commandDispatcher.focusedWindow.getSelection%28%29%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20file.initWithPath%28%20getPath%28%29%20%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20arg%2C%20%28arg.length%29%29%3B%0A%7D%3B%0A%0Afunction%20setPath%28%29%20%7B%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.appendFilters%28%20fp.filterApps%20%29%3B%0A%20%20%20fp.init%28%20window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%22%2C%20fp.modeOpen%20%29%3B%0A%20%20%20fp.open%28%20result%20%3D%3E%20result%20%3D%3D%20fp.returnOK%20%26%26%20cbu.setPrefs%28s%2C%20convertFromUnicode%28%22UTF-8%22%2C%20fp.file.path%29%29%20%29%3B%20%0A%7D%3B%0A%0Afunction%20getPath%28%29%20%7B%20%0A%20%20%20try%20%7B%20return%20gPrefService.getComplexValue%28s%2C%20Ci.nsISupportsString%29.data%3B%20%7D%20%0A%20%20%20catch%28e%29%20%7B%20return%20%22%3F%3F%3F%3F%3F%3F%22%3B%20%7D%3B%0A%7D%3B%0A%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this.onclick =e=> { e.button == 0 && runApp(); // ЛКМ e.button == 1 && setPath(); // СКМ }; var s = "CB" + _id.slice(20) + ".pathForApp"; toggleButtonData(); function toggleButtonData() { var path = getPath(); document.getAnonymousNodes(self)[0].src = "moz-icon://file://" + path; self.tooltipText = "Л: Запустить " + path.split("\\").pop() + "\nС: Установить путь к программе \nП: CB Меню"; }; gPrefService.addObserver(s, toggleButtonData, false); addDestructor(()=> gPrefService.removeObserver(s, toggleButtonData) ); function runApp() { var arg = []; // gClipboard.read() content.location.href document.commandDispatcher.focusedWindow.getSelection() var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); file.initWithPath( getPath() ); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.run(false, arg, (arg.length)); }; function setPath() { var fp = window.makeFilePicker(); fp.appendFilters( fp.filterApps ); fp.init( window, "Укажите путь к программе", fp.modeOpen ); fp.open( result => result == fp.returnOK && cbu.setPrefs(s, convertFromUnicode("UTF-8", fp.file.path)) ); }; function getPath() { try { return gPrefService.getComplexValue(s, Ci.nsISupportsString).data; } catch(e) { return "??????"; }; }; function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; |
thrower > 13-03-2016 20:39:19 |
NewTabFromUrlBar (Firefox38+), от 07.03.2017. Автор кнопки: bunda1 >>> №9850. Кнопочка позволяет всё, вводимое в адресной строке, открывать по умолчанию в новой вкладке: закладки, ссылки, поисковые запросы... Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ENewTabFromUrlBar%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAR0lEQVQ4jWNgGDkgdrP/f4oNIGgITBE27L/G/r/3Kiv8hsRu9v8fvM4ZqwHB65z/+622JWwALgUkeQGXHF7NRNsyzA0YmgAA4kdZQXK1CCcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%2C%20%u043E%u0442%2007.03.2017.%20.................%0A%28%28%29%3D%3E%20%7B%0A%20%20%20var%20src%20%3D%20%22gURLBar.handleCommand%20%3D%20%22%20+%20gURLBar.handleCommand.toString%28%29%2C%0A%20%20%20%20%20%20%20res%20%3D%20src.replace%28%27altEnter%29%27%2C%20%27true%29%27%29.replace%28%27if%20%28isMouseEvent%29%27%2C%20%27if%20%28false%29%27%29.replace%28%27altEnter%20%3F%20%22tab%22%20%3A%20%22current%22%27%2C%20%27%22tab%22%27%29%3B%0A%20%20%20eval%28res%29%3B%0A%20%20%20addDestructor%28%28%29%3D%3E%20eval%28src%29%20%29%3B%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Открывать адрес из адресной строки в новой вкладке, от 07.03.2017. ................. (()=> { var src = "gURLBar.handleCommand = " + gURLBar.handleCommand.toString(), res = src.replace('altEnter)', 'true)').replace('if (isMouseEvent)', 'if (false)').replace('altEnter ? "tab" : "current"', '"tab"'); eval(res); addDestructor(()=> eval(src) ); })(); |
bunda1 > 19-03-2016 15:26:12 |
Переключить панель навигации( Firefox45+ ) от 19.03.2016. ЛКМ => переключить панель навигации, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043D%u0430%u0432%u0438%u0433%u0430%u0446%u0438%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTMvBTUxKwozLicMKCMcDBoUDQwXEQoMFxEKDBcSCgwXEgsMGBILDBgSCwwcFg8MLykhDDcyKgw3Mi0JNTQyBAAAAAA2My0GNjIsMDgwJVs2LSFqLSQZaiAXDGseFQprHRUJax4WCmseFgtqHxYLaiAWC2okGg9qNSwgajkwI2k4MShYNjMwKzU0MgU6MSYQOzAhdD4sE8Q6Jw7cNCIM3C8eCdwuHQjcLh4I3C8fCNwwHwncMh8I3DMgCNw0IQncOiYN3D4qD9s+LhjAOTIoajcyLQ0+MiIUPzAckT4nC+g3IAb/NiQP/zorGP86Khn/OioZ/zsrGf83JA//Mh0G/zMdBv81Hgb/Nx8G/z0kBv9BLBDkOzIlhTkzKxJAMyMVQDEelD8oDek5Iw3/dGle/7izrv++urb/vrq1/767tv9yZ1v/OSYU/zEbBv80HAf/OB8H/z8kCP9ELRLmPDIliDkzKxJBNCMVQzIelEQrD+k/KBH/kYd///Hw7//5+fn/+fn5//n5+f+Sh3z/Ri8b/zshCP8+Iwj/QSQJ/0grDP9KMhXmPjQmiDo0KxJDNSMVRTQelEkvEOlELRT/lYuC//b19P///////v7+//7+/v+Wi3//TDQd/0ImC/9HKQz/SisN/1ExD/9ONRbmQDUmiDs0KxJENSMVSDUelE4yEelMMhb/mY6E//b19P///////v7+//7+/v+ajID/Uzkg/0wtD/9RMBH/VDIS/1k2Ef9TNxfmQjYniDw1LBJGNiMVSjcflFU2EulXOBn/oJOG//b29P///////v7+//7+/v+ekIP/Wz4l/1UyE/9aNhX/XjkV/2E6Ev9YOhfmRDcniD02LBJJOSMVTzoflGE9FOlkPRT/bk4v/3phSP91YEr/d2VT/5SIfP+UhHb/fGRN/2lHJv9mPhf/a0AW/2xAE/9fPhfmRjgniD42LBJKOSMVUjsflGlBFOlxQxT/bkIa/2lCHf9fPh7/aVA3/7asov/i3tr/vrCj/4NjRf9uQxr/ckMW/3REFP9kQBfmSDkniD83LRJMOiMVVT0flHFFFOl9SRX/ekcX/3NDFv9pPhf/clEz/8Cypf/v6+j/yr2w/4ppS/9zRhz/eUcX/3tIFP9oQhjmSjooiEA3LRJNOyMVVz4flHdIFOmIThb/iE4Y/4JLGP96Rxj/fVMs/66Vfv/Lu6z/spuG/4toSP+CWDH/hlMl/4JMFf9sRBjmSzsoiEA4LRJOOyIVWT8elH1LFOmTVBb/llYa/5FTGf+MUBn/hk4a/4RQIP9+TiH/g1gx/66Te//h1sz/vp6A/41VHP9wRhjmSzsoiEA4LRJKOSIUVTwekXhHE+iPURP/lVUW/5BUF/+NUhf/ilEY/4dQGP+ATBf/g1Qk/6OCYf/ItaD/sIpl/4hRGP9rQxbkSTknhT83LRJDNyYQSjgjdGE/GMRxRRbbdEcW3G9DE9xuQhTcbUIU3GxDFdtoQBTcZkAX3W5NKN15XDvdd1Ms3GtDF9tZPRvAQTcqajo1Lw06NS0GPDUsMEQ3KFtJOCVqQzIeajYkEGozIg5qMiIOajMjD2oxIQ9rLR4NayweDmwvIhFsPC0da0M0I2lBNihYODQwKzY0MgUAAAAAODUvBTw1LQo9NSoMMiofDCMaDwwhGA0MIBgNDCAYDQweFgwMGxQKDBoTCgwbFQwMKyQbDDgwJww6NC0JNjQyBAAAAACAAEBBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQYAAQEE%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20setToolbarVisibility%28bar%2C%20bar.collapsed%29%3B%0A%20%20%20cbu.setPrefs%28%27CB.navBar.hidden%27%2C%20bar.collapsed%29%3B%0A%7D%3B%0Avar%20bar%20%3D%20document.getElementById%28%22nav-bar%22%29%3B%0Abar.collapsed%20%3D%20cbu.getPrefs%28%27CB.navBar.hidden%27%29%3B%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this._handleClick =()=> { setToolbarVisibility(bar, bar.collapsed); cbu.setPrefs('CB.navBar.hidden', bar.collapsed); }; var bar = document.getElementById("nav-bar"); bar.collapsed = cbu.getPrefs('CB.navBar.hidden'); |
turbot > 22-04-2016 06:21:18 |
Быстрое переключение параметров about:config (Проверялось на Firefox 24, 45, 48 и SeaMonkey 2.38 (спасибо negodnik)), от 07.03.2017. Позволяет быстро переключать параметры about:config через меню кнопки из заданного набора (для строковых(string) и целых(integer) параметров значение выбирается в подменю). С отображением текущих значений параметров. Прим.: В строковых параметрах необходимо экранировать обратный слеш ("\"), т.е, вместо одного \ - записывать два \\. Возможности: ЛКМ / Enter по пункту меню с логическим(boolean) параметром - переключает его значение с true на false и наоборот. Изменения (24.07.2016): 24.07.2016 Исправлено: Проблема с обратным слешем в строковых параметрах. Параметр вида C:\Downloads\TEST1 необходимо прописывать как C:\\Downloads\\TEST1 (т.е., два слеша вместо одного). Добавлено: Возможность задать accesskey - клавиши для быстрой навигации по меню. 05.05.2016 02.05.2016 01.05.2016 28.04.2016 25.04.2016 24.04.2016 23.04.2016 22.04.2016 Код кнопки, инициализации, иконка и стиль: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EQuick%20toggle%20for%20about%3Aconfig%20preferences%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0411%u044B%u0441%u0442%u0440%u043E%u0435%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20about%3Aconfig%20%u043E%u0442%2024.07.2016%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.openPopup%28this%2C%20%22after_start%22%29%3B%0A%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%0AmenuPopup.id%20%3D%20%27quick-aboutconfig-menupopup%27%3B%0A%0A//%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043F%u0440%u0438%20%u043D%u0435%u0441%u043E%u043E%u0442%u0432%u0435%u0442%u0441%u0442%u0432%u0438%u0435%20%u043B%u044E%u0431%u043E%u0433%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u0442%u0435%u043B%u044C%u0441%u043A%u043E%u043C%u0443%20%u043F%u0440%u0435%u0434%u043F%u043E%u0447%u0442%u0435%u043D%u0438%u044E%20%28%u0441%u043C.%20%u043D%u0438%u0436%u0435%29.%0A//%20%u0418%u043A%u043E%u043D%u043A%u0430%20%u043C%u0435%u043D%u044F%u0435%u0442%u0441%u044F%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u0438%u0438%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%20%u043B%u0438%u0431%u043E%20%u043F%u043E%u0441%u043B%u0435%20%u0435%u0433%u043E%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u044F.%0Avar%20s%20%3D%20%27CB.hasNotUserChoice%27%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20var%20val%20%3D%20custombuttons.getPrefs%28s%29%3B%0A%20%20self.image%20%3D%20val%0A%20%20%20%20%3F%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg%3D%3D%27%0A%20%20%20%20%3A%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAACXBIWXMAAABnAAAAZwHVKNQmAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTKJMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBA3y7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJAwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3xMw8BUMDVQYqg4jIKAX08EGIIUByaVEZhMXIwMDAoM2Qw7CDkY8xi/EskynTYmYR5i4WFpZGVibWNjYetmnsyuybOVw5bnIWcHFyLeV24n7E08KrwXuOr4xfnv+0QIWguuANoS5hO+EvIqtFU8TkxW6Jz5AIlxSXvCE1RzpBRk3mrexWuXp5LwUxhSeKm5SalENU1FR+qp5TW6JerRGsqaPFpvVIe5/ObN0qvSh9KwMZg3+Gj4yOG68xmWxaZZZs7mNhbqlkxWf12/qlzQ3bE3Y77Vc7zHWc6NTqXOVS4JruFuce7hHg6eXl6u3oY+dr7WfpbxFgEWgRZBlsHWIX6hTmFu4dERgZHhUfnR5TEFsZ1xzflzArcVnS5uSDKedT76W9S/+XKZClmG2S454bnZef31owq3Bj0YniByU/ygTLtStcKxOqaqpn1GytvVT3oYG/Ua/Jrzm/ZULrprYr7d87pbvsu5N7OnvX9V3t/zNRZZLP5JIp86aemPZphuxMz1mlsxfOOT/3z3ztBVELOxftXPxqqfQyn+V1KzaufLJaYo3P2sZ129a/2ai0KXLzxC0ntjFut9pRvHPtrhd7lPbG7Zu1/9pB4UOBh/uPnD3Gc9z7RPfJM6d5zvidnXDu0gXRixGX5lx+cFXlWtb19Te+3rK53Xzn1D2h+9EPljx8+9j8SePTM8/FXyS9XPfq9xuPt1PfPf5g+LHh0/kv8l/zv+3/IfAz6deWP2x/I/6t/v8fAATCIM0IpJTRAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAEOSURBVHjabJGtS0MBFMXPJojBMMPwC1nV6FCZoGj/ZVGYiIJDBOEFm3XFP2DFIAu6ZrAYBM0OREEUnN20ICI40OfbsTzYB48b7oF74J4PWUnDjMU4GSv5PEubCo/UuwjMs8FEjLOEPNCkRloWAyxb3GEOGWKRTSLeLFYwXyLFBeaGH8w7z/yyRZlvilR5YV+kuMYY04r3NpNEfBByaYksZUyDAoPsYELmmKJKjj0CS0QYU4rl3WLMeceRCBMItW7CMEd9LxbIcUqOXQJLFld9Iks9Ii0qPTYjAo5pscYJrxzIIs1SV1B5ivzRsFjFfHaiLrDOaIxHCLmnyRmp5LLytKnw1FNWH2XaYoyM9T8AOvnw3YUOg90AAAAASUVORK5CYII%3D%27%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AServices.prefs.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.prefs.removeObserver%28s%2C%20toggleImage%29%29%3B%0A%0A//%20nodeName%3A%20menuitem%20-%20%u0434%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%2C%20menu%20-%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29.%20menuseparator%20-%20%u0434%u043B%u044F%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044F.%0A//%20pref%20-%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%20about%3Aconfig.%0A//%20%u041F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u044B%20%u0438%u043C%u0435%u044E%u0449%u0438%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u043E%u0442%u043B%u0438%u0447%u043D%u044B%u0435%20%u043E%u0442%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0445%20-%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u044B%20%u0436%u0438%u0440%u043D%u044B%u043C%20%u0441%u0442%u0438%u043B%u0435%u043C%20%u0442%u0435%u043A%u0441%u0442%u0430.%0A//%20restart%20%28%u0437%u0430%u0434%u0430%u0432%u0430%u0442%u044C%20%u0441%20%u043F%u0443%u0441%u0442%u044B%u043C%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%u043C.%20%u0442.%u0435.%2C%20restart%3A%20%22%22%29%20-%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0432%u043E%u0437%u043C%u043E%u0436%u043D%u043E%u0441%u0442%u044C%20%u043F%u0435%u0440%u0435%u0437%u0430%u043F%u0443%u0441%u043A%u0430%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%0A//%20%28%u0441%20%u043F%u043E%u0434%u0442%u0432%u0435%u0440%u0436%u0434%u0435%u043D%u0438%u0435%u043C%20%u0432%20%u0434%u0438%u0430%u043B%u043E%u0433%u043E%u0432%u043E%u043C%20%u043E%u043A%u043D%u0435%29%20%u043F%u043E%u0441%u043B%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430.%0A//%20key%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20accesskey%20-%20%u043A%u043B%u0430%u0432%u0438%u0448%u0438%20%u0434%u043B%u044F%20%u0431%u044B%u0441%u0442%u0440%u043E%u0439%20%u043D%u0430%u0432%u0438%u0433%u0430%u0446%u0438%u0438%20%u043F%u043E%20%u043C%u0435%u043D%u044E.%0A//%20userChoice%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20%u043F%u0440%u0435%u0434%u043F%u043E%u0447%u0438%u0442%u0430%u0435%u043C%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0438%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0441%20%u043D%u0438%u043C%20%u043D%u0435%20%u0441%u043E%u0432%u043F%u0430%u0434%u0430%u0435%u0442%2C%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E/%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u043E%u043C%u0435%u0447%u0430%u044E%u0442%u0441%u044F%20%u043A%u0440%u0430%u0441%u043D%u044B%u043C%20%u0446%u0432%u0435%u0442%u043E%u043C.%0A//%20%u0422%u0430%u043A%u0436%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0440%u0435%u0434%u0443%u043F%u0440%u0435%u0436%u0434%u0430%u044E%u0449%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0434%u043B%u044F%20%u0442%u0430%u043A%u0438%u0445%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432.%20%u0421%u043C.%20%u0441%u0442%u0438%u043B%u044C%20%u0432%20%u043F%u043E%u0441%u0442%u0435%20%u043A%u043A%u043D%u043E%u043F%u043A%u0438.%0A//%20%u0410%20%u0442%u0430%u043A%u0436%u0435%20%u043C%u0435%u043D%u044F%u0435%u0442%u0441%u044F%20%u0438%u043A%u043E%u043D%u043A%u0430%20%u0441%u0430%u043C%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u0438%20%28%u0441%u043C.%20%u0432%u044B%u0448%u0435%29.%0A//%20strValues%20-%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u0438%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u043C%u043E%u0435%20%u0432%20%u043C%u0435%u043D%u044E%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F.%20%u0417%u0430%u0434%u0430%u0432%u0430%u0442%u044C%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432.%0A//%20%u0417%u0430%u0434%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u0432%u0438%u0434%u0435%3A%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%2C%2C%2Caccesskey%7C%7C%7C%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u04352%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u04352%2C%2C%2Caccesskey2%7C%7C%7C%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u04353%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u04353%20%u0438%20%u0442.%u0434.%20%28accesskey%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%u0441%u044F%20%u043E%u043F%u0446%u0438%u043E%u043D%u0430%u043B%u044C%u043D%u043E%29%0A//%20%u041F%u043E%u043B%u043D%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%u0445%2C%20%u043F%u0440%u0438%20%u043D%u0430%u0432%u0435%u0434%u0435%u043D%u0438%u0438%20%u043D%u0430%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E/%u043F%u0443%u043D%u043A%u0442%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E.%0A//%20%u0414%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20-%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0441%u0440%u0430%u0437%u0443%20%u043F%u043E%u0441%u043B%u0435%20%u0441%u0430%u043C%u043E%u0433%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%28%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20true%20-%20%u0442%u0430%u043A%u0436%u0435%20%u0441%u0442%u0430%u0432%u0438%u0442%20%u0433%u0430%u043B%u043E%u0447%u043A%u0443%20%u0434%u043B%u044F%20%u043D%u0435%u0433%u043E%29.%0A//%20%u041B%u041A%u041C%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20-%20%u043F%u0435%u0440%u043A%u043B%u044E%u0447%u0430%u0435%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u0434%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%2C%0A//%20%u043B%u044E%u0431%u0430%u044F%20%u043A%u043D%u043E%u043F%u043A%u0430%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u0432%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20%u044D%u0442%u043E%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432.%0A//%20%u041F%u041A%u041C%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044E%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20-%20%u0441%u0431%u0440%u0430%u0441%u044B%u0432%u0430%u0435%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%u0432%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u043E%u0435.%0A//%20%u041A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%3A%20Enter%20-%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430.%0A//%20%u0421%u043F%u0435%u0446%u043A%u043B%u0430%u0432%u0438%u0448%u0430%20%u0432%u044B%u0437%u043E%u0432%u0430%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%20/%20Shift+Enter%20-%20%u0441%u0431%u0440%u043E%u0441%20%u0432%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435.%0A//%20Alt%20+%20M%20-%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438.%20%28%u0421%u043E%u0447%u0435%u0442%u0430%u043D%u0438%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u0441%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0430%20%u0441%u0432%u043E%u0435.%20%u0421%u043C.%20%u0432%20%u043A%u043E%u043D%u0446%u0435%20%u043A%u043E%u0434%u0430%29%0A%5B%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.workers.enabled%22%2C%20key%3A%20%27w%27%2C%20userChoice%3A%20%22false%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.indexedDB.enabled%22%2C%20key%3A%20%27d%27%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.storage.enabled%22%2C%20key%3A%20%27s%27%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22javascript.enabled%22%2C%20key%3A%20%27j%27%2C%20userChoice%3A%20%22true%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menuseparator%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22general.useragent.override%22%2C%20key%3A%20%27u%27%2C%20userChoice%3A%20%22Mozilla/5.0%20%28X11%3B%20U%3B%20Linux%20x86_64%3B%20rv%3A48.0%29%20Gecko/20100101%20Firefox/48.0%22%2C%20strValues%3A%20%22Mozilla/5.0%20%28X11%3B%20U%3B%20Linux%20x86_64%3B%20rv%3A48.0%29%20Gecko/20100101%20Firefox/48.0%2C%2C%2CFirefox48/Linux%7C%7C%7CMozilla/5.0%20%28Windows%20NT%206.1%3B%20WOW64%3B%20rv%3A45.0%29%20Gecko/20100101%20Firefox/45.0%2C%2C%2CFirefox45/Windows%7C%7C%7C%2C%2C%2C%u041F%u0443%u0441%u0442%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22general.useragent.locale%22%2C%20key%3A%20%27l%27%2C%20restart%3A%20%22%22%2C%20strValues%3A%20%22en-US%2C%2C%2CEnglish%2C%2C%2Ce%7C%7C%7Cru%2C%2C%2C%u0420%u0443%u0441%u0441%u043A%u0438%u0439%2C%2C%2Cr%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22browser.display.document_color_use%22%2C%20key%3A%20%27c%27%2C%20userChoice%3A%20%220%22%2C%20strValues%3A%20%220%2C%2C%2CAutomatic%2C%2C%2C0%7C%7C%7C1%2C%2C%2CAlways%2C%2C%2C1%7C%7C%7C2%2C%2C%2CNever%2C%2C%2C2%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22CB.TEST%22%2C%20key%3A%20%27t%27%2C%20userChoice%3A%20%22C%3A%5C%5CDownloads%5C%5CTEST1%22%2C%20strValues%3A%20%22C%3A%5C%5CDownloads%5C%5CTEST1%2C%2C%2CTEST1%2C%2C%2C1%7C%7C%7CC%3A%5C%5CDownloads%5C%5CTEST2%2C%2C%2CTEST2%2C%2C%2C2%22%7D%0A%5D.forEach%28function%28m%29%20%7B%0A%20%20var%20mItem%20%3D%20document.createElement%28m.nodeName%29%3B%0A%20%20var%20browserRestart%20%3D%20%27%27%3B%0A%0A%20%20if%20%28%22restart%22%20in%20m%29%20browserRestart%20%3D%20%27%20if%20%28custombuttons.confirmBox%28null%2C%20%22Restart%3F%22%2C%20%22Yes%22%2C%20%22Cancel%22%29%29%20Services.startup.quit%28Services.startup.eAttemptQuit%20%7C%20Services.startup.eRestart%29%3B%27%3B%0A%0A%20%20if%20%28%22pref%22%20in%20m%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27closemenu%27%2C%20%27none%27%29%3B%0A%20%20%20%20mItem.setAttribute%28%27oncontextmenu%27%2C%20%27event.preventDefault%28%29%3B%20custombuttons.clearPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%3B%27%20+%20browserRestart%29%3B%0A%20%20%7D%0A%0A%20%20if%20%28%22key%22%20in%20m%29%20mItem.setAttribute%28%27accesskey%27%2C%20m.key%29%3B%0A%0A%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menuitem%22%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0A%20%20%20%20mItem.setAttribute%28%27oncommand%27%2C%20%27custombuttons.setPrefs%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%21custombuttons.getPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%29%3B%20if%20%28event.shiftKey%20%26%26%20event.keyCode%20%3D%3D%20event.DOM_VK_RETURN%29%20%7Bevent.preventDefault%28%29%3B%20custombuttons.clearPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%7D%3B%27%20+%20browserRestart%29%3B%0A%20%20%7D%0A%0A%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menu%22%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27class%27%2C%20%27menu-iconic%27%29%3B%0A%0A%20%20%20%20var%20subMenu%20%3D%20mItem.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%0A%20%20%20%20for%20%28var%20value%20of%20m.strValues.split%28%27%7C%7C%7C%27%29%29%20%7B%0A%20%20%20%20%20%20var%20submItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20var%20smVal%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B0%5D%3B%0A%20%20%20%20%20%20var%20smValConv%20%3D%20convertFromUnicode%28%22UTF-8%22%2C%20smVal%29%3B%0A%20%20%20%20%20%20var%20smName%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B1%5D%3B%0A%20%20%20%20%20%20var%20key%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B2%5D%3B%0A%0A%20%20%20%20%20%20key%20%26%26%20submItem.setAttribute%28%27accesskey%27%2C%20key%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27type%27%2C%20%27radio%27%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27label%27%2C%20smName%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27tooltiptext%27%2C%20smVal%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27closemenu%27%2C%20%27none%27%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27oncommand%27%2C%20%27try%7Bcustombuttons.setPrefs%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%22%27%20+%20smValConv.replace%28/%5C%5C/g%2C%20%27%5C%5C%5C%5C%27%29%20+%20%27%22%29%7D%20catch%28e%29%20%7BServices.prefs.setIntPref%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%22%27%20+%20smValConv%20+%20%27%22%29%7D%3B%27%20+%20browserRestart%29%3B%0A%0A%20%20%20%20%20%20subMenu.appendChild%28submItem%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20menuPopup.appendChild%28mItem%29%3B%0A%0A%20%20//%20%u041B%u0438%u0441%u0442%u0435%u043D%u0435%u0440%u044B%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u044E%u0449%u0438%u0435%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%0A%20%20//%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u0430%u0432%u043B%u0438%u0432%u0430%u044E%u0449%u0438%u0435%20%u0441%u043E%u043E%u0442%u0432%u0435%u0442%u0441%u0442%u0432%u0443%u044E%u0449%u0438%u0435%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%20%u0438%20%u0447%u0435%u043A%u0431%u043E%u043A%u0441%u044B%20%u0434%u043B%u044F%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0438%20%u043C%u0435%u043D%u044E%20%u0438%20%u043A%u043B%u0438%u043A%u0430%u0445%0A%20%20for%20%28var%20type%20of%20%5B%27command%27%2C%20%27popupshowing%27%2C%20%27contextmenu%27%5D%29%20%7B%0A%20%20%20%20addEventListener%28type%2C%20%28e%29%3D%3E%20%7B%0A%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%22pref%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20val%2C%20def%3B%0A%0A%20%20%20%20%20%20%20%20%20%20def%20%3D%20Services.prefs.prefHasUserValue%28m.pref%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20val%20%3D%20Services.prefs.getComplexValue%28m.pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28Services.prefs.getPrefType%28m.pref%29%20%3D%3D%2064%29%20val%20%3D%20custombuttons.getPrefs%28m.pref%29.toString%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20val%20%3D%20custombuttons.getPrefs%28m.pref%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20def%20%3F%20mItem.style.setProperty%28%27font-weight%27%2C%20%27bold%27%2C%20%27important%27%29%20%3A%20mItem.style.removeProperty%28%27font-weight%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28m.nodeName%20%3D%3D%3D%20%27menuitem%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27checked%27%2C%20val%29%3B%0A%20%20%20%20%20%20%20%20%20%20mItem.label%20%3D%20m.pref%20+%20%27%3B%27%20+%20val%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7Bvar%20usrChc%20%3D%20%28val.toString%28%29%20%3D%3D%3D%20m.userChoice%29%7D%20catch%28e%29%20%7BusrChc%20%3D%20false%7D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27user-choice%27%2C%20usrChc%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20usrChc%20%3F%20mItem.style.removeProperty%28%27color%27%29%20%3A%20mItem.style.setProperty%28%27color%27%2C%20%27orangered%27%2C%20%27important%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28subMenu%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20%28var%20smitem%20of%20subMenu.getElementsByTagName%28%27menuitem%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20smval%20%3D%20smitem.getAttribute%28%27tooltiptext%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20smitem.setAttribute%28%27checked%27%2C%20%28val%20%3D%3D%3D%20smval%29%20%3F%20true%20%3A%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menu%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20vname%3B%0A%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20vname%20%3D%20subMenu.getElementsByAttribute%28%27checked%27%2C%20%27true%27%29%5B0%5D.getAttribute%28%27label%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21Services.prefs.prefHasUserValue%28m.pref%29%29%20vname%20%3D%20%27Default%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20vname%20%3D%20%27Other%27%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27label%27%2C%20m.pref%20+%20%27%20-%20%27%20+%20vname%29%3B%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27tooltiptext%27%2C%20val%20%7C%7C%20%27This%20preferences%20has%20null%20value%20or%20does%20not%20exist.%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20smUsrChc%20%3D%20%28val%20%3D%3D%3D%20m.userChoice.toString%28%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27user-choice%27%2C%20smUsrChc%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20smUsrChc%20%3F%20mItem.style.removeProperty%28%27color%27%29%20%3A%20mItem.style.setProperty%28%27color%27%2C%20%27orangered%27%2C%20%27important%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20hasNotUserChoice%20%3D%20menuPopup.getElementsByAttribute%28%27user-choice%27%2C%20%27false%27%29%5B0%5D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20custombuttons.setPrefs%28s%2C%20hasNotUserChoice%20%3F%20true%20%3A%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%2C%200%29%0A%20%20%20%20%7D%2C%20false%2C%20menuPopup%29%0A%20%20%7D%0A%7D%29%3B%0A%0A//%20%u041B%u0438%u0441%u0442%u0435%u043D%u0435%u0440%20%u043F%u043E%u0437%u0432%u043E%u043B%u044F%u044E%u0449%u0438%u0439%20%u0441%u0431%u0440%u043E%u0441%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20%u0441%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20%u043F%u043E%20Shift%20+%20Enter%0A//%20%u0417%u0430%20%u043A%u043E%u0434%20%u0441%u043F%u0430%u0441%u0438%u0431%u043E%20Dumby%0AaddEventListener%28%22popupshown%22%2C%20%7B%0A%20%20handleEvent%3A%20function%28e%29%20%7B%0A%20%20%20%20this%5Be.type%5D%28e%29%3B%0A%20%20%7D%2C%0A%20%20popupshown%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.target%20%21%3D%20menuPopup%29%20return%3B%0A%20%20%20%20menuPopup.addEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20window.addEventListener%28%22keydown%22%2C%20this%2C%20true%29%3B%0A%20%20%7D%2C%0A%20%20popuphidden%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.target%20%21%3D%20menuPopup%29%20return%3B%0A%20%20%20%20menuPopup.removeEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20window.removeEventListener%28%22keydown%22%2C%20this%2C%20true%29%3B%0A%20%20%7D%2C%0A%20%20popupshowing%3A%20function%28e%29%20%7B%0A%20%20%20%20e.target.parentNode.removeEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%7D%2C%0A%20%20get%20old%28%29%20%7B%0A%20%20%20%20delete%20this.old%3B%0A%20%20%20%20this.e%20%3D%20new%20MouseEvent%28%22contextmenu%22%2C%20%7B%7D%29%3B%0A%20%20%20%20return%20this.old%20%3D%20parseInt%28Services.appinfo.platformVersion%29%20%3C%2025%3B%0A%20%20%7D%2C%0A%20%20get%20prop%28%29%20%7B%0A%20%20%20%20delete%20this.prop%3B%0A%20%20%20%20if%20%28%22key%22%20in%20KeyboardEvent.prototype%29%20this.prop%20%3D%20%22key%22%2C%20this.val%20%3D%20%22Enter%22%3B%0A%20%20%20%20else%20this.prop%20%3D%20%22keyCode%22%2C%20this.val%20%3D%20KeyboardEvent.DOM_VK_RETURN%3B%0A%20%20%20%20return%20this.prop%3B%0A%20%20%7D%2C%0A%20%20keydown%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28%21e.shiftKey%20%7C%7C%20e.ctrlKey%20%7C%7C%20e.altKey%20%7C%7C%20e%5Bthis.prop%5D%20%21%3D%20this.val%29%20return%3B%0A%20%20%20%20var%20target%20%3D%20menuPopup.querySelector%28%22menu%5B_moz-menuactive%5D%3Anot%28%5Bopen%5D%29%22%29%3B%0A%20%20%20%20if%20%28%21target%29%20return%3B%0A%0A%20%20%20%20this.old%20%3F%20target.addEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%20%3A%20e.stopPropagation%28%29%3B%0A%20%20%20%20target.dispatchEvent%28this.e%29%3B%0A%20%20%20%20menuPopup.dispatchEvent%28this.e%29%3B%0A%20%20%7D%0A%7D%2C%20false%2C%20menuPopup%29%3B%0A%0A//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u043E%20%u0441%u043E%u0447%u0435%u0442%u0430%u043D%u0438%u044E%20%u043A%u043B%u0430%u0432%u0438%u0448%20Alt%20+%20M%20%28%u043D%u0435%20%u0437%u0430%u0432%u0438%u0441%u0438%u0442%20%u043E%u0442%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0440%u0430%u0441%u043A%u043B%u0430%u0434%u043A%u0438%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u044B%29%0A//%20%u041F%u043E%u0441%u043C%u043E%u0442%u0440%u0435%u0442%u044C%20%u043A%u043E%u0434%u044B%20%u043A%u043B%u0430%u0432%u0438%u0448%20%u043C%u043E%u0436%u043D%u043E%20%u0437%u0434%u0435%u0441%u044C%3A%20https%3A//developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode%23Constants_for_keyCode_value%0AaddEventListener%28%27keyup%27%2C%20%28e%29%3D%3E%20%7B%0A%20%20if%20%28e.altKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20e.keyCode%20%3D%3D%2077%29%20%7B%0A%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%7D%0A%7D%2C%20false%2C%20window%29%3B%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20.............%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Быстрое переключение параметров about:config от 24.07.2016 this._handleClick =()=> menuPopup.openPopup(this, "after_start"); var menuPopup = self.appendChild(document.createElement("menupopup")); menuPopup.id = 'quick-aboutconfig-menupopup'; // Изменить иконку при несоответствие любого параметра пользовательскому предпочтению (см. ниже). // Иконка меняется только при изменеии параметров через меню кнопки, либо после его открытия. var s = 'CB.hasNotUserChoice'; function toggleImage() { var val = custombuttons.getPrefs(s); self.image = val ? 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg==' : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAACXBIWXMAAABnAAAAZwHVKNQmAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTKJMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBA3y7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJAwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3xMw8BUMDVQYqg4jIKAX08EGIIUByaVEZhMXIwMDAoM2Qw7CDkY8xi/EskynTYmYR5i4WFpZGVibWNjYetmnsyuybOVw5bnIWcHFyLeV24n7E08KrwXuOr4xfnv+0QIWguuANoS5hO+EvIqtFU8TkxW6Jz5AIlxSXvCE1RzpBRk3mrexWuXp5LwUxhSeKm5SalENU1FR+qp5TW6JerRGsqaPFpvVIe5/ObN0qvSh9KwMZg3+Gj4yOG68xmWxaZZZs7mNhbqlkxWf12/qlzQ3bE3Y77Vc7zHWc6NTqXOVS4JruFuce7hHg6eXl6u3oY+dr7WfpbxFgEWgRZBlsHWIX6hTmFu4dERgZHhUfnR5TEFsZ1xzflzArcVnS5uSDKedT76W9S/+XKZClmG2S454bnZef31owq3Bj0YniByU/ygTLtStcKxOqaqpn1GytvVT3oYG/Ua/Jrzm/ZULrprYr7d87pbvsu5N7OnvX9V3t/zNRZZLP5JIp86aemPZphuxMz1mlsxfOOT/3z3ztBVELOxftXPxqqfQyn+V1KzaufLJaYo3P2sZ129a/2ai0KXLzxC0ntjFut9pRvHPtrhd7lPbG7Zu1/9pB4UOBh/uPnD3Gc9z7RPfJM6d5zvidnXDu0gXRixGX5lx+cFXlWtb19Te+3rK53Xzn1D2h+9EPljx8+9j8SePTM8/FXyS9XPfq9xuPt1PfPf5g+LHh0/kv8l/zv+3/IfAz6deWP2x/I/6t/v8fAATCIM0IpJTRAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAEOSURBVHjabJGtS0MBFMXPJojBMMPwC1nV6FCZoGj/ZVGYiIJDBOEFm3XFP2DFIAu6ZrAYBM0OREEUnN20ICI40OfbsTzYB48b7oF74J4PWUnDjMU4GSv5PEubCo/UuwjMs8FEjLOEPNCkRloWAyxb3GEOGWKRTSLeLFYwXyLFBeaGH8w7z/yyRZlvilR5YV+kuMYY04r3NpNEfBByaYksZUyDAoPsYELmmKJKjj0CS0QYU4rl3WLMeceRCBMItW7CMEd9LxbIcUqOXQJLFld9Iks9Ii0qPTYjAo5pscYJrxzIIs1SV1B5ivzRsFjFfHaiLrDOaIxHCLmnyRmp5LLytKnw1FNWH2XaYoyM9T8AOvnw3YUOg90AAAAASUVORK5CYII='; }; toggleImage(); Services.prefs.addObserver(s, toggleImage, false); addDestructor(()=> Services.prefs.removeObserver(s, toggleImage)); // nodeName: menuitem - для логических(boolean) параметров, menu - для целых(integer) и строковых(string). menuseparator - для разделителя. // pref - параметр about:config. // Параметры имеющие значения отличные от дефолтных - выделены жирным стилем текста. // restart (задавать с пустым значением. т.е., restart: "") - добавляет возможность перезапуска браузера // (с подтверждением в диалоговом окне) после изменения параметра. // key - задает accesskey - клавиши для быстрой навигации по меню. // userChoice - задает предпочитаемое значение и если текущее значение с ним не совпадает, пункт меню/название меню помечаются красным цветом. // Также можно установить предупреждающую иконку для таких пунктов. См. стиль в посте ккнопки. // А также меняется иконка самой кнопки (см. выше). // strValues - значения и отображаемое в меню название значения. Задавать для целых(integer) и строковых(string) параметров. // Задается в виде: значение,,,название,,,accesskey|||значение2,,,название2,,,accesskey2|||значение3,,,название3 и т.д. (accesskey - задается опционально) // Полное значение отображается в подсказках, при наведении на название подменю/пункт подменю. // Для логических(boolean) - отображается сразу после самого параметра (значение true - также ставит галочку для него). // ЛКМ по пунктам меню - перключает значения для логических(boolean) параметров, // любая кнопка по пунктам в субменю - задает это значение для целых(integer) и строковых(string) параметров. // ПКМ по пунктам меню и названию субменю - сбрасывает значение параметра в дефолтное. // Клавиатура: Enter - переключение параметра. // Спецклавиша вызова контекстного меню / Shift+Enter - сброс в дефолтное значение. // Alt + M - открыть меню кнопки. (Сочетание можно сменить на свое. См. в конце кода) [ {nodeName: "menuitem", pref: "dom.workers.enabled", key: 'w', userChoice: "false"}, {nodeName: "menuitem", pref: "dom.indexedDB.enabled", key: 'd'}, {nodeName: "menuitem", pref: "dom.storage.enabled", key: 's'}, {nodeName: "menuitem", pref: "javascript.enabled", key: 'j', userChoice: "true"}, {nodeName: "menuseparator"}, {nodeName: "menu", pref: "general.useragent.override", key: 'u', userChoice: "Mozilla/5.0 (X11; U; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0", strValues: "Mozilla/5.0 (X11; U; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0,,,Firefox48/Linux|||Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0,,,Firefox45/Windows|||,,,Пустое значение"}, {nodeName: "menu", pref: "general.useragent.locale", key: 'l', restart: "", strValues: "en-US,,,English,,,e|||ru,,,Русский,,,r"}, {nodeName: "menu", pref: "browser.display.document_color_use", key: 'c', userChoice: "0", strValues: "0,,,Automatic,,,0|||1,,,Always,,,1|||2,,,Never,,,2"}, {nodeName: "menu", pref: "CB.TEST", key: 't', userChoice: "C:\\Downloads\\TEST1", strValues: "C:\\Downloads\\TEST1,,,TEST1,,,1|||C:\\Downloads\\TEST2,,,TEST2,,,2"} ].forEach(function(m) { var mItem = document.createElement(m.nodeName); var browserRestart = ''; if ("restart" in m) browserRestart = ' if (custombuttons.confirmBox(null, "Restart?", "Yes", "Cancel")) Services.startup.quit(Services.startup.eAttemptQuit | Services.startup.eRestart);'; if ("pref" in m) { mItem.setAttribute('closemenu', 'none'); mItem.setAttribute('oncontextmenu', 'event.preventDefault(); custombuttons.clearPrefs("' + m.pref + '");' + browserRestart); } if ("key" in m) mItem.setAttribute('accesskey', m.key); if (m.nodeName === "menuitem") { mItem.setAttribute('type', 'checkbox'); mItem.setAttribute('oncommand', 'custombuttons.setPrefs("' + m.pref + '", !custombuttons.getPrefs("' + m.pref + '")); if (event.shiftKey && event.keyCode == event.DOM_VK_RETURN) {event.preventDefault(); custombuttons.clearPrefs("' + m.pref + '")};' + browserRestart); } if (m.nodeName === "menu") { mItem.setAttribute('class', 'menu-iconic'); var subMenu = mItem.appendChild(document.createElement("menupopup")); for (var value of m.strValues.split('|||')) { var submItem = document.createElement("menuitem"); var smVal = value.split(',,,')[0]; var smValConv = convertFromUnicode("UTF-8", smVal); var smName = value.split(',,,')[1]; var key = value.split(',,,')[2]; key && submItem.setAttribute('accesskey', key); submItem.setAttribute('type', 'radio'); submItem.setAttribute('label', smName); submItem.setAttribute('tooltiptext', smVal); submItem.setAttribute('closemenu', 'none'); submItem.setAttribute('oncommand', 'try{custombuttons.setPrefs("' + m.pref + '", "' + smValConv.replace(/\\/g, '\\\\') + '")} catch(e) {Services.prefs.setIntPref("' + m.pref + '", "' + smValConv + '")};' + browserRestart); subMenu.appendChild(submItem); } } menuPopup.appendChild(mItem); // Листенеры отслеживающие переключение параметров // и устанавливающие соответствующие названия и чекбоксы для пунктов меню при открытии меню и кликах for (var type of ['command', 'popupshowing', 'contextmenu']) { addEventListener(type, (e)=> { setTimeout(()=> { if ("pref" in m) { var val, def; def = Services.prefs.prefHasUserValue(m.pref); try { val = Services.prefs.getComplexValue(m.pref, Ci.nsISupportsString).data; } catch(e) { if (Services.prefs.getPrefType(m.pref) == 64) val = custombuttons.getPrefs(m.pref).toString(); else val = custombuttons.getPrefs(m.pref); } def ? mItem.style.setProperty('font-weight', 'bold', 'important') : mItem.style.removeProperty('font-weight'); } if (m.nodeName === 'menuitem') { mItem.setAttribute('checked', val); mItem.label = m.pref + ';' + val; if ("userChoice" in m) { try {var usrChc = (val.toString() === m.userChoice)} catch(e) {usrChc = false}; mItem.setAttribute('user-choice', usrChc); usrChc ? mItem.style.removeProperty('color') : mItem.style.setProperty('color', 'orangered', 'important'); } } if (subMenu) { for (var smitem of subMenu.getElementsByTagName('menuitem')) { var smval = smitem.getAttribute('tooltiptext'); smitem.setAttribute('checked', (val === smval) ? true : false); } } if (m.nodeName === "menu") { var vname; try { vname = subMenu.getElementsByAttribute('checked', 'true')[0].getAttribute('label'); } catch(e) { if (!Services.prefs.prefHasUserValue(m.pref)) vname = 'Default'; else vname = 'Other'; } mItem.setAttribute('label', m.pref + ' - ' + vname); mItem.setAttribute('tooltiptext', val || 'This preferences has null value or does not exist.'); if ("userChoice" in m) { var smUsrChc = (val === m.userChoice.toString()); mItem.setAttribute('user-choice', smUsrChc); smUsrChc ? mItem.style.removeProperty('color') : mItem.style.setProperty('color', 'orangered', 'important'); } } if ("userChoice" in m) { var hasNotUserChoice = menuPopup.getElementsByAttribute('user-choice', 'false')[0]; custombuttons.setPrefs(s, hasNotUserChoice ? true : false); } }, 0) }, false, menuPopup) } }); // Листенер позволяющий сброс параметров с субменю по Shift + Enter // За код спасибо Dumby addEventListener("popupshown", { handleEvent: function(e) { this[e.type](e); }, popupshown: function(e) { if (e.target != menuPopup) return; menuPopup.addEventListener("popuphidden", this, false); window.addEventListener("keydown", this, true); }, popuphidden: function(e) { if (e.target != menuPopup) return; menuPopup.removeEventListener("popuphidden", this, false); window.removeEventListener("keydown", this, true); }, popupshowing: function(e) { e.target.parentNode.removeEventListener("popupshowing", this, false); e.preventDefault(); }, get old() { delete this.old; this.e = new MouseEvent("contextmenu", {}); return this.old = parseInt(Services.appinfo.platformVersion) < 25; }, get prop() { delete this.prop; if ("key" in KeyboardEvent.prototype) this.prop = "key", this.val = "Enter"; else this.prop = "keyCode", this.val = KeyboardEvent.DOM_VK_RETURN; return this.prop; }, keydown: function(e) { if (!e.shiftKey || e.ctrlKey || e.altKey || e[this.prop] != this.val) return; var target = menuPopup.querySelector("menu[_moz-menuactive]:not([open])"); if (!target) return; this.old ? target.addEventListener("popupshowing", this, false) : e.stopPropagation(); target.dispatchEvent(this.e); menuPopup.dispatchEvent(this.e); } }, false, menuPopup); // Открыть меню кнопки по сочетанию клавиш Alt + M (не зависит от текущей раскладки клавиатуры) // Посмотреть коды клавиш можно здесь: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Constants_for_keyCode_value addEventListener('keyup', (e)=> { if (e.altKey && !e.shiftKey && !e.ctrlKey && e.keyCode == 77) { e.preventDefault(); e.stopPropagation(); menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); } }, false, window); // Конвертировать текст в юникод ............. function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; Иконка (www.flaticon.com): Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAACXBIWXMAAABnAAAAZwHVKNQmAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTKJMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBA3y7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJAwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3xMw8BUMDVQYqg4jIKAX08EGIIUByaVEZhMXIwMDAoM2Qw7CDkY8xi/EskynTYmYR5i4WFpZGVibWNjYetmnsyuybOVw5bnIWcHFyLeV24n7E08KrwXuOr4xfnv+0QIWguuANoS5hO+EvIqtFU8TkxW6Jz5AIlxSXvCE1RzpBRk3mrexWuXp5LwUxhSeKm5SalENU1FR+qp5TW6JerRGsqaPFpvVIe5/ObN0qvSh9KwMZg3+Gj4yOG68xmWxaZZZs7mNhbqlkxWf12/qlzQ3bE3Y77Vc7zHWc6NTqXOVS4JruFuce7hHg6eXl6u3oY+dr7WfpbxFgEWgRZBlsHWIX6hTmFu4dERgZHhUfnR5TEFsZ1xzflzArcVnS5uSDKedT76W9S/+XKZClmG2S454bnZef31owq3Bj0YniByU/ygTLtStcKxOqaqpn1GytvVT3oYG/Ua/Jrzm/ZULrprYr7d87pbvsu5N7OnvX9V3t/zNRZZLP5JIp86aemPZphuxMz1mlsxfOOT/3z3ztBVELOxftXPxqqfQyn+V1KzaufLJaYo3P2sZ129a/2ai0KXLzxC0ntjFut9pRvHPtrhd7lPbG7Zu1/9pB4UOBh/uPnD3Gc9z7RPfJM6d5zvidnXDu0gXRixGX5lx+cFXlWtb19Te+3rK53Xzn1D2h+9EPljx8+9j8SePTM8/FXyS9XPfq9xuPt1PfPf5g+LHh0/kv8l/zv+3/IfAz6deWP2x/I/6t/v8fAATCIM0IpJTRAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAEOSURBVHjabJGtS0MBFMXPJojBMMPwC1nV6FCZoGj/ZVGYiIJDBOEFm3XFP2DFIAu6ZrAYBM0OREEUnN20ICI40OfbsTzYB48b7oF74J4PWUnDjMU4GSv5PEubCo/UuwjMs8FEjLOEPNCkRloWAyxb3GEOGWKRTSLeLFYwXyLFBeaGH8w7z/yyRZlvilR5YV+kuMYY04r3NpNEfBByaYksZUyDAoPsYELmmKJKjj0CS0QYU4rl3WLMeceRCBMItW7CMEd9LxbIcUqOXQJLFld9Iks9Ii0qPTYjAo5pscYJrxzIIs1SV1B5ivzRsFjFfHaiLrDOaIxHCLmnyRmp5LLytKnw1FNWH2XaYoyM9T8AOvnw3YUOg90AAAAASUVORK5CYII= Стиль для Stylish или userChrome.css, устанавливающий предупреждающую иконку параметрам, чьи значения отличаются от предпочитаемых: Выделить код Код:@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); @namespace html url("http://www.w3.org/1999/xhtml"); @namespace svg url(http://www.w3.org/2000/svg); @-moz-document url("chrome://browser/content/browser.xul") { #quick-aboutconfig-menupopup > menuitem[user-choice='false'] > .menu-iconic-text { background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABPklEQVQ4jY1TPUtDQRBcUiiWgYAQFPEVNq8RI9YhYGOf1jRaSYqXC3dzs72/wNpGGytBLKwFq1jZ21iKgqQMfjXP8LzchSxcc8zMztzuiUSqKIoVkoWqPqnqI8kjEanFsDPlvT8g+ayqP9VDcgSglSQ653KStyExEPlW1UsA2ZRojGmo6rmqfoUE733Pe9+LCE1IngGoi6rupToCqAOoz3G0LyIiJEcxgLW2aa1tJsgf3W536U/gMOEgA5AlBC6m79Dv95dJvoYg51zunMsTEXb/TYHkacRBC0Ar0v1mZoyDwWCd5Gcg0AHQiQjsRHeB5FUAfif5FpCvk8tUuhhXZr1qjGmQnJR3Y2PMRlKgdHFSidAG0K4s1vFcclk1VX2I5L5bhCwiIt77rSD7i7V2bWGBMsp2+ZXvh8PhZgr3C7/OboxlgwFtAAAAAElFTkSuQmCC') 0 center/auto no-repeat !important; -moz-padding-start: 1.65em !important; } #quick-aboutconfig-menupopup > menu[user-choice='false'] > .menu-iconic-left { list-style-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABPklEQVQ4jY1TPUtDQRBcUiiWgYAQFPEVNq8RI9YhYGOf1jRaSYqXC3dzs72/wNpGGytBLKwFq1jZ21iKgqQMfjXP8LzchSxcc8zMztzuiUSqKIoVkoWqPqnqI8kjEanFsDPlvT8g+ayqP9VDcgSglSQ653KStyExEPlW1UsA2ZRojGmo6rmqfoUE733Pe9+LCE1IngGoi6rupToCqAOoz3G0LyIiJEcxgLW2aa1tJsgf3W536U/gMOEgA5AlBC6m79Dv95dJvoYg51zunMsTEXb/TYHkacRBC0Ar0v1mZoyDwWCd5Gcg0AHQiQjsRHeB5FUAfif5FpCvk8tUuhhXZr1qjGmQnJR3Y2PMRlKgdHFSidAG0K4s1vFcclk1VX2I5L5bhCwiIt77rSD7i7V2bWGBMsp2+ZXvh8PhZgr3C7/OboxlgwFtAAAAAElFTkSuQmCC') !important; -moz-image-region: auto!important; } } Код мой, с активным подглядыванием в кнопки (и помощью) bunda1, Dumby и okkamas_knife, которым большое от меня спасибо. |
bunda1 > 24-04-2016 12:48:02 |
GrabScroll( Firefox24+ ) от 24.04.2016. ЛКМ => Включить / выключить перетаскивание страницы. Скриншот меню с настройками кнопки Код кнопки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EGrabScroll%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAawBrAGsept3cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAeElEQVR42pVSWw7AIAwC4209T8/LPmq6xk1T+Wwh0AfHGPjAzAD8tvqXZGaSAJD0Vlb2YC8kRxRD01CGR+hhSlKSpMUkRyBZdfBs0yHGDZOFlME82Y70snOkMzV21TxJUTPXmjUlQQVxu5bvcOdw0Gxfo+Jz8UuOB3pnSTiV10R3AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20GrabScroll.toggle%28%29%3B%0A%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20/%20%u0432%u044B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%u043C%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%5Cn%u0414%u041F%3A%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20...............%u0418%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u0442%u044C%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0443%u044E%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0443%0Avar%20array%20%3D%20%5B%0A%20%20%20%20%7B%20label%3A%20%27%u0412%u044B%u0431%u0440%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%27%2C%20func%3A%20%27GrabScroll.button%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0412%u044B%u0431%u0440%u0430%u0442%u044C%20%u043D%u0430%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0438%20%u0441%u043A%u043E%u0440%u043E%u0441%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%27%2C%20func%3A%20%27GrabScroll.moverate%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0432%u0440%u0435%u043C%u044F%20%u043E%u0442%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%20%u043F%u0440%u0438%20%u0431%u0435%u0437%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0438%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%27%2C%20func%3A%20%27GrabScroll.threshold%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20separator%3A%20%27%27%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0418%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u0442%u044C%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0443%u044E%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0443%20%u043F%u0440%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%27%2C%20pref%3A%20%27grabScroll.enableinertia%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0441%u043A%u043E%u0440%u043E%u0441%u0442%u044C%20%u043F%u0440%u0438%20%u043A%u043E%u0442%u043E%u0440%u043E%u0439%20%u043F%u043E%u044F%u0432%u043B%u044F%u0435%u0442%u0441%u044F%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0430%u044F%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0430%27%2C%20func%3A%20%27GrabScroll.inertiaThreshold%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0434%u043B%u0438%u043D%u0443%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u043E%u0439%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0438%27%2C%20func%3A%20%27GrabScroll.inertiarate%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20separator%3A%20%27%27%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0430%20%u0441%u0441%u044B%u043B%u043A%u0430%u0445%27%2C%20pref%3A%20%27grabScroll.clickable%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0430%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%u0445%27%2C%20pref%3A%20%27grabScroll.notimage%27%20%7D%2C%0A%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28%20document.createElement%28%22menupopup%22%29%20%29%3B%0Aarray.forEach%28m%3D%3E%20%7B%0A%20%20%20if%20%28%22separator%22%20in%20m%29%20%7B%20menuPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%20%20%20if%20%28%22pref%22%20in%20m%29%20%7B%20%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%27checked%27%2C%20cbu.getPrefs%28m.pref%29%20%29%3B%0A%20%20%20%20%20%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20cbu.setPrefs%28m.pref%2C%20%21cbu.getPrefs%28m.pref%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20else%20mItem.onclick%20%3D%28%29%3D%3E%20eval%28m.func%29%3B%0A%20%20%20menuPopup.appendChild%28mItem%29%3B%0A%7D%29%3B%0AmenuPopup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0Avar%20GrabScroll%20%3D%20%7B%0A%20%20TOLERANCE%20%20%20%20%20%20%20%20%20%3A3%2C%0A%20%20TOLERANCE_WHEN_NO_H_SCROLL%20%3A%205%2C%0A%20%20CANCEL_WHEN_SELECTION%3A%20%20%20%20%20%20%20true%2C%0A%20%20CURSOR%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22-moz-grab%22%2C%20//%20none%0A%20%20%0A%20%20MOUSEBUTTON%3A%20%20%20%20%20%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.button%22%29%20%7C%7C%200%2C%0A%20%20MOVERATE%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.moverate%22%29%20%7C%7C%20-1%2C%0A%20%20TIMER%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.timer%22%29%20%7C%7C%20500%2C%0A%20%20INERTIATHRESHOLD%3A%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.inertiathreshold%22%29%20%7C%7C%2080%2C%0A%20%20INERTIARATE%3A%20%20%20%20%20%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.inertiarate%22%29%20%7C%7C%2050%2C%0A%20%20IGNOREURL%3A%20%20%20%20%20%20%20%20%20%20%20%20%20self.getAttribute%28%27Help%27%29.split%28%27%5Cn%27%29.filter%28%28url%29%3D%3E%20/%5CS/.test%28url%29%29.map%28%28url%29%3D%3E%20url.trim%28%29%29%2C%20%20%20%20%20%20%20%0A%0A%20%20mStatus%3A%200%2C%20%0A%20%20mLastX%3A%200%2C%0A%20%20mLastY%3A%200%2C%0A%20%20mCursor%3A%20null%2C%0A%20%20mCursorElement%3A%20null%2C%0A%20%20_target%3A%20null%2C%0A%20%20_target2%3A%20null%2C%0A%20%20_isImage%3Afalse%2C%0A%20%20_timer%3A0%2C%0A%20%20_ctimer%3A0%2C%0A%20%20_mtimer%3A%20false%2C%0A%20%20cScroll%3Afalse%2C%0A%20%20cSpeedX%3A0%2C%0A%20%20cSpeedY%3A0%2C%0A%20%20_doc%3Anull%2C%0A%20%20_MOVERATEpZoom%3A1%2C%0A%20%20_window%3A%20null%2C%0A%20%20%20%20%20%20%0A%20%20initGrabScroll%3A%20function%28%29%20%7B%0A%20%20%20%20var%20curentBrowserVersion%20%3D%20Services.appinfo.platformVersion%3B%20//%2731.*%27%0A%20%20%20%20var%20compareResult%20%3D%20Services.vc.compare%28curentBrowserVersion%2C%20%2746.*%27%29%3B%0A%20%20%20%20this.Bug1209100%20%3D%20%28compareResult%20%3C%200%29%20%3F%2010%20%3A%201%3B%0A%20%20%20%20%0A%20%20%20%20if%20%28%20GrabScroll.activeBrowser%28%29.mPanelContainer%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20this._window%20%3D%20GrabScroll.activeBrowser%28%29.mPanelContainer%3B%0A%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20else%20this._window%20%3D%20document.getElementById%28%27content%27%29%3B%0A%0A%20%20%20%20for%28%20var%20aURL%20in%20this.IGNOREURL%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20if%20%28%20this.IGNOREURL%5BaURL%5D%20%3D%3D%3D%20%27%27%20%29%20continue%3B%0A%20%20%20%20%20%20%20%20%20this.IGNOREURL%5BaURL%5D%20%3D%20this.convert2RegExp%28this.IGNOREURL%5BaURL%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20this._window.setCapture%28%29%3B%0A%20%20%20%20addEventListener%28%22mousedown%22%2C%20this%2C%20true%2C%20this._window%29%3B%0A%20%20%20%20addEventListener%28%22click%22%2C%20this%2C%20true%2C%20this._window%29%3B%0A%20%20%20%20addEventListener%28%22mouseup%22%2C%20this%2C%20true%2C%20this._window%29%3B%0A%20%20%20%20addEventListener%28%27pagehide%27%2C%20this%2C%20false%2C%20gBrowser%29%3B%0A%20%20%20%20%0A%20%20%20%20this.setIcon%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20activeBrowser%3A%20function%28%29%20%7B%0A%20%20%20%20return%20%28%27SplitBrowser%27%20in%20window%20%3F%20SplitBrowser.activeBrowser%20%3A%20null%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%20gBrowser%3B%0A%20%20%7D%2C%0A%0A%20%20handleEvent%3A%20function%28e%29%20%7B%0A%20%20%20%20e%20%3D%20new%20XPCNativeWrapper%28e%29%3B%0A%20%20%20%20switch%28e.type%29%20%7B%0A%20%20%20%20%20%20case%20%22mousedown%22%3A%0A%20%20%20%20%20%20%20%20if%20%28%20this.cScroll%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20clearTimeout%28this.cScroll%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.cSpeedX%20%3D%20this.cSpeedY%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28%20cbu.getPrefs%28%22grabScroll.enable%22%29%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.altKey%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.grabStart%28e%29%3B%0A%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%20%22mousemove%22%3A%0A%20%20%20%20%20%20%20%20this.mousemove%28e%29%3B%20break%3B%0A%20%20%20%20%20%20case%20%22click%22%3A%0A%20%20%20%20%20%20%20%20this.click%28e%29%3B%20break%3B%0A%20%20%20%20%20%20case%20%22mouseup%22%3A%0A%20%20%20%20%20%20%20%20this.mouseup%28e%29%3B%20break%3B%0A%20%20%20%20%20%20case%20%27pagehide%27%3A%0A%20%20%20%20%20%20%20%20this._doc%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this.mCursorElement%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this._target%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this._target2%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this._isImage%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this.NS%20%3D%20this.EW%20%3D%20this.NSEW%20%3D%20null%3B%0A%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20grabStart%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28this.mStatus%20%3D%3D%203%29%0A%20%20%20%20%20%20this.mStatus%20%3D%200%3B%0A%0A%20%20%20%20if%20%28this.MOUSEBUTTON%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20if%20%28Math.abs%28this.mLastX%20-%20e.screenX%29%20%3C%205%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Math.abs%28this.mLastY%20-%20e.screenY%29%20%3C%205%20%29%0A%20%20%20%20%20%20%20%20return%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20doc%20%3D%20e.originalTarget.ownerDocument%3B%0A%20%20%20%20if%20%28%21doc%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20if%20%28doc.contentType%20%3D%3D%20%27application/vnd.mozilla.xul+xml%27%29%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20this._doc%20%3D%20doc%3B%0A%0A%20%20%20%20if%20%28e.button%20%3D%3D%20this.MOUSEBUTTON%20%26%26%20this.mStatus%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20if%20%28this.CANCEL_WHEN_SELECTION%20%26%26%20this.MOUSEBUTTON%20%3D%3D%200%20%26%26%20doc.defaultView.getSelection%28%29%20%21%3D%20%22%22%29%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20this._target%20%3D%20e.originalTarget%3B%0A%0A%20%20%20%20%20%20if%20%28/%5E%28html%7Cbody%29%24/.test%28this._target.localName.toLowerCase%28%29%29%20%7C%7C%20this._target.clientHeight%20%3E%2030000%29%0A%20%20%20%20%20%20%20%20this._target2%20%3D%20null%3B%0A%20%20%20%20%20%20else%20if%20%28/div/.test%28this._target.localName.toLowerCase%28%29%29%20%26%26%20this._target.clientHeight%20%3E%201000%29%0A%20%20%20%20%20%20%20%20this._target2%20%3D%20null%3B%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20this._target2%20%3D%20this._target%3B%0A%0A%20%20%20%20%20%20for%20%28aURL%20in%20this.IGNOREURL%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28this.IGNOREURL%5BaURL%5D%20%3D%3D%3D%20%27%27%29continue%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28doc.documentURI.match%28this.IGNOREURL%5BaURL%5D%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20LOG%28this.IGNOREURL%5BaURL%5D+%27%5Cn%27+ex%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28this.isParentEditableNode%28this._target%29%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20if%20%28this.isParentDraggableNode%28this._target%29%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20if%20%28this.isIgnore%28this._target%29%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20if%20%28this.isVideoControl%28e.target%29%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20if%20%28this.isParentClickableNode%28this._target%29%29%7B%0A%20%20%20%20%20%20%20%20if%20%28cbu.getPrefs%28%22grabScroll.clickable%22%29%29%0A%09return%3B%0A%20%20%20%20%20%20%20%20if%20%28%21%28%27linkDragSelection%27%20in%20window%29%29%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20this._isImage%20%3D%20this.isImage%28e%29%3B%0A%20%20%20%20%20%20if%20%28this._isImage%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28cbu.getPrefs%28%22grabScroll.notimage%22%29%29%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20var%20target%20%3D%20this._target%3B%0A%20%20%20%20%20%20while%20%28target%29%7B%0A%20%20%20%20%20%20%20%20if%20%28%22getAttribute%22%20in%20target%20%26%26%20target.getAttribute%28%22draggable%22%29%20%3D%3D%20%22true%22%29%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20style%20%3D%20this._doc.defaultView.getComputedStyle%28target%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28/resize%7Cmove%7Call-scroll%7Ccrosshair/.test%28style.getPropertyValue%28%22cursor%22%29%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20else%20if%20%28/resize%7Cmove%7Call-scroll%7Ccrosshair/.test%28style.getPropertyValue%28%22auto%22%29%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%7D%0A%20%20%20%20%20%20%20%20target%20%3D%20target.parentNode%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28this.MOUSEBUTTON%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20this._timer%20%3D%20new%20Date%28%29.getTime%28%29%3B%0A%20%20%20%20%20%20this.mLastX%20%3D%20e.screenX%3B%0A%20%20%20%20%20%20this.mLastY%20%3D%20e.screenY%3B%0A%20%20%20%20%20%20this.mStatus%20%3D%201%3B%0A%20%20%20%20%20%20this._MOVERATEpZoom%20%3D%20%20this.MOVERATE%20/%20%28ZoomManager.useFullZoom%20%3F%20ZoomManager.zoom%20%3A%201%29%3B%0A%0A%20%20%20%20%20%20%5Bthis.NS%2C%20this.EW%2C%20this.NSEW%5D%20%3D%20this.getScrollView%28e%29%3B%0A%20%20%20%20%20%20this._window.addEventListener%28%22mousemove%22%2C%20this%2C%20true%29%3B%0A%20%20%20%20%20%20this.setCursor%28this._target2%2C%20this.CURSOR%29%3B%0A%20%20%20%20%20%20this.resetCursorWithTimer%28this._target2%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20adjustedTimer%3A%20function%28%29%7B%0A%20%20%20%20var%20magTimer%20%3D%20this.TIMER%3B%0A%20%20%20%20return%20magTimer%3B%0A%20%20%7D%2C%0A%0A%20%20grabFinish%3A%20%20function%28%29%20%7B%0A%20%20%20%20this.resetCursorTimer%28%29%3B%0A%20%20%20%20this.resetCursor%28%29%3B%0A%0A%20%20%20%20this._window.removeEventListener%28%22mousemove%22%2C%20this%2C%20true%29%3B%0A%20%20%20%20var%20selCon%20%3D%20this.getSelconForDoc%28this._doc%29%3B%0A%20%20%20%20if%20%28selCon%29%0A%20%20%20%20%20%20selCon.setDisplaySelection%28selCon.SELECTION_ON%29%3B%0A%20%20%7D%2C%0A%0A%20%20mousemove%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28this.mStatus%20%3D%3D%202%20%7C%7C%20this.mStatus%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20var%20x%20%3D%20e.screenX%3B%0A%20%20%20%20%20%20var%20y%20%3D%20e.screenY%3B%0A%20%20%20%20%20%20var%20doc%20%3D%20e.originalTarget.ownerDocument%3B%0A%0A%20%20%20%20%20%20if%20%28this.mStatus%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21this._isImage%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%28new%20Date%28%29.getTime%28%29%20-%20this._timer%29%20%3E%20this.adjustedTimer%28%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20this.mStatus%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28Math.abs%28x-this.mLastX%29%20%3C%20this.TOLERANCE_WHEN_NO_H_SCROLL%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20movingh%20%3D%20Math.abs%28x-this.mLastX%29%20%3E%20Math.abs%28y-this.mLastY%29%20*%2050%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21this._isImage%20%26%26%20this.MOUSEBUTTON%20%3D%3D%200%20%20%26%26%20this.isText%28e%29%20%20%26%26%20movingh%20%26%26%20%21this.EW%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.mStatus%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%28Math.abs%28x%20-%20this.mLastX%29%20+%20Math.abs%28y%20-%20this.mLastY%29%20%3C%20this.TOLERANCE%29%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28this.MOUSEBUTTON%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20selCon%20%3D%20this.getSelconForDoc%28this._doc%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28selCon%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20selCon.getSelection%28selCon.SELECTION_NORMAL%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20selection.removeAllRanges%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20selCon.setDisplaySelection%28selCon.SELECTION_OFF%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%22ucjsMouseGestures%22%20in%20window%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20ucjsMouseGestures._isMouseDownR%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20this.mLastX%20%3D%20x%20-%20%28x%20-%20this.mLastX%29%20/%2010%3B%0A%20%20%20%20%20%20%20%20this.mLastY%20%3D%20y%20-%20%28y%20-%20this.mLastY%29%20/%2010%3B%0A%20%20%20%20%20%20%20%20this.mStatus%20%3D%202%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28this._ctimer%29%0A%20%20%20%20%20%20%20%20this.resetCursorTimer%28%29%3B%0A%0A%20%20%20%20%20%20if%20%28this._mtimer%29%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20this.cSpeedX%20%3D%20this._MOVERATEpZoom%20*%20%28x%20-%20this.mLastX%29%3B%0A%20%20%20%20%20%20this.cSpeedY%20%3D%20this._MOVERATEpZoom%20*%20%28y%20-%20this.mLastY%29%3B%0A%0A%20%20%20%20%20%20if%20%28this.scroll%28e%29%29%20%7B%0A%20%20%20%20%20%20%20%20this.mLastX%20%3D%20x%3B%0A%20%20%20%20%20%20%20%20this.mLastY%20%3D%20y%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20getSelconForDoc%3A%20function%20getSelconForDoc%28doc%29%7B%0A%20%20%20%20if%20%28%21doc%29%0A%20%20%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20var%20aFrame%20%3D%20doc.defaultView%3B%0A%20%20%20%20if%20%28%21aFrame%29%0A%20%20%20%20%20return%20null%3B%0A%20%20%20%20var%20docShell%20%3D%20this.getDocShellForFrame%28aFrame%29%3B%0A%20%20%20%20var%20selCon%20%3D%20docShell.QueryInterface%28Ci.nsIInterfaceRequestor%29.getInterface%28Ci.nsISelectionDisplay%29.QueryInterface%28Ci.nsISelectionController%29%3B%0A%20%20%20%20return%20selCon%3B%0A%20%20%7D%2C%0A%0A%20%20getDocShellForFrame%3A%20function%20getDocShellForFrame%28aFrame%29%7B%0A%20%20%20%20return%20aFrame.QueryInterface%28Ci.nsIInterfaceRequestor%29.getInterface%28Ci.nsIWebNavigation%29.QueryInterface%28Ci.nsIDocShell%29%3B%0A%20%20%7D%2C%0A%0A%20%20click%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.button%20%3D%3D%20this.MOUSEBUTTON%20%26%26%20this.mStatus%20%3D%3D%202%29%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28e.button%20%3D%3D%200%20%26%26%20this.mStatus%20%3E%3D%202%20%26%26%20this._doc%20instanceof%20Ci.nsIImageDocument%29%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20this.mStatus%20%3D%200%3B%0A%20%20%7D%2C%0A%0A%20%20mouseup%3A%20%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.button%20%3D%3D%20this.MOUSEBUTTON%20%26%26%20this.mStatus%20%3E%201%29%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%0A%20%20%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20%20%20if%20%28this.mStatus%20%3D%3D%202%29%0A%20%20%20%20%20%20%20%20this.mStatus%20%3D%203%3B%0A%0A%20%20%20%20%20%20if%20%28cbu.getPrefs%28%22grabScroll.enableinertia%22%29%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%28Math.abs%28this.cSpeedX%29%20%3E%20this.INERTIATHRESHOLD%20%7C%7C%20Math.abs%28this.cSpeedY%29%20%3E%20this.INERTIATHRESHOLD%20%29%29%7B%0A%20%20%20%20%20%20%20%20if%20%28this.cScroll%29%0A%20%20%20%20%20%20%20%20%20%20clearTimeout%28this.cScroll%29%3B%0A%20%20%20%20%20%20%20%20var%20v%20%3D%20this.INERTIARATE%3B%0A%20%20%20%20%20%20%20%20if%20%28this.cSpeedX%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20this.cSpeedX%20%3D%20Math.min%28this.cSpeedX%2C%20v%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20this.cSpeedX%20%3D%20Math.max%28this.cSpeedX%2C%20-v%29%3B%0A%20%20%20%20%20%20%20%20if%20%28this.cSpeedY%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20this.cSpeedY%20%3D%20Math.min%28this.cSpeedY%2C%20v%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20this.cSpeedY%20%3D%20Math.max%28this.cSpeedY%2C%20-v%29%3B%0A%0A%20%20%20%20%20%20%20%20var%20Start%3B%0A%20%20%20%20%20%20%20%20function%20scrolling%28e%2C%20self%29%7B%0A%20%20%20%20%20%20%20%20%20%20Start%20%3D%20new%20Date%28%29.getTime%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20self.scroll2%28e%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20self.cScroll%20%3D%20setTimeout%28arguments.callee%2C%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%20Math.max%2825%20-%20%28%28new%20Date%28%29%29.getTime%28%29-Start%29%2C%200%29%2C%20e%2C%20self%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20this.scroll2%28e%29%3B%0A%20%20%20%20%20%20%20%20scrolling%28e%2C%20this%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20if%20%28e.button%20%3D%3D%20this.MOUSEBUTTON%20%26%26%20this.mStatus%20%3D%3D%201%29%7B%0A%20%20%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20%20%20this.mStatus%20%3D%200%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20scroll2%3A%20function%28e%29%7B%0A%20%20%20%20var%20ay%20%3D%20Math.abs%28this.cSpeedY%29%3B%0A%20%20%20%20var%20ax%20%3D%20Math.abs%28this.cSpeedX%29%3B%0A%20%20%20%20if%20%28ay%20%3C%2010%20%26%26%20ax%20%20%3C%2010%29%7B%0A%20%20%20%20%20%20%20clearTimeout%28this.cScroll%29%3B%0A%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20this.scroll%28e%29%3B%0A%20%20%20%20if%20%20%20%20%20%20%28ax%20%3E%3D%20100%29%20this.cSpeedX%20%3D%20this.cSpeedX%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ax%20%3C%20100%29%20this.cSpeedX%20%3D%20this.cSpeedX%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ax%20%3C%2020%29%20this.cSpeedX%20%3D%20this.cSpeedX%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ax%20%3C%2010%29%20%20this.cSpeedX%20%3D%200%3B%0A%0A%20%20%20%20if%20%20%20%20%20%20%28ay%20%3E%3D%20100%29%20this.cSpeedY%20%3D%20this.cSpeedY%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ay%20%3C%20100%29%20this.cSpeedY%20%3D%20this.cSpeedY%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ay%20%3C%2020%29%20this.cSpeedY%20%3D%20this.cSpeedY%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ay%20%3C%2010%29%20this.cSpeedY%20%3D%200%3B%0A%20%20%7D%2C%0A%0A%20%20scroll%3A%20function%28e%29%7B%0A%20%20%20%20var%20minScroll%20%3D%20this.Bug1209100%3B%20//%20prevent%20Bug%201209100%2C%2010px%20%3Cfx46.%201px%20%3E%3Dfx46%0A%20%20%20%20this._mtimer%20%3D%20true%3B%0A%20%20%20%20var%20flg%20%3D%20false%3B%0A%20%20%20%20if%20%28this.NS%20%26%26%20this.NS%20%3D%3D%20this.EW%20%26%26%0A%20%20%20%20%20%20%20%20%28Math.abs%28this.cSpeedX%29%20%3E%20minScroll%20%7C%7C%20Math.abs%28this.cSpeedY%29%20%3E%20minScroll%29%29%20%7B%0A%20%20%20%20%20%20flg%20%3D%20true%3B%0A%20%20%20%20%20%20if%20%28%22scrollBy%22%20in%20this.NS%29%20%7B%0A%20%20%20%20%20%20%20%20this.NS.scrollBy%28this.cSpeedX%2C%20this.cSpeedY%29%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20this.NS.scrollLeft%20+%3D%20this.cSpeedX%3B%0A%20%20%20%20%20%20%20%20this.NS.scrollTop%20%20+%3D%20this.cSpeedY%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20if%20%28this.NS%20%26%26%20Math.abs%28this.cSpeedY%29%20%3E%20minScroll%29%20%7B%0A%20%20%20%20%20%20%20%20flg%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20if%20%28%22scrollBy%22%20in%20this.NS%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.NS.scrollBy%280%2C%20this.cSpeedY%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.NS.scrollTop%20+%3D%20this.cSpeedY%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20%28this.EW%20%26%26%20Math.abs%28this.cSpeedX%29%20%3E%20minScroll%29%7B%0A%20%20%20%20%20%20%20%20flg%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20if%20%28%22scrollBy%22%20in%20this.EW%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.EW.scrollBy%28this.cSpeedX%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.EW.scrollLeft%20+%3D%20this.cSpeedX%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20setTimeout%28function%28self%29%7B%0A%20%20%20%20%20%20self._mtimer%20%3D%20false%3B%0A%20%20%20%20%7D%2C%2020%2C%20this%29%3B%0A%20%20%20%20return%20flg%3B%0A%20%20%7D%2C%0A%0A%20%20isText%3A%20function%28e%29%20%7B%0A%20%20%20%20return%20e.explicitOriginalTarget.nodeType%20%3D%3D%20document.TEXT_NODE%3B%0A%20%20%7D%2C%0A%0A%20%20isImage%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.target%20instanceof%20Ci.nsIImageLoadingContent%29%0A%20%20%20%20%20%20return%20e.target%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20isIgnore%3A%20function%28aNode%29%7B%0A%20%20%20%20%20while%20%28aNode%29%7B%0A%20%20%20%20%20%20var%20name%20%3D%20aNode.nodeName.toLowerCase%28%29%3B%0A%20%20%20%20%20%20if%20%28name%20%3D%3D%20%22html%22%29%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20if%20%28/%28scrollbar%7Cselect%7Coption%7Cembed%7Cobject%7Ctree%7Capplet%7Cstatusbar%29/.test%28name%29%29%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20aNode%20%3D%20aNode.parentNode%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20isParentClickableNode%20%3A%20function%28aNode%29%20%7B%0A%20%20%20%20if%20%28%21aNode%29%20return%20null%3B%0A%20%20%20%20var%20d%20%3D%20aNode.ownerDocument%3B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20var%20xpathResult%20%3D%20d.evaluate%28%0A%20%20%20%20%20%20%20%20%20%20%27ancestor-or-self%3A%3A*%5B%28%28local-name%28%29%20%3D%20%22a%22%20or%20local-name%28%29%20%3D%20%22A%22%29%29%20or%20local-name%28%29%20%3D%20%22button%22%20or%20local-name%28%29%20%3D%20%22BUTTON%22%20or%20%28%28local-name%28%29%20%3D%20%22input%22%20or%20local-name%28%29%20%3D%20%22INPUT%22%29%20and%20%28@type%20%3D%20%22SUBMIT%22%20or%20@type%20%3D%20%22submit%22%20or%20@type%20%3D%20%22BUTTON%22%20or%20@type%20%3D%20%22button%22%20or%20@type%20%3D%20%22IMAGE%22%20or%20@type%20%3D%20%22image%22%29%29%5D%27%2C%0A%20%20%20%20%20%20%20%20%20%20aNode%2C%0A%20%20%20%20%20%20%20%20%20%20this.NSResolver%2C%0A%20%20%20%20%20%20%20%20%20%20XPathResult.FIRST_ORDERED_NODE_TYPE%2C%0A%20%20%20%20%20%20%20%20%20%20null%0A%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20xpathResult.singleNodeValue%3B%0A%20%20%7D%2C%0A%0A%20%20NSResolver%20%3A%20%7B%0A%20%20%20%20lookupNamespaceURI%20%3A%20function%28aPrefix%29%20%7B%0A%20%20%20%20%20%20switch%20%28aPrefix%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27xul%27%3A%0A%20%20%20%20%20%20%20%20%20%20return%20%27http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%27%3B%0A%20%20%20%20%20%20%20%20case%20%27html%27%3A%0A%20%20%20%20%20%20%20%20case%20%27xhtml%27%3A%0A%20%20%20%20%20%20%20%20%20%20return%20%27http%3A//www.w3.org/1999/xhtml%27%3B%0A%20%20%20%20%20%20%20%20case%20%27xlink%27%3A%0A%20%20%20%20%20%20%20%20%20%20return%20%27http%3A//www.w3.org/1999/xlink%27%3B%0A%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20return%20%27%27%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20isParentEditableNode%20%3A%20function%28node%29%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20if%20%28node.ownerDocument.designMode%20%3D%3D%20%27on%27%29%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%7D%20catch%28e%29%20%7B%7D%0A%20%20%20%20while%20%28node%20%26%26%20node.parentNode%29%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21%28node%20instanceof%20Ci.nsIDOMNSEditableElement%29%29%0A%20%20%20%20%20%20%20%20%20%20throw%200%3B%0A%20%20%20%20%20%20%20%20node.QueryInterface%28Ci.nsIDOMNSEditableElement%29%3B%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20node%20%3D%20node.parentNode%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20isParentDraggableNode%20%3A%20function%28node%29%7B%0A%20%20%20%20while%20%28node%20%26%26%20node.parentNode%29%20%7B%0A%20%20%20%20%20%20if%20%28node.getAttribute%28%27draggable%27%29%20%3D%3D%20%27true%27%29%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%20%20node%20%3D%20node.parentNode%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20isVideoControl%3A%20function%28node%29%20%7B%0A%20%20%20%20if%20%28/%5E%28audio%7Cvideo%29%24/i.test%28node.localName%29%29%20%7B%0A%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20var%20i%20%3D%200%3B%0A%20%20%20%20%20%20while%20%28i%20%3C%20node.childNodes.length%29%20%7B%0A%20%20%20%20%20%20%20%20var%20child%20%3Dnode.childNodes%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20if%20%28child.hasAttribute%28%27controls%27%29%20%26%26%20child.getAttribute%28%27controls%27%29%20%3D%3D%20%27controls%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20i++%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20setCursor%3A%20function%28element%2C%20cursor%29%20%7B%0A%20%20%20%20if%20%28%21%21element%20%26%26%20element.style%29%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20this.mCursor%20%3D%20element.style.cursor%3B%0A%20%20%20%20%20%20%20%20this.mCursorElement%20%20%3D%20element%3B%0A%20%20%20%20%20%20%20%20element.style.cursor%20%3D%20cursor%3B%0A%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%0A%20%20resetCursor%3A%20function%28%29%20%7B%0A%20%20%20%20var%20element%20%3D%20this.mCursorElement%3B%0A%20%20%20%20if%20%28%21%21element%29%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20element.style.cursor%20%3D%20this.mCursor%3B%0A%20%20%20%20%20%20%20%20%20%20this.mCursor%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%20this.mCursorElement%20%3D%20null%3B%0A%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20resetCursorWithTimer%3A%20function%28%29%20%7B%0A%20%20%20%20if%20%28this._ctimer%29%0A%20%20%20%20%20%20clearTimeout%28this._ctimer%29%3B%0A%20%20%20%20this._ctimer%20%3D%20setTimeout%28function%28self%29%7B%0A%20%20%20%20%20%20self.resetCursor%28%29%3B%0A%20%20%20%20%7D%2C%20this.adjustedTimer%28%29%2C%20this%29%3B%0A%20%20%7D%2C%0A%0A%20%20resetCursorTimer%3A%20function%28%29%20%7B%0A%20%20%20%20if%20%28this._ctimer%29%20%7B%0A%20%20%20%20%20%20clearTimeout%28this._ctimer%29%3B%0A%20%20%20%20%20%20this._ctimer%20%3D%20null%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20convert2RegExp%3A%20function%28%20pattern%20%29%20%7B%0A%20%20%20%20var%20s%20%3D%20new%20String%28pattern%29%3B%0A%20%20%20%20var%20res%20%3D%20new%20String%28%22%5E%22%29%3B%0A%0A%20%20%20%20for%20%28var%20k%20%3D%200%20%3B%20k%20%3C%20s.length%20%3B%20k++%29%20%7B%0A%20%20%20%20%20%20switch%28s%5Bk%5D%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27*%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20res%20+%3D%20%22.*%22%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27.%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%3F%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%5E%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%24%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27+%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%7B%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%5B%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%7C%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%28%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%29%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%5D%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20res%20+%3D%20%22%5C%5C%22%20+%20s%5Bk%5D%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27%5C%5C%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20res%20+%3D%20%22%5C%5C%5C%5C%22%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27%20%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20//%20Remove%20spaces%20from%20URLs.%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20default%20%3A%0A%20%20%20%20%20%20%20%20%20%20res%20+%3D%20s%5Bk%5D%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20new%20RegExp%28res%20+%20%27%24%27%2C%20%22i%22%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20toggle%3A%20function%28%29%7B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.enable%22%2C%20%21cbu.getPrefs%28%22grabScroll.enable%22%29%29%3B%0A%20%20%20%20this.setIcon%28%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20button%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0412%u044B%u0431%u0435%u0440%u0438%u0442%u0435%20%u043A%u043D%u043E%u043F%u043A%u0443%3A%20L-%u043B%u0435%u0432%u0430%u044F%2C%20M-%u0441%u0440%u0435%u0434%u043D%u044F%u044F%2C%20R-%u043F%u0440%u0430%u0432%u0430%u044F%22%2C%20%22LMR%22.substr%28this.MOUSEBUTTON%2C1%29%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20switch%28value.toUpperCase%28%29%29%7B%0A%20%20%20%20%20%20case%20%22M%22%3A%20value%20%3D1%3B%20break%3B%0A%20%20%20%20%20%20case%20%22R%22%3A%20value%20%3D2%3B%20break%3B%0A%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20case%20%22L%22%3A%20value%20%3D0%3B%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20this.MOUSEBUTTON%20%3D%20value%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.button%22%2C%20value%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20threshold%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442e%20%u0432%u0440%u0435%u043C%u044F%20%u0432%20ms%281000%u043C%u0441%20%3D%201%u0441%u0435%u043A%29%22%2Cthis.TIMER%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20this.TIMER%20%3D%20parseInt%28value%2C10%29%3B%0A%20%20%20%20if%28%20this.TIMER%20%3C%3D0%20%7C%7C%20%21this.TIMER%20%29%20this.TIMER%20%3D%201000%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.timer%22%2C%20this.TIMER%29%3B%0A%20%20%7D%2C%0A%0A%20%20moverate%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442e%20%5B+-%5D%u0432%u0435%u043B%u0438%u0447%u0438%u043D%u0443%5Cn%20%u0415%u0441%u043B%u0438%20%5B+%5D%20c%u0442%u0440%u0430%u043D%u0438%u0446%u0430%20%u0431%u0443%u0434%u0435%u0442%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u0442%u0441%u044F%20%u043F%u0440%u043E%u0442%u0438%u0432%u043E%u043F%u043E%u043B%u043E%u0436%u043D%u043E%20%u0434%u0432%u0438%u0436%u0435%u043D%u0438%u044E%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%20%20%22%2Cthis.MOVERATE%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20this.MOVERATE%20%3D%20parseInt%28value%2C10%29%3B%0A%20%20%20%20if%28%20%21this.MOVERATE%20%29%20this.MOVERATE%20%3D%20-1%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.moverate%22%2C%20this.MOVERATE%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20inertiaThreshold%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442e%20%u0441%u043A%u043E%u0440%u043E%u0441%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%20%u043F%u0440%u0438%20%u043A%u043E%u0442%u043E%u0440%u043E%u0439%20%u043F%u043E%u044F%u0432%u043B%u044F%u0435%u0442%u0441%u044F%20%u0430%u0432%u0442%u043E%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0430%22%2Cthis.INERTIATHRESHOLD%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20this.INERTIATHRESHOLD%20%3D%20parseInt%28value%2C10%29%3B%0A%20%20%20%20if%28%20%21this.INERTIATHRESHOLD%20%29%20this.INERTIATHRESHOLD%20%3D%2020%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.inertiathreshold%22%2C%20this.INERTIATHRESHOLD%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20inertiarate%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442e%20%u0434%u043B%u0438%u043D%u0443%20%u0430%u0432%u0442%u043E%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0438%22%2Cthis.INERTIARATE%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20this.INERTIARATE%20%3D%20parseInt%28value%2C10%29%3B%0A%20%20%20%20if%28%20%21this.INERTIARATE%20%29%20this.INERTIARATE%20%3D%2020%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.inertiarate%22%2C%20this.INERTIARATE%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20setIcon%3A%20function%28%29%7B%0A%20%20%20%20document.getAnonymousNodes%28self%29%5B1%5D.src%20%3D%20%21cbu.getPrefs%28%22grabScroll.enable%22%29%0A%20%20%20%20%3F%20self.image%0A%20%20%20%20%3A%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4AQXCg4QbH3A+AAAAZpJREFUOMuNk79qVUEQxn+zf06MCFZ2YnURBMHi+hp5ARtJY7PFhTRiY2ETkNuId5vbhLSmCeQtLAQhhTEpLeILaHL27K7FOXvYe+SiHwwzsMw33zfMinMOAO+9ooJzLnnv81ALWyBAaVRAGGoLhNPLNVose7P9mniDTA1hgHByseLkYkVFRMx9eXZ1xNnVEUVVTWCGIKSWkNrxMaSWLnUbRAWFqBA0wIMXTw646X5xfH4IQJc6Mukv3977XNSUZltUdKklDmvpKjVTO7UFC1wDP4DHr5694zb+Zv31LSG1xBz49O3jaGUKA1yvvrwm5shivvzeT4q08RZBEUUTJSLSL//0cs10icQciTnw/rMbpcYcyaQxT7E328c5Jwp4tJgvx4dC8r9QQAJmB88/YJTBKIMWixaNoMa8DQbogBZAi6XPmkbvoJXpoyIpl1kuspxvCzxczJfsmrvs6F2MarCqQYtFRDDKbP0L96prVMDP4/PDYbLFKIOgRmv19KKgWLgZ4v7Lp29o1J2N5n/tQFW/smcWvdFY9jPFH7MJpWpDanM5AAAAAElFTkSuQmCC%22%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20getScrollView%3A%20function%20%28e%29%20%7B%0A%20%20%20%20var%20NS%2CEW%2CNSEW%3B%0A%20%20%20%20NS%20%3D%20EW%20%3D%20NSEW%20%3D%20null%3B%0A%20%20%20%20var%20_scrollingView%20%3D%20null%3B%0A%20%20%20%20var%20overflowx%2C%20overflowy%2C%20ox%2C%20oy%3B%0A%20%20%20%20var%20scw%2C%20sch%2C%20horz%2C%20vert%3B%0A%20%20%20%20var%20doc%2C%20style%3B%0A%20%20%20%20var%20borderTop%3B%0A%20%20%20%20var%20borderBottom%3B%0A%20%20%20%20var%20borderLeft%3B%0A%20%20%20%20var%20borderRight%3B%0A%0A%20%20%20%20if%20%28e.originalTarget.ownerDocument.contentType%20%3D%3D%20%22application/xml%22%29%20%7B%0A%20%20%20%20%20%20_scrollingView%20%3D%20e.originalTarget.ownerDocument.defaultView%3B%0A%0A%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%21%3D%20_scrollingView.scrollMinX%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxY%20%21%3D%20_scrollingView.scrollMinY%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%20%20%20%20NS%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%20%20%20%20EW%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20EW%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20else%20if%20%28_scrollingView.scrollMaxY%20%21%3D%20_scrollingView.scrollMinY%29%20%7B%0A%20%20%20%20%20%20%20%20NS%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxY%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20%21NSEW%20%3F%20_scrollingView%20%3A%20NSEW%3B%0A%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28_scrollingView.scrollMaxY%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20return%20%5BNS%2C%20EW%2C%20NSEW%5D%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20for%20%28_scrollingView%20%3D%20e.originalTarget%3B%20_scrollingView%3B%20_scrollingView%20%3D%20_scrollingView.parentNode%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28_scrollingView%20instanceof%20HTMLElement%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.localName.toUpperCase%28%29%20%3D%3D%20%22HTML%22%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20_scrollingView.localName.toUpperCase%28%29%20%3D%3D%20%22BODY%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20_scrollingView%20%3D%20_scrollingView.ownerDocument.defaultView%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%21%3D%20_scrollingView.scrollMinX%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxY%20%21%3D%20_scrollingView.scrollMinY%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20%21NSEW%20%3F%20_scrollingView%20%3A%20NSEW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28_scrollingView.scrollMaxY%20%21%3D%20_scrollingView.scrollMinY%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%3E%200%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_scrollingView.scrollMaxY%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20%21NSEW%20%3F%20_scrollingView%20%3A%20NSEW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxY%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.frameElement%20%26%26%20%21NS%20%26%26%20%21EW%20%26%26%20%21NSEW%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20this.getScrollView%28%7BoriginalTarget%20%3A%20_scrollingView.frameElement%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.localName.toLowerCase%28%29%20%3D%3D%20%22select%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20_scrollingView.parentNode.focus%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%5BNS%2C%20EW%2C%20NSEW%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20overflowx%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%20%20overflowy%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%20%20ox%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20oy%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20doc%20%3D%20_scrollingView.ownerDocument%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20style%20%3D%20doc.defaultView.getComputedStyle%28_scrollingView%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20overflowx%20%3D%20style.getPropertyValue%28%22overflow-x%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20ox%20%3D%20overflowx%20%21%3D%20%22hidden%22%20%26%26%20overflowx%20%21%3D%20%22visible%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20overflowy%20%3D%20style.getPropertyValue%28%22overflow-y%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20oy%20%3D%20overflowy%20%21%3D%20%22hidden%22%20%26%26%20overflowy%20%21%3D%20%22visible%22%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20borderTop%20%20%20%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20borderBottom%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20borderLeft%20%20%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20borderRight%20%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28/%5E%28table%7Ctd%7Cth%29%24/i.test%28_scrollingView.localName%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20doc%20%3D%20_scrollingView.ownerDocument%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20style%20%3D%20doc.defaultView.getComputedStyle%28_scrollingView%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderTop%20%20%20%20%3D%20style.getPropertyValue%28%22border-top-width%22%29.replace%28%27px%27%2C%20%27%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderBottom%20%3D%20style.getPropertyValue%28%22border-bottom-width%22%29.replace%28%27px%27%2C%20%27%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderLeft%20%20%20%3D%20style.getPropertyValue%28%22border-left-width%22%29.replace%28%27px%27%2C%20%27%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderRight%20%20%3D%20style.getPropertyValue%28%22border-right-width%22%29.replace%28%27px%27%2C%20%27%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20scw%20%3D%20_scrollingView.clientWidth%3B%0A%20%20%20%20%20%20%20%20%20%20horz%20%3D%20ox%20%26%26%20scw%20%21%3D%3D%200%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scw%20+%20borderLeft%20+%20borderRight%20%3C%20_scrollingView.scrollWidth%3B%0A%20%20%20%20%20%20%20%20%20%20sch%20%3D%20_scrollingView.clientHeight%3B%0A%20%20%20%20%20%20%20%20%20%20vert%20%3D%20oy%20%26%26%20sch%20%21%3D%3D%200%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sch%20+%20borderTop%20+%20borderBottom%20%3C%20_scrollingView.scrollHeight%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28horz%20%26%26%20vert%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20%21NSEW%20%3F%20_scrollingView%20%3A%20NSEW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20if%20%28horz%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20if%20%28vert%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20%5BNS%2C%20EW%2C%20NSEW%5D%3B%0A%20%20%7D%0A%7D%3B%0AgBrowser.currentURI%20%3D%3D%20%22about%3Acustomizing%22%20%7C%7C%20GrabScroll.initGrabScroll%28%29%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bhttp%3A//maps.google.*/*%0Ahttp%3A//maps.yahoo.co.jp/pl*%0Ahttp%3A//map.yahoo.co.jp/pl*%0Ahttp%3A//map.goo.ne.jp/*%0Ahttp%3A//www.mapion.co.jp/c/f*%0Ahttp%3A//books.google.co.jp/books%3Fid%3D*%0Ahttp%3A//books.google.co.jp/books%3Fid%3D*%0Ahttps%3A//realtimeboard.com/%3F*%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Автор кнопки: Alice0775 - userChrome.js/GrabScroll_Fx29.uc.xul at master · alice0775/userChrome.js · GitHub. |
turbot > 23-07-2016 16:17:47 |
Раскукоживатель коротких ссылок(Firefox 24+), от 28.08.2016. (Прим.: Выполняется фоновый асинхронный xmlhttprequest к сервису коротких ссылок. Без передачи кукисов, реферера и реального юзерагента) Возможности: Все вышеописанные поведения можно задать с помощью опций (см. комментарии в коде) Изменения (28.08.2016): 28.08.2016 Незначительные оптимизации 26.07.2016 Код кнопки, вкладки инициализации и иконки в svg и png 16х16 (замените svg-шную, если есть проблемы): Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0432%u0430%u0442%u0435%u043B%u044C%20%u043A%u043E%u0440%u043E%u0442%u043A%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/svg+xml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjUuNDY2cHgiIGhlaWdodD0iNDI1LjQ2N3B4IiB2aWV3Qm94PSIwIDAgNDI1LjQ2NiA0MjUuNDY3Ij4KPGcgaWQ9Imc3IiBzdHlsZT0iZmlsbDojNzk3YzgwO2ZpbGwtb3BhY2l0eToxIj4KPHBhdGggZD0iTTMxOC4xNSwyMzAuMTk1bDc3LjkzNC03Ny45MzdjMzEuODk0LTMxLjg5MiwzMS44OTQtODMuNzgyLTAuMDA0LTExNS42NzRsLTEyLjY2LTEyLjY2ICAgICBjLTMxLjg5My0zMS44OTYtODMuNzgtMzEuODk2LTExNS42NzQtMC4wMDRsLTc3LjkzNyw3Ny45MzRjLTE3LjU4OCwxNy41ODgtMjUuNDU3LDQxLjI2NC0yMy42NDYsNjQuMzExICAgICBjLTIzLjA0NS0xLjgxMy00Ni43MjIsNi4wNTYtNjQuMzA4LDIzLjY0N0wyMy45MiwyNjcuNzQ4Yy0zMS44OTQsMzEuODg5LTMxLjg5NCw4My43NzksMCwxMTUuNjc0bDEyLjY2NCwxMi42NjIgICAgIGMzMS44OTMsMzEuODkzLDgzLjc4MywzMS44OTMsMTE1LjY3NCwwbDc3LjkzNS03Ny45MzZjMTcuNTkyLTE3LjU5LDI1LjQ1OS00MS4yNjYsMjMuNjQ3LTY0LjMwOSAgICAgQzI3Ni44ODQsMjU1LjY1NCwzMDAuNTYsMjQ3Ljc4MywzMTguMTUsMjMwLjE5NXogTTIwMi42NTMsMjkwLjYwNWwtNzcuOTM2LDc3LjkzOGMtMTYuNzA1LDE2LjcwMy00My44ODksMTYuNzAzLTYwLjU5LDAgICAgIGwtMTIuNjY2LTEyLjY2NmMtMTYuNzA1LTE2LjcwMS0xNi43MDMtNDMuODg1LDAtNjAuNTk0bDc3LjkzNi03Ny45MzJjMTQuMTQtMTQuMTQxLDM1Ljc3OS0xNi4zMDYsNTIuMjI2LTYuNTE2bC0zMi4zMDIsMzIuMzA3ICAgICBjLTcuNjA2LDcuNjA0LTcuNjA2LDE5LjkzOCwwLDI3LjU0MWM3LjYwNSw3LjYwNywxOS45MzcsNy42MDcsMjcuNTQxLDBsMzIuMzA2LTMyLjMwMyAgICAgQzIxOC45NTksMjU0LjgyOCwyMTYuNzk1LDI3Ni40NjksMjAyLjY1MywyOTAuNjA1eiBNMjM4LjM4MiwyMDkuMTY5bDMyLjI5OS0zMi4zMDZjNy42MDgtNy42MDIsNy42MDgtMTkuOTM1LDAtMjcuNTM4ICAgICBjLTcuNjA0LTcuNjEtMTkuOTM2LTcuNjEtMjcuNTQxLTAuMDA0bC0zMi4zMDMsMzIuMzAzYy05Ljc5MS0xNi40NDYtNy42MjctMzguMDg3LDYuNTE0LTUyLjIyNmw3Ny45MzUtNzcuOTM1ICAgICBjMTYuNzA3LTE2LjcwNyw0My44OS0xNi43MDcsNjAuNTk0LDBsMTIuNjY0LDEyLjY2NGMxNi43MDUsMTYuNzA1LDE2LjcwNSw0My44ODYsMCw2MC41OTFsLTc3LjkzNiw3Ny45MzcgICAgIEMyNzYuNDY4LDIxNi43OTcsMjU0LjgyOCwyMTguOTU5LDIzOC4zODIsMjA5LjE2OXoiCmlkPSJwYXRoOSIgc3R5bGU9ImZpbGw6Izc5N2M4MCIgLz4KPHBhdGggZD0iTTM0My40NjYsMjYxLjQ2NWMtNDUuMjg3LDAtODIsMzYuNzEzLTgyLDgyczM2LjcxMyw4Miw4Miw4MmM0NS4yODYsMCw4Mi0zNi43MTMsODItODJTMzg4Ljc1MywyNjEuNDY1LDM0My40NjYsMjYxLjQ2NXogICAgICBNMzcyLjUwNSwzMzMuNTY0bC01Ni4wNDYsNTYuMTA0Yy0wLjIzOSwwLjIzOC0wLjUzNiwwLjQxLTAuODYyLDAuNDk2bC0yMi4zMTUsNS44NWMtMC42NDksMC4xNjgtMS4zNDctMC4wMi0xLjgyMi0wLjQ5NCAgICAgYy0wLjQ3Ny0wLjQ3OS0wLjY2Ni0xLjE3Mi0wLjQ5Ni0xLjgyNGw1LjgyNi0yMi4zMThjMC4wODQtMC4zMjYsMC4yNTYtMC42MjcsMC40OTQtMC44NjNsNTYuMDQ3LTU2LjEwNCAgICAgYzAuNzQyLTAuNzQyLDEuOTQ1LTAuNzQ0LDIuNjg4LTAuMDAybDQuNTQ4LDQuNTQxYzAuNzM5LDAuNzQsMC43NDEsMS45NDMsMCwyLjY4OGwtMzcuNDMzLDM3LjQ3MWw0LjcwOSw0LjcwM2wzNy40MzUtMzcuNDcxICAgICBjMC43MzktMC43NDIsMS45NC0wLjc0MiwyLjY4Mi0wLjAwMmw0LjU1LDQuNTQxQzM3My4yNSwzMzEuNjE3LDM3My4yNSwzMzIuODIyLDM3Mi41MDUsMzMzLjU2NHogTTM5NS40NzIsMzEwLjU3NGwtMTcsMTcuMDE4ICAgICBjLTAuNzM5LDAuNzQ0LTEuOTQyLDAuNzQ0LTIuNjg1LDAuMDAybC0xNi40ODktMTYuNDc1Yy0wLjc0NC0wLjc0LTAuNzQ0LTEuOTQzLTAuMDAyLTIuNjg4bDE3LTE3LjAyICAgICBjMC43NDEtMC43NCwxLjk0NC0wLjc0LDIuNjg4LTAuMDAybDE2LjQ4NywxNi40NzdDMzk2LjIxNiwzMDguNjI5LDM5Ni4yMTYsMzA5LjgzMiwzOTUuNDcyLDMxMC41NzR6IgppZD0icGF0aDExIiBzdHlsZT0iZmlsbDojNzk3YzgwIiAvPjwvZz4KPC9zdmc+%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0432%u0430%u0442%u0435%u043B%u044C%20%u043A%u043E%u0440%u043E%u0442%u043A%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%2C%20%u043E%u0442%2028.08.2016%0A%28%28cntxtMenu%2C%20elm%2C%20mItem%29%20%3D%3E%20%7B%0A%20%20mItem.id%20%3D%20%22cb-unshorten-url%22%3B%0A%20%20mItem.setAttribute%28%22label%22%2C%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%29%3B%0A%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20mItem.setAttribute%28%22image%22%2C%20self.image%29%3B%0A%20%20elm.parentNode.insertBefore%28mItem%2C%20elm%29%3B%0A%0A%20%20const%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%0A%20%20var%20url%2C%20link%2C%20isUnshortened%2C%0A%20%20%20%20%20%20//%20%u0421%u0435%u0440%u0432%u0438%u0441%u044B%20%u0441%u043E%u043A%u0440%u0430%u0449%u0435%u043D%u0438%u044F%20%u0441%u0441%u044B%u043B%u043E%u043A.%20%u041C%u043E%u0436%u043D%u043E%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0442%u044C%20%u0441%u0432%u043E%u0438.%20%u0420%u0430%u0431%u043E%u0442%u0430%u0442%u044C%2C%20%u0432%20%u0442%u0435%u043E%u0440%u0438%u0438%2C%20%u0434%u043E%u043B%u0436%u043D%u043E%20%u0441%20%u043B%u044E%u0431%u044B%u043C%u0438%0A%20%20%20%20%20%20shortenerServices%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%22tinyurl.com%22%2C%0A%20%20%20%20%20%20%20%20%22po.st%22%2C%0A%20%20%20%20%20%20%20%20%22img.ly%22%2C%0A%20%20%20%20%20%20%20%20%22bit.ly%22%2C%0A%20%20%20%20%20%20%20%20%22goo.gl%22%2C%0A%20%20%20%20%20%20%20%20%22youtu.be%22%2C%0A%20%20%20%20%20%20%20%20%22t.co%22%2C%0A%20%20%20%20%20%20%20%20%22db.tt%22%2C%0A%20%20%20%20%20%20%20%20%22u.to%22%2C%0A%20%20%20%20%20%20%20%20%22shortlinks.de%22%0A%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20//%20%u041E%u043F%u0446%u0438%u0438%3A%0A%20%20%20%20%20%20options%20%3D%20%7B%0A%20%20%20%20%20%20%20%20replaceShortenedLinks%3A%20true%2C%20//%20%u0417%u0430%u043C%u0435%u043D%u044F%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u043E%u0439%0A%20%20%20%20%20%20%20%20showAlert%3A%20true%2C%20//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0438%u0435%20%u0443%u0432%u0435%u0434%u043E%u043C%u043B%u0435%u043D%u0438%u044F%0A%20%20%20%20%20%20%20%20clickAlertToOpen%3A%20true%2C%20//%20%u041A%u043B%u0438%u043A%20%u043F%u043E%20%u0443%u0432%u0435%u0434%u043E%u043C%u043B%u0435%u043D%u0438%u044E%20%u0441%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u043E%u0439%20%u0441%u0441%u044B%u043B%u043A%u043E%u0439%20-%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%20%u0435%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%0A%20%20%20%20%20%20%20%20showOnShortenedTextLinks%3A%20true%2C%20//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%20%u043D%u0430%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0445%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0445%20%u0441%u0441%u044B%u043B%u043A%u0430%u0445%0A%20%20%20%20%20%20%20%20promptDialogForTextLinks%3A%20true%2C%20//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u0434%u0438%u0430%u043B%u043E%u0433%20%u0441%20%u0440%u0435%u0437%u0443%u043B%u044C%u0442%u0430%u0442%u043E%u043C%20%u0434%u043B%u044F%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%0A%20%20%20%20%20%20%20%20copyToClipboard%3A%20true%2C%20//%20%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u0443%u044E%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0432%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20%20%20%20%20%20changeColorForUnshortenedLinks%3A%20true%2C%20//%20%u0418%u043D%u0434%u0438%u043A%u0430%u0446%u0438%u044F%20%u0446%u0432%u0435%u0442%u043E%u043C%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043E%u0436%u0438%u0434%u0430%u043D%u0438%u044F%20%u043E%u0442%u0432%u0435%u0442%u0430%20%u0438%20%u0440%u0435%u0437%u0443%u043B%u044C%u0442%u0430%u0442%u0430%0A%20%20%20%20%20%20%20%20changeColorBackAfterTimeout%3A%20false%2C%20//%20%u0412%u043E%u0437%u0432%u0440%u0430%u0449%u0430%u0442%u044C%20%u0446%u0432%u0435%u0442%20%u0441%u0441%u044B%u043B%u043E%u043A%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%2C%20%u043F%u043E%u0441%u043B%u0435%20%u043F%u0430%u0443%u0437%u044B%0A%20%20%20%20%20%20%20%20unshortenedLinksColor%3A%20%22lightgreen%22%20//%20%u0426%u0432%u0435%u0442%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u044B%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20isFF32%20%3D%20%28parseFloat%28Services.appinfo.platformVersion%29%20%3E%3D%2032%29%3B%0A%0A%20%20function%20isShortenedURL%28aURL%29%20%7B%0A%20%20%20%20if%20%28aURL%20%26%26%20%28gContextMenu%20%26%26%20%28gContextMenu.onLink%20%26%26%20%21gContextMenu.isTextSelected%20%7C%7C%20gContextMenu.onPlainTextLink%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%21aURL.match%28/%5Cs/%29%20%26%26%20%21%21aURL.match%28/%5C//%29%29%29%20%7B%0A%0A%20%20%20%20%20%20if%20%28%21aURL.startsWith%28%27http%27%29%29%20aURL%20%3D%20%27http%3A//%27%20+%20aURL.split%28/%5E%28%28%5Cw+%29%3F%3A%5C/%5C/%29%3F%28.+%29/%29%5B3%5D%3B%0A%0A%20%20%20%20%20%20var%20host%20%3D%20aURL.split%28/http%28s%29%3F%3A%5C/%5C/%28%5B%5Cw%5C.-%5D+%29/%29%5B2%5D%3B%0A%0A%20%20%20%20%20%20if%20%28shortenerServices.indexOf%28host%29%20%21%3D%3D%20-1%29%20%7B%0A%20%20%20%20%20%20%20%20url%20%3D%20aURL%3B%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20false%3B%0A%20%20%7D%3B%0A%0A%20%20function%20promptDialog%28aURL%29%20%7B%0A%20%20%20%20var%20input%20%3D%20%7Bvalue%3A%20aURL%7D%3B%0A%20%20%20%20var%20prompt%20%3D%20Services.prompt.prompt%28null%2C%20options.copyToClipboard%20%3F%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%u0430%21%22%20%3A%20%22%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%21%22%2C%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%20%20%20%20%20%20%20%20%20%20%22%u041E%u0442%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%3F%22%2C%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%20%20%20%20%20%20%20%20%20%20input%2C%20null%2C%20%7Bvalue%3A%20false%7D%29%3B%0A%20%20%20%20if%20%28prompt%29%0A%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28input.value%29%3B%0A%20%20%7D%3B%0A%0A%20%20function%20xhr%28aURL%2C%20cb%29%20%7B%0A%20%20%20%20let%20reURL%20%3D%20null%3B%0A%20%20%20%20let%20xhr%20%3D%20Cc%5B%22@mozilla.org/xmlextras/xmlhttprequest%3B1%22%5D.createInstance%28Ci.nsIXMLHttpRequest%29%3B%0A%20%20%20%20let%20alertListener%20%3D%20%7B%0A%20%20%20%20%20%20observe%3A%20function%28aSubject%2C%20aTopic%2C%20aData%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28aTopic%20%21%3D%20%27alertclickcallback%27%29%20return%3B%0A%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28aData%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20let%20handler%20%3D%20ev%20%3D%3E%20%7B%0A%20%20%20%20%20%20evf%28m%20%3D%3E%20xhr.removeEventListener%28m%2C%20handler%2C%20%211%29%29%3B%0A%20%20%20%20%20%20switch%20%28ev.type%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27load%27%3A%0A%20%20%20%20%20%20%20%20%20%20if%20%28xhr.status%20%3D%3D%20200%20%7C%7C%20%28isFF32%20%3F%20xhr.responseURL%20%3A%20xhr.channel.URI.spec%29%20%21%3D%20aURL%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20reURL%20%3D%20isFF32%20%3F%20xhr.responseURL%20%3A%20xhr.channel.URI.spec%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20cb%28reURL%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.showAlert%20%26%26%20%28options.clickAlertToOpen%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%20%20%20%20%3F%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%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%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%20%20%20%20%20%20%20%20%20%20%20%20%27%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%21%5Cn%u041D%u0430%u0436%u043C%u0438%u0442%u0435%2C%20%u0447%u0442%u043E%u0431%u044B%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%3A%5Cn%27%20+%20%28reURL.length%20%3E%20100%20%3F%20%28%5BreURL.slice%280%2C45%29%2C%20reURL.slice%28-45%29%5D%29.join%28%27...%27%29%20%3A%20reURL%29%2C%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%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%20%20%20%20%20%20%20%20%20%20%20%20true%2C%20reURL%2C%20alertListener%2C%20%22%22%29%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%20%20%20%20%3A%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%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%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%20%20%20%20%20%20%20%20%20%20%20%20%27%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%3A%5Cn%27%20+%20%28reURL.length%20%3E%20100%20%3F%20%28%5BreURL.slice%280%2C45%29%2C%20reURL.slice%28-45%29%5D%29.join%28%27...%27%29%20%3A%20reURL%29%2C%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%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%20%20%20%20%20%20%20%20%20%20%20%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20cb%28reURL%29%3B%0A%20%20%20%20%20%20%20%20%20%20options.showAlert%20%26%26%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%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%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%20%20%20%20%20%20%20%27%u041E%u0448%u0438%u0431%u043A%u0430%20%u043F%u0440%u0438%20%u043F%u043E%u043F%u044B%u0442%u043A%u0435%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%3A%20%27%20+%20xhr.statusText%20+%20%27%20%5B%27%20+%20ev.type%20+%20%27%3A%27%20+%20xhr.status%20+%20%27%5D%27%2C%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%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%20%20%20%20%20%20%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20let%20evf%20%3D%20f%20%3D%3E%20%5B%27load%27%2C%20%27error%27%2C%20%27abort%27%5D.forEach%28f%29%3B%0A%20%20%20%20evf%28m%20%3D%3E%20xhr.addEventListener%28m%2C%20handler%2C%20false%29%29%3B%0A%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20xhr.mozBackgroundRequest%20%3D%20true%3B%0A%20%20%20%20%20%20xhr.open%28%27HEAD%27%2C%20aURL%2C%20true%29%3B%0A%20%20%20%20%20%20xhr.channel.loadFlags%20%7C%3D%20Ci.nsIRequest.LOAD_ANONYMOUS%20%7C%20Ci.nsIRequest.LOAD_BYPASS_CACHE%20%7C%20Ci.nsIRequest.INHIBIT_CACHING%3B%0A%20%20%20%20%20%20xhr.setRequestHeader%28%22User-Agent%22%2C%20%22Mozilla/5.0%20%28compatible%3B%20Googlebot/2.1%3B%20+http%3A//www.google.com/bot.html%29%22%2C%20false%29%3B%0A%20%20%20%20%20%20xhr.setRequestHeader%28%22Accept%22%2C%20%22text/html%2Ctext/xml%22%2C%20false%29%3B%0A%20%20%20%20%20%20xhr.send%28null%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%20%28ex%29%20%7B%0A%20%20%20%20%20%20cb%28reURL%29%3B%0A%20%20%20%20%20%20options.showAlert%20%26%26%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%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%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%20%20%20%27%u041D%u0435%u043F%u0440%u0430%u0432%u0438%u043B%u044C%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%3A%20%27%20+%20%28ex.toString%28%29.length%20%3E%20100%20%3F%20%28%5Bex.toString%28%29.slice%280%2C45%29%2C%20ex.toString%28%29.slice%28-45%29%5D%29.join%28%27...%27%29%20%3A%20ex.toString%28%29%29%2C%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%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%20%20%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20function%20shouldDisplay%28%29%20%7B%0A%20%20%20%20mItem.label%20%3D%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%3B%0A%0A%20%20%20%20if%20%28gContextMenu.onLink%20%26%26%20%21gContextMenu.isTextSelected%29%20%7B%0A%20%20%20%20%20%20url%20%3D%20gContextMenu.getLinkURL%28%29%3B%0A%20%20%20%20%20%20link%20%3D%20gContextMenu.link%3B%0A%20%20%20%20%20%20isUnshortened%20%3D%20link.getAttribute%28%22cb-short-url%22%29%3B%0A%20%20%20%20%20%20if%20%28isUnshortened%29%20mItem.label%20%3D%20%22%u0421%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28gContextMenu.onPlainTextLink%29%20%7B%0A%20%20%20%20%20%20url%20%3D%20gContextMenu.linkURL%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28%21gContextMenu.onPlainTextLink%20%26%26%20gContextMenu.isTextSelected%29%20%7B%0A%20%20%20%20%20%20url%20%3D%20document.commandDispatcher.focusedWindow.content.document.getSelection%28%29.toString%28%29.trim%28%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20mItem.hidden%20%3D%20%21%28%28gContextMenu.onLink%20%7C%7C%20%28gContextMenu.onPlainTextLink%20%7C%7C%20gContextMenu.isTextSelected%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20options.showOnShortenedTextLinks%29%20%26%26%20isShortenedURL%28url%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20gContextMenu.onLink%20%26%26%20isUnshortened%29%3B%0A%20%20%7D%3B%0A%20%20cntxtMenu.addEventListener%28%22popupshowing%22%2C%20shouldDisplay%2C%20false%29%3B%0A%20%20addDestructor%28%28%29%3D%3E%20%7B%0A%20%20%20%20cntxtMenu.removeEventListener%28%22popupshowing%22%2C%20shouldDisplay%2C%20false%29%3B%0A%20%20%20%20cntxtMenu.removeChild%28mItem%29%3B%0A%20%20%7D%29%3B%0A%0A%20%20mItem.onclick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20if%20%28gContextMenu.onLink%20%26%26%20%21gContextMenu.isTextSelected%29%20%7B%0A%20%20%20%20%20%20if%20%28%21isUnshortened%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28options.changeColorForUnshortenedLinks%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20linkClr%20%3D%20link.style.getPropertyValue%28%27color%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20linkClr%20%26%26%20link.style.setProperty%28%27-cb-old-color%27%2C%20linkClr%2C%20link.style.getPropertyPriority%28%27color%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20oldClr%20%3D%20link.style.getPropertyValue%28%27-cb-old-color%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20oldClrPrrt%20%3D%20link.style.getPropertyPriority%28%27-cb-old-color%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20link.style.setProperty%28%22color%22%2C%20%22orangered%22%2C%20%22important%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20xhr%28url%2C%20reURL%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21reURL%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.changeColorForUnshortenedLinks%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20%28oldClr%20%3F%20%28link.style.setProperty%28%22color%22%2C%20oldClr%2C%20oldClrPrrt%29%2C%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%20link.removeProperty%28%27-cb-old-color%27%29%29%20%3A%20link.style.removeProperty%28%22color%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28options.changeColorForUnshortenedLinks%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20link.style.setProperty%28%22color%22%2C%20options.unshortenedLinksColor%2C%20%22important%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.changeColorBackAfterTimeout%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20setTimeout%28%28%29%3D%3E%20oldClr%20%3F%20%28link.style.setProperty%28%22color%22%2C%20oldClr%2C%20oldClrPrrt%29%2C%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%20%20%20%20%20%20%20%20%20%20%20%20%20link.removeProperty%28%27-cb-old-color%27%29%29%20%3A%20link.style.removeProperty%28%22color%22%29%2C%201000%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20options.copyToClipboard%20%26%26%20gClipboard.write%28reURL%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20options.replaceShortenedLinks%20%26%26%20%28link.setAttribute%28%22cb-short-url%22%2C%20link.href%29%2C%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%20%20%20%20%20%20%20%20%20%20%20%20%20%20link.setAttribute%28%22href%22%2C%20reURL%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20oldClr%20%3F%20%28link.style.setProperty%28%22color%22%2C%20oldClr%2C%20oldClrPrrt%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20link.removeProperty%28%27-cb-old-color%27%29%29%20%3A%20link.style.removeProperty%28%22color%22%29%3B%0A%0A%20%20%20%20%20%20%20%20link.setAttribute%28%22href%22%2C%20isUnshortened%29%3B%0A%20%20%20%20%20%20%20%20link.removeAttribute%28%22cb-short-url%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%20%20%20%20%20%20xhr%28url%2C%20reURL%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21reURL%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20options.copyToClipboard%20%26%26%20gClipboard.write%28reURL%29%3B%0A%20%20%20%20%20%20%20%20options.promptDialogForTextLinks%20%26%26%20promptDialog%28reURL%29%3B%0A%20%20%20%20%20%20%7D%29%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20this._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20url%20%3D%20gClipboard.read%28%29%3B%0A%0A%20%20%20%20if%20%28%21url%20%7C%7C%20%21isShortenedURL%28url%29%29%20%7B%0A%20%20%20%20%20%20options.showAlert%20%26%26%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%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%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%20%20%20%27%u041D%u0435%u043F%u0440%u0430%u0432%u0438%u043B%u044C%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%21%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20xhr%28url%2C%20reURL%20%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%21reURL%29%20return%3B%0A%0A%20%20%20%20%20%20options.copyToClipboard%20%26%26%20gClipboard.write%28reURL%29%3B%0A%20%20%20%20%20%20promptDialog%28reURL%29%3B%0A%20%20%20%20%7D%29%0A%20%20%7D%3B%0A%20%20this.tooltipText%20%3D%20%22%u041F%u041A%u041C%3A%20%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0432%20%u0431%u0443%u0444%u0435%u0440%u0435%20%u043E%u0431%u043C%u0435%u043D%u0430%22%3B%0A%7D%29%28document.getElementById%28%22contentAreaContextMenu%22%29%2C%20document.getElementById%28%22context-sep-open%22%29%2C%20document.createElement%28%22menuitem%22%29%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Раскукоживатель коротких ссылок, от 28.08.2016 ((cntxtMenu, elm, mItem) => { mItem.id = "cb-unshorten-url"; mItem.setAttribute("label", "Раскукожить ссылку"); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", self.image); elm.parentNode.insertBefore(mItem, elm); const alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService); var url, link, isUnshortened, // Сервисы сокращения ссылок. Можно добавлять свои. Работать, в теории, должно с любыми shortenerServices = [ "tinyurl.com", "po.st", "img.ly", "bit.ly", "goo.gl", "youtu.be", "t.co", "db.tt", "u.to", "shortlinks.de" ], // Опции: options = { replaceShortenedLinks: true, // Заменять адрес ссылки на странице раскукоженной showAlert: true, // Показывать всплывающие уведомления clickAlertToOpen: true, // Клик по уведомлению с раскукоженной ссылкой - откроет ее в новой вкладке showOnShortenedTextLinks: true, // Показывать пункт контекстного меню на выделенных текстовых ссылках promptDialogForTextLinks: true, // Показывать диалог с результатом для текстовых ссылок copyToClipboard: true, // Копировать раскукоженную ссылку в буфер обмена changeColorForUnshortenedLinks: true, // Индикация цветом ссылки ожидания ответа и результата changeColorBackAfterTimeout: false, // Возвращать цвет ссылок к исходному, после паузы unshortenedLinksColor: "lightgreen" // Цвет раскукоженных ссылок }, isFF32 = (parseFloat(Services.appinfo.platformVersion) >= 32); function isShortenedURL(aURL) { if (aURL && (gContextMenu && (gContextMenu.onLink && !gContextMenu.isTextSelected || gContextMenu.onPlainTextLink) || !aURL.match(/\s/) && !!aURL.match(/\//))) { if (!aURL.startsWith('http')) aURL = 'http://' + aURL.split(/^((\w+)?:\/\/)?(.+)/)[3]; var host = aURL.split(/http(s)?:\/\/([\w\.-]+)/)[2]; if (shortenerServices.indexOf(host) !== -1) { url = aURL; return true; } } return false; }; function promptDialog(aURL) { var input = {value: aURL}; var prompt = Services.prompt.prompt(null, options.copyToClipboard ? "Раскукоженная ссылка скопирована!" : "Ссылка раскукожена!", "Отредактировать и открыть в новой вкладке?", input, null, {value: false}); if (prompt) gBrowser.selectedTab = gBrowser.addTab(input.value); }; function xhr(aURL, cb) { let reURL = null; let xhr = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance(Ci.nsIXMLHttpRequest); let alertListener = { observe: function(aSubject, aTopic, aData) { if (aTopic != 'alertclickcallback') return; gBrowser.selectedTab = gBrowser.addTab(aData); } } let handler = ev => { evf(m => xhr.removeEventListener(m, handler, !1)); switch (ev.type) { case 'load': if (xhr.status == 200 || (isFF32 ? xhr.responseURL : xhr.channel.URI.spec) != aURL) { reURL = isFF32 ? xhr.responseURL : xhr.channel.URI.spec; cb(reURL); options.showAlert && (options.clickAlertToOpen ? alertsService.showAlertNotification(self.image, self.label, 'Ссылка раскукожена!\nНажмите, чтобы открыть в новой вкладке:\n' + (reURL.length > 100 ? ([reURL.slice(0,45), reURL.slice(-45)]).join('...') : reURL), true, reURL, alertListener, "") : alertsService.showAlertNotification(self.image, self.label, 'Ссылка раскукожена:\n' + (reURL.length > 100 ? ([reURL.slice(0,45), reURL.slice(-45)]).join('...') : reURL), false, "", null, "")); break; } default: cb(reURL); options.showAlert && alertsService.showAlertNotification(self.image, self.label, 'Ошибка при попытке получить ссылку: ' + xhr.statusText + ' [' + ev.type + ':' + xhr.status + ']', false, "", null, ""); break; } }; let evf = f => ['load', 'error', 'abort'].forEach(f); evf(m => xhr.addEventListener(m, handler, false)); try { xhr.mozBackgroundRequest = true; xhr.open('HEAD', aURL, true); xhr.channel.loadFlags |= Ci.nsIRequest.LOAD_ANONYMOUS | Ci.nsIRequest.LOAD_BYPASS_CACHE | Ci.nsIRequest.INHIBIT_CACHING; xhr.setRequestHeader("User-Agent", "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)", false); xhr.setRequestHeader("Accept", "text/html,text/xml", false); xhr.send(null); } catch (ex) { cb(reURL); options.showAlert && alertsService.showAlertNotification(self.image, self.label, 'Неправильная ссылка: ' + (ex.toString().length > 100 ? ([ex.toString().slice(0,45), ex.toString().slice(-45)]).join('...') : ex.toString()), false, "", null, ""); } }; function shouldDisplay() { mItem.label = "Раскукожить ссылку"; if (gContextMenu.onLink && !gContextMenu.isTextSelected) { url = gContextMenu.getLinkURL(); link = gContextMenu.link; isUnshortened = link.getAttribute("cb-short-url"); if (isUnshortened) mItem.label = "Скукожить ссылку"; } if (gContextMenu.onPlainTextLink) { url = gContextMenu.linkURL; } if (!gContextMenu.onPlainTextLink && gContextMenu.isTextSelected) { url = document.commandDispatcher.focusedWindow.content.document.getSelection().toString().trim(); } mItem.hidden = !((gContextMenu.onLink || (gContextMenu.onPlainTextLink || gContextMenu.isTextSelected) && options.showOnShortenedTextLinks) && isShortenedURL(url) || gContextMenu.onLink && isUnshortened); }; cntxtMenu.addEventListener("popupshowing", shouldDisplay, false); addDestructor(()=> { cntxtMenu.removeEventListener("popupshowing", shouldDisplay, false); cntxtMenu.removeChild(mItem); }); mItem.onclick =()=> { if (gContextMenu.onLink && !gContextMenu.isTextSelected) { if (!isUnshortened) { if (options.changeColorForUnshortenedLinks) { var linkClr = link.style.getPropertyValue('color'); linkClr && link.style.setProperty('-cb-old-color', linkClr, link.style.getPropertyPriority('color')); var oldClr = link.style.getPropertyValue('-cb-old-color'); var oldClrPrrt = link.style.getPropertyPriority('-cb-old-color'); link.style.setProperty("color", "orangered", "important"); } xhr(url, reURL => { if (!reURL) { options.changeColorForUnshortenedLinks && (oldClr ? (link.style.setProperty("color", oldClr, oldClrPrrt), link.removeProperty('-cb-old-color')) : link.style.removeProperty("color")); return; } if (options.changeColorForUnshortenedLinks) { link.style.setProperty("color", options.unshortenedLinksColor, "important"); options.changeColorBackAfterTimeout && setTimeout(()=> oldClr ? (link.style.setProperty("color", oldClr, oldClrPrrt), link.removeProperty('-cb-old-color')) : link.style.removeProperty("color"), 1000); } options.copyToClipboard && gClipboard.write(reURL); options.replaceShortenedLinks && (link.setAttribute("cb-short-url", link.href), link.setAttribute("href", reURL)); }) } else { oldClr ? (link.style.setProperty("color", oldClr, oldClrPrrt), link.removeProperty('-cb-old-color')) : link.style.removeProperty("color"); link.setAttribute("href", isUnshortened); link.removeAttribute("cb-short-url"); } } else { xhr(url, reURL => { if (!reURL) return; options.copyToClipboard && gClipboard.write(reURL); options.promptDialogForTextLinks && promptDialog(reURL); }) } }; this._handleClick =()=> { url = gClipboard.read(); if (!url || !isShortenedURL(url)) { options.showAlert && alertsService.showAlertNotification(self.image, self.label, 'Неправильная ссылка!', false, "", null, ""); return; } xhr(url, reURL => { if (!reURL) return; options.copyToClipboard && gClipboard.write(reURL); promptDialog(reURL); }) }; this.tooltipText = "ПКМ: Раскукожить ссылку в буфере обмена"; })(document.getElementById("contentAreaContextMenu"), document.getElementById("context-sep-open"), document.createElement("menuitem")); Иконка svg (www.flaticon.com): Выделить код Код:data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjUuNDY2cHgiIGhlaWdodD0iNDI1LjQ2N3B4IiB2aWV3Qm94PSIwIDAgNDI1LjQ2NiA0MjUuNDY3Ij4KPGcgaWQ9Imc3IiBzdHlsZT0iZmlsbDojNzk3YzgwO2ZpbGwtb3BhY2l0eToxIj4KPHBhdGggZD0iTTMxOC4xNSwyMzAuMTk1bDc3LjkzNC03Ny45MzdjMzEuODk0LTMxLjg5MiwzMS44OTQtODMuNzgyLTAuMDA0LTExNS42NzRsLTEyLjY2LTEyLjY2ICAgICBjLTMxLjg5My0zMS44OTYtODMuNzgtMzEuODk2LTExNS42NzQtMC4wMDRsLTc3LjkzNyw3Ny45MzRjLTE3LjU4OCwxNy41ODgtMjUuNDU3LDQxLjI2NC0yMy42NDYsNjQuMzExICAgICBjLTIzLjA0NS0xLjgxMy00Ni43MjIsNi4wNTYtNjQuMzA4LDIzLjY0N0wyMy45MiwyNjcuNzQ4Yy0zMS44OTQsMzEuODg5LTMxLjg5NCw4My43NzksMCwxMTUuNjc0bDEyLjY2NCwxMi42NjIgICAgIGMzMS44OTMsMzEuODkzLDgzLjc4MywzMS44OTMsMTE1LjY3NCwwbDc3LjkzNS03Ny45MzZjMTcuNTkyLTE3LjU5LDI1LjQ1OS00MS4yNjYsMjMuNjQ3LTY0LjMwOSAgICAgQzI3Ni44ODQsMjU1LjY1NCwzMDAuNTYsMjQ3Ljc4MywzMTguMTUsMjMwLjE5NXogTTIwMi42NTMsMjkwLjYwNWwtNzcuOTM2LDc3LjkzOGMtMTYuNzA1LDE2LjcwMy00My44ODksMTYuNzAzLTYwLjU5LDAgICAgIGwtMTIuNjY2LTEyLjY2NmMtMTYuNzA1LTE2LjcwMS0xNi43MDMtNDMuODg1LDAtNjAuNTk0bDc3LjkzNi03Ny45MzJjMTQuMTQtMTQuMTQxLDM1Ljc3OS0xNi4zMDYsNTIuMjI2LTYuNTE2bC0zMi4zMDIsMzIuMzA3ICAgICBjLTcuNjA2LDcuNjA0LTcuNjA2LDE5LjkzOCwwLDI3LjU0MWM3LjYwNSw3LjYwNywxOS45MzcsNy42MDcsMjcuNTQxLDBsMzIuMzA2LTMyLjMwMyAgICAgQzIxOC45NTksMjU0LjgyOCwyMTYuNzk1LDI3Ni40NjksMjAyLjY1MywyOTAuNjA1eiBNMjM4LjM4MiwyMDkuMTY5bDMyLjI5OS0zMi4zMDZjNy42MDgtNy42MDIsNy42MDgtMTkuOTM1LDAtMjcuNTM4ICAgICBjLTcuNjA0LTcuNjEtMTkuOTM2LTcuNjEtMjcuNTQxLTAuMDA0bC0zMi4zMDMsMzIuMzAzYy05Ljc5MS0xNi40NDYtNy42MjctMzguMDg3LDYuNTE0LTUyLjIyNmw3Ny45MzUtNzcuOTM1ICAgICBjMTYuNzA3LTE2LjcwNyw0My44OS0xNi43MDcsNjAuNTk0LDBsMTIuNjY0LDEyLjY2NGMxNi43MDUsMTYuNzA1LDE2LjcwNSw0My44ODYsMCw2MC41OTFsLTc3LjkzNiw3Ny45MzcgICAgIEMyNzYuNDY4LDIxNi43OTcsMjU0LjgyOCwyMTguOTU5LDIzOC4zODIsMjA5LjE2OXoiCmlkPSJwYXRoOSIgc3R5bGU9ImZpbGw6Izc5N2M4MCIgLz4KPHBhdGggZD0iTTM0My40NjYsMjYxLjQ2NWMtNDUuMjg3LDAtODIsMzYuNzEzLTgyLDgyczM2LjcxMyw4Miw4Miw4MmM0NS4yODYsMCw4Mi0zNi43MTMsODItODJTMzg4Ljc1MywyNjEuNDY1LDM0My40NjYsMjYxLjQ2NXogICAgICBNMzcyLjUwNSwzMzMuNTY0bC01Ni4wNDYsNTYuMTA0Yy0wLjIzOSwwLjIzOC0wLjUzNiwwLjQxLTAuODYyLDAuNDk2bC0yMi4zMTUsNS44NWMtMC42NDksMC4xNjgtMS4zNDctMC4wMi0xLjgyMi0wLjQ5NCAgICAgYy0wLjQ3Ny0wLjQ3OS0wLjY2Ni0xLjE3Mi0wLjQ5Ni0xLjgyNGw1LjgyNi0yMi4zMThjMC4wODQtMC4zMjYsMC4yNTYtMC42MjcsMC40OTQtMC44NjNsNTYuMDQ3LTU2LjEwNCAgICAgYzAuNzQyLTAuNzQyLDEuOTQ1LTAuNzQ0LDIuNjg4LTAuMDAybDQuNTQ4LDQuNTQxYzAuNzM5LDAuNzQsMC43NDEsMS45NDMsMCwyLjY4OGwtMzcuNDMzLDM3LjQ3MWw0LjcwOSw0LjcwM2wzNy40MzUtMzcuNDcxICAgICBjMC43MzktMC43NDIsMS45NC0wLjc0MiwyLjY4Mi0wLjAwMmw0LjU1LDQuNTQxQzM3My4yNSwzMzEuNjE3LDM3My4yNSwzMzIuODIyLDM3Mi41MDUsMzMzLjU2NHogTTM5NS40NzIsMzEwLjU3NGwtMTcsMTcuMDE4ICAgICBjLTAuNzM5LDAuNzQ0LTEuOTQyLDAuNzQ0LTIuNjg1LDAuMDAybC0xNi40ODktMTYuNDc1Yy0wLjc0NC0wLjc0LTAuNzQ0LTEuOTQzLTAuMDAyLTIuNjg4bDE3LTE3LjAyICAgICBjMC43NDEtMC43NCwxLjk0NC0wLjc0LDIuNjg4LTAuMDAybDE2LjQ4NywxNi40NzdDMzk2LjIxNiwzMDguNjI5LDM5Ni4yMTYsMzA5LjgzMiwzOTUuNDcyLDMxMC41NzR6IgppZD0icGF0aDExIiBzdHlsZT0iZmlsbDojNzk3YzgwIiAvPjwvZz4KPC9zdmc+ Иконка png 16x16 (www.flaticon.com): Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAACFAAAAhQHi7P/BAAABNmlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjarY6xSsNQFEDPi6LiUCsEcXB4kygotupgxqQtRRCs1SHJ1qShSmkSXl7VfoSjWwcXd7/AyVFwUPwC/0Bx6uAQIYODCJ7p3MPlcsGo2HWnYZRhEGvVbjrS9Xw5+8QMUwDQCbPUbrUOAOIkjvjB5ysC4HnTrjsN/sZ8mCoNTIDtbpSFICpA/0KnGsQYMIN+qkHcAaY6addAPAClXu4vQCnI/Q0oKdfzQXwAZs/1fDDmADPIfQUwdXSpAWpJOlJnvVMtq5ZlSbubBJE8HmU6GmRyPw4TlSaqo6MukP8HwGK+2G46cq1qWXvr/DOu58vc3o8QgFh6LFpBOFTn3yqMnd/n4sZ4GQ5vYXpStN0ruNmAheuirVahvAX34y/Axk/96FpPYgAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAUggAARVYAAA6lwAAF2/XWh+QAAABj0lEQVR42pSTz0qWYRDFX0gQRRAUwmrRxkVQK28haNM23OguEG+gM3SmfssiEHQrdAHfIiEvwQhvwIX9AQ2yXYi1icx824wfb19fZovZPMM5c+aceZq2bZuLlMwdmZcyezIPZabbtm0uBI7kqUwrsx3JuswXmQ8yo/8DftZRcyOSHzIL/5L9RKaNZGVI75XMxnnguwVeHdK7JvNNZuk8gp7Mvsy4zKLMVL3PRLIr81lm4m+TezKHkezLbEZyIjMrMyOzK3MoM/dHCpH9nfdrelt1X+bmIPg3go7bqyV7M7JPcBzJqcynLrhP0AGv1BqLMic1+VhmS2ZZZrLIR/oEdWGDOU9FMluyTwt8OZI1maNIDmQeRzLW1HluDzmgKzJvSvakzFrHkxelcrmp214fSOJqJG/PDItkXOaoDO7JPJD5GMlOUx/jq8ytAl+Xed91W2ZE5kDmeST3ZN6Vkq0mkun6GD9lXst8ryOZG1jpUSS3a622Epo/a47KLMhsRLIkMzHEk7Eyc6dSmY/k0q8BAFXPYK4TxOuUAAAAAElFTkSuQmCC Спасибо за помощь Dumby и всем в чьи кнопки подглядывал при создании. |
turbot > 02-09-2016 00:35:49 |
Сайты в боковой панели(Firefox 38+), от 02.09.2016 (Прим.: Пользователям 48+ следует обратить внимание на имеющийся баг в Custom Buttons, который делает нерабочими все кнопки берущие код с вкладки "Справка". Подробнее, как можно исправить, тут.) Клики на кнопке: Код кнопки, вкладки инициализации и иконка: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0421%u0430%u0439%u0442%u044B%20%u0432%20%u0431%u043E%u043A%u043E%u0432%u043E%u0439%20%u043F%u0430%u043D%u0435%u043B%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAiEAAAIhAENVwL6AAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAHqSURBVHjarJM9aBVBFIW/s2wkgmDnDxoUgoJWokXERlEbf5pY2AhCCkWUgCaNvs3b2Z335lmZoETRINhKLPxD0CZgI0GtLFQUG8FGmxSBmBRzbSYSJE2IB4b5u/cMc+65MjOWYsT57cAVM9sL7AIi8EnSuxjjWKdV/Vgar0WCRrPqknQDuAB0AR+BsbS+DOwEfku6GWNsdFpV/EvQaFa5pElJ+8xsFlhrZn2dVvUrkW+R9Bb4CWyW9CrGONBpVTEHkDQK9JvZHNADzEv6WpQ16R6gG9gELJjZ2SzLvgNNXRtx2yR9AS5JOmJmfcAQy+Me8Bz4AFw3s95cUi8wHLy7X5T1LPA4ePdkueyirNcDM8G7p0VZr5G0Q41mdTB497oo6/3Bu+mirA+b2beUEwGyLMuTXj0p9kDw7k1R1kfVaFYvgUfA3VSBfqANXAUMyNPsgQ7wEJgAzgOnMuA2MJ4O7gCjwbtpYKOkBUDAuuDd+/TIOHBxMTYzsxfAieDdA+BY8G4qKT8QYxyWNCjpHICZPQOOB+8mgJPBu6lc0iFgNzAFbCjK+nTwbrJdl5//FVHSGWAmbfcUZT2/6jLKzCjK+hYwCMwlw8ynsRTdydYLQLekdrsum3n625CkrSuw8mSM0f2/ZlpNO/8ZAGBFAEu2Gqq+AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0421%u0430%u0439%u0442%u044B%20%u0432%20%u0431%u043E%u043A%u043E%u0432%u043E%u0439%20%u043F%u0430%u043D%u0435%u043B%u0438%20%u043E%u0442%2002.09.2016%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20if%20%28e.target%20%21%3D%20this%29%20return%3B%0A%20%20let%20clipboard%20%3D%20gClipboard.read%28%29%3B%0A%20%20if%20%28e.button%20%3D%3D%200%29%0A%20%20%20%20menuPopup.openPopup%28this%2C%20%27after_start%27%29%3B%0A%20%20if%20%28e.button%20%3D%3D%201%29%0A%20%20%20%20openWebPanel%28clipboard%2C%20clipboard%29%3B%0A%20%20if%20%28e.button%20%3D%3D%202%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.altKey%29%20%7B%0A%20%20%20%20e.preventDefault%28%29%3B%20e.stopPropagation%28%29%3B%0A%20%20%20%20openWebPanel%28window.content.document.title%2C%20window.content.document.location%29%0A%20%20%7D%0A%7D%0Athis.tooltipText%20%3D%20%27%u041B%u041A%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%u043E%20%u0441%u043F%u0438%u0441%u043A%u043E%u043C%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u043D%u044B%u0445%20%u0430%u0434%u0440%u0435%u0441%u043E%u0432%5Cn%5C%u0421%u041A%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%5Cn%5C%u041F%u041A%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%27%3B%0A%0Avar%20menuPopup%20%3D%20createNode%28%22menupopup%22%2C%20self%2C%20false%2C%20%7Bcontext%3A%20%22%22%7D%29%2C%0A%20%20%20%20sbBox%20%3D%20SidebarUI._box%2C%0A%20%20%20%20sbClsBtn%20%3D%20sbBox.querySelector%28%22.close-icon.tabbable%22%29%2C%0A%20%20%20%20wps%20%3D%20%22SidebarUI.browser.contentDocument.querySelector%28%27browser%23web-panels-browser%27%29.%22%2C%0A%20%20%20%20sep%20%3D%20%22%5Cn%5Cn%22%2C%0A%20%20%20%20//%20%u0417%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u0441%u0442%u0440%u043E%u043A%u0443%20%u043D%u0438%u0436%u0435%20%u043D%u0430%3A%20help%20%3D%20custombutton.buttonGetHelp%28self%29.trim%28%29%2C%0A%20%20%20%20//%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u0445%u043E%u0442%u0438%u0442%u0435%20%u0432%u043E%u0437%u0438%u0442%u044C%u0441%u044F%20%u0441%20%u043E%u0442%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%u043C%20%u043F%u0440%u043E%u0432%u0435%u0440%u043A%u0438%20%u0440%u0430%u0441%u0448%u0438%u0440%u0435%u043D%u0438%u0439%0A%20%20%20%20//%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u043E%u0439%20%u043F%u043E%u0444%u0438%u043A%u0448%u0435%u043D%u043D%u043E%u0433%u043E%20CB%20%u0432%20%u0444%u044448+%0A%20%20%20%20help%20%3D%20self.Help.trim%28%29%2C%0A%20%20%20%20items%20%3D%20help%0A%20%20%20%20%20%20%3F%20help.split%28sep%29%0A%20%20%20%20%20%20%3A%20%5B%22About%20Config%5Cnabout%3Aconfig%5Cnchrome%3A//mozapps/skin/places/defaultFavicon.png%22%5D%2C%0A%20%20%20%20menugroup%20%3D%20createNode%28%22menugroup%22%2C%20menuPopup%2C%20false%2C%20%7B%0A%20%20%20%20%20%20orient%3A%20%22vertical%22%2C%0A%20%20%20%20%20%20oncommand%3A%20%22openPage%28event.target%29%3B%22%2C%0A%20%20%20%20%20%20oncontextmenu%3A%20%22removePage%28event.target%29%3B%22%0A%20%20%20%20%7D%29%2C%0A%20%20%20%20cnMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%2C%0A%20%20%20%20cnOpen%20%3D%20document.getElementById%28%22context-sep-open%22%29%2C%0A%20%20%20%20cnItem%20%3D%20createNode%28%22menuitem%22%2C%20cnOpen%2C%20true%2C%20%7B%0A%20%20%20%20%20%20id%3A%20%22open-in-sidebar%22%2C%0A%20%20%20%20%20%20label%3A%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u0411%u043E%u043A%u043E%u0432%u043E%u0439%20%u041F%u0430%u043D%u0435%u043B%u0438%22%2C%0A%20%20%20%20%20%20oncommand%3A%20%22openWebPanel%28gContextMenu.getLinkURL%28%29%2C%20gContextMenu.getLinkURL%28%29%29%3B%20document.getElementById%28%27verticaltoolbar-button%27%29.click%28%29%3B%22%0A%20%20%20%20%7D%29%2C%0A%20%20%20%20cnListener%20%3D%20cnMenu.addEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20cnItem.hidden%20%3D%20%21gContextMenu.onLink%29%2C%0A%20%20%20%20cnDestructor%20%3D%20addDestructor%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20cnMenu.removeEventListener%28%22popupshowing%22%2C%20cnListener%29%3B%0A%20%20%20%20%20%20cnMenu.removeChild%28cnItem%29%0A%20%20%20%20%7D%29%2C%0A%20%20%20%20sbNav%20%3D%20%5B%0A%20%20%20%20%20%20%5B%22back%22%2C%20%22goBack%28%29%3B%22%2C%20%22back-button-tooltip%22%5D%2C%0A%20%20%20%20%20%20%5B%22forward%22%2C%20%22goForward%28%29%3B%22%2C%20%22forward-button-tooltip%22%5D%2C%0A%20%20%20%20%20%20%5B%22reload%22%2C%20%22reload%28%29%3B%22%2C%2C%20%22Reload%20current%20page%22%5D%2C%0A%20%20%20%20%20%20%5B%22stop%22%2C%20%22stop%28%29%3B%22%2C%2C%20%22Stop%20loading%20this%20page%22%5D%0A%20%20%20%20%5D%3B%0A%0Aitems.forEach%28%28item%2C%20index%29%20%3D%3E%20%7B%0A%20%20var%20%5Btitle%2C%20url%2C%20icon%5D%20%3D%20item.split%28%22%5Cn%22%29%3B%0A%20%20icon%20%3D%20%28icon.startsWith%28%27chrome%3A%27%29%20%7C%7C%20icon.startsWith%28%27file%3A%27%29%20%7C%7C%20icon.startsWith%28%27data%3A%27%29%29%20%3F%20icon%20%3A%20%27moz-anno%3Afavicon%3A%27%20+%20icon%3B%0A%20%20createNode%28%22menuitem%22%2C%20menugroup%2C%20false%2C%20%7B%0A%20%20%20%20tooltiptext%3A%20url%2C%0A%20%20%20%20class%3A%20%22menuitem-iconic%22%2C%0A%20%20%20%20label%3A%20title%2C%0A%20%20%20%20image%3A%20icon%0A%20%20%7D%29.index%20%3D%20index%3B%0A%7D%29%3B%0Amenugroup.openPage%20%3D%20%28%7Bindex%7D%29%20%3D%3E%20openWebPanel%28...items%5Bindex%5D.split%28%22%5Cn%22%29%29%3B%0Amenugroup.removePage%20%3D%20%28%7Bindex%7D%29%20%3D%3E%20items.splice%28index%2C%201%29%20%26%26%20installButton%28items.join%28sep%29%29%3B%0A%0A%5B%0A%20%20%5B%27menuseparator%27%5D%2C%0A%20%20%5B%27menuitem%27%2C%20%27%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%27%2C%20%27custombuttons.editButton%28this.parentNode.parentNode%29%3B%27%5D%2C%0A%20%20%5B%27menuitem%27%2C%20%27%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%27%2C%20%27openWebPanel%28gClipboard.read%28%29%2C%20gClipboard.read%28%29%29%3B%27%5D%2C%0A%20%20%5B%27menuitem%27%2C%20%27%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u0441%u0430%u0439%u0442%27%2C%20%27this.parentNode.parentNode.addPage%28window.content.document.title%2C%20window.content.document.location.href%2C%20gBrowser.mCurrentTab.image%29%3B%27%5D%0A%5D.forEach%28%28%5Btype%2C%20lbl%2C%20cmd%5D%29%20%3D%3E%20%0A%20%20%20%20%20%20%20%20%20%20createNode%28type%2C%20menuPopup%2C%20false%2C%20%7Blabel%3A%20lbl%2C%20oncommand%3A%20cmd%7D%29%29%3B%0A%0Aif%20%28%21sbBox.hasAttribute%28%22navbuttons%22%29%29%20%7B%0A%20%20sbNav.forEach%28%28%5Bid%2C%20cmd%2C%20tltp%2C%20ttxt%5D%29%20%3D%3E%20%7B%0A%20%20%20%20var%20icon%20%3D%20%22chrome%3A//browser/skin/content-contextmenu.svg%23%22%20+%20id%3B%0A%20%20%20%20id%20%3D%20%27sb-%27%20+%20id%20+%20%27-button%27%3B%0A%20%20%20%20createNode%28%22toolbarbutton%22%2C%20sbClsBtn%2C%20true%2C%20%7B%0A%20%20%20%20%20%20id%3A%20id%2C%0A%20%20%20%20%20%20oncommand%3A%20wps%20+%20cmd%2C%0A%20%20%20%20%20%20tooltip%3A%20tltp%2C%0A%20%20%20%20%20%20tooltiptext%3A%20ttxt%2C%0A%20%20%20%20%20%20style%3A%20%27list-style-image%3A%20url%28%22%27%20+%20icon%20+%20%27%22%29%3B%20-moz-image-region%3A%20rect%280%2011px%2011px%200%29%3B%27%0A%20%20%20%20%7D%29%0A%20%20%7D%29%0A%20%20sbBox.setAttribute%28%27navbuttons%27%2C%20%27true%27%29%3B%0A%7D%0A%0Afunction%20installButton%28help%29%20%7B%0A%20%20%20%20var%20link%20%3D%20custombuttons.makeButtonLink%28%22edit%22%2C%20_id%29%3B%0A%20%20%20%20var%20param%20%3D%20custombuttons.cbService.getButtonParameters%28link%29%3B%0A%20%20%20%20param%20%3D%20param.wrappedJSObject%20%7C%7C%20param%3B%0A%20%20%20%20param.help%20%3D%20help%3B%0A%20%20%20%20custombuttons.cbService.installButton%28param%29%3B%0A%7D%0A%0Afunction%20createNode%28type%2C%20elm%2C%20before%2C%20attrs%29%20%7B%0A%20%20var%20node%20%3D%20before%0A%20%20%3F%20elm.parentNode.insertBefore%28document.createElement%28type%29%2C%20elm%29%0A%20%20%3A%20elm.appendChild%28document.createElement%28type%29%29%3B%0A%20%20for%28var%20name%20in%20attrs%29%20%7B%0A%20%20%20%20if%20%28attrs%5Bname%5D%29%0A%20%20%20%20%20%20node.setAttribute%28name%2C%20attrs%5Bname%5D%29%3B%0A%20%20%7D%0A%20%20return%20node%3B%0A%7D%0A%0Athis.addPage%20%3D%28title%2C%20url%2C%20icon%29%3D%3E%20%7B%0A%20%20title%20%3D%20%21title%20%3F%20url%20%3A%20title%3B%0A%20%20icon%20%3D%20%21icon%20%3F%20%27chrome%3A//mozapps/skin/places/defaultFavicon.png%27%20%3A%20icon%3B%0A%20%20var%20newItem%20%3D%20%5Btitle%2C%20url%2C%20icon%5D.join%28%27%5Cn%27%29%3B%0A%20%20installButton%28%5Bhelp%2C%20newItem%5D.join%28sep%29%29%3B%0A%7D%0A%0A%28%28browser%2C%20listener%2C%20br%29%20%3D%3E%20%7B%20if%20%28browser%29%20%7B%0A%20%20addEventListener%28%22DOMFrameContentLoaded%22%2C%20listener%2C%20true%2C%20browser%29%3B%0A%20%20var%20getBr%20%3D%20%28%29%20%3D%3E%20browser.contentDocument.querySelector%28listener.selector%29%3B%0A%20%20if%20%28%28br%20%3D%20getBr%28%29%29%29%20br.window%20%3D%20%7Bparent%3A%20listener.parent%7D%3B%0A%20%20addDestructor%28%28%29%20%3D%3E%20%7B%0A%20%20%20%20if%20%28%28br%20%3D%20getBr%28%29%29%29%20delete%20br.window%3B%0A%20%20%7D%29%3B%0A%7D%7D%29%28SidebarUI.browser%2C%20%7B%0A%20%20selector%3A%20%22browser%23web-panels-browser%22%2C%0A%20%20handleEvent%28e%29%20%7B%0A%20%20%20%20if%20%28e.target.matches%28this.selector%29%20%26%26%20%21e.target.hasAttribute%28%22disableglobalhistory%22%29%29%20%7B%0A%20%20%20%20%20%20sbNav.forEach%28%28%5Bid%2C%20cmd%5D%29%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20id%20%3D%20%27%23context-%27%20+%20id%3B%0A%20%20%20%20%20%20%20%20var%20mItem%20%3D%20SidebarUI.browser.contentDocument.querySelector%28id%29%3B%0A%20%20%20%20%20%20%20%20if%20%28id%20%3D%3D%20%22%23context-reload%22%29%0A%20%20%20%20%20%20%20%20%20%20mItem.style.setProperty%28%27display%27%2C%20%27-moz-box%27%2C%20%27important%27%29%3B%0A%20%20%20%20%20%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20eval%28wps%20+%20cmd%29%3B%0A%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20e.target.setAttribute%28%22disableglobalhistory%22%2C%20%27false%27%29%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28e.target.matches%28this.selector%29%20%26%26%20%21%28%22window%22%20in%20e.target%29%29%0A%20%20%20%20%20%20e.target.window%20%3D%20%7Bparent%3A%20this.parent%7D%3B%0A%20%20%7D%2C%0A%20%20get%20parent%28%29%20%7B%0A%20%20%20%20delete%20this.parent%3B%0A%20%20%20%20var%20parent%20%3D%20%7B%7D%3B%0A%20%20%20%20parent.contentAreaClick%20%3D%20eval%28%60%28%24%7B%0A%20%20%20%20%20%20contentAreaClick.toString%28%29.replace%28%0A%20%20%20%20%20%20%20%20%27linkNode.getAttribute%28%22onclick%22%29%27%2C%0A%20%20%20%20%20%20%20%20%22%21target%20%26%26%20this.shouldLoadInPanelBrowser%28linkNode%29%20%7C%7C%20%24%26%22%0A%20%20%20%20%20%20%29%0A%20%20%20%20%7D%29%60%29%3B%0A%20%20%20%20parent.shouldLoadInPanelBrowser%20%3D%20link%20%3D%3E%20%7B%0A//%20%u0417%u0434%u0435%u0441%u044C%20%u043C%u043E%u0436%u043D%u043E%20%u0437%u0430%u0434%u0430%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%2C%20%u043A%u0430%u043A%u0438%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0441%u043B%u0435%u0434%u0443%u0435%u0442%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u0432%20%u043E%u0431%u044B%u0447%u043D%u044B%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%3A%0A//%20%20%20%20%20%20%20if%20%28%21%28link.ownerDocument.location.protocol%20%3D%3D%20%22file%3A%22%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20link.className%20%3D%3D%20%27file%27%29%29%20return%20true%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20this.parent%20%3D%20parent%3B%0A%20%20%7D%0A%7D%29%3B%0A%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Avar%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28%0A%20%20%5B%0A%20%20%20%20%27@namespace%20xul%20url%28%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%29%3B%27%2C%0A%20%20%20%20%27@namespace%20html%20url%28%22http%3A//www.w3.org/1999/xhtml%22%29%3B%27%2C%0A%20%20%20%20%27@namespace%20svg%20url%28http%3A//www.w3.org/2000/svg%29%3B%27%2C%0A%20%20%20%20%27%27%2C%0A%20%20%20%20%27@-moz-document%20url%28%22chrome%3A//browser/content/browser.xul%22%29%20%7B%27%2C%0A%20%20%20%20%27%20%20%23sidebar-throbber%5Bloading%5D%20%7E%20%23sb-reload-button%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20display%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-throbber%3Anot%28%5Bloading%5D%29%20%7E%20%23sb-stop-button%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20display%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-box%20toolbarbutton%5Bid%5E%3D%22sb-%22%5D%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20-moz-appearance%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20padding%3A%203.5px%206px%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20margin%3A%20.5px%200%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20background%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20background-clip%3A%20border-box%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20border%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20border-radius%3A%200%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20box-shadow%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-box%3Anot%28%5Bsidebarcommand%3D%22viewWebPanelsSidebar%22%5D%29%20toolbarbutton%5Bid%5E%3D%22sb-%22%5D%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20display%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-box%20toolbarbutton%5Bid%5E%3D%22sb-%22%5D%20.toolbarbutton-icon%20%7B%27%2C%0A//%20%20%20%u0420%u0430%u0441%u043A%u043E%u043C%u043C%u0435%u043D%u0442%u0438%u0440%u0443%u0439%u0442%u0435%20%u0441%u0442%u0440%u043E%u043A%u0443%20%u043D%u0438%u0436%u0435%2C%20%u0435%u0441%u043B%u0438%20%u0443%20%u0432%u0430%u0441%20%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043A%u0430%20%u0441%u0430%u0439%u0434%u0431%u0430%u0440%u0430%20%u0438%u043C%u0435%u0435%u0442%20%u0442%u0435%u043C%u043D%u044B%u0439%20%u0444%u043E%u043D%3A%0A//%20%20%20%20%20%27%20%20%20%20filter%3A%20invert%28.9%29%20%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20opacity%3A%200.5%20%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20transition%3A%20opacity%20ease%20200ms%20%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-box%20toolbarbutton%5Bid%5E%3D%22sb-%22%5D%3Ahover%20.toolbarbutton-icon%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20opacity%3A%200.9%20%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%7D%27%0A%20%20%5D.join%28%27%5Cn%27%29%29%29%3B%0AaddDestructor%28%28%29%3D%3E%20sss.unregisterSheet%28this.uri%2C%200%20%7C%7C%20uri%2C%200%29%29%3B%0Athis.uri%20%3D%20uri%3B%0Asss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Сайты в боковой панели от 02.09.2016 this.onclick =e=> { if (e.target != this) return; let clipboard = gClipboard.read(); if (e.button == 0) menuPopup.openPopup(this, 'after_start'); if (e.button == 1) openWebPanel(clipboard, clipboard); if (e.button == 2 && !e.shiftKey && !e.ctrlKey && !e.altKey) { e.preventDefault(); e.stopPropagation(); openWebPanel(window.content.document.title, window.content.document.location) } } this.tooltipText = 'ЛКМ: Открыть меню со списком сохраненных адресов\n\СКМ: Открыть адрес из буфера\n\ПКМ: Открыть адрес активной вкладки'; var menuPopup = createNode("menupopup", self, false, {context: ""}), sbBox = SidebarUI._box, sbClsBtn = sbBox.querySelector(".close-icon.tabbable"), wps = "SidebarUI.browser.contentDocument.querySelector('browser#web-panels-browser').", sep = "\n\n", // Заменить строку ниже на: help = custombutton.buttonGetHelp(self).trim(), // если не хотите возиться с отключением проверки расширений // и установкой пофикшенного CB в фф48+ help = self.Help.trim(), items = help ? help.split(sep) : ["About Config\nabout:config\nchrome://mozapps/skin/places/defaultFavicon.png"], menugroup = createNode("menugroup", menuPopup, false, { orient: "vertical", oncommand: "openPage(event.target);", oncontextmenu: "removePage(event.target);" }), cnMenu = document.getElementById("contentAreaContextMenu"), cnOpen = document.getElementById("context-sep-open"), cnItem = createNode("menuitem", cnOpen, true, { id: "open-in-sidebar", label: "Открыть в Боковой Панели", oncommand: "openWebPanel(gContextMenu.getLinkURL(), gContextMenu.getLinkURL()); document.getElementById('verticaltoolbar-button').click();" }), cnListener = cnMenu.addEventListener("popupshowing", ()=> cnItem.hidden = !gContextMenu.onLink), cnDestructor = addDestructor(()=> { cnMenu.removeEventListener("popupshowing", cnListener); cnMenu.removeChild(cnItem) }), sbNav = [ ["back", "goBack();", "back-button-tooltip"], ["forward", "goForward();", "forward-button-tooltip"], ["reload", "reload();",, "Reload current page"], ["stop", "stop();",, "Stop loading this page"] ]; items.forEach((item, index) => { var [title, url, icon] = item.split("\n"); icon = (icon.startsWith('chrome:') || icon.startsWith('file:') || icon.startsWith('data:')) ? icon : 'moz-anno:favicon:' + icon; createNode("menuitem", menugroup, false, { tooltiptext: url, class: "menuitem-iconic", label: title, image: icon }).index = index; }); menugroup.openPage = ({index}) => openWebPanel(...items[index].split("\n")); menugroup.removePage = ({index}) => items.splice(index, 1) && installButton(items.join(sep)); [ ['menuseparator'], ['menuitem', 'Редактировать кнопку', 'custombuttons.editButton(this.parentNode.parentNode);'], ['menuitem', 'Открыть адрес из буфера обмена', 'openWebPanel(gClipboard.read(), gClipboard.read());'], ['menuitem', 'Добавить текущий сайт', 'this.parentNode.parentNode.addPage(window.content.document.title, window.content.document.location.href, gBrowser.mCurrentTab.image);'] ].forEach(([type, lbl, cmd]) => createNode(type, menuPopup, false, {label: lbl, oncommand: cmd})); if (!sbBox.hasAttribute("navbuttons")) { sbNav.forEach(([id, cmd, tltp, ttxt]) => { var icon = "chrome://browser/skin/content-contextmenu.svg#" + id; id = 'sb-' + id + '-button'; createNode("toolbarbutton", sbClsBtn, true, { id: id, oncommand: wps + cmd, tooltip: tltp, tooltiptext: ttxt, style: 'list-style-image: url("' + icon + '"); -moz-image-region: rect(0 11px 11px 0);' }) }) sbBox.setAttribute('navbuttons', 'true'); } function installButton(help) { var link = custombuttons.makeButtonLink("edit", _id); var param = custombuttons.cbService.getButtonParameters(link); param = param.wrappedJSObject || param; param.help = help; custombuttons.cbService.installButton(param); } function createNode(type, elm, before, attrs) { var node = before ? elm.parentNode.insertBefore(document.createElement(type), elm) : elm.appendChild(document.createElement(type)); for(var name in attrs) { if (attrs[name]) node.setAttribute(name, attrs[name]); } return node; } this.addPage =(title, url, icon)=> { title = !title ? url : title; icon = !icon ? 'chrome://mozapps/skin/places/defaultFavicon.png' : icon; var newItem = [title, url, icon].join('\n'); installButton([help, newItem].join(sep)); } ((browser, listener, br) => { if (browser) { addEventListener("DOMFrameContentLoaded", listener, true, browser); var getBr = () => browser.contentDocument.querySelector(listener.selector); if ((br = getBr())) br.window = {parent: listener.parent}; addDestructor(() => { if ((br = getBr())) delete br.window; }); }})(SidebarUI.browser, { selector: "browser#web-panels-browser", handleEvent(e) { if (e.target.matches(this.selector) && !e.target.hasAttribute("disableglobalhistory")) { sbNav.forEach(([id, cmd]) => { id = '#context-' + id; var mItem = SidebarUI.browser.contentDocument.querySelector(id); if (id == "#context-reload") mItem.style.setProperty('display', '-moz-box', 'important'); mItem.onclick =()=> eval(wps + cmd); }) e.target.setAttribute("disableglobalhistory", 'false') } if (e.target.matches(this.selector) && !("window" in e.target)) e.target.window = {parent: this.parent}; }, get parent() { delete this.parent; var parent = {}; parent.contentAreaClick = eval(`(${ contentAreaClick.toString().replace( 'linkNode.getAttribute("onclick")', "!target && this.shouldLoadInPanelBrowser(linkNode) || $&" ) })`); parent.shouldLoadInPanelBrowser = link => { // Здесь можно задать исключения, какие ссылки следует открывать в обычных вкладках: // if (!(link.ownerDocument.location.protocol == "file:" // && link.className == 'file')) return true; } return this.parent = parent; } }); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); var uri = makeURI("data:text/css," + encodeURIComponent( [ '@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");', '@namespace html url("http://www.w3.org/1999/xhtml");', '@namespace svg url(http://www.w3.org/2000/svg);', '', '@-moz-document url("chrome://browser/content/browser.xul") {', ' #sidebar-throbber[loading] ~ #sb-reload-button {', ' display: none!important;', ' }', ' #sidebar-throbber:not([loading]) ~ #sb-stop-button {', ' display: none!important;', ' }', ' #sidebar-box toolbarbutton[id^="sb-"] {', ' -moz-appearance: none!important;', ' padding: 3.5px 6px!important;', ' margin: .5px 0!important;', ' background: none!important;', ' background-clip: border-box!important;', ' border: none!important;', ' border-radius: 0!important;', ' box-shadow: none!important;', ' }', ' #sidebar-box:not([sidebarcommand="viewWebPanelsSidebar"]) toolbarbutton[id^="sb-"] {', ' display: none!important;', ' }', ' #sidebar-box toolbarbutton[id^="sb-"] .toolbarbutton-icon {', // Раскомментируйте строку ниже, если у вас заголовок сайдбара имеет темный фон: // ' filter: invert(.9) !important;', ' opacity: 0.5 !important;', ' transition: opacity ease 200ms !important;', ' }', ' #sidebar-box toolbarbutton[id^="sb-"]:hover .toolbarbutton-icon {', ' opacity: 0.9 !important;', ' }', '}' ].join('\n'))); addDestructor(()=> sss.unregisterSheet(this.uri, 0 || uri, 0)); this.uri = uri; sss.loadAndRegisterSheet(uri, 0); Иконка (www.flaticon.com): Выделить код Код:data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAiEAAAIhAENVwL6AAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAHqSURBVHjarJM9aBVBFIW/s2wkgmDnDxoUgoJWokXERlEbf5pY2AhCCkWUgCaNvs3b2Z335lmZoETRINhKLPxD0CZgI0GtLFQUG8FGmxSBmBRzbSYSJE2IB4b5u/cMc+65MjOWYsT57cAVM9sL7AIi8EnSuxjjWKdV/Vgar0WCRrPqknQDuAB0AR+BsbS+DOwEfku6GWNsdFpV/EvQaFa5pElJ+8xsFlhrZn2dVvUrkW+R9Bb4CWyW9CrGONBpVTEHkDQK9JvZHNADzEv6WpQ16R6gG9gELJjZ2SzLvgNNXRtx2yR9AS5JOmJmfcAQy+Me8Bz4AFw3s95cUi8wHLy7X5T1LPA4ePdkueyirNcDM8G7p0VZr5G0Q41mdTB497oo6/3Bu+mirA+b2beUEwGyLMuTXj0p9kDw7k1R1kfVaFYvgUfA3VSBfqANXAUMyNPsgQ7wEJgAzgOnMuA2MJ4O7gCjwbtpYKOkBUDAuuDd+/TIOHBxMTYzsxfAieDdA+BY8G4qKT8QYxyWNCjpHICZPQOOB+8mgJPBu6lc0iFgNzAFbCjK+nTwbrJdl5//FVHSGWAmbfcUZT2/6jLKzCjK+hYwCMwlw8ynsRTdydYLQLekdrsum3n625CkrSuw8mSM0f2/ZlpNO/8ZAGBFAEu2Gqq+AAAAAElFTkSuQmCC Спасибо Dumby за помощь и код и Stakhovsky - за идею кнопки. |
turbot > 02-09-2016 01:07:00 |
Tab Sound Control(Firefox 42+ (для контроля звука во вкладках с флеш-контентом - требуется плагин Flash версии 20+)), от 02.09.2016 Клики на кнопке: Shift + Колесико мыши над вкладкой: Регулировать громкость звука во вкладке Горячие клавиши (вне зависимости от текущей языковой раскладки): Код кнопки, вкладки инициализации и иконка: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3ETab%20Sound%20Control%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/svg+xml%3Bbase64%2CPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGhlaWdodD0nMTZweCcgd2lkdGg9JzE2cHgnPjxnPjxwYXRoIGQ9J00gOS43OSwxNCBDIDE1LjYsMTIuMSAxNS42LDMuOTcgOS43OSwyLjAyIEwgOS43OSwwLjEyOCBDIDE4LDIuMTEgMTgsMTMuOSA5Ljc5LDE1LjkgWiBNIDMuNTgsMTAuOCAwLDEwLjggMCw1LjI1IDMuNTgsNS4yNSA3Ljk0LDAuODk2IDcuOTQsMTUuMSBaIE0gOS43OSw0LjQyIEMgMTIuNyw1LjgyIDEyLjcsMTAuMiA5Ljc5LDExLjYgWicgc3R5bGU9J2ZpbGw6cmdiKDEyMSwxMjQsMTI4KScvPjwvZz48L3N2Zz4%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20Tab%20Sound%20Control%20%u043E%u0442%2002.09.2016%0Athis.onclick%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20if%20%28e.button%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20tltp.hidePopup%28%29%3B%20popup.openPopup%28this%2C%20%22after_start%22%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28e.button%20%3D%3D%201%29%0A%20%20%20%20%20%20%20%20%21e.ctrlKey%20%3F%20muteAllTabs%28%29%20%3A%20unMuteAllTabs%28%29%3B%0A%0A%20%20%20%20if%20%28e.button%20%3D%3D%202%20%26%26%20%21e.altKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20muteTab%28%29%3B%0A%20%20%20%20%7D%0A%7D%0A%0Avar%20popup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Avar%20tltp%20%3D%20self.appendChild%28document.createElement%28%22tooltip%22%29%29%3B%0Avar%20tabVolTltp%20%3D%20self.appendChild%28document.createElement%28%27tooltip%27%29%29%0Avar%20pref%20%3D%20%22media.default_volume%22%3B%0Avar%20isPref%20%3D%20%21%21cbu.isPref%28pref%29%3B%0Avar%20du%20%3D%20Cc%5B%22@mozilla.org/inspector/dom-utils%3B1%22%5D.getService%28Ci.inIDOMUtils%29%3B%0Avar%20o%20%3D%20%7B//%20https%3A//github.com/Infocatcher/Private_Tab/issues/228%23issuecomment-238963363%0A%20%20%20%20get%20windows%28%29%20%7B%0A%20%20%20%20%20%20%20%20return%20%28function*%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20ws%20%3D%20Services.wm.getEnumerator%28%22navigator%3Abrowser%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20while%28ws.hasMoreElements%28%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20yield%20ws.getNext%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%29%28%29%3B%0A%20%20%20%20%7D%0A%7D%0A%0Athis.tooltipText%20%3D%20%27%27%3B%0A%0Athis.onmouseover%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20if%20%28e.target%20%21%3D%20this%29%20return%3B%0A%20%20%20%20tltp.label%20%3D%20%27%u041B%u041A%u041C%3A%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%27%20+%0A%20%20%20%20%20%20%20%20%27%5Cn%u0421%u041A%u041C%3A%20%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%27%20+%0A%20%20%20%20%20%20%20%20%27%5CnCtrl%20+%20%u0421%u041A%u041C%3A%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%27%20+%0A%20%20%20%20%20%20%20%20%27%5Cn%u041F%u041A%u041C%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%27%20+%0A%20%20%20%20%20%20%20%20%27%5Cn%u041F%u041A%u041C%20+%20%u041A%u043B%u0430%u0432%u0438%u0448%u0438%20%u041C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u044B%3A%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20CB%20%u043C%u0435%u043D%u044E%27%20+%0A%20%20%20%20%20%20%20%20%27%5Cn%u041A%u043E%u043B%u0435%u0441%u0438%u043A%u043E%20%u041C%u044B%u0448%u0438%3A%20%u0420%u0435%u0433%u0443%u043B%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%27%20+%0A%20%20%20%20%20%20%20%20%28isPref%20%3F%20%27%5CnCtrl%20+%20%u041A%u043E%u043B%u0435%u0441%u0438%u043A%u043E%20%u041C%u044B%u0448%u0438%3A%20%u0420%u0435%u0433%u0443%u043B%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0439%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%20%u0434%u043B%u044F%20%u043C%u0435%u0434%u0438%u0430%27%20+%0A%20%20%20%20%20%20%20%20%20%27%5Cn%28%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%3A%20%27%20+%20cbu.getPrefs%28pref%29%20*%20100%20+%20%27%25%29%27%20%3A%20%27%27%29%3B%0A%0A%20%20%20%20tltp.openPopup%28this%2C%20%22after_start%22%29%3B%0A%7D%0Athis.onmouseleave%20%3D%20%28%29%20%3D%3E%20tltp.hidePopup%28%29%3B%0A%0Athis.onwheel%20%3D%20e%20%3D%3E%20%7B%0A%20%20%20%20if%20%28e.ctrlKey%20%26%26%20isPref%29%20%7B//%20FF49+%3A%20https%3A//bugzilla.mozilla.org/show_bug.cgi%3Fid%3D1274622%0A%0A%20%20%20%20%20%20%20%20var%20step%20%3D%20.1%3B%0A%20%20%20%20%20%20%20%20var%20val%20%3D%20parseFloat%28Services.prefs.getCharPref%28pref%29%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20val%20%3D%20e.deltaY%20%3C%200%20%3F%20Math.min%281%2C%20val%20+%20step%29%20%3A%20Math.max%280%2C%20val%20-%20step%29%3B%0A%0A%20%20%20%20%20%20%20%20Services.prefs.setCharPref%28pref%2C%20%28val%29.toFixed%281%29%29%3B%0A%0A%20%20%20%20%20%20%20%20tltp.label%20%3D%20%27%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0439%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%20%u0434%u043B%u044F%20%u043C%u0435%u0434%u0438%u0430%3A%20%27%20+%20%28val%29.toFixed%281%29%20*%20100%20+%20%27%25%27%3B%0A%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20step%20%3D%20.05%3B%0A%0A%20%20%20%20for%28var%20w%20of%20o.windows%29%20for%28var%20%7BcontentWindow%3A%20win%7D%20of%20w.gBrowser.browsers%29%20%7B%0A%20%20%20%20%20%20%20%20var%20dwu%20%3D%20win.QueryInterface%28Ci.nsIInterfaceRequestor%29.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%20%20%20%20%20%20%20%20dwu.audioVolume%20%3D%20e.deltaY%20%3C%200%20%3F%20Math.min%281%2C%20dwu.audioVolume%20+%20step%29%20%3A%20Math.max%280%2C%20dwu.audioVolume%20-%20step%29%3B%0A%20%20%20%20%7D%0A%7D%0A%0A%5B%0A%20%20%20%20%7Blbl%3A%20%27%u0412%u043A%u043B.%5C%5C%u0412%u044B%u043A%u043B.%20%u0437%u0432%u0443%u043A%20%u0432%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%27%2C%20cmd%3A%20%27muteTab%28%29%3B%27%7D%2C%0A%20%20%20%20%7Blbl%3A%20%27%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%27%2C%20cmd%3A%20%27muteAllTabs%28%29%3B%27%7D%2C%2C%0A%20%20%20%20%7Blbl%3A%20%27%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%27%2C%20cmd%3A%20%27unMuteAllTabs%28%29%3B%27%7D%2C%0A%20%20%20%20%7Blbl%3A%20%27%u0417%u0430%u0434%u0430%u0442%u044C%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%27%2C%20cmd%3A%20%27setVolume%28%29%3B%27%7D%2C%0A%20%20%20%20%7Bpref%3A%20%27media.default_volume%27%2C%20lbl%3A%20%27%u0417%u0430%u0434%u0430%u0442%u044C%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0439%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%27%2C%20cmd%3A%20%27promptDialog%28m.pref%29%3B%27%7D%2C%0A%20%20%20%20%7Bpref%3A%20%27media.autoplay.enabled%27%2C%20lbl%3A%20%27%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0430%u0432%u0442%u043E%u0432%u043E%u0441%u043F%u0440%u043E%u0438%u0437%u0432%u0435%u0434%u0435%u043D%u0438%u0435%20%u043C%u0435%u0434%u0438%u0430%27%2C%20cmd%3A%20%27cbu.setPrefs%28m.pref%2C%20%21cbu.getPrefs%28m.pref%29%29%3B%27%7D%0A%5D.forEach%28m%20%3D%3E%20%7B%0A%20%20%20%20if%20%28m.pref%20%26%26%20%21cbu.isPref%28m.pref%29%29%20return%3B%0A%0A%20%20%20%20var%20mItem%20%3D%20popup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%0A%20%20%20%20mItem.onclick%20%3D%20%28%29%20%3D%3E%20eval%28m.cmd%29%3B%0A%20%20%20%20mItem.setAttribute%28%27label%27%2C%20m.pref%20%3F%20%28m.lbl%20+%20%27%20%28about%3Aconfig%29%27%29%20%3A%20m.lbl%29%3B%0A%20%20%20%20m.pref%20%26%26%20%28mItem.onmouseover%20%3D%20%28%29%20%3D%3E%20mItem.tooltipText%20%3D%20%27%u0422%u0435%u043A%u0443%u0449%u0435%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%3A%20%27%20+%20cbu.getPrefs%28m.pref%29%29%3B%0A%7D%29%0A%0Afunction%20muteTab%28%29%20window.gBrowser.selectedTab.toggleMuteAudio%28%29%3B%0A%0Afunction%20muteAllTabs%28%29%20%7B%0A%20%20%20%20for%28var%20w%20of%20o.windows%29%0A%20%20%20%20%20%20%20%20%5B...w.gBrowser.tabs%5D.filter%28tab%20%3D%3E%20tab.hasAttribute%28%22soundplaying%22%29%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%20%20%20%20%20%20%26%26%20%21tab.hasAttribute%28%22muted%22%29%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%20%20%20%20%20%20%26%26%20tab.toggleMuteAudio%28%29%29%3B%0A%7D%0A%0Afunction%20unMuteAllTabs%28%29%20%7B%0A%20%20%20%20for%28var%20w%20of%20o.windows%29%0A%20%20%20%20%20%20%20%20%5B...w.gBrowser.tabs%5D.filter%28tab%20%3D%3E%20tab.hasAttribute%28%22soundplaying%22%29%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%20%20%20%20%20%20%26%26%20tab.hasAttribute%28%22muted%22%29%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%20%20%20%20%20%20%26%26%20tab.toggleMuteAudio%28%29%29%3B%0A%7D%0A%0Afunction%20setVolume%28%29%20%7B%0A%20%20%20%20var%20input%20%3D%20%7Bvalue%3A%201%7D%3B%0A%20%20%20%20var%20prompt%20%3D%20Services.prompt.prompt%28null%2C%20%22%u0417%u0430%u0434%u0430%u0442%u044C%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%22%2C%20%22%u043E%u0442%200%20%u0434%u043E%201%22%2C%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%20%20%20%20%20%20%20%20%20%20input%2C%20null%2C%20%7Bvalue%3A%20false%7D%29%3B%0A%0A%20%20%20%20if%20%28prompt%29%0A%20%20%20%20%20%20%20%20for%28var%20w%20of%20o.windows%29%20for%28var%20%7BcontentWindow%3A%20win%7D%20of%20w.gBrowser.browsers%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20dwu%20%3D%20win.QueryInterface%28Ci.nsIInterfaceRequestor%29.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20dwu.audioVolume%20%3D%20input.value%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%0A%0Afunction%20promptDialog%28pref%29%20%7B%0A%20%20%20%20var%20input%20%3D%20%7Bvalue%3A%20cbu.getPrefs%28pref%29%7D%3B%0A%20%20%20%20var%20prompt%20%3D%20Services.prompt.prompt%28null%2C%20%22%u0417%u0430%u0434%u0430%u0442%u044C%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0439%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%22%2C%20%22%u043E%u0442%200.0%20%u0434%u043E%201.0%22%2C%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%20%20%20%20%20%20%20%20%20%20input%2C%20null%2C%20%7Bvalue%3A%20false%7D%29%3B%0A%0A%20%20%20%20if%20%28prompt%29%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28pref%2C%20input.value%29%3B%0A%7D%0A%0Afunction%20hotKeys%28e%29%20%7B%0A%20%20%20%20//%20Alt%20+%20Shift%20+%20S%20-%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%u0432%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u043C%20%u043E%u043A%u043D%u0435%0A%20%20%20%20//%20Alt%20+%20Shift%20+%20M%20-%20%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u043E%u043A%u043D%u0430%u0445%0A%20%20%20%20//%20Alt%20+%20Shift%20+%20U%20-%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u043E%u043A%u043D%u0430%u0445%0A%20%20%20%20//%20%u0421%u043C%3A%20https%3A//developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode%23Constants_for_keyCode_value%0A%20%20%20%20if%20%28e.altKey%20%26%26%20e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.metaKey%29%20%7B%0A%0A%20%20%20%20%20%20%20%20switch%20%28e.keyCode%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%2077%3A%20muteAllTabs%28%29%3B%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%2083%3A%20muteTab%28%29%3B%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20case%2085%3A%20unMuteAllTabs%28%29%3B%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20default%3A%20return%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20e.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%0A%0Afunction%20tabVolume%28e%29%20%7B%0A%20%20%20%20let%20tab%20%3D%20e.originalTarget%3B%0A%20%20%20%20while%20%28tab%20%26%26%20tab.localName%20%21%3D%20%27tab%27%29%20tab%20%3D%20tab.parentNode%3B%0A%0A%20%20%20%20if%20%28%21tab%20%7C%7C%20%21e.shiftKey%29%20return%3B%0A%0A%20%20%20%20e.preventDefault%28%29%3B%20e.stopPropagation%28%29%3B%0A%0A%20%20%20%20var%20step%20%3D%20.05%2C%0A%20%20%20%20%20%20%20%20dwu%20%3D%20tab.linkedBrowser.contentWindow.QueryInterface%28Ci.nsIInterfaceRequestor%29.getInterface%28Ci.nsIDOMWindowUtils%29%3B%0A%0A%20%20%20%20dwu.audioVolume%20%3D%20e.deltaY%20%3C%200%20%3F%20Math.min%281%2C%20dwu.audioVolume%20+%20step%29%20%3A%20Math.max%280%2C%20dwu.audioVolume%20-%20step%29%3B%0A%0A%20%20%20%20document.getElementById%28%27tabbrowser-tab-tooltip%27%29.hidePopup%28%29%3B%0A%20%20%20%20tabVolTltp.openPopup%28tab%2C%20%22after_start%22%29%3B%0A%20%20%20%20tabVolTltp.label%20%3D%20%27Volume%3A%20%27%20+%20%28dwu.audioVolume%20*%20100%29.toFixed%28%29%3B%0A%20%20%20%20tab.onmouseleave%20%3D%20%28%29%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20tabVolTltp.hidePopup%28%29%3B%0A%20%20%20%20%20%20%20%20tab.onmouseleave%20%3D%20null%3B%0A%20%20%20%20%7D%0A%7D%0A%0AaddEventListener%28%22keydown%22%2C%20hotKeys%2C%20false%2C%20window%29%3B%0AaddEventListener%28%22wheel%22%2C%20tabVolume%2C%20true%2C%20window.gBrowser.tabContainer%29%3B%0AaddDestructor%28%28%29%3D%3E%20%7B%0A%20%20%20%20removeEventListener%28%22keydown%22%2C%20hotKeys%2C%20false%2C%20window%29%3B%0A%20%20%20%20removeEventListener%28%22wheel%22%2C%20tabVolume%2C%20true%2C%20window.gBrowser.tabContainer%29%3B%0A%7D%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u041A%u043D%u043E%u043F%u043A%u0430%3A%0A%20%20%20%20%u041B%u041A%u041C%3A%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%0A%20%20%20%20%u0421%u041A%u041C%3A%20%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%0A%20%20%20%20Ctrl%20+%20%u0421%u041A%u041C%3A%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%0A%20%20%20%20%u041F%u041A%u041C%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%0A%20%20%20%20%u041F%u041A%u041C%20+%20%u041A%u043B%u0430%u0432%u0438%u0448%u0438%20%u041C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u044B%3A%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20CB%20%u043C%u0435%u043D%u044E%0A%20%20%20%20%u041A%u043E%u043B%u0435%u0441%u0438%u043A%u043E%20%u041C%u044B%u0448%u0438%3A%20%u0420%u0435%u0433%u0443%u043B%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%0A%20%20%20%20Ctrl%20+%20%u041A%u043E%u043B%u0435%u0441%u0438%u043A%u043E%20%u041C%u044B%u0448%u0438%20%28%u0442%u043E%u043B%u044C%u043A%u043E%20%u0432%20FF49+%29%3A%20%u0420%u0435%u0433%u0443%u043B%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0439%20%u0443%u0440%u043E%u0432%u0435%u043D%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u0438%20%u0434%u043B%u044F%20%u043C%u0435%u0434%u0438%u0430%0A%0A%u0413%u043E%u0440%u044F%u0447%u0438%u0435%20%u043A%u043B%u0430%u0432%u0438%u0448%u0438%3A%0A%20%20%20%20Alt%20+%20Shift%20+%20S%20-%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20%u0432%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u043C%20%u043E%u043A%u043D%u0435%0A%20%20%20%20Alt%20+%20Shift%20+%20M%20-%20%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u043E%u043A%u043D%u0430%u0445%0A%20%20%20%20Alt%20+%20Shift%20+%20U%20-%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0432%u0443%u043A%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%20%u0432%u043E%20%u0432%u0441%u0435%u0445%20%u043E%u043A%u043D%u0430%u0445%0A%0AShift%20+%20%u041A%u043E%u043B%u0435%u0441%u0438%u043A%u043E%20%u043C%u044B%u0448%u0438%20%u043D%u0430%u0434%20%u0432%u043A%u043B%u0430%u0434%u043A%u043E%u0439%3A%0A%20%20%20%20%u0420%u0435%u0433%u0443%u043B%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0433%u0440%u043E%u043C%u043A%u043E%u0441%u0442%u044C%20%u0437%u0432%u0443%u043A%u0430%20%u0432%u043E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Tab Sound Control от 02.09.2016 this.onclick = e => { if (e.button == 0) { tltp.hidePopup(); popup.openPopup(this, "after_start"); } if (e.button == 1) !e.ctrlKey ? muteAllTabs() : unMuteAllTabs(); if (e.button == 2 && !e.altKey && !e.shiftKey && !e.ctrlKey && !e.metaKey) { e.preventDefault(); e.stopPropagation(); muteTab(); } } var popup = self.appendChild(document.createElement("menupopup")); var tltp = self.appendChild(document.createElement("tooltip")); var tabVolTltp = self.appendChild(document.createElement('tooltip')) var pref = "media.default_volume"; var isPref = !!cbu.isPref(pref); var du = Cc["@mozilla.org/inspector/dom-utils;1"].getService(Ci.inIDOMUtils); var o = {// https://github.com/Infocatcher/Private_Tab/issues/228#issuecomment-238963363 get windows() { return (function*() { var ws = Services.wm.getEnumerator("navigator:browser"); while(ws.hasMoreElements()) yield ws.getNext(); })(); } } this.tooltipText = ''; this.onmouseover = e => { if (e.target != this) return; tltp.label = 'ЛКМ: Показать меню кнопки' + '\nСКМ: Отключить звук во всех вкладках' + '\nCtrl + СКМ: Включить звук во всех вкладках' + '\nПКМ: Переключить звук в активной вкладке' + '\nПКМ + Клавиши Модификаторы: Показать стандартное CB меню' + '\nКолесико Мыши: Регулировать уровень громкости во всех вкладках' + (isPref ? '\nCtrl + Колесико Мыши: Регулировать дефолтный уровень громкости для медиа' + '\n(текущий уровень: ' + cbu.getPrefs(pref) * 100 + '%)' : ''); tltp.openPopup(this, "after_start"); } this.onmouseleave = () => tltp.hidePopup(); this.onwheel = e => { if (e.ctrlKey && isPref) {// FF49+: https://bugzilla.mozilla.org/show_bug.cgi?id=1274622 var step = .1; var val = parseFloat(Services.prefs.getCharPref(pref)), val = e.deltaY < 0 ? Math.min(1, val + step) : Math.max(0, val - step); Services.prefs.setCharPref(pref, (val).toFixed(1)); tltp.label = 'дефолтный уровень громкости для медиа: ' + (val).toFixed(1) * 100 + '%'; return; } var step = .05; for(var w of o.windows) for(var {contentWindow: win} of w.gBrowser.browsers) { var dwu = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); dwu.audioVolume = e.deltaY < 0 ? Math.min(1, dwu.audioVolume + step) : Math.max(0, dwu.audioVolume - step); } } [ {lbl: 'Вкл.\\Выкл. звук в активной вкладке', cmd: 'muteTab();'}, {lbl: 'Отключить звук во всех вкладках', cmd: 'muteAllTabs();'},, {lbl: 'Включить звук во всех вкладках', cmd: 'unMuteAllTabs();'}, {lbl: 'Задать уровень громкости во всех вкладках', cmd: 'setVolume();'}, {pref: 'media.default_volume', lbl: 'Задать дефолтный уровень громкости', cmd: 'promptDialog(m.pref);'}, {pref: 'media.autoplay.enabled', lbl: 'Переключить автовоспроизведение медиа', cmd: 'cbu.setPrefs(m.pref, !cbu.getPrefs(m.pref));'} ].forEach(m => { if (m.pref && !cbu.isPref(m.pref)) return; var mItem = popup.appendChild(document.createElement("menuitem")); mItem.onclick = () => eval(m.cmd); mItem.setAttribute('label', m.pref ? (m.lbl + ' (about:config)') : m.lbl); m.pref && (mItem.onmouseover = () => mItem.tooltipText = 'Текущее значение: ' + cbu.getPrefs(m.pref)); }) function muteTab() window.gBrowser.selectedTab.toggleMuteAudio(); function muteAllTabs() { for(var w of o.windows) [...w.gBrowser.tabs].filter(tab => tab.hasAttribute("soundplaying") && !tab.hasAttribute("muted") && tab.toggleMuteAudio()); } function unMuteAllTabs() { for(var w of o.windows) [...w.gBrowser.tabs].filter(tab => tab.hasAttribute("soundplaying") && tab.hasAttribute("muted") && tab.toggleMuteAudio()); } function setVolume() { var input = {value: 1}; var prompt = Services.prompt.prompt(null, "Задать уровень громкости во всех вкладках", "от 0 до 1", input, null, {value: false}); if (prompt) for(var w of o.windows) for(var {contentWindow: win} of w.gBrowser.browsers) { var dwu = win.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); dwu.audioVolume = input.value; } } function promptDialog(pref) { var input = {value: cbu.getPrefs(pref)}; var prompt = Services.prompt.prompt(null, "Задать дефолтный уровень громкости", "от 0.0 до 1.0", input, null, {value: false}); if (prompt) cbu.setPrefs(pref, input.value); } function hotKeys(e) { // Alt + Shift + S - Переключить звук в активной вкладке в активном окне // Alt + Shift + M - Отключить звук во всех вкладках во всех окнах // Alt + Shift + U - Включить звук во всех вкладках во всех окнах // См: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode#Constants_for_keyCode_value if (e.altKey && e.shiftKey && !e.ctrlKey && !e.metaKey) { switch (e.keyCode) { case 77: muteAllTabs(); break; case 83: muteTab(); break; case 85: unMuteAllTabs(); break; default: return; } e.preventDefault(); e.stopPropagation(); } } function tabVolume(e) { let tab = e.originalTarget; while (tab && tab.localName != 'tab') tab = tab.parentNode; if (!tab || !e.shiftKey) return; e.preventDefault(); e.stopPropagation(); var step = .05, dwu = tab.linkedBrowser.contentWindow.QueryInterface(Ci.nsIInterfaceRequestor).getInterface(Ci.nsIDOMWindowUtils); dwu.audioVolume = e.deltaY < 0 ? Math.min(1, dwu.audioVolume + step) : Math.max(0, dwu.audioVolume - step); document.getElementById('tabbrowser-tab-tooltip').hidePopup(); tabVolTltp.openPopup(tab, "after_start"); tabVolTltp.label = 'Volume: ' + (dwu.audioVolume * 100).toFixed(); tab.onmouseleave = () => { tabVolTltp.hidePopup(); tab.onmouseleave = null; } } addEventListener("keydown", hotKeys, false, window); addEventListener("wheel", tabVolume, true, window.gBrowser.tabContainer); addDestructor(()=> { removeEventListener("keydown", hotKeys, false, window); removeEventListener("wheel", tabVolume, true, window.gBrowser.tabContainer); }); Иконка (www.flaticon.com): Выделить код Код:data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIGhlaWdodD0nMTZweCcgd2lkdGg9JzE2cHgnPjxnPjxwYXRoIGQ9J00gOS43OSwxNCBDIDE1LjYsMTIuMSAxNS42LDMuOTcgOS43OSwyLjAyIEwgOS43OSwwLjEyOCBDIDE4LDIuMTEgMTgsMTMuOSA5Ljc5LDE1LjkgWiBNIDMuNTgsMTAuOCAwLDEwLjggMCw1LjI1IDMuNTgsNS4yNSA3Ljk0LDAuODk2IDcuOTQsMTUuMSBaIE0gOS43OSw0LjQyIEMgMTIuNyw1LjgyIDEyLjcsMTAuMiA5Ljc5LDExLjYgWicgc3R5bGU9J2ZpbGw6cmdiKDEyMSwxMjQsMTI4KScvPjwvZz48L3N2Zz4= Спасибо: Dumby - за помощь с кодом, Vitaliy V. - за помощь с svg-иконкой и Infocatcher - за заимствованный у него код. |
bunda1 > 11-10-2016 19:28:14 |
Поиск выделенного текста в файловом поисковике( Firefox24+ ) от 19.02.2018. ЛКМ => Поиск выделенного текста в файловом поисковике, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u043E%u0438%u0441%u043A%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0444%u0430%u0439%u043B%u043E%u0432%u043E%u043C%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20e.button%20%3D%3D%200%20%26%26%20runApp%28%29%3B%20%20%20//%20%u041B%u041A%u041C%20%20%20%20%0A%20%20%20e.button%20%3D%3D%201%20%26%26%20setPath%28%29%3B%20%20//%20%u0421%u041A%u041C%20%0A%7D%3B%0A%0Avar%20arg%20%3D%20%22/s%22%3B%20//%20%u0443%u043A%u0430%u0436%u0438%u0442%u0435%20%u0430%u0440%u0433%u0443%u043C%u0435%u043D%u0442%u044B%20%u043A%u043E%u0442%u043E%u0440%u044B%u0435%20%u043D%u0443%u0436%u043D%u043E%20%u043F%u0435%u0440%u0435%u0434%u0430%u0442%u044C%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%0Avar%20s%20%3D%20%22CB%22%20+%20_id.slice%2820%29%20+%20%22.pathForApp%22%3B%0A%0Afunction%20toggleButtonData%28%29%20%7B%0A%20%20%20var%20path%20%3D%20getPath%28%29%3B%0A%20%20%20document.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20%22moz-icon%3A//file%3A//%22%20+%20path%3B%0A%20%20%20self.tooltipText%20%3D%20%22%u041B%3A%20%u041F%u043E%u0438%u0441%u043A%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0433%u043E%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u0432%20%u0444%u0430%u0439%u043B%u043E%u0432%u043E%u043C%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0435%3A%20%22%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20path.split%28%22%5C%5C%22%29.pop%28%29.replace%28%22.exe%22%2C%20%22%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20+%20%22%5Cn%u0421%3A%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%20%5Cn%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%0A%7D%3B%0AtoggleButtonData%28%29%3B%20%20%20%20%20%20%0AgPrefService.addObserver%28s%2C%20toggleButtonData%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleButtonData%29%20%29%3B%0A%0Afunction%20runApp%28%29%20%7B%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%20%20%20file.initWithPath%28%20getPath%28%29%20%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20var%20args%20%3D%20%5Barg%2C%20getSelect%28%29%5D%3B%0A%20%20%20try%20%7B%20process.runw%28true%2C%20args%2C%20args.length%29%20%7D%0A%20%20%20catch%28e%29%20%7B%20alert%28e%29%20%7D%3B%0A%7D%3B%0A%0Afunction%20setPath%28%29%20%7B%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.appendFilters%28%20fp.filterApps%20%29%3B%0A%20%20%20fp.init%28%20window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%22%2C%20fp.modeOpen%20%29%3B%0A%20%20%20fp.open%28%20result%20%3D%3E%20result%20%3D%3D%20fp.returnOK%20%26%26%20cbu.setPrefs%28s%2C%20convertFromUnicode%28%22UTF-8%22%2C%20fp.file.path%29%29%20%29%3B%20%0A%7D%3B%0A%0Afunction%20getPath%28%29%20%7B%0A%20%20%20var%20pref%20%3D%20Services.prefs%3B%0A%20%20%20var%20str%20%3D%20pref.getStringPref%20%3F%20pref.getStringPref%28s%29%20%3A%20pref.getComplexValue%28s%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20try%20%7B%20return%20str%20%7D%20%0A%20%20%20catch%28e%29%20%7B%20return%20%22%3F%3F%3F%3F%3F%3F%22%20%7D%3B%0A%7D%3B%0A%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20return%20gBrowser.contentDocument.defaultView.getSelection%28%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this.onclick =e=> { e.button == 0 && runApp(); // ЛКМ e.button == 1 && setPath(); // СКМ }; var arg = "/s"; // укажите аргументы которые нужно передать программе var s = "CB" + _id.slice(20) + ".pathForApp"; function toggleButtonData() { var path = getPath(); document.getAnonymousNodes(self)[0].src = "moz-icon://file://" + path; self.tooltipText = "Л: Поиск выделенного текста в файловом поисковике: " + path.split("\\").pop().replace(".exe", "") + "\nС: Установить путь к программе \nП: CB Меню"; }; toggleButtonData(); gPrefService.addObserver(s, toggleButtonData, false); addDestructor(()=> gPrefService.removeObserver(s, toggleButtonData) ); function runApp() { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath( getPath() ); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); var args = [arg, getSelect()]; try { process.runw(true, args, args.length) } catch(e) { alert(e) }; }; function setPath() { var fp = window.makeFilePicker(); fp.appendFilters( fp.filterApps ); fp.init( window, "Укажите путь к программе", fp.modeOpen ); fp.open( result => result == fp.returnOK && cbu.setPrefs(s, convertFromUnicode("UTF-8", fp.file.path)) ); }; function getPath() { var pref = Services.prefs; var str = pref.getStringPref ? pref.getStringPref(s) : pref.getComplexValue(s, Ci.nsISupportsString).data; try { return str } catch(e) { return "??????" }; }; function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; function getSelect() { return gBrowser.contentDocument.defaultView.getSelection(); }; |
bunda1 > 18-10-2016 08:54:01 |
Часы( Firefox52+ ) от 17.02.2018. Код кнопки, инициализации и справки: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0427%u0430%u0441%u044B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bself.timer%20%3D%20setInterval%28%28%29%3D%3E%20self.label%20%3D%20new%20Date%28%29.toLocaleTimeString%28%27lv-LV%27%29.slice%280%2C5%29%2C%201000%29%3B%20%20%0A%0Avar%20style%20%3D%20custombutton.buttonGetHelp%28self%29.replace%28/id/g%2C%20_id%29%3B%0Avar%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28style%29%29%3B%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Asss.loadAndRegisterSheet%28uri%2C%200%29%3B%20%0A%0AaddDestructor%28%28%29%3D%3E%20%7B%20%0A%20%20%20sss.unregisterSheet%28uri%2C%200%29%3B%0A%20%20%20try%20%7B%20clearTimeout%28self.timer%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%7D%29%3B%0A%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%0A%20%20%20var%20date%20%3D%20new%20Date%28%29%3B%0A%20%20%20self.tooltipText%20%3D%20date.toLocaleDateString%28%29%20+%20%27.%20%27%20+%20date.toLocaleDateString%28%27ru%27%2C%20%7Bweekday%3A%20%27long%27%7D%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%23id%20.toolbarbutton-text%20%7B%0A%20%20%20color%3A%20black%20%21important%3B%0A%20%20%20font-weight%3A%20bold%20%21important%3B%0A%20%20%20display%3A%20block%20%21important%3B%0A%7D%0A%0A%23id%20.toolbarbutton-icon%20%7B%0A%20%20display%3A%20none%20%21important%3B%0A%7D%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:self.timer = setInterval(()=> self.label = new Date().toLocaleTimeString('lv-LV').slice(0,5), 1000); var style = custombutton.buttonGetHelp(self).replace(/id/g, _id); var uri = makeURI('data:text/css,'+ encodeURIComponent(style)); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, 0); addDestructor(()=> { sss.unregisterSheet(uri, 0); try { clearTimeout(self.timer) } catch(e) {}; }); this.onmouseover =()=> { var date = new Date(); self.tooltipText = date.toLocaleDateString() + '. ' + date.toLocaleDateString('ru', {weekday: 'long'}); }; Справка: Выделить код Код:#id .toolbarbutton-text { color: black !important; font-weight: bold !important; display: block !important; } #id .toolbarbutton-icon { display: none !important; } |
bunda1 > 27-10-2016 18:53:43 |
Переключить текущий поисковик( Firefox24+ ) от 27.12.2016. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CAAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs9Pt8xetPtu9FsfFNtu%252BTzvb2%252B%252Fne4dFJeBw0egA%252FfAJAfAA8ewBBegAAAAD%252B%252FPtft98Mp%252BwWsfAVsvEbs%252FQeqvF8xO7%252F%252F%252F63yqkxdgM7gwE%252FggM%252BfQA%252BegBDeQDe7PIbotgQufcMufEPtfIPsvAbs%252FQvq%252Bfz%252Bf%252F%252B%252B%252FZKhR05hgBBhQI8hgBAgAI9ewD0%252B%252Fg3pswAtO8Cxf4Kw%252FsJvvYAqupKsNv%252B%252Fv7%252F%252FP5VkSU0iQA7jQA9hgBDgQU%252BfQH%252F%252Ff%252FQ6fM4sM4KsN8AteMCruIqqdbZ7PH8%252Fv%252Fg6Nc%252Fhg05kAA8jAM9iQI%252BhQA%252BgQDQu6b97uv%252F%252F%252F7V8Pqw3eiWz97q8%252Ff%252F%252F%252F%252F7%252FPptpkkqjQE4kwA7kAA5iwI8iAA8hQCOSSKdXjiyflbAkG7u2s%252F%252B%252F%252F39%252F%252F7r8utrqEYtjQE8lgA7kwA7kwA9jwA9igA9hACiWSekVRyeSgiYSBHx6N%252F%252B%252Fv7k7OFRmiYtlAA5lwI7lwI4lAA7kgI9jwE9iwI4iQCoVhWcTxCmb0K%252BooT8%252Fv%252F7%252F%252F%252FJ2r8fdwI1mwA3mQA3mgA8lAE8lAE4jwA9iwE%252BhwGfXifWvqz%252B%252Ff%252F58u%252Fev6Dt4tr%252B%252F%252F2ZuIUsggA7mgM6mAM3lgA5lgA6kQE%252FkwBChwHt4dv%252F%252F%252F728ei1bCi7VAC5XQ7kz7n%252F%252F%252F6bsZkgcB03lQA9lgM7kwA2iQktZToPK4r9%252F%252F%252F9%252F%252F%252FSqYK5UwDKZAS9WALIkFn%252B%252F%252F3%252F%252BP8oKccGGcIRJrERILYFEMwAAuEAAdX%252F%252Ff7%252F%252FP%252B%252BfDvGXQLIZgLEWgLOjlf7%252F%252F%252F%252F%252F%252F9QU90EAPQAAf8DAP0AAfMAAOUDAtr%252F%252F%252F%252F7%252B%252Fu2bCTIYwDPZgDBWQDSr4P%252F%252Fv%252F%252F%252FP5GRuABAPkAA%252FwBAfkDAPAAAesAAN%252F%252F%252B%252Fz%252F%252F%252F64g1C5VwDMYwK8Yg7y5tz8%252Fv%252FV1PYKDOcAAP0DAf4AAf0AAfYEAOwAAuAAAAD%252F%252FPvi28ymXyChTATRrIb8%252F%252F3v8fk6P8MAAdUCAvoAAP0CAP0AAfYAAO4AAACAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u043E%20%u043B%u0435%u0432%u043E%u043C%u0443%20%u043A%u043B%u0438%u043A%u0443%20.............%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%20%u0441%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0430%u043C%u0438%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20.............%20%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0AmenuPopup.setAttribute%28%27style%27%2C%20%27overflow%3A%20scroll%27%29%3B%20%0A%0Afunction%20setItemsToMenuPopup%28%29%20%7B%0A%20%20%20menuPopup.textContent%20%3D%20%22%22%3B%20%20%20%20%20%20%0A%0A%20%20%20var%20engines%20%3D%20Services.search.getVisibleEngines%28%7B%7D%29%3B%0A%20%20%20engines.forEach%28engine%3D%3E%20%7B%20%0A%20%20%20%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22label%22%2C%20engine.name%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20%20%20%20mItem.setAttribute%28%22src%22%2C%20engine.iconURI.spec%29%3B%0A%20%20%20%20%20%20mItem.onmousedown%20%3D%28%29%3D%3E%20setTimeout%28%28%29%3D%3E%20Services.search.currentEngine%20%3D%20engine%2C%200%29%3B%0A%20%20%20%20%20%20menuPopup.appendChild%28mItem%29%3B%0A%20%20%20%7D%29%0A%7D%3B%20%20%0AsetItemsToMenuPopup%28%29%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0430%u0445%20.............%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29.%0A%20%20%20src%20%3D%20Services.search.currentEngine.iconURI.spec%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0A%20%20%20%0A%20%20%20%0A//%20%u041D%u0430%u0431%u043B%u044E%u0434%u0430%u0442%u0435%u043B%u044C%20%u0437%u0430%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u043C%u0438%20%u0432%20%u043F%u043E%u0438%u0441%u043A%u043E%u0432%u0438%u043A%u0430%u0445%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%20.............%20%0Avar%20getEngineModified%20%3D%20%7B%0A%20%20%20observe%3A%28subject%2C%20topic%2C%20data%29%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%20/changed%7Cremoved%7Ccurrent/.test%28data%29%20%29%20%7B%20toggleImage%28%29%3B%20setItemsToMenuPopup%28%29%3B%20%7D%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%7D%0A%7D%3B%0AServices.obs.addObserver%28getEngineModified%2C%20%22browser-search-engine-modified%22%2C%20false%29%3B%20%20%20%0AaddDestructor%28%28%29%3D%3E%20Services.obs.removeObserver%28getEngineModified%2C%20%22browser-search-engine-modified%22%29%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Открыть меню кнопки по левому клику ............. this._handleClick =()=> menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); // Создать подменю с поисковиками у кнопки ............. var menuPopup = self.appendChild(document.createElement("menupopup")); menuPopup.setAttribute('style', 'overflow: scroll'); function setItemsToMenuPopup() { menuPopup.textContent = ""; var engines = Services.search.getVisibleEngines({}); engines.forEach(engine=> { var mItem = document.createElement("menuitem"); mItem.setAttribute("label", engine.name); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("src", engine.iconURI.spec); mItem.onmousedown =()=> setTimeout(()=> Services.search.currentEngine = engine, 0); menuPopup.appendChild(mItem); }) }; setItemsToMenuPopup(); // Установить нужную иконку кнопки при старте или при изменениях поисковиках ............. function toggleImage() { self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon"). src = Services.search.currentEngine.iconURI.spec; }; toggleImage(); // Наблюдатель за изменениями в поисковиках подменю ............. var getEngineModified = { observe:(subject, topic, data)=> { if ( /changed|removed|current/.test(data) ) { toggleImage(); setItemsToMenuPopup(); }; } }; Services.obs.addObserver(getEngineModified, "browser-search-engine-modified", false); addDestructor(()=> Services.obs.removeObserver(getEngineModified, "browser-search-engine-modified")); |
Inko7 > 13-11-2016 12:59:27 |
Сумматор ( Firefox24+ ) от 14.11.2016. Клики на кнопке: Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0421%u0443%u043C%u043C%u0430%u0442%u043E%u0440%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABm0lEQVQ4jWNggALf6s02PhWbHYjBAQ3rBRjQQWTb/hnli+/+qVnx8H/18gf/k/tPvkvsPfEchpP7Tr4uWXDrV8Gca/99KjY7YBjg0LCfJXXi6cPd2z/8b9/85n9sx5E+dPnQ5p0haRPPPMFqAAMDA0N40w79wjnXnndv//C/bNHtx6Ete83Q1cR2HJ6C0wAGBgaG6LZDjY1rnv3p3v7hf9rE0wcdGvazoLmEw6t0qwROAxgYGBgSuo8d6Nz67n/rpjdvkyecnoxXMTbg27BZJGvq+Zvd2z/8L5l/82l40w59kg1JaD/sUL7ozpuW9S/+RLcfrCbZgPCmHfoFc64+Suw9vo9kzQ4N+zlSJpw6njXtwl3fhs0iJBsQ1310VsWS+1+i2w8nYZPHa2hU+4HQquX3P8T3HFuNS01o457DWCW8SrdK5M64dCNv1pWLWNM7AwNDfNexksTe40exGpDYe3xf/eon/yNa9x9J6D7agY7TJp9dU7P8wfOEnuPzMU3uPrawaO6NDzUrHv7Hh6uW3f8f33WsEcMAcrMzAGtTCbhDYacMAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%20%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20summar%28%29%3B%20//%20%u041B%u041A%u041C%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%20//%20%u0421%u041A%u041C%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20//%20%u041F%u041A%u041C%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20sum%20%3D%200%3B%0A%20%20%20%20%20%20%20%20tabSummar.label%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0Avar%20sum%20%3D%200%3B%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20....%0Avar%20tabSummar%20%3D%20document.createElement%28%22statusbarpanel%22%29%3B%0AtabSummar.setAttribute%28%22id%22%2C%20%22tabSummar%22%29%3B%0A//tabSummar.setAttribute%28%22context%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A//tabSummar.setAttribute%28%22tooltiptext%22%2C%20%22%u0418%u0442%u043E%u0433%u043E%u0432%u0430%u044F%20%u0441%u0443%u043C%u043C%u0430%22%29%3B%20%0Avar%20urlbarIcons%20%3D%20document.getElementById%28%22urlbar-icons%22%29%3B%20%0AurlbarIcons.insertBefore%28tabSummar%2C%20urlbarIcons.firstChild%29%3B%0AaddDestructor%28%28%29%3D%3E%20tabSummar.remove%28%29%20%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.............%0A//%20this.onmouseover%20%3D%28%29%3D%3E%20%7B%20this.tooltipText%20%3D%20%22%u0418%u0442%u043E%u0433%u043E%u0432%u0430%u044F%20%u0441%u0443%u043C%u043C%u0430%3A%20%22%20+%20sum%3B%20%7D%3B%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041F%u043E%u0434%u0441%u0447%u0438%u0442%u0430%u0442%u044C%20%5Cn%u0421%3A%20CB%20%u043C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u0421%u0431%u0440%u043E%u0441%u0438%u0442%u044C%22%3B%0A%0Afunction%20summar%28%29%20%7B%0A%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%0A%20%20%20var%20nums%20%3D%20sel.split%28/%5Cs+/%29%3B%0A%0A%20%20%20nums.forEach%28num%3D%3E%20%7B%0A%20%20%20%20%20%20num%20%3D%20+num%3B%0A%20%20%20%20%20%20if%20%28%20isFinite%28num%29%20%29%20sum%20+%3D%20num%3B%0A%20%20%20%7D%29%3B%0A%20%20%20sum%20%3D%20fixPrecision%28sum%29%3B%0A%20%20%20sum%20%3D%20sum*1%3B%0A%20%20%20tabSummar.label%20%3D%20sum%3B%0A%7D%3B%0A%0A%0Afunction%20fixPrecision%28n%29%20%7B%0A%20%20%20//%20Try%20fix%20%22bugs%22%20with%20floating%20point%20operations%0A%20%20%20//%20E.g.%200.3/0.1%20%3D%202.9999999999999995%0A%20%20%20return%20n.toPrecision%2813%29.toString%28%29%0A%20%20%20%20%20%20%20%20%20%20%20.replace%28/%5C.0+%28e%7C%24%29/%2C%20%22%241%22%29%20//%201.000%20and%201.000e5%20%3D%3E%201%0A%20%20%20%20%20%20%20%20%20%20%20.replace%28/%28%5C.%5Cd*%5B%5E0%5D%290+%28e%7C%24%29/%2C%20%22%241%242%22%29%3B%20//%201.200%20and%201.200e5%20%3D%3E%201.2%0A%7D%3B%0A%0A%0A//%20Css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%20%u0440%u0435%u0437%u0443%u043B%u044C%u0442%u0430%u0442%u0430%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%20%20%20%23tabSummar%20%7B%20color%3A%20blue%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%23tabSummar%20%7B%20-moz-appearance%3A%20none%20%21important%3B%20border%3A%200%20%21important%3B%20margin-right%3A%20-8px%20%21important%3B%20%7D%5C%0A%20%20%20%27%29%29%3B%0A%20%20%20var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%20%20%20addDestructor%28%28%29%3D%3E%20sss.unregisterSheet%28uri%2C%200%29%20%29%3B%20%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:/*Initialization Code*/ // Настройка функций кликов мыши для кнопки ............. this.onclick =e=> { if ( e.button == 0 ) summar(); // ЛКМ if ( e.button == 1 ) gShowPopup(this); // СКМ if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { // ПКМ e.preventDefault(); sum = 0; tabSummar.label = ""; } }; var sum = 0; // Создать в адресной строке счётчик вкладок .... var tabSummar = document.createElement("statusbarpanel"); tabSummar.setAttribute("id", "tabSummar"); //tabSummar.setAttribute("context", "event.stopPropagation()"); //tabSummar.setAttribute("tooltiptext", "Итоговая сумма"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore(tabSummar, urlbarIcons.firstChild); addDestructor(()=> tabSummar.remove() ); // Подсказка для кнопки ............. // this.onmouseover =()=> { this.tooltipText = "Итоговая сумма: " + sum; }; this.tooltipText = "Л: Подсчитать \nС: CB меню \nП: Сбросить"; function summar() { var sel = document.commandDispatcher.focusedWindow.getSelection().toString(); var nums = sel.split(/\s+/); nums.forEach(num=> { num = +num; if ( isFinite(num) ) sum += num; }); sum = fixPrecision(sum); sum = sum*1; tabSummar.label = sum; }; function fixPrecision(n) { // Try fix "bugs" with floating point operations // E.g. 0.3/0.1 = 2.9999999999999995 return n.toPrecision(13).toString() .replace(/\.0+(e|$)/, "$1") // 1.000 and 1.000e5 => 1 .replace(/(\.\d*[^0])0+(e|$)/, "$1$2"); // 1.200 and 1.200e5 => 1.2 }; // Css стиль для отображения результата var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #tabSummar { color: blue !important; }\ #tabSummar { -moz-appearance: none !important; border: 0 !important; margin-right: -8px !important; }\ ')); var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, 0); addDestructor(()=> sss.unregisterSheet(uri, 0) ); Части кода кнопки заимствованы у bunda1, Infocatcher и др. Спасибо им и всем остальным за советы и помощь. |
bunda1 > 06-12-2016 20:50:07 |
Добавить все открытие вкладки в папку закладок( Firefox24+ ) от 18.02.2018. ЛКМ => Добавить все открытие вкладки в папку закладок. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQAAAAAEFBwcD5TTywYtQTQHAAAAAAECAgAAAAABAgEDAAAAACZKJaoakiP/K4A0ywIAAAIBAQAAAAAAAAAAAAAAAQEBAQAAAAwaIj8ZrvD9GLr382eet7eKfnt7SkI9PBgQCg4CAAUAJGYouiDSL/87r0DbCgMABwAAAQACAgICAAAAAQMDBAAXFRYjGh8mahGR2O8fx///Ic3//obh/P+s2PD/W7HZ6CKe4NcvmWr7Ercb/0+6P++PTBBXCwUAAwAAAQAAAAAABQYHAxodHzcaFBdLDHrD3ifN//8oxvf6Hsb/+xeLff0FjED/DqRQ/x+hM/8KkhX/Qb1J+nS3UOtUoUjRNHg9vw0NDgEjIiUUIBMRHBstN0sep9/pLNH//y/O+v430v//E3pB/xClAP440zf9Ps1I/zekQv9EpE7/S79j/2jQeP9dpmL/DQ0OAR4jJxAfZoJ2I73u7i/T//8y0Pz+NdT8/zrX//8yp4r/O7ps/2jXlP9/5Iz/YdRr/2KoZf51mWP/Y4JY6ERbR70AAAAAGmV6ckbo//9D5v7+ONf+/jbV/P482f3/P9z9/0Df//9x4/7/fuP//2rTm/903Hj/Zp1f++q7jP+XelyoAAAAAAEBAQEAAQEBECQkITR8h3tJx+DZTN///0Hd/P5D4P3/YOf8/670/P+l8///asiV/3fKev9xnG7778qc/5yDY6gAAAAAAAAAAAAAAAAAAQEBAAAAAAAGBwA0oMfGTOn//4fs/PzN+P//l/D8/7T8//96u5//ZZVl/4Ocfvv84Lz/nIRkqAAAAAAAAAAAAAAAAAECAgIBBgcIAAAAAESAm6Jv5///1vv9++38///u+Pr/3PDz/+Di2v/j1rr/6Ne8+//v0P+ei3KoAAAAAAAAAAAAAAAAAAAAAAIDAwMAAAAAiJiho2zT///L9/z7+f3+//77+v/u7O7/7+Ta///qzP/35Mn7//PX/6KUgagAAAAAAAAAAAAAAAAAAAAAAwMDBAAAAACuqKWijdv//87t+Pv/////+fv7/+zu8P/t5dz//OrQ//np0fv/+d//o5eGqAAAAAAAAAAAAAAAAAAAAAADAwMEAAAAAKampaL/////+vr6+////v/8/Pv/7e7v/+/n3v//79f//O3Y+//+6P+kmoqoAAAAAAAAAAAAAAAAAAAAAAMDAwQAAAAApKSkoP/////4+fj5/f39/v39/f7z9Pb/8Oni///z4P/88eD7///y/6SdkKgAAAAAAAAAAAAAAAAAAAAAAwMDBAAAAACrq6ui//////v7+/v///////////7///728ez8+vHi/Prz5fn///n/pJ6VpwAAAAAAAAAAAAAAAAAAAAACAgIDAAAAAF5eXlrGxsXE0tLS0erq6un6+vr5////////////////+/v4+/////+opZ2oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAwICExMTEisrKylHR0dFaGdnZYmKi4inpqam19TP2pGOiI8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20parentFolder%20%3D%20%22New%20Folder%22%3B%20//%20%u043F%u0430%u043F%u043A%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0434%u043B%u044F%20%u0434%u043E%u0431%u0430%u0432%u043B%u0435%u043D%u0438%u0438%20%u043F%u043E%u0434%u043F%u0430%u043F%u043E%u043A%20%u0441%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u043D%u044B%u043C%u0438%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u043C%u0438%0Avar%20index%20%3D%20-1%3B%20%20%20%20%20//%200%20-%20%u043F%u043E%u0434%u043F%u0430%u043F%u043A%u0430%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%u0441%u044F%20%u0432%20%u043D%u0430%u0447%u0430%u043B%u0435%2C%20-1%20%u0432%20%u043A%u043E%u043D%u0446%u0435%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Athis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%0A%20%20%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u043E%u0432%u0443%u044E%20%u043F%u043E%u0434%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0432%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u043E%u0439%20%u043F%u0430%u043F%u043A%u0435%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0438%u043B%u0438%20%u043D%u0430%20%u043F%u0430%u043D%u0435%u043B%u0438%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%0A%20%20%20var%20parentFolderId%20%3D%20getBookFolderId%28%29%20%7C%7C%203%3B%0A%20%20%20var%20subfolder%20%3D%20getDataAndTime%28%29%3B%0A%20%20%20var%20subfolderId%20%3D%20PlacesUtils.bookmarks.createFolder%28parentFolderId%2C%20subfolder%2C%20index%29%3B%20%20%20%20%20%0A%0A%20%20%20var%20array%20%3D%20getTabsInfo%28%29%3B%0A%0A%20%20%20//%20%u0440%u0435%u043A%u0443%u0440%u0441%u0438%u0432%u043D%u043E%20%u0441%20%u0437%u0430%u0434%u0435%u0440%u0436%u043A%u043E%u0439%20%u0434%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%0A%20%20%20function%20save%28%29%20%7B%0A%20%20%20%20%20%20var%20el%20%3D%20array.shift%28%29%3B%0A%20%20%20%20%20%20if%20%28%20el%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20PlacesUtils.bookmarks.insertBookmark%28subfolderId%2C%20el.uri%2C%20-1%2C%20el.label%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20setTimeout%28save%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20//%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20var%20parentFolderName%20%3D%20%28parentFolderId%20%3D%3D%203%29%20%3F%20%22%u041F%u0430%u043D%u0435%u043B%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%20%3A%20parentFolder%3B%0A%20%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20%20%20%20%20%20%20%20%20.showAlertNotification%28self.image%2C%20self.label%2C%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0432%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%3A%5Cn%22%20+%20parentFolder%20+%20%22%20%3E%20%22%20+%20subfolder%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%7D%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20save%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0434%u0430%u0442%u0443%20%u0438%20%u0432%u0440%u0435%u043C%u044F%20..........%20%0Afunction%20getDataAndTime%28%29%20%7B%0A%20%20%20var%20date%20%3D%20new%20Date%28%29%3B%0A%20%20%20var%20time%20%3D%20date.toLocaleString%28%27ru%27%2C%20%7Byear%3A%20%27numeric%27%2C%20month%3A%20%27numeric%27%2C%20day%3A%20%27numeric%27%7D%29%0A%20%20%20return%20%28time%20+%20%27.%20%27%20+%20date.toLocaleTimeString%28%27lv-LV%27%29%29%3B%20//.replace%28/%3A/g%2C%20%22%B7%22%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20id%20%u043F%u0430%u043F%u043A%u0438%20parentFolderName%20..........%20%0Afunction%20getBookFolderId%28id%20%3D%201%29%20%7B%0A%20%20%20var%20folder%20%3D%20PlacesUtils.getFolderContents%28id%29.root%3B%0A%0A%20%20%20for%20%28%20var%20i%20%3D%200%3B%20i%20%3C%20folder.childCount%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20child%20%3D%20folder.getChild%28i%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21PlacesUtils.nodeIsFolder%28child%29%20%29%20continue%3B%20%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20child.title%20%3D%3D%20parentFolder%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self.result%20%3D%20child.itemId%3B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20else%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20getBookFolderId%28child.itemId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%0A%20%20%20return%20self.result%3B%20%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u0441%20%u0430%u0434%u0440%u0435%u0441%u0430%u043C%u0438%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%u043C%u0438%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20..........%20%0Afunction%20getTabsInfo%28%29%20%7B%0A%20%20%20var%20array%20%3D%20%5B%5D%2C%20seenURIs%20%3D%20%5B%5D%3B%0A%20%20%20%0A%20%20%20%5B...gBrowser.tabs%5D.forEach%28tab%3D%3E%20%7B%0A%20%20%20%20%20%20var%20label%20%3D%20tab.label%3B%0A%20%20%20%20%20%20var%20uri%20%3D%20tab.linkedBrowser.currentURI.spec%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20if%20%28%20seenURIs%5Buri%5D%20%29%20return%3B%20//%20%u0441%u0442%u043E%u043F%20%u0435%u0441%u043B%u0438%20%u0442%u0430%u043A%u043E%u0439%20%u0430%u0434%u0440%u0435%u0441%20%u0443%u0436%u0435%20%u0431%u044B%u043B%0A%20%20%20%20%20%20seenURIs%5Buri%5D%20%3D%20true%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20array.push%28%7B%20uri%3A%20Services.io.newURI%28uri%2C%20null%2C%20null%29%2C%20label%3A%20label%20%7D%29%3B%0A%20%20%20%7D%29%3B%0A%0A%20%20%20return%20array%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var parentFolder = "New Folder"; // папка закладок для добавлении подпапок с сохраненными вкладками var index = -1; // 0 - подпапка в папку добавляется в начале, -1 в конце // Настройка функций кликов мыши для кнопки .......... this._handleClick =()=> { // создать новую подпапку закладок в указанной папке закладок или на панели закладок var parentFolderId = getBookFolderId() || 3; var subfolder = getDataAndTime(); var subfolderId = PlacesUtils.bookmarks.createFolder(parentFolderId, subfolder, index); var array = getTabsInfo(); // рекурсивно с задержкой добавить вкладки в папку закладок function save() { var el = array.shift(); if ( el ) { PlacesUtils.bookmarks.insertBookmark(subfolderId, el.uri, -1, el.label); setTimeout(save, 0); } else { // всплывающая подсказка var parentFolderName = (parentFolderId == 3) ? "Панель закладок" : parentFolder; Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification(self.image, self.label, "Добавил все вкладки в папку закладок:\n" + parentFolder + " > " + subfolder); } }; save(); }; // Получить текущую дату и время .......... function getDataAndTime() { var date = new Date(); var time = date.toLocaleString('ru', {year: 'numeric', month: 'numeric', day: 'numeric'}) return (time + '. ' + date.toLocaleTimeString('lv-LV')); //.replace(/:/g, "·"); }; // Получить id папки parentFolderName .......... function getBookFolderId(id = 1) { var folder = PlacesUtils.getFolderContents(id).root; for ( var i = 0; i < folder.childCount; i++ ) { var child = folder.getChild(i); if ( !PlacesUtils.nodeIsFolder(child) ) continue; if ( child.title == parentFolder) { self.result = child.itemId; break; } else getBookFolderId(child.itemId); } return self.result; }; // Получить массив с адресами и названиями вкладок .......... function getTabsInfo() { var array = [], seenURIs = []; [...gBrowser.tabs].forEach(tab=> { var label = tab.label; var uri = tab.linkedBrowser.currentURI.spec; if ( seenURIs[uri] ) return; // стоп если такой адрес уже был seenURIs[uri] = true; array.push({ uri: Services.io.newURI(uri, null, null), label: label }); }); return array; }; |
bunda1 > 11-12-2016 00:44:21 |
Переключить многопроцессный режим( Firefox50+ ) от 15.05.2019. ЛКМ => Переключить многопроцессный режим. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043C%u043D%u043E%u0433%u043E%u043F%u0440%u043E%u0446%u0435%u0441%u0441%u043D%u044B%u0439%20%u0440%u0435%u0436%u0438%u043C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEREAAAEAIADwBAAAFgAAACgAAAARAAAAIgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfQCFAn4ChQN+A4UDfwOFA38DhQJ/AoUBfgGFAn4ChQN+A4UDfgOFAn4ChQB+AIUAfgCFA38DhQJ/AoUAfgCFAH0AhQqCCt82mDbfRZ9F30afRt9GoEbfOZo53yWPJd83mDffRZ9F30WfRd8+mz7fFIcU3xaIFt9IoUjfNJc03weBB98AfgDfHIsc/4bAhv+p0an/qNGo/6jSqP+Kwor/WahZ/4W/hf+p0an/qtKq/5bHlv83mTf/VKdU/6PPo/+RxpH/LZQt/wF+Af8okSj/wt7C/9nq2f/B3sH/wt/C/57Mnv9jrWP/k8aT/9nq2f/h7uH/rNOs/0yjTP+XyZf/xeDF/9Xo1f9irmL/BYAF/yiRKP+62rr/h7+H/zeXN/82lzb/LJIs/xSHFP8dih3/jMKM/6XPpf84mDj/OZk5/7DWsP9qsmr/rtWu/5DFkP8OhA7/KJEo/7fZt/9qsWr/BoEG/waBBv8FgAX/An8C/wqBCv+AvYD/m8ub/yWPJf9IoUj/qNGo/0agRv+BvoH/o8+j/xuLG/8okSj/uNm4/3W3df8aihr/GYkZ/w+FD/8AfgD/B4AH/368fv+aypr/Io4i/1SnVP+m0ab/PZw9/3G2cf+t1K3/Io4i/yiRKP+/3b//vNu8/5HFkf+Nw43/VadV/wB+AP8HgAf/frx+/5rKmv8ijiL/XKtc/6bQpv86mzr/a7Jr/7TXtP8mkCb/KJEo/8Pfw//g7eD/zePN/8bfxv94uHj/AH4A/weAB/9+vH7/msqa/yKOIv9erF7/ptCm/zqaOv9psWn/tti2/yeQJ/8okSj/vdu9/6LNov9lr2X/Yq5i/zubO/8DfwP/C4IL/368fv+aypr/Io4i/1mpWf+m0Kb/PJs8/2yzbP+y1rL/JY8l/yiRKP+42bj/cLRw/xKHEv8ShxL/DIQM/xSIFP8qkir/isKK/5rKmv8ijiL/T6RP/6fRp/9AnUD/d7h3/6rSqv8fjR//KJEo/7jZuP9vtG//D4YP/w+GD/8OhQ7/MZYx/2ewZ/+n0af/msqa/yKOIv9AnUD/qtOq/1GmUf+OxI7/ncyd/xeJF/8okSj/vty+/7LVsv+AvYD/gL2A/16sXv86mjr/lciV/9rr2v+aypr/Io4i/ymSKf+v1a//ncyd/8rjyv+FwYX/CoMK/yeQJ/++277/5e/l/9rp2v/Z6dn/ncud/ySPJP9Tp1P/utq6/5bHlv8ijSL/EYUR/328ff/P5c//y+PL/0qiSv8DfwP/FIcU/2OuY/9+vH7/fbt9/327ff9aqlr/DYQN/xqKGv9XqFf/TaNN/xGFEf8EfwT/NZg1/3e4d/9osWj/Gosa/wB+AP8BfQHfCIEI3wuCC98LggvfC4IL3wiBCN8BfgHfAn4C3weAB98HgAffAX0B3wB9AN8EgATfEoYS3wuDC98CfwLfAH4A3wB9AIUAfQCFAH0AhQB+AIUAfgCFAH0AhQB+AIUAfQCFAH0AhQB9AIUAfQCFAH0AhQB+AIUAfgCFAH4AhQB+AIUAfQCFAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEE%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20if%20%28%20%21custombuttons.confirmBox%28null%2C%20%22%u041F%u0435%u0440%u0435%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%20%u0447%u0442%u043E%u0431%u044B%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20%u0432%u0441%u0442%u0443%u043F%u0438%u043B%u0438%20%u0432%20%u0441%u0438%u043B%u0443%3F%22%2C%20%22%u0414%u0430%22%2C%20%22%u041E%u0442%u043C%u0435%u043D%u0430%22%29%20%29%20return%3B%20%0A%20%20%20%0A%20%20%20if%20%28%20cbu.getPrefs%28s%29%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28s%2C%2010%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.autostart%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.autostart.2%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22extensions.e10sBlocksEnabling%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22extensions.e10sBlockedByAddons%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.force-enable%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20else%0A%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28s%2C%201%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.autostart%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.autostart.2%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22extensions.e10sBlocksEnabling%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22extensions.e10sBlockedByAddons%22%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20cbu.setPrefs%28%22browser.tabs.remote.force-enable%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%0A%20%20%20Services.startup.quit%28Services.startup.eAttemptQuit%20%7C%20Services.startup.eRestart%29%3B%20%20%20%20%20%0A%7D%3B%0A%0A%0Avar%20s%20%3D%20%22dom.ipc.processCount%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20self.style.filter%20%3D%20%28cbu.getPrefs%28s%29%20%3D%3D%201%29%20%3F%20%22grayscale%281%29%22%20%3A%20%22%22%3B%0A%7D%3B%20%20%20%20%20%20%20%20%0AtoggleImage%28%29%3B%0AServices.prefs.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.prefs.removeObserver%28s%2C%20toggleImage%29%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:this._handleClick =()=> { if ( !custombuttons.confirmBox(null, "Перезапустить браузер чтобы изменения вступили в силу?", "Да", "Отмена") ) return; if ( cbu.getPrefs(s) == 1 ) { cbu.setPrefs(s, 10); cbu.setPrefs("browser.tabs.remote.autostart", true); cbu.setPrefs("browser.tabs.remote.autostart.2", true); cbu.setPrefs("extensions.e10sBlocksEnabling", false); cbu.setPrefs("extensions.e10sBlockedByAddons", false); cbu.setPrefs("browser.tabs.remote.force-enable", true); } else { cbu.setPrefs(s, 1); cbu.setPrefs("browser.tabs.remote.autostart", false); cbu.setPrefs("browser.tabs.remote.autostart.2", false); cbu.setPrefs("extensions.e10sBlocksEnabling", true); cbu.setPrefs("extensions.e10sBlockedByAddons", true); cbu.setPrefs("browser.tabs.remote.force-enable", false); } Services.startup.quit(Services.startup.eAttemptQuit | Services.startup.eRestart); }; var s = "dom.ipc.processCount"; function toggleImage() { self.style.filter = (cbu.getPrefs(s) == 1) ? "grayscale(1)" : ""; }; toggleImage(); Services.prefs.addObserver(s, toggleImage, false); addDestructor(()=> Services.prefs.removeObserver(s, toggleImage)); |
shadow_user > 31-12-2016 18:31:43 |
Открытие панели закладок в новом табе( Firefox ) от 31.12.2016. Выделить код Код:getBrowser (). selectedTab = getBrowser (). addTab ("chrome://browser/content/bookmarks/bookmarksPanel.xul"); Если вместо адреса в круглых скобках вставить выражение "about:addons", получится кнопка, открывающая в новом табе окно управления расширениями. |
xseed > 03-01-2017 16:44:39 |
Панель закладок в контекстном меню Код инициализации: Выделить код Код:(function() { if ( document.getElementById("contextBookmarksToolbar") ) return; var contextMenu = document.getElementById("contentAreaContextMenu"); var menu = document.createElement("menu"); var menuPopup = document.createElement("menupopup"); menu.setAttribute("id", "contextBookmarksToolbar"); menu.setAttribute("class", "menu-iconic bookmark-item"); menu.setAttribute("label", "Панель Закладок"); menu.setAttribute("image", "chrome://browser/skin/places/bookmarksToolbar.png"); menuPopup.setAttribute("id", "context_bookmarksToolbarPopup"); menuPopup.setAttribute("placespopup", "true"); menuPopup.setAttribute("context", "placesContext"); menuPopup.setAttribute("openInTabs", "children"); menuPopup.setAttribute("tooltip", "bhTooltip"); menuPopup.setAttribute("popupsinherittooltip", "true"); menuPopup.setAttribute("onpopupshowing", "if (!this.parentNode._placesView) new PlacesMenu(event, 'place:folder=TOOLBAR')"); menuPopup.setAttribute("oncommand", "BookmarksEventHandler.onCommand(event, this.parentNode._placesView);"); menuPopup.setAttribute("onclick", "BookmarksEventHandler.onClick(event, this.parentNode._placesView);"); menu.appendChild(menuPopup); contextMenu.appendChild(menu); contextMenu.addEventListener("popupshowing", function() { menu.hidden = !gContextMenu; }, false); })(); Панель закладок в отдельном контекстном меню можно вызывать через CTRL-RMB (event.ctrlKey), для этого нужно создать кнопку со следующим кодом, но добавлять ее нужно не в меню, а на Панель инструментов: Код инициализации: Выделить код Код:(function() { if (document.getElementById("context_bookmarksToolbarPopup")) return; var contextMenu = document.getElementById("contentAreaContextMenu"); var menuPopup = document.createElement("menupopup"); var parentNode = document.getElementById("mainPopupSet"); menuPopup.setAttribute("id", "context_bookmarksToolbarPopup"); menuPopup.setAttribute("placespopup", "true"); menuPopup.setAttribute("context", "placesContext"); menuPopup.setAttribute("openInTabs", "children"); menuPopup.setAttribute("tooltip", "bhTooltip"); menuPopup.setAttribute("popupsinherittooltip", "true"); menuPopup.setAttribute("onpopupshowing", "if (!this.parentNode._placesView) new PlacesMenu(event, 'place:folder=TOOLBAR')"); menuPopup.setAttribute("oncommand", "BookmarksEventHandler.onCommand(event, this.parentNode._placesView);"); menuPopup.setAttribute("onclick", "BookmarksEventHandler.onClick(event, this.parentNode._placesView);"); parentNode.appendChild(menuPopup); contextMenu.addEventListener("popupshowing", function(event) { if (!event.ctrlKey) return; event.preventDefault(); event.stopPropagation(); menuPopup.openPopupAtScreen(event.screenX, event.screenY); }, false); })(); |
xoreax > 04-01-2017 11:06:53 |
Быстрый доступ к менеджеру паролей.( Firefox ) от 04.01.2017. Код кнопки(с иконкой) и просто Код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0430%u0440%u043E%u043B%u0438%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACc0lEQVQ4jZXRXUiTARTG8ROubjYn4oUytUbFlG2+mro25yBBS8wsnBYLpJna0PlRkUpYRpiKlJqJhJhdSIJfCBUoigQlYQiWpgsnmak4bdWcZts7nfPpqiun2bn//TmcQ7TLqBkKuBbjP1B9Wb7UkH18repS0EJ+NP9lwlHi7+aIiChLymXqdCdWVww6rH+JhW1CAdagAPspCnfVgUtX5eS7Iz5P5FGuiZh3fNUAZhkwF4n+WuGKNoxbWab267FNKFB8ynNcH0M8t4F0CefhzNsbgFkG52w4NqfEuHXWa4qIKEPKqxhuloI1yJHF0GO3gYJo7x7LqAZYZLDxWQTH2BEYu4Su4pP8D513xIsr7zWY7UtEnmrfgNtArorf92MkGZgLwuakGPZRGdixONgMKVif1sExV4KFwRQUqMh9ICOEU2PsTQEWlHBNx4I1qmE3ZoKdKYbzWyWclqcwdEchnaFmt4H8SMGx5zWJWB5NBUzZcJoKsWGuwqa1CVv2F2Dn76E0njMZF0Fe2w8YRsJnZUms81c7+utCwRp1cFnrgd9tcNk6YTXexIOLvGW9kPy2v8+bvO5nKUwbax1oLZHA8VGEwaYENOcJHI25B+21Wp/v+Up6pQkigdvVCxMODTmsHWgpUWFrXILXT5JRrRWyusMUkhxMPgwR1y0kIroi47baLW1ouR0Py5twlJ7eP6NXckcKlSTdEf2dNDGnwvGzY6u3IR2NOSKUn/Mwnwkg/39CIqI0CZU5V7tc7zqLUJ/JQK+iJCI6sCdMRJQj57UPdxeht+4CHml9nRoBBe4ZExHlBpMoJ4pruh7jOaQLJdV/YSL6A4IrN1kmwC2QAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20host%20%3D%20content.document.domain.replace%28/%5Ewww./g%2C%27%27%29%3B%0A//%20alert%28host%29%3B%0Awindow.openDialog%28%22chrome%3A//passwordmgr/content/passwordManager.xul%22%2C%20%22SignonViewerDialog%22%2C%20%27%27%2C%20%7BfilterString%3A%20host%7D%29%3B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Код: Выделить код Код:var host = content.document.domain.replace(/^www./g,''); window.openDialog("chrome://passwordmgr/content/passwordManager.xul", "SignonViewerDialog", '', {filterString: host}); |
xoreax > 08-01-2017 10:31:46 |
Функция для открытия программы с системными переменными в пути.( Firefox ) скрытый текст Выделить код Код:function openIElink() { var environment = Cc["@mozilla.org/process/environment;1"].getService(Ci.nsIEnvironment); var localFile = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsILocalFile); var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); localFile.initWithPath(environment.get("PROGRAMFILES")+ "\\Internet Explorer\\iexplore.exe"); process.init(localFile); process.run(false, [content.location.href], 1); } openIElink(); |
bunda1 > 27-01-2017 20:13:35 |
Удалить куки текущего сайта( Firefox24+ ) от 06.02.2017. ЛКМ => Удалить куки текущего сайта, Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u0441%u0430%u0439%u0442%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABUAAAAVCAYAAACpF6WWAAACaklEQVR42rVVu2piURTd6jW+FSMWRkW76WRsRBCbNFY2ATHFlCGdTaZXmU/wB/IHYjGdON2ANlapxELxRQpJjPH9yNy14dzx5prGmRwQb+4+Z2Wttdc+SvQJS/pU0EQi8f3t7S2t0+lOBtvtdr/q9foPBVSSpG+BQOCrXDiNnSRRp9P5Ij/+BXU6nROv10vb7fbDg0KFrEhTOzs7o6enp2eVfIfDQRcXF7Rer1WbAWCz2ZjJZrPhd0ajkVarFS0WC9Lr9fzObDbTaDRSeyozJVk+LZdLFROXy0WtVouq1SrkcQ0A6XSaotEoA0OB1WqldrutBQ0GgzSbzRSGbrebarUaFQoFZpRKpVhRs9mk6XRK4XCYJpMJg9rtdiagke/3++nl5YX/NplMfKBUKvHz/f09JZNJVgIb5vM57wNDoUgDiv/k8/lYGpbH42Ggx8dHur29pUwmw56hIdgDZfv9XrHp/PycialALRYLb0ZRdHM4HPIzGIqDHy2oQUNVoCIuh+EXDUO33+8T9WPDooDCI8REzpoiH3ZgNRoNymazSg1A+BzKR1OFzwooug7P0FUwQMMQGeHt5eUlxWIxbhSmDvVDdcg3zqpA8WIwGKgiBQ9zuRwVi0W6vr6mq6srZiTPN4VCIbq7u1PSgvNIiwoUxX6/z2EWC8wjkQjl83kql8tUqVR4shCdeDxO3W5X2Y9oaUDxotfracYUCQDjm5sbVoEhQJdhASZIWIDkaEBfX1+ZmZjvY5eJwWBgW47dZIigsOLQU8d4PKZ/ufpkYo73kfr58PDgOvWSls/pZPm/VaByFgvyV+F//Jz8AYsmOCaaWhXDAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%20%20%20%20%20%20%20%20//%20%u041B%u041A%u041C%0A%20%20%20%20%20%20%20%20deleteCookiesFromHost%28%29%3B%0A%20%20%20%20%20%20%20%20//BrowserReload%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%20%20%20%20%20%20%20//%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20deleteCookiesFromHost%28%29%3B%0A%20%20%20%20%20%20%20%20reloadAllTabsFromHost%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%20%20%20%20%20%20//%20%u041F%u041A%u041C%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20try%20%7B%20Services.wm.getMostRecentWindow%28%22Browser%3ACookies%22%29.close%28%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20var%20win%20%3D%20openDialog%20%28%22chrome%3A//browser/content/preferences/cookies.xul%22%2C%20%22_blank%22%2C%20%22resizable%2Cdialog%3Dyes%2Ccenterscreen%22%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20addEventListener%28%22load%22%2C%20%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20host%20%3D%20content.location.host%2C%20arr%20%3D%20host.split%28%27.%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20arr.length%20%3E%202%20%29%20host%20%3D%20arr%5B1%5D%20+%20%22.%22%20+%20arr%5B2%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20var%20filter%20%3D%20win.document.getElementById%28%22filter%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20filter.value%20%3D%20host%3B%20setTimeout%28%28%29%3D%3E%20filter.doCommand%28%29%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20false%2C%20win%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%0A%7D%3B%0A%0A%0A//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0431%u0430%u0437%u043E%u0432%u043E%u0433%u043E%20%u0434%u043E%u043C%u0435%u043D%u0430%20.............%0Afunction%20deleteCookiesFromHost%28%29%20%7B%0A%20%20%20var%20host%20%3D%20Services.eTLD.getBaseDomain%28gBrowser.currentURI%29%3B%0A%0A%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043E%u0431%u044B%u0447%u043D%u044B%u0435%20%u043A%u0443%u043A%u0438%20%u0434%u043E%u043C%u0435%u043D%u0430%0A%20%20%20for%20%28%20var%20en%20%3D%20Services.cookies.enumerator%3B%20en.hasMoreElements%28%29%3B%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20cookie%20%3D%20en.getNext%28%29.QueryInterface%28Ci.nsICookie%29%3B%0A%20%20%20%20%20%20%20%20%20%7Ecookie.host.indexOf%28host.trim%28%29%29%20%26%26%20Services.cookies.remove%28cookie.host%2C%20cookie.name%2C%20cookie.path%2C%20false%29%3B%20%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%0A%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0434%u043E%u043C%u0435%u043D%u0430%20%u0438%u0437%20%u0438%u0441%u0442%u043E%u0440%u0438%u0438%20%20%20%20%20%0A%20%20%20var%20reversedDomain%20%3D%20host.split%28%22%22%29.reverse%28%29.join%28%22%22%29%20+%20%22.%22%3B%0A%20%20%20Cu.import%28%22resource%3A//gre/modules/FileUtils.jsm%22%29%3B%0A%20%20%20var%20file%20%3D%20FileUtils.getFile%28%22ProfD%22%2C%20%5B%22webappsstore.sqlite%22%5D%29%3B%0A%20%20%20var%20dbConn%20%3D%20Services.storage.openDatabase%28file%29%3B%0A%20%20%20dbConn.executeSimpleSQL%28%22DELETE%20FROM%20webappsstore2%20WHERE%20scope%20LIKE%20%5C%22%25%22%20+%20reversedDomain%20+%22%25%5C%22%22%29%3B%0A%20%20%20dbConn.close%28%29%3B%0A%20%20%20%0A%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0432%u0441%u0435%20Flash%20%u043A%u0443%u043A%u0438%0A%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%27Home%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20dir.remove%28true%29%3B%0A%20%20%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u0441%u0430%u0439%u0442%u0430%20.............%0Afunction%20reloadAllTabsFromHost%28%29%20%7B%0A%20%20%20var%20host%20%3D%20content.document.domain%3B%0A%20%20%20%0A%20%20%20for%28%20var%20tab%20of%20gBrowser.tabs%20%29%20%7B%20%20%0A%20%20%20%20%20%20%20%20var%20tabHost%20%3D%20tab.linkedBrowser.contentDocument.location.host%3B%0A%20%20%20%20%20%20%20%20if%20%28%20host%20%3D%3D%20tabHost%20%29%20gBrowser.reloadTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u0441%u0430%u0439%u0442%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u0421%3A%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u043A%u0443%u043A%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u0441%u0430%u0439%u0442%u0430%20+%20%u043E%u0431%u043D%u043E%u0432%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u0441%u0430%u0439%u0442%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041F%3A%20%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u043A%u0443%u043A%u0430%u043C%u0438%20%u0434%u043B%u044F%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u0441%u0430%u0439%u0442%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5CnCtrl+%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ............. this.onclick =e=> { if ( e.button == 0 ) { // ЛКМ deleteCookiesFromHost(); //BrowserReload(); } if ( e.button == 1 ) { // СКМ deleteCookiesFromHost(); reloadAllTabsFromHost(); } if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { // ПКМ e.preventDefault(); try { Services.wm.getMostRecentWindow("Browser:Cookies").close() } catch(e) {}; var win = openDialog ("chrome://browser/content/preferences/cookies.xul", "_blank", "resizable,dialog=yes,centerscreen", null); addEventListener("load", ()=> { var host = content.location.host, arr = host.split('.'); if ( arr.length > 2 ) host = arr[1] + "." + arr[2]; var filter = win.document.getElementById("filter"); filter.value = host; setTimeout(()=> filter.doCommand(), 0); }, false, win); } }; // Удалить куки базового домена ............. function deleteCookiesFromHost() { var host = Services.eTLD.getBaseDomain(gBrowser.currentURI); // удалить обычные куки домена for ( var en = Services.cookies.enumerator; en.hasMoreElements(); ) { var cookie = en.getNext().QueryInterface(Ci.nsICookie); ~cookie.host.indexOf(host.trim()) && Services.cookies.remove(cookie.host, cookie.name, cookie.path, false); } // удалить куки домена из истории var reversedDomain = host.split("").reverse().join("") + "."; Cu.import("resource://gre/modules/FileUtils.jsm"); var file = FileUtils.getFile("ProfD", ["webappsstore.sqlite"]); var dbConn = Services.storage.openDatabase(file); dbConn.executeSimpleSQL("DELETE FROM webappsstore2 WHERE scope LIKE \"%" + reversedDomain +"%\""); dbConn.close(); // удалить все Flash куки var dir = Services.dirsvc.get('Home', Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); dir.remove(true); dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); }; // Перезагрузить все вкладки текущего сайта ............. function reloadAllTabsFromHost() { var host = content.document.domain; for( var tab of gBrowser.tabs ) { var tabHost = tab.linkedBrowser.contentDocument.location.host; if ( host == tabHost ) gBrowser.reloadTab(tab); } }; this.tooltipText = "Л: Удалить куки текущего сайта\ \nС: Удалить куки текущего сайта + обновить все вкладки текущего сайта\ \nП: Управление куками для текущего сайта\ \nCtrl+П: CB Меню"; |
bunda1 > 28-01-2017 20:18:36 |
Запуск портативной программы из портативного Firefox( Firefox24+ ) от 28.01.2017. ЛКМ => Запуск программы. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u0417%u0430%u043F%u0443%u0441%u043A%20%u043F%u043E%u0440%u0442%u0430%u0442%u0438%u0432%u043D%u043E%u0439%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u044B%20%u0438%u0437%20%u043F%u043E%u0440%u0442%u0430%u0442%u0438%u0432%u043D%u043E%u0433%u043E%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-2%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20app%20%3D%20%22fdm%22%3B%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%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043F%u043A%u0438%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u044B%20%20%20%20%0Avar%20appFolder%20%3D%20%22FreeDownloadManager%22%3B%20%20%20%20%20//%20%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20exe%20%u0444%u0430%u0439%u043B%u0430%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u044B%20%20%0A%0A%0Avar%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0Afile.initWithPath%28file.path%20+%20%22%5C%5CSoft%5C%5C%22%20+%20appFolder%20+%20%22%5C%5C%22%20+%20app%20+%20%22.exe%22%29%3B%0A%0Adocument.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20%22moz-icon%3A//file%3A//%22%20+%20file.path%3B%0Aself.tooltipText%20%3D%20%22%u041B%3A%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%22%20+%20app%20+%20%22%5Cn%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%0A%0Athis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20var%20arg%20%3D%20%5B%5D%3B%20//%20gClipboard.read%28%29%20%20content.location.href%20%20document.commandDispatcher.focusedWindow.getSelection%28%29%0A%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20arg%2C%20%28arg.length%29%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:var app = "fdm"; // название папки программы var appFolder = "FreeDownloadManager"; // название exe файла программы var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath(file.path + "\\Soft\\" + appFolder + "\\" + app + ".exe"); document.getAnonymousNodes(self)[0].src = "moz-icon://file://" + file.path; self.tooltipText = "Л: Запустить " + app + "\nП: CB Меню"; this._handleClick =()=> { var arg = []; // gClipboard.read() content.location.href document.commandDispatcher.focusedWindow.getSelection() var process = Cc["@mozilla.org/process/util;1"].createInstance(Ci.nsIProcess); process.init(file); process.run(false, arg, (arg.length)); }; |
bunda1 > 01-02-2017 01:02:15 |
Кодировать изображение или текстовой файл в base64( Firefox24+ ) от 30.11.2017. ЛКМ => Кодировать изображение или текстовой файл в base64. Код кнопки и вкладки Код: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041A%u043E%u0434%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u0435%20%u0438%u043B%u0438%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0439%20%u0444%u0430%u0439%u043B%20%u0432%20base64%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACLElEQVR42pXTXUtUURTG8f/aZ58zppqjY4YhRgQBWRABRRgoEERlKNJlQn2ICOquIooi6Bt0FRDkOGlAUUBRQoEFmEYEZhSRYG/zojpzzl55cA6lUNFv89zszX5YN0tyIyNUDYdR1KfOoYCwQgSE1RQQMXiel7NhGFLVN9Dfz//I5nJ9VlX53buZ94BgDNT6HvuvjhNYQVAUcA4Obs9w7WQXqg7LGoHvIxIXCCk/HlM4e2w3Ym0yPOduPiMmgBERksRqampWkkoRBAFTF7q5MvSCcgQ3ns9SUYM1kLDW97POuf7IOW5ls6gqAlgDdRZOPwk43ruXu2/zNKfX87VsEH6x8eeu7h4iP8B5HjhFnCNllH0Xxxg4uofpwiKZpjTjj8dI204QIWEVMHX1iDV4bWnM1k14rS2kmjK8qUuz46HQe6iHe7dHeXnpCJ2nRgkjJaZJge8J5XqBnR3Ilja0JUPYkMEEjbxaesC2OxHXu8qAMHn5MGi1QMEAWMC0N2I60pjNzcvZgPpFFj9PsDAxxuvzByhWABUqIZQjqgWKVQUfWGptwGxshCCPzk3hiku42XmiyU9YoBIpiCBGiE/CoooPmMZadP4Dsj7EtK9Dfxi0FCL1Pj4xJWathYQIJnnQLx9hbga0gKldAClAOY+WF4gJwlpGBJtcp58W+RvfegwND+OcI2aMoVQqPZLlhcg71Qan/JERKBQK908MDp5hte8C7AI8/u0bMM0aPwHiYdBiB+lf7gAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20fp%20%3D%20window.makeFilePicker%28%29%3B%0Afp.init%28window%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0444%u0430%u0439%u043B%22%2C%20fp.modeOpen%29%3B%0Afp.appendFilter%28%22Text%20and%20images%22%2C%20%22*.txt%3B%20*.text%3B%20*.css%3B%20*.js%3B%20*.ini%3B%20*.rdf%3B%20*.xml%3B%20*.html%3B%20*.htm%3B%20*.shtml%3B%20*.xhtml%3B%20*.jpe%3B%20*.jpg%3B%20*.jpeg%3B%5C%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%20%20%20%20%20%20*.gif%3B%20*.png%3B%20*.bmp%3B%20*.ico%3B%20*.svg%3B%20*.svgz%3B%20*.tif%3B%20*.tiff%3B%20*.ai%3B%20*.drw%3B%20*.pct%3B%20*.psp%3B%20*.xcf%3B%20*.psd%3B%20*.raw%22%29%3B%0Afp.open%28re%3D%3E%20%7B%20%0A%20%20%20if%20%28%20re%20%21%3D%20fp.returnOK%20%29%20return%3B%0A%20%20%20var%20file%20%3D%20fp.file%3B%0A%20%20%20%20%20%0A%20%20%20var%20inputStream%20%3D%20Cc%5B%22@mozilla.org/network/file-input-stream%3B1%22%5D.createInstance%28Ci.nsIFileInputStream%29%3B%0A%20%20%20inputStream.init%28file%2C%200x01%2C%200600%2C%200%29%3B%0A%20%20%20var%20stream%20%3D%20Cc%5B%22@mozilla.org/binaryinputstream%3B1%22%5D.createInstance%28Ci.nsIBinaryInputStream%29%3B%0A%20%20%20stream.setInputStream%28inputStream%29%3B%0A%20%20%20var%20encoded%20%3D%20btoa%28stream.readBytes%28stream.available%28%29%29%29%3B%0A%20%20%20var%20contentType%20%3D%20Cc%5B%22@mozilla.org/mime%3B1%22%5D.getService%28Ci.nsIMIMEService%29.getTypeFromFile%28file%29%3B%0A%20%20%20var%20dataURI%20%3D%20%22data%3A%22%20+%20contentType%20+%20%22%3Bcharset%3Dutf-8%3Bbase64%2C%22%20+%20encoded%3B%0A%20%20%20%20%20%20%0A%20%20%20gClipboard.write%28dataURI%29%3B%0A%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20.showAlertNotification%28self.image%2C%20self.label%2C%20%22%u0421%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043B%20%u0444%u0430%u0439%u043B%20%u043A%u0430%u043A%20base64%22%29%3B%0A%7D%29%3B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E вкладка Код: Выделить код Код:var fp = window.makeFilePicker(); fp.init(window, "Открыть файл", fp.modeOpen); fp.appendFilter("Text and images", "*.txt; *.text; *.css; *.js; *.ini; *.rdf; *.xml; *.html; *.htm; *.shtml; *.xhtml; *.jpe; *.jpg; *.jpeg;\ *.gif; *.png; *.bmp; *.ico; *.svg; *.svgz; *.tif; *.tiff; *.ai; *.drw; *.pct; *.psp; *.xcf; *.psd; *.raw"); fp.open(re=> { if ( re != fp.returnOK ) return; var file = fp.file; var inputStream = Cc["@mozilla.org/network/file-input-stream;1"].createInstance(Ci.nsIFileInputStream); inputStream.init(file, 0x01, 0600, 0); var stream = Cc["@mozilla.org/binaryinputstream;1"].createInstance(Ci.nsIBinaryInputStream); stream.setInputStream(inputStream); var encoded = btoa(stream.readBytes(stream.available())); var contentType = Cc["@mozilla.org/mime;1"].getService(Ci.nsIMIMEService).getTypeFromFile(file); var dataURI = "data:" + contentType + ";charset=utf-8;base64," + encoded; gClipboard.write(dataURI); Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) .showAlertNotification(self.image, self.label, "Скопировал файл как base64"); }); |
bunda1 > 12-02-2017 13:20:33 |
HTTP Request Loger( Firefox24+ ) от 12.02.2017. ЛКМ => Включить-Выключить запись(логирование), Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3EHTTP%20Request%20Logger%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/AwMD/AAAA/wAAAP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AACsQQAArEEAAKxBH/isQR/4rEEf+KxBH/isQR/4rEEf+KxBH/isQR/4rEEf+KxBH/isQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5BgBrowser.currentURI.spec%20%3D%3D%20%22about%3Acustomizing%22%20%7C%7C%20%28%28%29%20%3D%3E%20%7B%0A%09var%20fileName%20%3D%20%22http-request-log.txt%22%3B%0A%09var%20file%20%3D%20Services.dirsvc.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%09file.append%28fileName%29%3B%0A%0A%09var%20obsId%20%3D%20%22httpRequestLogger%22%3B%0A%09var%20pn%20%3D%20%22CB.%22%20+%20obsId%20+%20%22.on%22%3B%0A%09cbu.isPref%28pn%2C%20false%29%3B%0A%09var%20storageId%20%3D%20%22CB.%22%20+%20obsId%20+%20%22.Storage%22%3B%0A%09%0A%09var%20storage%20%3D%20%28function%28%29%20%7B%0A%09%09var%20global%20%3D%20Cu.import%28%22resource%3A//gre/modules/Services.jsm%22%2C%20%7B%7D%29%3B%0A%09%09var%20ns%20%3D%20storageId%3B%0A%09%09var%20storage%20%3D%20global%5Bns%5D%20%7C%7C%20%28global%5Bns%5D%20%3D%20global.Object.create%28null%29%29%3B%0A%09%09return%20%7B%0A%09%09%09get%3A%20function%28key%2C%20defaultVal%29%20%7B%0A%09%09%09%09if%28key%20in%20storage%29%0A%09%09%09%09%09return%20storage%5Bkey%5D%3B%0A%09%09%09%09return%20defaultVal%3B%0A%09%09%09%7D%2C%0A%09%09%09set%3A%20function%28key%2C%20val%29%20%7B%0A%09%09%09%09if%28key%20%3D%3D%3D%20null%29%0A%09%09%09%09%09delete%20storage%5Bkey%5D%3B%0A%09%09%09%09else%0A%09%09%09%09%09storage%5Bkey%5D%20%3D%20val%3B%0A%09%09%09%7D%0A%09%09%7D%3B%0A%09%7D%29%28%29%3B%0A%0A%09function%20obsConstructor%28%29%20%7B%0A%09%09var%20obs%20%3D%20storage.get%28obsId%2C%20null%29%3B%0A%09%09if%20%28%21obs%29%20%7B%0A%09%09%09obs%20%3D%20%7B%0A%09%09%09%09topic%3A%20%22http-on-modify-request%22%2C%0A%09%09%09%09init%3A%20function%28%29%20Services.obs.addObserver%28this%2C%20this.topic%2C%20false%29%2C%0A%09%09%09%09destroy%3A%20function%28%29%20%7B%0A%09%09%09%09%09try%20%7BServices.obs.removeObserver%28this%2C%20this.topic%29%3B%7D%0A%09%09%09%09%09catch%28ex%29%20%7BCu.reportError%28ex%29%3B%7D%0A%09%09%09%09%7D%2C%0A%09%09%09%09observe%3A%20function%28subj%29%20%7B%0A%09%09%09%09%09var%20channel%20%3D%20subj.QueryInterface%28Ci.nsIHttpChannel%29%3B%0A%09%09%09%09%09var%20ref%20%3D%20channel.referrer%20%3F%20channel.referrer.spec%20%3A%20%22%28none%29%22%3B%0A%09%09%09%09%09var%20str%3D%20ref%20+%20%22%20%22%20+%20channel.requestMethod%20+%20%22%20%22%20+%20channel.URI.spec%20+%20%22%5Cr%5Cn%22%3B%0A%09%09%09%09%09str%20%3D%20this.suc.ConvertFromUnicode%28str%29%3B%0A%09%09%09%09%09this.fos.write%28str%2C%20str.length%29%3B%0A%09%09%09%09%7D%2C%0A%09%09%09%09get%20fos%28%29%20%7B%0A%09%09%09%09%09delete%20this.fos%3B%0A%09%09%09%09%09var%20fos%20%3D%20Cc%5B%22@mozilla.org/network/file-output-stream%3B1%22%5D.createInstance%28Ci.nsIFileOutputStream%29%3B%0A%09%09%09%09%09//%20PR_WRONLY%20%7C%20PR_CREATE_FILE%20%7C%20PR_APPEND%0A%09%09%09%09%09fos.init%28file%2C%20parseInt%28%220x02%22%29%20%7C%20parseInt%28%220x08%22%29%20%7C%20parseInt%28%220x10%22%29%2C%20-1%2C%200%29%3B%0A%09%09%09%09%09return%20this.fos%20%3D%20fos%3B%0A%09%09%09%09%7D%2C%0A%09%09%09%09get%20suc%28%29%20%7B%0A%09%09%09%09%09delete%20this.suc%3B%0A%09%09%09%09%09var%20suc%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%09%09%09%09%09suc.charset%20%3D%20%22utf-8%22%3B%0A%09%09%09%09%09return%20this.suc%20%3D%20suc%3B%0A%09%09%09%09%7D%0A%09%09%09%09%0A%09%09%09%7D%3B%0A%09%09%09storage.set%28obsId%2C%20obs%29%3B%0A%09%09%09obs.init%28%29%3B%0A%09%09%7D%0A%09%7D%0A%09function%20obsDestructor%28reason%29%20%7B%20%20%0A%09%09if%20%28%20%21/delete%7Cupdate/.test%28reason%29%20%29%20return%3B%0A%09%09var%20obs%20%3D%20storage.get%28obsId%2C%20null%29%3B%0A%09%09if%20%28obs%29%20%7B%0A%09%09%09obs.destroy%28%29%3B%0A%09%09%09storage.set%28obsId%2C%20null%29%3B%0A%09%09%7D%0A%09%09reason%20%3D%3D%20%22delete%22%20%26%26%20cbu.clearPrefs%28pn%29%3B%0A%09%7D%0A%09addDestructor%28reason%20%3D%3E%20%7B%0A%09%09obsDestructor%28reason%29%3B%0A%09%09setTimeout%28function%28%29%20%7B%0A%09%09%09custombuttons.palette.querySelector%28%27toolbarbutton%5Bid%3D%22%27%20+%20_id%20+%20%27%22%5D%27%29%20%26%26%20obsDestructor%28%22delete%22%29%3B%0A%09%09%7D%2C%20500%29%3B%0A%09%7D%29%3B%0A%0A%09var%20imgON%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/AwMD/AAAA/wAAAP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0A%09function%20setState%28on%29%20%7B%0A%09%09on%20%3F%20obsConstructor%28%29%20%3A%20obsDestructor%28%22delete%22%29%3B%0A%09%09cbu.setPrefs%28pn%2C%20on%29%3B%0A%09%09var%20src%20%3D%20on%20%3F%20imgON%20%3A%20self.image%3B%0A%09%09var%20en%20%3D%20Services.wm.getEnumerator%28%22navigator%3Abrowser%22%29%3B%0A%09%09while%28en.hasMoreElements%28%29%29%20%7B%0A%09%09%09var%20doc%20%3D%20en.getNext%28%29.document%3B%0A%09%09%09var%20btn%20%3D%20doc.getElementById%28_id%29%3B%0A%09%09%09var%20%5Bimg%5D%20%3D%20doc.getAnonymousNodes%28btn%29%3B%0A%09%09%09if%20%28img%29%20img.src%20%3D%20src%3B%0A%09%09%7D%0A%09%7D%0A%09setState%28cbu.getPrefs%28pn%29%29%3B%0A%09self.onclick%20%3De%3D%3E%20%7B%0A%09%09if%20%28%20e.button%20%3D%3D%200%20%29%20setState%28%21cbu.getPrefs%28pn%29%29%3B%0A%09%09%0A%09%09if%20%28%20e.button%20%3D%3D%201%20%29%20%0A%09%09%20%20%20%20%20file.exists%28%29%20%3F%20file.launch%28%29%20%3A%20custombuttons.alertSlide%28self.label%2C%20%22%u041B%u043E%u0433%20%u0444%u0430%u0439%u043B%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%22%29%3B%0A%09%09%0A%09%09if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setState%28false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%28function%20f%28i%20%3D%2020%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20file.remove%28true%29%3B%20custombuttons.alertSlide%28self.label%2C%20%22%u0423%u0434%u0430%u043B%u0438%u043B%20%u043B%u043E%u0433%20%u0444%u0430%u0439%u043B%22%29%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20i%20%26%26%20setTimeout%28%28%29%3D%3E%20f%28--i%29%2C%202000%29%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%09%7D%0A%7D%29%28%29%3B%0A%0A%0Athis.tooltipText%20%3D%20%22%u0417%u0430%u043F%u0438%u0441%u044B%u0432%u0430%u0442%u044C%20%u0441%u0435%u0442%u0435%u0432%u044B%u0435%20%u0437%u0430%u043F%u0440%u043E%u0441%u044B%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0439%20%u0444%u0430%u0439%u043B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041B%3A%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C-%u0412%u044B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0430%u043F%u0438%u0441%u044C%28%u043B%u043E%u0433%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%29%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u0421%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0439%28%u043B%u043E%u0433%29%20%u0444%u0430%u0439%u043B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041F%3A%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0439%28%u043B%u043E%u0433%29%20%u0444%u0430%u0439%u043B%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5CnCtrl+%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BHTTP%20Request%20Logger%20-%20%u041A%u043D%u043E%u043F%u043A%u0430%20%u0441%u043E%u0445%u0440%u0430%u043D%u044F%u0435%u0442%20%u0437%u0430%u043F%u0440%u043E%u0441%u044B%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0432%20%u0441%u0435%u0442%u044C%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0439%20%u0444%u0430%u0439%u043B%20%u0432%20%u043F%u0430%u043F%u043A%u0435%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F.%0A%u0418%u043C%u044F%20%u0444%u0430%u0439%u043B%u0430%20%22http-request-logger.txt%22.%0A*********************************************************************%0A%u041B%u041A%u041C%20-%20%u0412%u041A%u041B%u044E%u0447%u0438%u0442%u044C%20/%20%u0412%u042B%u041A%u041B%u044E%u0447%u0438%u0442%u044C%20%u0437%u0430%u043F%u0438%u0441%u044C%20%u0432%20%u0444%u0430%u0439%u043B%20%28%u043B%u043E%u0433%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%29.%0A%u0421%u041A%u041C%20-%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%20%u044D%u0442%u043E%u0442%20%u0444%u0430%u0439%u043B%20%u0432%20%u0432%u0430%u0448%u0435%u043C%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u043C%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0435%20%u043F%u043E-%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E.%0A%u041F%u041A%u041C%20-%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438.%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:gBrowser.currentURI.spec == "about:customizing" || (() => { var fileName = "http-request-log.txt"; var file = Services.dirsvc.get("ProfD", Ci.nsIFile); file.append(fileName); var obsId = "httpRequestLogger"; var pn = "CB." + obsId + ".on"; cbu.isPref(pn, false); var storageId = "CB." + obsId + ".Storage"; var storage = (function() { var global = Cu.import("resource://gre/modules/Services.jsm", {}); var ns = storageId; var storage = global[ns] || (global[ns] = global.Object.create(null)); return { get: function(key, defaultVal) { if(key in storage) return storage[key]; return defaultVal; }, set: function(key, val) { if(key === null) delete storage[key]; else storage[key] = val; } }; })(); function obsConstructor() { var obs = storage.get(obsId, null); if (!obs) { obs = { topic: "http-on-modify-request", init: function() Services.obs.addObserver(this, this.topic, false), destroy: function() { try {Services.obs.removeObserver(this, this.topic);} catch(ex) {Cu.reportError(ex);} }, observe: function(subj) { var channel = subj.QueryInterface(Ci.nsIHttpChannel); var ref = channel.referrer ? channel.referrer.spec : "(none)"; var str= ref + " " + channel.requestMethod + " " + channel.URI.spec + "\r\n"; str = this.suc.ConvertFromUnicode(str); this.fos.write(str, str.length); }, get fos() { delete this.fos; var fos = Cc["@mozilla.org/network/file-output-stream;1"].createInstance(Ci.nsIFileOutputStream); // PR_WRONLY | PR_CREATE_FILE | PR_APPEND fos.init(file, parseInt("0x02") | parseInt("0x08") | parseInt("0x10"), -1, 0); return this.fos = fos; }, get suc() { delete this.suc; var suc = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); suc.charset = "utf-8"; return this.suc = suc; } }; storage.set(obsId, obs); obs.init(); } } function obsDestructor(reason) { if ( !/delete|update/.test(reason) ) return; var obs = storage.get(obsId, null); if (obs) { obs.destroy(); storage.set(obsId, null); } reason == "delete" && cbu.clearPrefs(pn); } addDestructor(reason => { obsDestructor(reason); setTimeout(function() { custombuttons.palette.querySelector('toolbarbutton[id="' + _id + '"]') && obsDestructor("delete"); }, 500); }); var imgON = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/AAAA/wAAAP/AwMD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/wAAAP/AwMD/AAAA/wAAAP/AwMD/AAAA/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf8AAAD/wMDA/wAAAP8AAAD/wMDA/wAAAP9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/Zv+Z/2b/mf9m/5n/AAAA/8DAwP8AAAD/AAAA/8DAwP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP/AwMD/AAAA/wAAAP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/8DAwP/AwMD/wMDA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ=="; function setState(on) { on ? obsConstructor() : obsDestructor("delete"); cbu.setPrefs(pn, on); var src = on ? imgON : self.image; var en = Services.wm.getEnumerator("navigator:browser"); while(en.hasMoreElements()) { var doc = en.getNext().document; var btn = doc.getElementById(_id); var [img] = doc.getAnonymousNodes(btn); if (img) img.src = src; } } setState(cbu.getPrefs(pn)); self.onclick =e=> { if ( e.button == 0 ) setState(!cbu.getPrefs(pn)); if ( e.button == 1 ) file.exists() ? file.launch() : custombuttons.alertSlide(self.label, "Лог файл не существует"); if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { e.preventDefault(); setState(false); (function f(i = 20) { try { file.remove(true); custombuttons.alertSlide(self.label, "Удалил лог файл") } catch(e) { i && setTimeout(()=> f(--i), 2000) }; })(); } } })(); this.tooltipText = "Записывать сетевые запросы сайтов в текстовый файл\ \nЛ: Включить-Выключить запись(логирование)\ \nС: Открыть текстовый(лог) файл\ \nП: Удалить текстовый(лог) файл\ \nCtrl+П: CB Меню"; |
Indomito > 18-05-2017 00:38:04 |
FF Exp Imp CB(для Firefox 53) Автор Indomito ver 7.0.1 bild of 03.06.2017 Импорт и Экспорт кнопок из/в HTML-файл
|
bunda1 > 26-08-2017 19:13:09 |
Экспорт/импорт закладок в HTML-файл( Firefox52+ ) от 27.05.2019. Скриншот меню ЛКМ => Открыть меню кнопки. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u042D%u043A%u0441%u043F%u043E%u0440%u0442/%u0438%u043C%u043F%u043E%u0440%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0432%20HTML-%u0444%u0430%u0439%u043B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAJAAAACQAAAAkAAAAHAAAAAwAAAAAAAAANAAAAMwAAAEsAAABOAAAATgAAAE4AAABOAAAATgAAAE4AAABOAAAATgAAAE4AAABOAAAATgAAAE8AAABKAAAAMQAAAAwAAAAuLCwsl2tra89nZ2fNZ2dnz2dnZ89nZ2fPZ2dnz2dnZ89nZ2fPZ2dnz2dnZ89nZ2fPZ2dnz2dnZ81sbGzPKCgokwAAACsAAABHy8vL/7+/v/+/v7//v7+//729vf+/v7//v7+//7+/v/+/v7//v7+//76+vv++vr7/vr6+/7+/v/+/v7//ycnJ/wAAAEIKCgpQ0tLS/8PDw//Dw8P/wsLC/+fn5/3CwsL/w8PD/8PDw//Dw8P/wsLC/8nJyf/V1dX/x8fH/8PDw//ExMT/0tLS/wAAAEkJCQlQ39/f/9DQ0P/Q0ND/29vb/ykpKbfb29v/0NDQ/9DQ0P/Ozs7/7u7u/6ioqMVsbGyqvr6+0ujo6P/Pz8//39/f/wAAAEgKCgpQ6+vr/9vb2//b29v/5+fn/zIyMrfn5+f/29vb/9vb2//w8PD/ODg4jAAAAHw/Pz+oAAAAcHZ2dqvm5ub/6+vr/wAAAEgJCQlQ8PDw/9/f3//f39//7Ozs/zMzM7fs7Oz/39/f/+Tk5P+urq7ZAAAAa+jo6Prx8fH/w8PD5QAAAGPf39/18vLy/wAAAEgICAhQ9/f3/+bm5v/m5ub/8vLy/zQ0NLfy8vL/5ubm/+zs7P+RkZHOEhISd//////o6Oj//////gAAAGTLy8vq+fn5/wAAAEgJCQlQ/f39/+zs7P/s7Oz/+fn5/zMzM7j5+fn/7Ozs/+7u7v/l5eX3AAAAdoODg7Lq6urmUFBQmwQEBIr5+fn//f39/wAAAEgKCgpN//////Hx8f/x8fH//Pz8/0RERMH8/Pz/8fHx//Hx8f/4+Pj/vb294wAAAJAAAAB6GRkZnN3d3fH09PT//////wAAAEYFBQU3//////X19f/19fX/9fX1///////4+Pj/+Pj4//j4+P/4+Pj//f39//////////////////v7+//4+Pj//////wAAAC8AAAAKfn5+j/39/fn5+fn//Pz8/+Pj4+Pd3d3X3d3d193d3dfd3d3X3d3d193d3dfd3d3X3d3d193d3dfj4+PYeHh4ggcHBwkAAAAAAAAACZubm6b//////////gAAAC0FBQUGDQ0NBA4ODgQNDQ0EDQ0NBA0NDQQNDQ0EDQ0NBA0NDQQaGhoCAAAAAAAAAAAAAAAAFxcXARkZGQs3NzcwISEhHSkpKQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8AAgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAwACD/8AA///AAP//wAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bself._handleClick%20%3D%28%29%3D%3E%20menuPopup.openPopup%28this%2C%20%22after_start%22%29%3B%20%20%0A%0A%0Avar%20array%20%3D%20%5B%0A%20%20%20%5B%20%22%u042D%u043A%u0441%u043F%u043E%u0440%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0432%20HTML-%u0444%u0430%u0439%u043B%22%2C%20%22setPathAndExportsBookmarksToHTMLFile%28%29%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAADg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAADg/o/w4P6P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAADg/o/zUq6P8OD+j/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAADg/o/0RC//0cE+X/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAA/////xQW5/8tMOT/Njfw/0BA+v9JSP//UU///1hT//9aVv3/RUL5/zQy+f8zNPH/JSHa/w4P6P8AAAAAAAAAAAAAAAAAAAAA/////xAR5v0UFeL/Hh7v/Soo+P80Mf39PDn+/0I+//05NPn/F5sr/zlO0/08PeL/NDbb/Rwdyv8OD+j/AAAAAAAAAAAAAAAA/////w4P6P8XGOn/Hh7x/yQk9f8rKvX/MjD1/zk0+f85NPn/F5sr/xebK/8lQ6n/Hx/D/w4P6P8AAAAAAAAAAAAAAAAAAAAA/////w4P6P8OD+j/Dg/o/w4P6P8OD+j/Dg/o/w4P6P8OD+j/F5sr/zfyX/0Xmyv/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAA/////33EgP+W8J//m/Sk/6D5qv+k/K7/qPyz/6z8uP9t2H7/QuJf/zz/Xv8f7UX/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAA/////wOQFP8f5D3/KexI/zL3U/87/V3/Qf9k/0T/aP9K/2v/Qf9j/zn5Wf8571X/Kt1J/xebK/8AAAAAAAAAAAAAAAAAAAAA/////weUGf0Y6Tj/IvNE/Sn6Tv81/lj9Pv9h/0X9Z/1H/mf/Rvpk/0HvXP064VP/MtZL/RrHN/8Xmyv/AAAAAAAAAAAAAAAA/////wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/zjgUf8x1kj/FMIy/xebK/8AAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAAKL08/zDXSP0NvCz/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAAHKsv/xS9Lv8Xmyv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAAF5sr/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8AAg9/AAIPPwACDx8AAg8PAAIABwACAAMAAgAHAAIADwACAA8AAgAHAAIAAwACAAcAAg8PAAIPHwACDz8AAg9/AAP//wAA%3D%22%5D%2C%0A%20%20%20%5B%20%22%u0418%u043C%u043F%u043E%u0440%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0438%u0437%20HTML-%u0444%u0430%u0439%u043B%u0430%22%2C%20%22importBookmarksOutHTMLFile%28%29%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAADg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8OD+j/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////w4P6P81Kuj/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////Dg/o/xwT5f9EQv/9Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8OD+j/JSHa/zM08f80Mvn/RUL5/1pW/f9YU///UU///0lI//9AQPr/Njfw/y0w5P8UFuf/AAAAAAAAAAAAAAAA/////w4P6P8cHcr/NDbb/Tw94v85TtP9F5sr/zk0+f9CPv/9PDn+/zQx/f0qKPj/Hh7v/RQV4v8QEeb9AAAAAAAAAAAAAAAA//////////8OD+j/Hx/D/yVDqf8Xmyv/F5sr/zk0+f85NPn/MjD1/ysq9f8kJPX/Hh7x/xcY6f8OD+j/AAAAAAAAAAAAAAAA////////////////Dg/o/xebK/838l/9F5sr/w4P6P8OD+j/Dg/o/w4P6P8OD+j/Dg/o/w4P6P8OD+j/AAAAAAAAAAAAAAAA////////////////F5sr/x/tRf88/17/QuJf/23Yfv+s/Lj/qPyz/6T8rv+g+ar/m/Sk/5bwn/99xID/AAAAAAAAAAAAAAAA//////////8Xmyv/Kt1J/znvVf85+Vn/Qf9j/0r/a/9E/2j/Qf9k/zv9Xf8y91P/KexI/x/kPf8DkBT/AAAAAAAAAAAAAAAA/////xebK/8axzf/MtZL/TrhU/9B71z9Rvpk/0f+Z/9F/Wf9Pv9h/zX+WP0p+k7/IvNE/RjpOP8HlBn9AAAAAAAAAAAAAAAA//////////8Xmyv/FMIy/zHWSP844FH/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/AAAAAAAAAAAAAAAA////////////////F5sr/w28LP8w10j9KL08/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////xebK/8UvS7/HKsv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8Xmyv/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8AAgv/AAID/wACA/8AAgP/AAIAAwACAAMAAgADAAIAAwACAAMAAgADAAIAAwACAAMAAgP/AAID/wACA/8AAgv/AAP//wAA%3D%22%5D%2C%20%20%0A%20%20%20%5B%20%22separator%22%20%5D%2C%0A%20%20%20%5B%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%2C%20%22openBookmarksFolder%28%29%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xMS8wNdiEE10AAAAldEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1YIDIwMDSHdqzPAAACiUlEQVR4nKWTy0uUYRTGf+/np6PTODOmMpaGhJRaZmQgRAQtglaBf4BRtGgTFLUqKjBoF1QQlBLdKCgrscuiFEq6gGmQBWWSYLfpMqXMTM71+773PS0kQXBR9MBvdZ7z8HDgKBHhf2T9jUkdUbVKKTXfzH7eqVpdXbDDzWvRmrDngePyMZniXfsxLtLBFuAWhziqlOoQET0n4dlprk5/uysisTncO7Gqt3s/N5eeWCjD8T5ZcWa5nNvFmc6d7AEKRAQRgaHT9Gcyb0XyB+ain8jGC+ul5/15GXTuSN+3bmntapHj2+kFyv6E2K7DSrw0Yw9v8ys6gS9chfbgWvA5K2qXUb2knAfZflaXrWXTqg2MByNt12sG25JTiaRSqsI2wuLU5HdyU19p2TZOga+IfX27CUdqqG8KMeK9IKdchtLP8GpdaivXcN8S1g3cDwERWxvIJmP4K1qwfRmQl5wc6p450B14dLiHCecTzf5mtp7aC0BlqJx1M44iywjk4q/xVzSDxMEkkYNXkIOXKSsOoESwUChgoS+At/8GI5u7JOswDIhlDKR/DBKoXA4mCiYxS124nBLxqKCQoGjqwuV46QSTH0fIOYwCjm0MuOnPFAXrwB2eKWY8yKdoDJbgd35S5eYJmWkaQqWYfCGf3wyQc4gCrm0EvMwXiksXQW4SslnIZ0GEhkAJC3IJIq4mpNM0lgaxiqpJTX1SP38xCni2ESgtsxBjgd0OAYHATJHGmgH8Ja1ECusIWSHqa6rI5MKk4lGejjEKuLbWvJqMmdVDZ5vwPGbRGr5rxeDjahJuCtsUE43FSOaFRJpLIx9IAK4CbKAS8AHzPsw8MkAaiCsRQSll/8PybIiI6N8D8VYf0gJ8eQAAAABJRU5ErkJggg%3D%3D%22%5D%2C%0A%20%20%20%5B%20%22%u042D%u043A%u0441%u043F%u043E%u0440%u0442%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%20%u0432%20HTML%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%22%2C%20%22exportsBookmarksToHTMLFile%28%29%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wBkAP8ATwD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wB6AP0AUgD/AE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAP8AZQD/AG4A/wB3AP8AfwD/AIQA/wCHAP8AiAD/AHkA/wBtAP8AbAD/AFgA/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABQAP0AUgD/AFwA/QBmAP8AbgD9AHQA/wB4AP0AbwD/F5sr/wBzAP0AbgD/AGcA/QBQAP8ATwD/AAAAAAAAAAAAAAAAAAAAAABPAP8AVgD/AF0A/wBiAP8AZwD/AGsA/wBvAP8AbwD/F5sr/xebK/8AXgD/AFAA/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABPAP8ATwD/AE8A/wBPAP8ATwD/AE8A/wBPAP8ATwD/F5sr/zfyX/0Xmyv/AE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3EgP+W8J//m/Sk/6D5qv+k/K7/qPyz/6z8uP9t2H7/QuJf/zz/Xv8f7UX/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQFP8f5D3/KexI/zL3U/87/V3/Qf9k/0T/aP9K/2v/Qf9j/zn5Wf8571X/Kt1J/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAeUGf0Y6Tj/IvNE/Sn6Tv81/lj9Pv9h/0X9Z/1H/mf/Rvpk/0HvXP064VP/MtZL/RrHN/8Xmyv/AAAAAAAAAAAAAAAAAAAAAAmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/zjgUf8x1kj/FMIy/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKL08/zDXSP0NvCz/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHKsv/xS9Lv8Xmyv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8BB/9/AQf/PwEH/x8BB/8PAQcABwEHAAMBBwAHAQcADwEHAA8BBwAHAQcAAwEHAAcBB/8PAQf/HwEH/z8BB/9/AQf//wEE%3D%22%5D%0A%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28m%2Ci%29%3D%3E%20%7B%0A%20%20%20if%20%28%20m%5B0%5D%20%3D%3D%20%22separator%22%20%29%20%7B%20menuPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20var%20mItem%20%3D%20menuPopup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m%5B0%5D%29%3B%0A%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20mItem.setAttribute%28%22image%22%2C%20m%5B2%5D%29%3B%20%0A%20%20%20mItem.addEventListener%28%22command%22%2C%20%28%29%3D%3E%20eval%28m%5B1%5D%29%29%3B%0A%7D%29%3B%0AmenuPopup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0Afunction%20importBookmarksOutHTMLFile%28%29%20%7B%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0412%u044B%u0431%u0435%u0440%u0438%u0442%u0435%20HTML-%u0444%u0430%u0439%u043B%20%u0434%u043B%u044F%20%u0438%u043C%u043F%u043E%u0440%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%2C%20fp.modeOpen%29%3B%0A%20%20%20fp.appendFilters%28fp.filterHTML%29%3B%0A%20%20%20Cu.import%28%22resource%3A//gre/modules/FileUtils.jsm%22%29%3B%0A%20%20%20fp.displayDirectory%20%3D%20FileUtils.File%28getPathToBookmarksFolder%28%29%29%3B%0A%20%20%20fp.open%28re%3D%3E%20%7B%20%0A%20%20%20%20%20%20if%20%28%20re%20%21%3D%20fp.returnOK%20%29%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20Cu.import%28%22resource%3A//gre/modules/BookmarkHTMLUtils.jsm%22%29%3B%0A%20%20%20%20%20%20BookmarkHTMLUtils.importFromFile%28fp.file.path%2C%20%7Breplace%3A%20true%7D%29.then%28null%2C%20Cu.reportError%29%3B%0A%20%20%20%7D%29%0A%7D%3B%0A%0A%0Afunction%20exportsBookmarksToHTMLFile%28%29%20%7B%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%20%20%20file.initWithPath%28getPathToBookmarksFolder%28%29%29%3B%0A%20%20%20var%20path%20%3D%20file.path%20+%20%22%5C%5Cbookmarks-%22%20+%20new%20Date%28%29.toLocaleDateString%28%29%20+%20%22%20%22%20+%20%28new%20Date%28%29.toLocaleTimeString%28%27lv-LV%27%29.replace%28/%3A/g%2C%20%22%u02F8%22%29%29%20+%20%22.html%22%3B%0A%0A%20%20%20Cu.import%28%22resource%3A//gre/modules/BookmarkHTMLUtils.jsm%22%29%3B%0A%20%20%20BookmarkHTMLUtils.exportToFile%28path%29.then%28null%2C%20Cu.reportError%29%3B%0A%0A%20%20%20var%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%20%22%u042D%u043A%u0441%u043F%u043E%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u043B%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0438%20%u043A%u0430%u043A%20HTML%20%u0432%20%22%20+%20path%29%3B%0A%20%20%20setTimeout%28%28%29%3D%3E%20alertsService.closeAlert%28%29%2C%203500%29%3B%0A%7D%3B%0A%0A%0Afunction%20openBookmarksFolder%28%29%20%7B%0A%20%20%20var%20folder%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%20%20%20folder.initWithPath%28getPathToBookmarksFolder%28%29%29%3B%0A%20%20%20folder.launch%28%29%3B%0A%7D%3B%0A%0A%0Afunction%20setPathAndExportsBookmarksToHTMLFile%28%29%20%7B%20%20%20%20%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0430%u043F%u043A%u0443%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%21%22%2C%20fp.modeGetFolder%29%3B%0A%20%20%20fp.open%28re%3D%3E%20%7B%20%0A%20%20%20%20%20%20if%20%28%20re%20%21%3D%20fp.returnOK%20%29%20return%3B%0A%20%20%20%20%20%20cbu.setPrefs%28%22CB.exportsBookmarksToHTMLFile.path%22%2C%20convertFromUnicode%28%22UTF-8%22%2C%20fp.file.path%29%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20exportsBookmarksToHTMLFile%28%29%3B%0A%20%20%20%7D%29%0A%7D%3B%0A%0A%0Afunction%20getPathToBookmarksFolder%28%29%20%7B%0A%20%20%20var%20s%20%3D%20%22CB.exportsBookmarksToHTMLFile.path%22%2C%20pref%20%3D%20Services.prefs%3B%0A%20%20%20try%20%7B%20return%20%28pref.getStringPref%20%3F%20pref.getStringPref%28s%29%20%3A%20pref.getComplexValue%28s%2C%20Ci.nsISupportsString%29.data%29%20%7D%0A%20%20%20catch%28e%29%20%7B%20return%20%22C%3A%22%20%7D%3B%0A%7D%3B%0A%20%20%20%20%20%20%0A%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0A%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%20%0A%20%20%20var%20path%20%3D%20getPathToBookmarksFolder%28%29%3B%0A%20%20%20this.tooltipText%20%3D%20self.label%20+%20%22%5Cn%u041B%3A%20%u041C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%5Cn%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%5Cn%5Cn%u041F%u0430%u043F%u043A%u0430%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%3A%5Cn%22%20+%20path%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:self._handleClick =()=> menuPopup.openPopup(this, "after_start"); var array = [ [ "Экспорт закладок в HTML-файл", "setPathAndExportsBookmarksToHTMLFile()", "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAADg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAADg/o/w4P6P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAADg/o/zUq6P8OD+j/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAADg/o/0RC//0cE+X/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAA/////xQW5/8tMOT/Njfw/0BA+v9JSP//UU///1hT//9aVv3/RUL5/zQy+f8zNPH/JSHa/w4P6P8AAAAAAAAAAAAAAAAAAAAA/////xAR5v0UFeL/Hh7v/Soo+P80Mf39PDn+/0I+//05NPn/F5sr/zlO0/08PeL/NDbb/Rwdyv8OD+j/AAAAAAAAAAAAAAAA/////w4P6P8XGOn/Hh7x/yQk9f8rKvX/MjD1/zk0+f85NPn/F5sr/xebK/8lQ6n/Hx/D/w4P6P8AAAAAAAAAAAAAAAAAAAAA/////w4P6P8OD+j/Dg/o/w4P6P8OD+j/Dg/o/w4P6P8OD+j/F5sr/zfyX/0Xmyv/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAA/////33EgP+W8J//m/Sk/6D5qv+k/K7/qPyz/6z8uP9t2H7/QuJf/zz/Xv8f7UX/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAA/////wOQFP8f5D3/KexI/zL3U/87/V3/Qf9k/0T/aP9K/2v/Qf9j/zn5Wf8571X/Kt1J/xebK/8AAAAAAAAAAAAAAAAAAAAA/////weUGf0Y6Tj/IvNE/Sn6Tv81/lj9Pv9h/0X9Z/1H/mf/Rvpk/0HvXP064VP/MtZL/RrHN/8Xmyv/AAAAAAAAAAAAAAAA/////wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/zjgUf8x1kj/FMIy/xebK/8AAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAAKL08/zDXSP0NvCz/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAAHKsv/xS9Lv8Xmyv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAAF5sr/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8AAg9/AAIPPwACDx8AAg8PAAIABwACAAMAAgAHAAIADwACAA8AAgAHAAIAAwACAAcAAg8PAAIPHwACDz8AAg9/AAP//wAA="], [ "Импорт закладок из HTML-файла", "importBookmarksOutHTMLFile()", "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAADg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8OD+j/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////w4P6P81Kuj/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////Dg/o/xwT5f9EQv/9Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8OD+j/JSHa/zM08f80Mvn/RUL5/1pW/f9YU///UU///0lI//9AQPr/Njfw/y0w5P8UFuf/AAAAAAAAAAAAAAAA/////w4P6P8cHcr/NDbb/Tw94v85TtP9F5sr/zk0+f9CPv/9PDn+/zQx/f0qKPj/Hh7v/RQV4v8QEeb9AAAAAAAAAAAAAAAA//////////8OD+j/Hx/D/yVDqf8Xmyv/F5sr/zk0+f85NPn/MjD1/ysq9f8kJPX/Hh7x/xcY6f8OD+j/AAAAAAAAAAAAAAAA////////////////Dg/o/xebK/838l/9F5sr/w4P6P8OD+j/Dg/o/w4P6P8OD+j/Dg/o/w4P6P8OD+j/AAAAAAAAAAAAAAAA////////////////F5sr/x/tRf88/17/QuJf/23Yfv+s/Lj/qPyz/6T8rv+g+ar/m/Sk/5bwn/99xID/AAAAAAAAAAAAAAAA//////////8Xmyv/Kt1J/znvVf85+Vn/Qf9j/0r/a/9E/2j/Qf9k/zv9Xf8y91P/KexI/x/kPf8DkBT/AAAAAAAAAAAAAAAA/////xebK/8axzf/MtZL/TrhU/9B71z9Rvpk/0f+Z/9F/Wf9Pv9h/zX+WP0p+k7/IvNE/RjpOP8HlBn9AAAAAAAAAAAAAAAA//////////8Xmyv/FMIy/zHWSP844FH/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/AAAAAAAAAAAAAAAA////////////////F5sr/w28LP8w10j9KL08/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////xebK/8UvS7/HKsv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8Xmyv/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////////////////8AAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8AAgv/AAID/wACA/8AAgP/AAIAAwACAAMAAgADAAIAAwACAAMAAgADAAIAAwACAAMAAgP/AAID/wACA/8AAgv/AAP//wAA="], [ "separator" ], [ "Открыть папку для экспорта закладок", "openBookmarksFolder()", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xMS8wNdiEE10AAAAldEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1YIDIwMDSHdqzPAAACiUlEQVR4nKWTy0uUYRTGf+/np6PTODOmMpaGhJRaZmQgRAQtglaBf4BRtGgTFLUqKjBoF1QQlBLdKCgrscuiFEq6gGmQBWWSYLfpMqXMTM71+773PS0kQXBR9MBvdZ7z8HDgKBHhf2T9jUkdUbVKKTXfzH7eqVpdXbDDzWvRmrDngePyMZniXfsxLtLBFuAWhziqlOoQET0n4dlprk5/uysisTncO7Gqt3s/N5eeWCjD8T5ZcWa5nNvFmc6d7AEKRAQRgaHT9Gcyb0XyB+ain8jGC+ul5/15GXTuSN+3bmntapHj2+kFyv6E2K7DSrw0Yw9v8ys6gS9chfbgWvA5K2qXUb2knAfZflaXrWXTqg2MByNt12sG25JTiaRSqsI2wuLU5HdyU19p2TZOga+IfX27CUdqqG8KMeK9IKdchtLP8GpdaivXcN8S1g3cDwERWxvIJmP4K1qwfRmQl5wc6p450B14dLiHCecTzf5mtp7aC0BlqJx1M44iywjk4q/xVzSDxMEkkYNXkIOXKSsOoESwUChgoS+At/8GI5u7JOswDIhlDKR/DBKoXA4mCiYxS124nBLxqKCQoGjqwuV46QSTH0fIOYwCjm0MuOnPFAXrwB2eKWY8yKdoDJbgd35S5eYJmWkaQqWYfCGf3wyQc4gCrm0EvMwXiksXQW4SslnIZ0GEhkAJC3IJIq4mpNM0lgaxiqpJTX1SP38xCni2ESgtsxBjgd0OAYHATJHGmgH8Ja1ECusIWSHqa6rI5MKk4lGejjEKuLbWvJqMmdVDZ5vwPGbRGr5rxeDjahJuCtsUE43FSOaFRJpLIx9IAK4CbKAS8AHzPsw8MkAaiCsRQSll/8PybIiI6N8D8VYf0gJ8eQAAAABJRU5ErkJggg=="], [ "Экспорт закладок в HTML без запроса", "exportsBookmarksToHTMLFile()", "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wBkAP8ATwD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wB6AP0AUgD/AE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAP8AZQD/AG4A/wB3AP8AfwD/AIQA/wCHAP8AiAD/AHkA/wBtAP8AbAD/AFgA/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABQAP0AUgD/AFwA/QBmAP8AbgD9AHQA/wB4AP0AbwD/F5sr/wBzAP0AbgD/AGcA/QBQAP8ATwD/AAAAAAAAAAAAAAAAAAAAAABPAP8AVgD/AF0A/wBiAP8AZwD/AGsA/wBvAP8AbwD/F5sr/xebK/8AXgD/AFAA/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABPAP8ATwD/AE8A/wBPAP8ATwD/AE8A/wBPAP8ATwD/F5sr/zfyX/0Xmyv/AE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3EgP+W8J//m/Sk/6D5qv+k/K7/qPyz/6z8uP9t2H7/QuJf/zz/Xv8f7UX/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQFP8f5D3/KexI/zL3U/87/V3/Qf9k/0T/aP9K/2v/Qf9j/zn5Wf8571X/Kt1J/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAeUGf0Y6Tj/IvNE/Sn6Tv81/lj9Pv9h/0X9Z/1H/mf/Rvpk/0HvXP064VP/MtZL/RrHN/8Xmyv/AAAAAAAAAAAAAAAAAAAAAAmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/zjgUf8x1kj/FMIy/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKL08/zDXSP0NvCz/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHKsv/xS9Lv8Xmyv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8BB/9/AQf/PwEH/x8BB/8PAQcABwEHAAMBBwAHAQcADwEHAA8BBwAHAQcAAwEHAAcBB/8PAQf/HwEH/z8BB/9/AQf//wEE="] ]; var menuPopup = self.appendChild(document.createElement("menupopup")); array.forEach((m,i)=> { if ( m[0] == "separator" ) { menuPopup.appendChild(document.createElement("menuseparator")); return }; var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m[0]); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", m[2]); mItem.addEventListener("command", ()=> eval(m[1])); }); menuPopup.setAttribute("onclick", "event.stopPropagation()"); function importBookmarksOutHTMLFile() { var fp = window.makeFilePicker(); fp.init(window, "Выберите HTML-файл для импорта закладок", fp.modeOpen); fp.appendFilters(fp.filterHTML); Cu.import("resource://gre/modules/FileUtils.jsm"); fp.displayDirectory = FileUtils.File(getPathToBookmarksFolder()); fp.open(re=> { if ( re != fp.returnOK ) return; Cu.import("resource://gre/modules/BookmarkHTMLUtils.jsm"); BookmarkHTMLUtils.importFromFile(fp.file.path, {replace: true}).then(null, Cu.reportError); }) }; function exportsBookmarksToHTMLFile() { var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath(getPathToBookmarksFolder()); var path = file.path + "\\bookmarks-" + new Date().toLocaleDateString() + " " + (new Date().toLocaleTimeString('lv-LV').replace(/:/g, "˸")) + ".html"; Cu.import("resource://gre/modules/BookmarkHTMLUtils.jsm"); BookmarkHTMLUtils.exportToFile(path).then(null, Cu.reportError); var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) alertsService.showAlertNotification(self.image, self.label, "Экспортировал закладки как HTML в " + path); setTimeout(()=> alertsService.closeAlert(), 3500); }; function openBookmarksFolder() { var folder = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); folder.initWithPath(getPathToBookmarksFolder()); folder.launch(); }; function setPathAndExportsBookmarksToHTMLFile() { var fp = window.makeFilePicker(); fp.init(window, "Укажите папку для экспорта закладок!", fp.modeGetFolder); fp.open(re=> { if ( re != fp.returnOK ) return; cbu.setPrefs("CB.exportsBookmarksToHTMLFile.path", convertFromUnicode("UTF-8", fp.file.path)); exportsBookmarksToHTMLFile(); }) }; function getPathToBookmarksFolder() { var s = "CB.exportsBookmarksToHTMLFile.path", pref = Services.prefs; try { return (pref.getStringPref ? pref.getStringPref(s) : pref.getComplexValue(s, Ci.nsISupportsString).data) } catch(e) { return "C:" }; }; function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; this.onmouseover =()=> { var path = getPathToBookmarksFolder(); this.tooltipText = self.label + "\nЛ: Меню кнопки\nП: CB меню\n\nПапка для экспорта:\n" + path; }; |
bunda1 > 26-08-2017 21:58:29 |
Папка загрузки( Firefox24+ ) от 28.11.2017. Скриншот подсказки у кнопки ЛКМ => Открыть папку загрузки, СКМ => CB меню, ПКМ => Установить папку загрузки. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u041F%u0430%u043F%u043A%u0430%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%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%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20.............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20openDownloadFolder%28%29%3B%20//%20%u041B%u041A%u041C%20%0A%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28this%29%3B%20//%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20//%20%u041F%u041A%u041C%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20setPathToDownloadFolder%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%0A//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20Firefox%20.............%0Afunction%20openDownloadFolder%28%29%20%7B%0A%20%20%20var%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20file.initWithPath%28%20getPathToDownloadFolder%28%29%20%29%3B%20%0A%20%20%20file.launch%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u0412%u044B%u0431%u0440%u0430%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20%u0438%20%u0437%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u0432%20%27about%3Aconfig%27%20.............%0Afunction%20setPathToDownloadFolder%28%29%20%7B%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0412%u044B%u0431%u0435%u0440%u0438%u0442%u0435%20%u043F%u0430%u043F%u043A%u0443%20%u0434%u043B%u044F%20%u0437%u0430%u0433%u0440%u0443%u0437%u043E%u043A%21%22%2C%202%29%3B%0A%20%20%20fp.open%28re%3D%3E%20%7B%20%0A%20%20%20%20%20%20if%20%28%20re%20%21%3D%20fp.returnOK%20%29%20return%3B%0A%20%20%20%20%20%20cbu.setPrefs%28%22browser.download.folderList%22%2C%202%29%3B%0A%20%20%20%20%20%20cbu.setPrefs%28%22browser.download.useDownloadDir%22%2C%20true%29%3B%0A%20%20%20%20%20%20cbu.setPrefs%28%22browser.download.dir%22%2C%20convertFromUnicode%28%22UTF-8%22%2C%20fp.file.path%29%29%3B%0A%20%20%20%7D%29%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0430%u043F%u043A%u0435%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20.............%0Afunction%20getPathToDownloadFolder%28%29%20%7B%20%0A%20%20%20try%20%7B%20return%20Services.downloads.userDownloadsDirectory.path%20%7D%20%0A%20%20%20catch%28e%29%20%7B%20return%20Services.downloads.defaultDownloadsDirectory.path%20%7D%3B%20%0A%7D%3B%0A%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20..................%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..................%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%20%0A%20%20%20this.tooltipText%20%3D%20self.label%20%20+%20%22%3A%20%22%20+%20getPathToDownloadFolder%28%29%20+%20%22%5Cn%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%20%5Cn%u0421%3A%20CB%20%u043C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0437%u0430%u0433%u0440%u0443%u0437%u043A%u0438%22%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:// Настройка функций кликов мыши для кнопки ............. this.onclick =e=> { if ( e.button == 0 ) openDownloadFolder(); // ЛКМ if ( e.button == 1 ) gShowPopup(this); // СКМ if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { // ПКМ e.preventDefault(); setPathToDownloadFolder(); } }; this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() }; // Открыть папку загрузки Firefox ............. function openDownloadFolder() { var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.initWithPath( getPathToDownloadFolder() ); file.launch(); }; // Выбрать папку загрузки и записать путь в 'about:config' ............. function setPathToDownloadFolder() { var fp = window.makeFilePicker(); fp.init(window, "Выберите папку для загрузок!", 2); fp.open(re=> { if ( re != fp.returnOK ) return; cbu.setPrefs("browser.download.folderList", 2); cbu.setPrefs("browser.download.useDownloadDir", true); cbu.setPrefs("browser.download.dir", convertFromUnicode("UTF-8", fp.file.path)); }) }; // Получить путь к папке загрузки ............. function getPathToDownloadFolder() { try { return Services.downloads.userDownloadsDirectory.path } catch(e) { return Services.downloads.defaultDownloadsDirectory.path }; }; // Конвертировать текст в юникод .................. function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; // Подсказка для кнопки .................. this.onmouseover =()=> { this.tooltipText = self.label + ": " + getPathToDownloadFolder() + "\nЛ: Открыть папку загрузки \nС: CB меню \nП: Установить папку загрузки"; }; |
bunda1 > 16-01-2018 20:43:57 |
Экспорт всех CB кнопок в HTML файл( Firefox, SeaMonkey, PaleMoon ) от 26.05.2019. Скриншот меню ЛКМ => Открыть меню кнопки. Код кнопки и инициализации: Код кнопки: Выделить код Код: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%0A%20%20%3Cname%3E%u042D%u043A%u0441%u043F%u043E%u0440%u0442%20%u0432%u0441%u0435%u0445%20CB%20%u043A%u043D%u043E%u043F%u043E%u043A%20%u0432%20HTML%20%u0444%u0430%u0439%u043B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aapplication/text%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAJEylRHi9ZySAuVModLVTKHS1Uyh0sVModLFTKHCxUyhwsVMocLFTKHCxUyhwsVMocLFTKIS5UyR4vWc8JEymmHi9Zh4Oz6P92rNz7g7Ph/4Oz4f+Ds+H/g7Th/4S04f+EtOH/hbXh/4W14f+GteH/hLTh/3Ws3P2Cs+j/Hi9ZyyEvVIV0q9v/Wp7N+eny9/3v9/r96/P6/ejy+f3l8fn94u/5/eDu+P3d7Pj92uv4/d7s9v1cn877c6rb/yEvVMkfLlSHfLDf/2el0vvx9vv/4u34/9ro9v/W5vb/0OP1/8vg9f/G3fT/wdzz/7vZ9P/a6vn/bKfS/Xuv3/8fLlTKHi1Uh4Gz4v9sqdT78Pb7/+nx+v/h7fj/3uv4/9jo9//T5fb/z+P2/8rh9f/F3vb/2+v5/3Cr1P2Bs+H/Hi1Uyh0tVIeJt+T/c6zW+/H2+//q8vn/4u33/97r9//a6ff/1Ob2/9Dj9v/L4fX/xt71/9zr+P92rtf9h7bj/x0tVMoaK1OHnsPp/4S22/vu9fr/6vH4/+Ht9//e6/b/2uj2/9bm9v/Q5PX/zOH1/8ff9f/c6/j/fLHY/Y665f8dLFPKGitTh6/M7v+Tvt/77/X6//3+/v/0+Pz/8fb9/+zz/P/n8fz/4e76/9zq+f/W6Pr/3uz5/4C12f2Zwen/HS1UyhorU4e50/L/kr3e+93q9f/z9/v/7PT6/+vz+v/o8vn/5/H5/+Xv+f/i7vj/4u76/9rp9f99s9r9ocbs/x4tVMobLFOHv9f0/6zN5vuUv+H/m8Tl/5rD5P+aw+T/msPl/5nD5P+VweP/kb/j/4++4/+Gt97/jLzf/ajK7v8eLVTKHCxUh8HY9P/Q4vL7y93v/8XX6P/E1uf/wtTm/8DT5f++0uT/vNHj/7nP4/+2zOH/v9br/8Pb7/210fH/HCxTyhwsU4bE2fP/1+r7+6Svuf+MjIz/mJqc/5qcnf+eoKH/o6Sm/6WnqP+nqav/pKOj/6Ovuf/O5vn9utPx/xssU8kdLVOGy932/9jq+vqlrbb+oqCe/7S0tf+6ubn/wsLB/9HQ0P+5uLj/hYaF/87Myf+nsbv+z+T3/MTa9f8eLlXMGCpWgr/V8//0///7sLi9/5ybmv+wsLH/tLS0/7y7vP/Kysr/rq6u/3R1df/CwL//s7zD/+z///2wye7/FidStAQNJhFBXJu7fZTB9XuFm/WpqKT/s7O0/7q6uv/CwcL/0dHR/7q6uv+FhYb/1NLP/3+KoPV5k8H0OFCIwQAEEyUAAAEAAwQGCwAAAAA9PT2Gmpqa/5OTk/qZmZn/nZ2d/6Kiov+kpKT/o6Oj+rOzs/8/Pz+GAAAAAAMDBAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bself._handleClick%20%3D%28%29%3D%3E%20menuPopup.openPopup%28this%2C%20%22after_start%22%29%3B%0A%0A%0Avar%20array%20%3D%20%5B%0A%20%20%20%5B%20%22%u042D%u043A%u0441%u043F%u043E%u0440%u0442%20%u0432%u0441%u0435%u0445%20CB%20%u043A%u043D%u043E%u043F%u043E%u043A%20%u0432%20HTML%20%u0444%u0430%u0439%u043B%22%2C%20%22setPathToHtmlFile%28%29%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/w4P6P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/zUq6P8OD+j/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/0RC//0cE+X/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQW5/8tMOT/Njfw/0BA+v9JSP//UU///1hT//9aVv3/RUL5/zQy+f8zNPH/JSHa/w4P6P8AAAAAAAAAAAAAAAAAAAAAAAAAABAR5v0UFeL/Hh7v/Soo+P80Mf39PDn+/0I+//05NPn/F5sr/zlO0/08PeL/NDbb/Rwdyv8OD+j/AAAAAAAAAAAAAAAAAAAAAA4P6P8XGOn/Hh7x/yQk9f8rKvX/MjD1/zk0+f85NPn/F5sr/xebK/8lQ6n/Hx/D/w4P6P8AAAAAAAAAAAAAAAAAAAAAAAAAAA4P6P8OD+j/Dg/o/w4P6P8OD+j/Dg/o/w4P6P8OD+j/F5sr/zfyX/0Xmyv/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3EgP+W8J//m/Sk/6D5qv+k/K7/qPyz/6z8uP9t2H7/QuJf/zz/Xv8f7UX/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQFP8f5D3/KexI/zL3U/87/V3/Qf9k/0T/aP9K/2v/Qf9j/zn5Wf8571X/Kt1J/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAeUGf0Y6Tj/IvNE/Sn6Tv81/lj9Pv9h/0X9Z/1H/mf/Rvpk/0HvXP064VP/MtZL/RrHN/8Xmyv/AAAAAAAAAAAAAAAAAAAAAAmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/zjgUf8x1kj/FMIy/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKL08/zDXSP0NvCz/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHKsv/xS9Lv8Xmyv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8BB/9/AQf/PwEH/x8BB/8PAQcABwEHAAMBBwAHAQcADwEHAA8BBwAHAQcAAwEHAAcBB/8PAQf/HwEH/z8BB/9/AQf//wEE%3D%22%5D%2C%0A%20%20%20%5B%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%20HTML%20%u0444%u0430%u0439%u043B%22%2C%20%22openHtmlFileInTab%28%29%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXmyv/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABebK/8UvS7/HKsv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/w28LP8w10j9KL08/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXmyv/FMIy/zHWSP844FH/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/AAAAAAAAAAAAAAAAAAAAABebK/8axzf/MtZL/TrhU/9B71z9Rvpk/0f+Z/9F/Wf9Pv9h/zX+WP0p+k7/IvNE/RjpOP8HlBn9AAAAAAAAAAAAAAAAAAAAAAAAAAAXmyv/Kt1J/znvVf85+Vn/Qf9j/0r/a/9E/2j/Qf9k/zv9Xf8y91P/KexI/x/kPf8DkBT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/x/tRf88/17/QuJf/23Yfv+s/Lj/qPyz/6T8rv+g+ar/m/Sk/5bwn/99xID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/xebK/838l/9F5sr/w4P6P8OD+j/Dg/o/w4P6P8OD+j/Dg/o/w4P6P8OD+j/AAAAAAAAAAAAAAAAAAAAAAAAAAAOD+j/Hx/D/yVDqf8Xmyv/F5sr/zk0+f85NPn/MjD1/ysq9f8kJPX/Hh7x/xcY6f8OD+j/AAAAAAAAAAAAAAAAAAAAAA4P6P8cHcr/NDbb/Tw94v85TtP9F5sr/zk0+f9CPv/9PDn+/zQx/f0qKPj/Hh7v/RQV4v8QEeb9AAAAAAAAAAAAAAAAAAAAAAAAAAAOD+j/JSHa/zM08f80Mvn/RUL5/1pW/f9YU///UU///0lI//9AQPr/Njfw/y0w5P8UFuf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/xwT5f9EQv/9Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4P6P81Kuj/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOD+j/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8BB/v/AQfz/wEH4/8BB8P/AQeAAwEHAAMBB4ADAQfAAwEHwAMBB4ADAQcAAwEHgAMBB8P/AQfj/wEH8/8BB/v/AQf//wEE%3D%22%5D%2C%20%0A%20%20%20%5B%20%22separator%22%20%5D%2C%0A%20%20%20%5B%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20CB%20%u043A%u043D%u043E%u043F%u043E%u043A%22%2C%20%22openHtmlFileFolder%28%29%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xMS8wNdiEE10AAAAldEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1YIDIwMDSHdqzPAAACiUlEQVR4nKWTy0uUYRTGf+/np6PTODOmMpaGhJRaZmQgRAQtglaBf4BRtGgTFLUqKjBoF1QQlBLdKCgrscuiFEq6gGmQBWWSYLfpMqXMTM71+773PS0kQXBR9MBvdZ7z8HDgKBHhf2T9jUkdUbVKKTXfzH7eqVpdXbDDzWvRmrDngePyMZniXfsxLtLBFuAWhziqlOoQET0n4dlprk5/uysisTncO7Gqt3s/N5eeWCjD8T5ZcWa5nNvFmc6d7AEKRAQRgaHT9Gcyb0XyB+ain8jGC+ul5/15GXTuSN+3bmntapHj2+kFyv6E2K7DSrw0Yw9v8ys6gS9chfbgWvA5K2qXUb2knAfZflaXrWXTqg2MByNt12sG25JTiaRSqsI2wuLU5HdyU19p2TZOga+IfX27CUdqqG8KMeK9IKdchtLP8GpdaivXcN8S1g3cDwERWxvIJmP4K1qwfRmQl5wc6p450B14dLiHCecTzf5mtp7aC0BlqJx1M44iywjk4q/xVzSDxMEkkYNXkIOXKSsOoESwUChgoS+At/8GI5u7JOswDIhlDKR/DBKoXA4mCiYxS124nBLxqKCQoGjqwuV46QSTH0fIOYwCjm0MuOnPFAXrwB2eKWY8yKdoDJbgd35S5eYJmWkaQqWYfCGf3wyQc4gCrm0EvMwXiksXQW4SslnIZ0GEhkAJC3IJIq4mpNM0lgaxiqpJTX1SP38xCni2ESgtsxBjgd0OAYHATJHGmgH8Ja1ECusIWSHqa6rI5MKk4lGejjEKuLbWvJqMmdVDZ5vwPGbRGr5rxeDjahJuCtsUE43FSOaFRJpLIx9IAK4CbKAS8AHzPsw8MkAaiCsRQSll/8PybIiI6N8D8VYf0gJ8eQAAAABJRU5ErkJggg%3D%3D%22%5D%2C%0A%20%20%20%5B%20%22%u042D%u043A%u0441%u043F%u043E%u0440%u0442%20%u0432%u0441%u0435%u0445%20CB%20%u043A%u043D%u043E%u043F%u043E%u043A%20%u0432%20HTML%20%u0444%u0430%u0439%u043B%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%22%2C%20%22exportsButtonsToHtmlFile%28%29%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wBkAP8ATwD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wB6AP0AUgD/AE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAP8AZQD/AG4A/wB3AP8AfwD/AIQA/wCHAP8AiAD/AHkA/wBtAP8AbAD/AFgA/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABQAP0AUgD/AFwA/QBmAP8AbgD9AHQA/wB4AP0AbwD/F5sr/wBzAP0AbgD/AGcA/QBQAP8ATwD/AAAAAAAAAAAAAAAAAAAAAABPAP8AVgD/AF0A/wBiAP8AZwD/AGsA/wBvAP8AbwD/F5sr/xebK/8AXgD/AFAA/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABPAP8ATwD/AE8A/wBPAP8ATwD/AE8A/wBPAP8ATwD/F5sr/zfyX/0Xmyv/AE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3EgP+W8J//m/Sk/6D5qv+k/K7/qPyz/6z8uP9t2H7/QuJf/zz/Xv8f7UX/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQFP8f5D3/KexI/zL3U/87/V3/Qf9k/0T/aP9K/2v/Qf9j/zn5Wf8571X/Kt1J/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAeUGf0Y6Tj/IvNE/Sn6Tv81/lj9Pv9h/0X9Z/1H/mf/Rvpk/0HvXP064VP/MtZL/RrHN/8Xmyv/AAAAAAAAAAAAAAAAAAAAAAmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/zjgUf8x1kj/FMIy/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKL08/zDXSP0NvCz/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHKsv/xS9Lv8Xmyv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8BB/9/AQf/PwEH/x8BB/8PAQcABwEHAAMBBwAHAQcADwEHAA8BBwAHAQcAAwEHAAcBB/8PAQf/HwEH/z8BB/9/AQf//wEE%3D%22%5D%0A%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28m%2Ci%29%3D%3E%20%7B%0A%20%20%20if%20%28%20m%5B0%5D%20%3D%3D%20%22separator%22%20%29%20%7B%20menuPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20var%20mItem%20%3D%20menuPopup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m%5B0%5D%29%3B%0A%20%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20mItem.setAttribute%28%22image%22%2C%20m%5B2%5D%29%3B%20%0A%20%20%20mItem.addEventListener%28%22command%22%2C%20%28%29%3D%3E%20eval%28m%5B1%5D%29%29%3B%0A%7D%29%3B%0AmenuPopup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0Afunction%20openHtmlFileInTab%28%29%20%7B%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0412%u044B%u0431%u0435%u0440%u0438%u0442%u0435%20HTML-%u0444%u0430%u0439%u043B%20%u0434%u043B%u044F%20%u0438%u043C%u043F%u043E%u0440%u0442%u0430%20%u0437%u0430%u043A%u043B%u0430%u0434%u043E%u043A%22%2C%20fp.modeOpen%29%3B%0A%20%20%20fp.appendFilters%28fp.filterHTML%29%3B%0A%20%20%20Cu.import%28%22resource%3A//gre/modules/FileUtils.jsm%22%29%3B%0A%20%20%20fp.displayDirectory%20%3D%20FileUtils.File%28getPathToHtmlFileFolder%28%29%29%3B%0A%20%20%20fp.open%28re%3D%3E%20%7B%20%0A%20%20%20%20%20%20if%20%28%20re%20%3D%3D%20fp.returnOK%20%29%0A%20%20%20%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28fp.file.path%2C%20%7B%20triggeringPrincipal%3A%20Services.scriptSecurityManager.getSystemPrincipal%28%29%2C%7D%29%0A%20%20%20%7D%29%0A%7D%3B%0A%0Afunction%20exportsButtonsToHtmlFile%28%29%20%7B%0A%20%20%20var%20visibleCBbuttons%20%3D%20%5B...document.querySelectorAll%28%27%5Bcb-mode%5D%27%29%5D%3B%0A%20%20%20var%20paletteCBbuttons%20%3D%20%5B...custombuttons.palette.querySelectorAll%28%27%5Bcb-mode%5D%27%29%5D%3B%0A%20%20%20var%20allCBbuttons%20%3D%20visibleCBbuttons.concat%28paletteCBbuttons%29%3B%0A%20%20%20%0A%20%20%20var%20array%20%3D%20%5B%5D%3B%0A%20%20%20allCBbuttons.forEach%28but%3D%3E%20%7B%0A%20%20%20%20%20%20var%20uri%20%3D%20but.URI%20%3F%20but.URI%20%3A%20getPaleteButtonsURI%28but%29%3B%0A%20%20%20%20%20%20var%20name%20%3D%20but.getAttribute%28%22label%22%29%20%7C%7C%20%22%u0411%u0435%u0437%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%22%3B%0A%20%20%20%20%20%20var%20image%20%3D%20but.getAttribute%28%22image%22%29%20%7C%7C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAACNFBMVEXDRgDweQDnbwC0NgDCRQC7PQDtpTu+QQD78q3PUwDCRAD//8vbYQDLTgDocAD0iQX1jQbGSgD7iAD4gwDVaw7vdwDyegD+igDweQDlawDyhAXveADmZwDzmBbtcwDwkhHveADmhBTkgxbweADkfRH+igD7hADXZQX0gADyjA/tfgvveQDiawDQVADRXgfnbwD1jAb9iQD9z0PVZAbxpinykRHtdgD5mRbERQDDRgDOYArCRAD9iQD3ewDxegD3dwDFRgDAQAD+hgD4fQDucgDtgQftfwTISQDCRQDvdgD5lxb1kRb2qh7wnynkagD766LDRQDDRwDDRQDspjbtpzbuqDbvqzv//8DUZAbCRQD//83pjhvveQbvggW+QQDfcxLlmUb//8veYADMTwDHSADVVwC8PgDwixb78q3oZgDUWADRVADCRQD9iQDERwDBQQDYVQC+PgC0NgDbYQDWWgDUWADSVQDFSAC+QAC7PAC0NgD+wRL+/kD+/zb+7i3+8Cv+/DX+wBL/+DD/rwz+qgz+rwz/tAz+sQzfbAT+3iP/+jD//Dz1jwP+nwf5iwf7pBz2tRr4lwb/ogfsdQT+2R7/9ET+2iT8yyLmgBL5iQL2egLokhP7zzT60zv1zUr0gAL1ewP50yn9+UL++EXooyngaAH41EPzowzyySj+xxzlhhHvvyruwjXxvTnUag3+zxrwigP+swz86U/ZXwD75lHqegD6xzb//kn+uhPTXAG3OAD/+UC2vFeJAAAAe3RSTlMAAAAAAAAAAAAAAAAAAAAAAAAAAACfnwAIaelpAAA2+wD7UQAAa3oArKzRzMysnwgAvPQA/gAAw3prw0oALr16vS4AACnF6bspAAAA/mIAADQAAAAAAI8AAEwA0vv7kd2yAuuvr+vKABL23U+8Sk/d9vUDIIAQAAAQgCAfvupHAAABB0lEQVR4Xi3IU3fDABgA0C+u26FdZ9u2bdu2vZSzbds2/tyac3IfLxjpGyA6MimqY6gHTNgiiNwkwRM1E7EhTrYyTfMzzsh0ZEPiH+D6+u5mV1jEhpe5haVCYW1T4suEvUOkk7PLpVJ5WFnl7hEUDN5LPvsHJ6cazdn13f3DYxu0B35+/Y2qVSr17NzGeUgohIVHLK/PMDa39qKieRATGxd/9cS4uU1MwnmQktqY/qGlaVr7/ZOVDTmQm5df8PwyNj4xOTVdjOM4kCRZOr+wWFa+srpWQVEU8PnV2zu7NbV19UfHDQRBAIfTdNHc0soVdnR2dfdgGAgEvW99/QNc4eDQ8O8Ihv0D77NPgbVLZ6kAAAAASUVORK5CYII%3D%22%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20array.push%28%22%3Cimg%20src%3D%22%20+%20image%20+%20%22%3E%26nbsp%3Ca%20href%3D%22%20+%20uri%20+%20%22%3E%22%20+%20name%20+%22%3C/a%3E%3Cbr%3E%5Cn%22%29%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%0A%20%20%20var%20before%20%3D%20%22%3Chtml%3E%5Cn%3Chead%3E%5Cn%3Cmeta%20http-equiv%3D%27Content-Type%27%20content%3D%27text/html%3B%20charset%3Dutf-8%27%3E%5Cn%3C/head%3E%5Cn%3Cbody%3E%5Cn%22%3B%0A%20%20%20var%20after%20%3D%20%22%5Cn%3C/body%3E%5Cn%3C/html%3E%22%3B%0A%20%20%20var%20text%20%3D%20before%20+%20array.join%28%22%22%29%20+%20after%3B%0A%20%20%20var%20text%20%3D%20convertFromUnicode%28%22UTF-8%22%2C%20text%29%3B%20%0A%20%20%20%0A%20%20%20var%20date%20%3D%20new%20Date%28%29%3B%0A%20%20%20var%20time%20%3D%20date.toLocaleString%28%27ru%27%2C%20%7Byear%3A%20%27numeric%27%2C%20month%3A%20%27numeric%27%2C%20day%3A%20%27numeric%27%7D%29%0A%20%20%20var%20time%20%3D%20time%20+%20%27.%20%27%20+%20date.toLocaleTimeString%28%29.replace%28/%3A/g%2C%20%22%u02F8%22%29%3B%0A%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%20%20%20file.initWithPath%28getPathToHtmlFileFolder%28%29%29%3B%0A%20%20%20file.append%28%22CB%20buttons%20%22%20+%20time%20+%20%22.html%22%29%3B%0A%20%20%20custombuttonsUtils.writeFile%28file.path%2C%20text%29%3B%0A%0A%20%20%20var%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%20%22%u042D%u043A%u0441%u043F%u043E%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u043B%20%u0432%u0441%u0435%20CB%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043A%u0430%u043A%20HTML%20%u0432%20%22%20+%20file.path%29%3B%0A%20%20%20setTimeout%28%28%29%3D%3E%20alertsService.closeAlert%28%29%2C%204000%29%3B%0A%7D%3B%0A%0A%0Afunction%20getPaleteButtonsURI%28but%29%20%7B%0A%20%20%20var%20doc%20%3D%20document.implementation.createDocument%28%22%22%2C%20%22%22%2C%20null%29%3B%0A%20%20%20doc.async%20%3D%20false%3B%0A%20%20%20doc.load%28%22chrome%3A//custombuttons/content/nbftemplate.xml%22%29%3B%0A%0A%20%20%20%5B%22help%2CHelp%22%2C%20%22name%2Clabel%22%2C%20%22image%2Cimage%22%2C%20%22mode%2Ccb-mode%22%2C%20%22initcode%2Ccb-init%22%2C%20%22accelkey%2Ccb-accelkey%22%2C%20%22code%2Ccb-oncommand%22%5D%0A%20%20%20.forEach%28str%3D%3E%20%7B%0A%20%20%20%20%20%20var%20arr%20%3D%20str.split%28%27%2C%27%29%3B%0A%20%20%20%20%20%20var%20value%20%3D%20but.getAttribute%28arr%5B1%5D%29%2C%20name%20%3D%20arr%5B0%5D%3B%0A%20%20%20%20%20%20custombutton.buttonSetText%28doc%2C%20name%2C%20value%2C%20true%29%3B%0A%20%20%20%7D%29%3B%0A%0A%20%20%20var%20ser%20%3D%20new%20XMLSerializer%28%29%3B%0A%20%20%20return%20%22custombutton%3A//%22%20+%20escape%28ser.serializeToString%28doc%29%29%3B%0A%7D%3B%0A%0A%0Afunction%20openHtmlFileFolder%28%29%20%7B%0A%20%20%20var%20folder%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%20%20%20folder.initWithPath%28%20getPathToHtmlFileFolder%28%29%20%29%3B%0A%20%20%20folder.launch%28%29%3B%0A%7D%3B%0A%0A%0Afunction%20setPathToHtmlFile%28%29%20%7B%20%20%20%20%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0430%u043F%u043A%u0443%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%20CB%20%u043A%u043D%u043E%u043F%u043E%u043A%21%22%2C%20fp.modeGetFolder%29%3B%0A%20%20%20fp.open%28re%3D%3E%20%7B%20%0A%20%20%20%20%20%20if%20%28%20re%20%21%3D%20fp.returnOK%20%29%20return%3B%0A%20%20%20%20%20%20cbu.setPrefs%28%22CB.exportsButtonsToHtmlFile.path%22%2C%20convertFromUnicode%28%22UTF-8%22%2C%20fp.file.path%29%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20exportsButtonsToHtmlFile%28%29%3B%0A%20%20%20%7D%29%0A%7D%3B%0A%0A%0Afunction%20getPathToHtmlFileFolder%28%29%20%7B%0A%20%20%20var%20s%20%3D%20%22CB.exportsButtonsToHtmlFile.path%22%2C%20pref%20%3D%20Services.prefs%3B%0A%20%20%20var%20str%20%3D%20pref.getStringPref%20%3F%20pref.getStringPref%28s%29%20%3A%20pref.getComplexValue%28s%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20try%20%7B%20return%20str%20%7D%20%0A%20%20%20catch%28e%29%20%7B%20return%20%22C%3A%22%20%7D%3B%0A%7D%3B%0A%0A%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0A%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%20%0A%20%20%20this.tooltipText%20%3D%20self.label%20+%20%22%5Cn%u041B%3A%20%u041C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%5Cn%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%5Cn%5Cn%u041F%u0430%u043F%u043A%u0430%20%u0434%u043B%u044F%20%u044D%u043A%u0441%u043F%u043E%u0440%u0442%u0430%3A%5Cn%22%20+%20getPathToHtmlFileFolder%28%29%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E Инициализация: Выделить код Код:self._handleClick =()=> menuPopup.openPopup(this, "after_start"); var array = [ [ "Экспорт всех CB кнопок в HTML файл", "setPathToHtmlFile()", "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/w4P6P8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/zUq6P8OD+j/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/0RC//0cE+X/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQW5/8tMOT/Njfw/0BA+v9JSP//UU///1hT//9aVv3/RUL5/zQy+f8zNPH/JSHa/w4P6P8AAAAAAAAAAAAAAAAAAAAAAAAAABAR5v0UFeL/Hh7v/Soo+P80Mf39PDn+/0I+//05NPn/F5sr/zlO0/08PeL/NDbb/Rwdyv8OD+j/AAAAAAAAAAAAAAAAAAAAAA4P6P8XGOn/Hh7x/yQk9f8rKvX/MjD1/zk0+f85NPn/F5sr/xebK/8lQ6n/Hx/D/w4P6P8AAAAAAAAAAAAAAAAAAAAAAAAAAA4P6P8OD+j/Dg/o/w4P6P8OD+j/Dg/o/w4P6P8OD+j/F5sr/zfyX/0Xmyv/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3EgP+W8J//m/Sk/6D5qv+k/K7/qPyz/6z8uP9t2H7/QuJf/zz/Xv8f7UX/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQFP8f5D3/KexI/zL3U/87/V3/Qf9k/0T/aP9K/2v/Qf9j/zn5Wf8571X/Kt1J/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAeUGf0Y6Tj/IvNE/Sn6Tv81/lj9Pv9h/0X9Z/1H/mf/Rvpk/0HvXP064VP/MtZL/RrHN/8Xmyv/AAAAAAAAAAAAAAAAAAAAAAmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/zjgUf8x1kj/FMIy/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKL08/zDXSP0NvCz/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHKsv/xS9Lv8Xmyv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8BB/9/AQf/PwEH/x8BB/8PAQcABwEHAAMBBwAHAQcADwEHAA8BBwAHAQcAAwEHAAcBB/8PAQf/HwEH/z8BB/9/AQf//wEE="], [ "Открыть в вкладке HTML файл", "openHtmlFileInTab()", "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXmyv/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABebK/8UvS7/HKsv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/w28LP8w10j9KL08/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXmyv/FMIy/zHWSP844FH/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/AAAAAAAAAAAAAAAAAAAAABebK/8axzf/MtZL/TrhU/9B71z9Rvpk/0f+Z/9F/Wf9Pv9h/zX+WP0p+k7/IvNE/RjpOP8HlBn9AAAAAAAAAAAAAAAAAAAAAAAAAAAXmyv/Kt1J/znvVf85+Vn/Qf9j/0r/a/9E/2j/Qf9k/zv9Xf8y91P/KexI/x/kPf8DkBT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/x/tRf88/17/QuJf/23Yfv+s/Lj/qPyz/6T8rv+g+ar/m/Sk/5bwn/99xID/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/xebK/838l/9F5sr/w4P6P8OD+j/Dg/o/w4P6P8OD+j/Dg/o/w4P6P8OD+j/AAAAAAAAAAAAAAAAAAAAAAAAAAAOD+j/Hx/D/yVDqf8Xmyv/F5sr/zk0+f85NPn/MjD1/ysq9f8kJPX/Hh7x/xcY6f8OD+j/AAAAAAAAAAAAAAAAAAAAAA4P6P8cHcr/NDbb/Tw94v85TtP9F5sr/zk0+f9CPv/9PDn+/zQx/f0qKPj/Hh7v/RQV4v8QEeb9AAAAAAAAAAAAAAAAAAAAAAAAAAAOD+j/JSHa/zM08f80Mvn/RUL5/1pW/f9YU///UU///0lI//9AQPr/Njfw/y0w5P8UFuf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/xwT5f9EQv/9Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4P6P81Kuj/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOD+j/Dg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADg/o/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8BB/v/AQfz/wEH4/8BB8P/AQeAAwEHAAMBB4ADAQfAAwEHwAMBB4ADAQcAAwEHgAMBB8P/AQfj/wEH8/8BB/v/AQf//wEE="], [ "separator" ], [ "Открыть папку для экспорта CB кнопок", "openHtmlFileFolder()", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAwOC8xMS8wNdiEE10AAAAldEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1YIDIwMDSHdqzPAAACiUlEQVR4nKWTy0uUYRTGf+/np6PTODOmMpaGhJRaZmQgRAQtglaBf4BRtGgTFLUqKjBoF1QQlBLdKCgrscuiFEq6gGmQBWWSYLfpMqXMTM71+773PS0kQXBR9MBvdZ7z8HDgKBHhf2T9jUkdUbVKKTXfzH7eqVpdXbDDzWvRmrDngePyMZniXfsxLtLBFuAWhziqlOoQET0n4dlprk5/uysisTncO7Gqt3s/N5eeWCjD8T5ZcWa5nNvFmc6d7AEKRAQRgaHT9Gcyb0XyB+ain8jGC+ul5/15GXTuSN+3bmntapHj2+kFyv6E2K7DSrw0Yw9v8ys6gS9chfbgWvA5K2qXUb2knAfZflaXrWXTqg2MByNt12sG25JTiaRSqsI2wuLU5HdyU19p2TZOga+IfX27CUdqqG8KMeK9IKdchtLP8GpdaivXcN8S1g3cDwERWxvIJmP4K1qwfRmQl5wc6p450B14dLiHCecTzf5mtp7aC0BlqJx1M44iywjk4q/xVzSDxMEkkYNXkIOXKSsOoESwUChgoS+At/8GI5u7JOswDIhlDKR/DBKoXA4mCiYxS124nBLxqKCQoGjqwuV46QSTH0fIOYwCjm0MuOnPFAXrwB2eKWY8yKdoDJbgd35S5eYJmWkaQqWYfCGf3wyQc4gCrm0EvMwXiksXQW4SslnIZ0GEhkAJC3IJIq4mpNM0lgaxiqpJTX1SP38xCni2ESgtsxBjgd0OAYHATJHGmgH8Ja1ECusIWSHqa6rI5MKk4lGejjEKuLbWvJqMmdVDZ5vwPGbRGr5rxeDjahJuCtsUE43FSOaFRJpLIx9IAK4CbKAS8AHzPsw8MkAaiCsRQSll/8PybIiI6N8D8VYf0gJ8eQAAAABJRU5ErkJggg=="], [ "Экспорт всех CB кнопок в HTML файл без запроса", "exportsButtonsToHtmlFile()", "data:image/x-icon;base64,AAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wBkAP8ATwD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8A/wB6AP0AUgD/AE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUAP8AZQD/AG4A/wB3AP8AfwD/AIQA/wCHAP8AiAD/AHkA/wBtAP8AbAD/AFgA/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABQAP0AUgD/AFwA/QBmAP8AbgD9AHQA/wB4AP0AbwD/F5sr/wBzAP0AbgD/AGcA/QBQAP8ATwD/AAAAAAAAAAAAAAAAAAAAAABPAP8AVgD/AF0A/wBiAP8AZwD/AGsA/wBvAP8AbwD/F5sr/xebK/8AXgD/AFAA/wBPAP8AAAAAAAAAAAAAAAAAAAAAAAAAAABPAP8ATwD/AE8A/wBPAP8ATwD/AE8A/wBPAP8ATwD/F5sr/zfyX/0Xmyv/AE8A/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH3EgP+W8J//m/Sk/6D5qv+k/K7/qPyz/6z8uP9t2H7/QuJf/zz/Xv8f7UX/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOQFP8f5D3/KexI/zL3U/87/V3/Qf9k/0T/aP9K/2v/Qf9j/zn5Wf8571X/Kt1J/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAeUGf0Y6Tj/IvNE/Sn6Tv81/lj9Pv9h/0X9Z/1H/mf/Rvpk/0HvXP064VP/MtZL/RrHN/8Xmyv/AAAAAAAAAAAAAAAAAAAAAAmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/wmYHP8JmBz/CZgc/zjgUf8x1kj/FMIy/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKL08/zDXSP0NvCz/F5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHKsv/xS9Lv8Xmyv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/xebK/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5sr/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//8BB/9/AQf/PwEH/x8BB/8PAQcABwEHAAMBBwAHAQcADwEHAA8BBwAHAQcAAwEHAAcBB/8PAQf/HwEH/z8BB/9/AQf//wEE="] ]; var menuPopup = self.appendChild(document.createElement("menupopup")); array.forEach((m,i)=> { if ( m[0] == "separator" ) { menuPopup.appendChild(document.createElement("menuseparator")); return }; var mItem = menuPopup.appendChild(document.createElement("menuitem")); mItem.setAttribute("label", m[0]); mItem.setAttribute("class", "menuitem-iconic"); mItem.setAttribute("image", m[2]); mItem.addEventListener("command", ()=> eval(m[1])); }); menuPopup.setAttribute("onclick", "event.stopPropagation()"); function openHtmlFileInTab() { var fp = window.makeFilePicker(); fp.init(window, "Выберите HTML-файл для импорта закладок", fp.modeOpen); fp.appendFilters(fp.filterHTML); Cu.import("resource://gre/modules/FileUtils.jsm"); fp.displayDirectory = FileUtils.File(getPathToHtmlFileFolder()); fp.open(re=> { if ( re == fp.returnOK ) gBrowser.selectedTab = gBrowser.addTab(fp.file.path, { triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),}) }) }; function exportsButtonsToHtmlFile() { var visibleCBbuttons = [...document.querySelectorAll('[cb-mode]')]; var paletteCBbuttons = [...custombuttons.palette.querySelectorAll('[cb-mode]')]; var allCBbuttons = visibleCBbuttons.concat(paletteCBbuttons); var array = []; allCBbuttons.forEach(but=> { var uri = but.URI ? but.URI : getPaleteButtonsURI(but); var name = but.getAttribute("label") || "Без названия"; var image = but.getAttribute("image") || "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAACNFBMVEXDRgDweQDnbwC0NgDCRQC7PQDtpTu+QQD78q3PUwDCRAD//8vbYQDLTgDocAD0iQX1jQbGSgD7iAD4gwDVaw7vdwDyegD+igDweQDlawDyhAXveADmZwDzmBbtcwDwkhHveADmhBTkgxbweADkfRH+igD7hADXZQX0gADyjA/tfgvveQDiawDQVADRXgfnbwD1jAb9iQD9z0PVZAbxpinykRHtdgD5mRbERQDDRgDOYArCRAD9iQD3ewDxegD3dwDFRgDAQAD+hgD4fQDucgDtgQftfwTISQDCRQDvdgD5lxb1kRb2qh7wnynkagD766LDRQDDRwDDRQDspjbtpzbuqDbvqzv//8DUZAbCRQD//83pjhvveQbvggW+QQDfcxLlmUb//8veYADMTwDHSADVVwC8PgDwixb78q3oZgDUWADRVADCRQD9iQDERwDBQQDYVQC+PgC0NgDbYQDWWgDUWADSVQDFSAC+QAC7PAC0NgD+wRL+/kD+/zb+7i3+8Cv+/DX+wBL/+DD/rwz+qgz+rwz/tAz+sQzfbAT+3iP/+jD//Dz1jwP+nwf5iwf7pBz2tRr4lwb/ogfsdQT+2R7/9ET+2iT8yyLmgBL5iQL2egLokhP7zzT60zv1zUr0gAL1ewP50yn9+UL++EXooyngaAH41EPzowzyySj+xxzlhhHvvyruwjXxvTnUag3+zxrwigP+swz86U/ZXwD75lHqegD6xzb//kn+uhPTXAG3OAD/+UC2vFeJAAAAe3RSTlMAAAAAAAAAAAAAAAAAAAAAAAAAAACfnwAIaelpAAA2+wD7UQAAa3oArKzRzMysnwgAvPQA/gAAw3prw0oALr16vS4AACnF6bspAAAA/mIAADQAAAAAAI8AAEwA0vv7kd2yAuuvr+vKABL23U+8Sk/d9vUDIIAQAAAQgCAfvupHAAABB0lEQVR4Xi3IU3fDABgA0C+u26FdZ9u2bdu2vZSzbds2/tyac3IfLxjpGyA6MimqY6gHTNgiiNwkwRM1E7EhTrYyTfMzzsh0ZEPiH+D6+u5mV1jEhpe5haVCYW1T4suEvUOkk7PLpVJ5WFnl7hEUDN5LPvsHJ6cazdn13f3DYxu0B35+/Y2qVSr17NzGeUgohIVHLK/PMDa39qKieRATGxd/9cS4uU1MwnmQktqY/qGlaVr7/ZOVDTmQm5df8PwyNj4xOTVdjOM4kCRZOr+wWFa+srpWQVEU8PnV2zu7NbV19UfHDQRBAIfTdNHc0soVdnR2dfdgGAgEvW99/QNc4eDQ8O8Ihv0D77NPgbVLZ6kAAAAASUVORK5CYII="; array.push("<img src=" + image + "> <a href=" + uri + ">" + name +"</a><br>\n"); }); var before = "<html>\n<head>\n<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>\n</head>\n<body>\n"; var after = "\n</body>\n</html>"; var text = before + array.join("") + after; var text = convertFromUnicode("UTF-8", text); var date = new Date(); var time = date.toLocaleString('ru', {year: 'numeric', month: 'numeric', day: 'numeric'}) var time = time + '. ' + date.toLocaleTimeString().replace(/:/g, "˸"); var file = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); file.initWithPath(getPathToHtmlFileFolder()); file.append("CB buttons " + time + ".html"); custombuttonsUtils.writeFile(file.path, text); var alertsService = Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService) alertsService.showAlertNotification(self.image, self.label, "Экспортировал все CB кнопки как HTML в " + file.path); setTimeout(()=> alertsService.closeAlert(), 4000); }; function getPaleteButtonsURI(but) { var doc = document.implementation.createDocument("", "", null); doc.async = false; doc.load("chrome://custombuttons/content/nbftemplate.xml"); ["help,Help", "name,label", "image,image", "mode,cb-mode", "initcode,cb-init", "accelkey,cb-accelkey", "code,cb-oncommand"] .forEach(str=> { var arr = str.split(','); var value = but.getAttribute(arr[1]), name = arr[0]; custombutton.buttonSetText(doc, name, value, true); }); var ser = new XMLSerializer(); return "custombutton://" + escape(ser.serializeToString(doc)); }; function openHtmlFileFolder() { var folder = Cc["@mozilla.org/file/local;1"].createInstance(Ci.nsIFile); folder.initWithPath( getPathToHtmlFileFolder() ); folder.launch(); }; function setPathToHtmlFile() { var fp = window.makeFilePicker(); fp.init(window, "Укажите папку для экспорта CB кнопок!", fp.modeGetFolder); fp.open(re=> { if ( re != fp.returnOK ) return; cbu.setPrefs("CB.exportsButtonsToHtmlFile.path", convertFromUnicode("UTF-8", fp.file.path)); exportsButtonsToHtmlFile(); }) }; function getPathToHtmlFileFolder() { var s = "CB.exportsButtonsToHtmlFile.path", pref = Services.prefs; var str = pref.getStringPref ? pref.getStringPref(s) : pref.getComplexValue(s, Ci.nsISupportsString).data; try { return str } catch(e) { return "C:" }; }; function convertFromUnicode(charset, str) { var converter = Cc["@mozilla.org/intl/scriptableunicodeconverter"].createInstance(Ci.nsIScriptableUnicodeConverter); converter.charset = charset; str = converter.ConvertFromUnicode(str); return str + converter.Finish(); }; this.onmouseover =()=> { this.tooltipText = self.label + "\nЛ: Меню кнопки\nП: CB меню\n\nПапка для экспорта:\n" + getPathToHtmlFileFolder(); }; |
mokujin > 25-01-2018 18:27:12 |
Закрывать боковую панель кликом на пустом месте странице (PaleMoon 27 и FF52 esr проверялось) Код инициализации: Выделить код Код:/*Initialization Code*/ // ---------12--------------------------- (auto-hide SideBar) --------------------------------------------------------------- (function() { this.clickPageSB = function(event) { gBrowser.addEventListener('mousedown',on, false); }; function go() { clickPageSB(event); let selection = getBrowserSelection(); const sidebarbox = window.document.getElementById("sidebar-box").hidden; if ( !sidebarbox && !selection && getLoc() ) toggleSidebar(); } function on(e) { if ( e.button != 0 || e.target.tagName.toLowerCase() === 'a') return; gBrowser.removeEventListener('mousedown',on, false); timeoutId = setTimeout(go, 500) } function off() { clickPageSB(event); clearTimeout(timeoutId) } sidebar.addEventListener('click',off, false); clickPageSB(event); // текущий адресс. // Исключения в массиве arr - если адресс совпадает, начинается с ... то выход. иначе возврат текущего урл. function getLoc() { let loc = content.location.href; let arr = ["chrome://scrapbook/","data:"]; for (var i = 0; i < arr.length; i++) { if ( loc.startsWith(arr[i]) == 1 ) return; } return loc; }; // ------------ Закрывать по ESC бок. панель ------------ document.addEventListener('keypress', function (e){ const sidebarbox = window.document.getElementById("sidebar-box").hidden; // Shift=16, T=84, ESC == 27 switch(e.keyCode) { case 27: if( gBrowser.webProgress.isLoadingDocument && !sidebarbox ) { e.preventDefault(); toggleSidebar(); } else if ( !sidebarbox ) toggleSidebar(); } }, false); })(); |