1 Устанавливаем расширение Custom Buttons.
2 Выделяем всё что есть в секции Kод кнопки.
3 Копируем в адресную строку и жмём перейти.
4 Откроется окно диалога добавления кнопки.
5 Добавив кнопку жмём правой кнопкой мыши по свободному месту на панели и выбираем настроить.
6 Перетаскиваем кнопку в нужное место на панели.
этот способ устанавливает кнопку с иконкой.
второй способ:
ПКМ на любой панели и в открывшемся меню нажимаем пункт Добавить новую кнопку, откроется окно редактирования новой кнопки куда копируем коды из секций Код и Инициализация. Потом в окне редактирования кнопки нажимаем Ok, открываем настройку панелей инструментов (Customize) и вытаскиваем новую кнопку на нужную панель. иконку кнопки в этом случае придётся нарисовать самим или выбрать готовую(картинка 16х16 пикселей подойдёт к большинству тем), не забывайте конвертировать её в base64 иначе при перемещении файла иконки изображение с кнопки пропадёт.
[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] + ссылка на страницу кнопки если такая есть.
Отредактировано bunda1 (27-12-2013 14:29:59)
Отсутствует
Save( Firefox 24 + ) от 07.03.2017.
Кнопка для сохранения веб-страниц и элементов веб-страниц, открывает меню из которого можно:
Сохранить закладку текущей страницы с ярлыком сайта, иконки для ярлыков хранятся в папке C:\Documents and Settings\Favicon\, можно сохранить ярлык страницы без запроса на сохранение в последнюю папку где сохранялся ярлык сайта,
Сохранить иконку сайта с диалогом сохранения,
Сохранить иконку сайта в буфере обмена как код base64.
Сохранить выделенную область страницы как PNG-изображение,
Сохранить выбранный элемент страницы как PNG-изображение,
Сохранить видимую область страницы как PNG-изображение,
Сохранить всю страницу как PNG-изображение, если страница слишком большая то кнопка сохранит сколько возможно от страницы,
Сохранить страницу как PDF файл, через сервис pdfmyurl.com,
Добавить вверху страницы ссылку на её адрес и сохранить страницу через диалог сохранения,
Сохранить выделенный текст в текстовой txt файл, если текст не выделен сохранить весь текст на странице в txt файл,
Добавить в контекстного меню изображений новый пункт 'Запомнить изображение как base64',
Добавить в контекстного меню выделенного текста новый пункт 'Сохранить выделенный текст в файл', который позволяет сохранить выделенный текст в .txt файл на рабочем столе без запроса и с добавлением текста к тексту который уже был сохранен ранее,
Добавить в контекстного меню выделенного текста новый пункт 'Открыть выделенный текст в внешнем редакторе', который позволяет открыть выделенный текст из страницы или текстового поля в внешнем текстовом редакторе.
// 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"); };
Большое спасибо Dumby за помощь с кнопкой.
Отредактировано bunda1 (07-03-2014 19:57:21)
Отсутствует
Открыть внешние win приложения( Firefox24+ )от 12.12.2015.
Кнопка открывает меню с Windows приложениями и даёт возможность их запустить. В меню кнопки легко добавить для запуска другие win приложения или в системе установленные программы.
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); });
Отредактировано bunda1 (21-06-2014 21:04:59)
Отсутствует
Панель поиска на сайте(Firefox3.6-5.0)
Открывает панель с кнопками "Поиск Google на сайте","Поиск Yandex на сайте","Поиск Bing на сайте","Поиск BugMeNot - логины,пароли для сайта","Информация о браузере и открытой странице","Leader-When security matters-Информация о сайте ","Leader-When security matters-Информация об IP адресе"
В кнопке использованы фрагменты кода Lex1, Anton, Infocatcher
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; };
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)
Открывает текущую страницу в Midori
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 (22-07-2011 03:35:34)
Отсутствует
Текстовые смайлы(Firefox3.6-5.0)
Вставка текстовых смайлов.В основе кнопки код Infocatcher
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
Текстовые смайлы(Азия)(Firefox3.6-5.0)
Вставка текстовых смайлов.В основе кнопки код Infocatcher
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();
Отредактировано imyax (27-06-2011 23:20:15)
Отсутствует
Прокрутка страницы( 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 (26-05-2013 23:14:33)
Отсутствует
BB: Color Menu ( Firefox24 + ) от 13.01.2015.
Кнопка открывает меню с подборкой BB цветов(кодов) для форумов. Выделите текст в поле текстового ввода и нажмите в меню нужный цвет.
новую строку:
Нажать 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); };
Отредактировано bunda1 (21-06-2014 21:01:14)
Отсутствует
userChrome.css ( Firefox 3.6+ )
открывает файл userChrome.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%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();
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();
Отредактировано bunda1 (26-05-2013 20:16:07)
Отсутствует
Просмотр и сохранение иконок сайтов(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
Ffolders+(Ubuntu) (Firefox5.0)
При нажатии на кнопку появляется меню из которого можно открыть: папку установки Firefox, папку текущего профиля, папку chrome текущего профиля, папку custombuttons текущего профиля, папку extensions текущего профиля.
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 (27-06-2011 23:18:38)
Отсутствует
Open userCSS+JS(Ubuntu)(Firefox4.0-5.0)
При нажатии кнопки появляется меню из которого можно открыть для просмотра и редактирования userChrome.css, userContent.css, pref.js, user.js. Предварительно эти файлы(кроме pref.js) должны быть созданы пользователем.
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%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%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 (27-06-2011 23:17:47)
Отсутствует
Fit to Page Width(Firefox)Подогнать страницу по ширине с возможностью отключения без обновления страницы. Это улучшенная и дополненная Fit to Width от Dark-Demon
Автор:Killy(http://forum.mozilla-russia.org/viewtop … 20#p194020)
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 18:51:20)
Отсутствует
Make bookmark button(Firefox)
кнопка, которая из текущей страницы создаёт рядом с собой новую кнопку(с названием и иконкой данной страницы),открывающую эту страницу.
Автор:Anton http://forum.mozilla-russia.org/viewtop … 38#p349838
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 ""; }
Отредактировано imyax (20-06-2011 01:04:48)
Отсутствует
Fit to width 2 ( Firefox 3.6 и выше, SeaMonkey )
Выравнивает страницу по ширине окна.
Автор:Squeaky
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"; });
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) {}
Отредактировано bunda1 (26-05-2013 20:17:17)
Отсутствует
Permanent Bookmark(Firefox4.0-5.0)
Нажатие на иконку - заносит текущую страницу в список кнопки.
Нажатие на стрелку- открывает список кнопки.
Нажатие на пункт "Save" в списке сохраняет список.
Удаление из списка - правой клавишей мыши по выбранной странице и нажать появившийся пункт "Remove Item ?".
Появится запрос на подтверждение удаления - нажать "Ок".
Открыть список, произвести сохранение нажатием на пункт "Save".
Список сохранённых страниц находится в папке custombuttons текущего профиля в файле "Bookmarks300.txt"
Авторы: deepakjoshi04, SCClockDr
Адаптация под firefox 4.0.* : morat
Коррекция сохранения кириллицы: Anton поправка от Infocatcher внесена.
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 почему-то отсутствует.
Отредактировано imyax (23-06-2011 22:49:54)
Отсутствует
По просьбе из вот этой темы:
History Export(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%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("Журнал успешно экспортирован");
Отсутствует
Right click = Button Help(Firefox)
Кнопка заменяет на всех установленных кнопках стандартный вызов CB-меню по Правому Kлику мыши на вызов окошка Помощи (Button Help). Или добавляет вызов Button Help к другой функции, уже назначенной на Правый Клик некоторых кнопок.
Если такое всеобщее изменение поведения нежелательно для определенной кнопки,
то его можно отключить на ней путем полной очистки поля Help этой кнопки.
Код: Infocatcher
Оформление: моё
http://forum.mozilla-russia.org/viewtop … 01#p504101
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);
Отредактировано slbgz (31-07-2011 19:37:30)
Отсутствует
History Export (Firefox) - вариант №2
Экспорт журнала в 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%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-шаблона:
history.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)
Отсутствует
Переключить язык интерфейса( Firefox24+ ) от 09.06.2016.
Kнопкa для переключение языка интерфейса русифицированного Firefox на русский или английский язык. Открывает страницу где можно найти все русификации 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%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'); };
Отредактировано bunda1 (24-10-2013 18:52:48)
Отсутствует
Button Stacker 3(Firefox)
Кнопка создает кнопку-сборку кнопок. В кнопках, объединенных в сборку, работает только левый клик, также нельзя добавлять в сборку кнопки-меню.
Автор: squeaky
Английская версия: http://custombuttons.mozdev.org/drupal/ … -stacker-3
Версия с полным украинским переводом меню, подсказок и коротким help: slbgz
Код кнопки (Сохранить файл как... , убрать расширение .txt, оставить .7z, распаковать архив и установить согласно инструкции)
Отредактировано slbgz (17-10-2011 18:34:13)
Отсутствует
ТoggleToolbars (Firefox) - Переключатель группы панелей.
Кнопка предназначена для быстрого скрытия/показа группы панелей, как стандартных, так и созданных пользователем, одним кликом левой кнопки мыши. Выбор группы панелей, которые будут скрываться/показываться кнопкой, осуществляется закомментированием соотв. строчек в «шапке» кода. Полезна, кроме прочего, для Button Stacker 3 для скрытия кнопок, объединенных в сборки, для этого соотв. кнопки нужно перетянуть на нужные панели, а названия этих панелей добавить в «шапку» секции «код» ТoggleToolbars.
Для запоминания состояния отображения кастомных панелей после окончания сессии необходима работа «в связке» с кнопками СкрытьПоказать панель.
Автор кода: Infocatcher
http://forum.mozilla-russia.org/viewtop … 68#p505168
Оформление и украинский Help: slbgz
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 (13-08-2011 17:24:43)
Отсутствует
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
Код:
Отредактировано slbgz (09-10-2011 05:08:54)
Отсутствует
Find( 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%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П: Искать выделенный текста/из буфера назад";
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 (07-02-2014 22:32:08)
Отсутствует
Поиск по сайту в Google( Firefox24+ ) от 07.03.2017.
Даёт возможность искать текст( выделенный, введённый или из буфера обмена ) по текущему сайту в Google.
ЛКМ => Поиск по сайту(выделенного или введённого текста),
СКМ => Поиск по сайту текста из буфера обмена,
ПКМ => 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%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 меню";
Отредактировано bunda1 (04-06-2013 19:20:00)
Отсутствует
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";
Отредактировано ignorecheats (29-09-2011 12:08:17)
Отсутствует
Go plus! (Firefox)
Кнопка вместе с кнопкой Select Search Engine(постом выше) и адресной строкой полностью заменяют собой 3 элемента Панели навигации: кнопку Go("Перейти"), плюс кнопку Reload("Обновить страницу"), плюс стандартную панель(строку) поиска со всеми их стандартными функциями, плюс добавляет дополнительные функции:
- переход по "текстовой", выделенной на странице, ссылке (линкификация), переход по ссылке из буфера обмена(Paste and Go),
- поиск текста, выделенного на странице, или текста из буфера обмена "текущим" поисковиком.
ЛКМ => функция Go(Перейти) - открыть URL из строки адреса или Reload(Обновить страницу).
СКМ => открыть "текстовую" ссылку, выделенную на странице или, при отсутствии выделенного, - ссылку из буфера.
ПКМ => искать текущим поисковиком текст, набранный в строке адреса, или - выделенный на странице или - из буфера.
Shift+ЛКМ => Hard Reload ("Обновить из сети", "Ctrl+F5").
Shift/Ctrl/Alt + ПКМ => CB меню.
Примечания
2. Если включен и установлен через about:config (параметром keyword.URL) дефолтный поисковый запрос
для адресной строки, то для поиска текста, набранного в адресной строке, имеем одновременно две возможности:
а) нажимаем правой кнопкой мыши Go plus! = ищем поисковиком, выбранным кнопкой Select Search Engine,
б) нажимаем кнопку ENTER = ищем дефолтным для адресной строки, например, Google.
При поиске набранного в адресной строке и выделенного на странице текста используется буфер обмена.
Если потеря содержимого буфера обмена нежелательна, сохраняйте его перед поиском.
После установки Select Search Engine и Go plus! панель(строку) поиска и кнопку "Обновить" можно "удалить"
(скрыть путем перемещения их в окно настоек панелей инструментов), так как кнопка Go plus! полностью
заменяет их функции. Стандартную кнопку Go скрыть можно путем редактирования файла userChrome.css.
Для более компактного и аккуратного стиля кнопки Go plus! раскомментируйте 2-ю или 3-ю строку кода.
3. Настройки в "шапке" кода:
IN_NEW_TAB = true / false - открывать в новой / в текущей вкладке,
IN_BACKGROUND = false / true - открывать в активной вкладке / в фоне.
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(); }; };
На скрине: слева от адресной строки - кнопка Select Search Engine, справа - кнопка Go plus!
Update. Исправил и дополнил описание и примечания. Заменил tooltipText. 30.09.2011
Заменил код (ЛКМ) на более корректный. Заменил варианты стилей. 01.10.2011
Отредактировано ignorecheats (01-10-2011 11:02:17)
Отсутствует
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(); }; };
Отредактировано ignorecheats (01-10-2011 11:04:27)
Отсутствует