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

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

№122-11-2009 13:29:00

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.5

Re: Готовые кнопки для Custom Buttons

Постим сюда только готовые и оформленные кнопки!
                                           
- все вопросы, замечания, обсуждения тут:
https://forum.mozilla-russia.org/viewto … 591&p=last



Как добавить кнопку(помощь для новичка)

1.1449045699.gif

1 Устанавливаем расширение Custom Buttons.
2 Выделяем всё что есть в секции Kод кнопки.
3 Копируем в адресную строку и жмём перейти.
4 Откроется окно диалога добавления кнопки.
5 Добавив кнопку жмём правой кнопкой мыши по свободному месту на панели и выбираем настроить.
6 Перетаскиваем кнопку в нужное место на панели.
этот способ устанавливает кнопку с иконкой.

второй способ:
ПКМ на любой панели и в открывшемся меню нажимаем пункт Добавить новую кнопку, откроется окно редактирования новой кнопки куда копируем коды из секций Код и Инициализация. Потом в окне редактирования кнопки нажимаем Ok, открываем настройку панелей инструментов (Customize) и вытаскиваем новую кнопку на нужную панель. иконку кнопки в этом случае придётся нарисовать самим или выбрать готовую(картинка 16х16 пикселей подойдёт к большинству тем), не забывайте конвертировать её в base64 иначе при перемещении файла иконки изображение с кнопки пропадёт.


Как удалить кнопку(помощь для новичка)

ПКМ на кнопке и нажать пункт Удалить в контекстном меню кнопки или открыть Управление дополнениями и там открыть вкладку Custom Buttons найти нужную кнопку и нажать Удалить.

Шаблон добавления готовой кнопки

Выделить код

Код:

[b][color=#FF4F00]Название кнопки[/color][/b](Firefox + версия), от какого числа кнопка.
Описание что кнопка делает, указать если для работы кнопки нужны расширения и программы.

[b]Клики на кнопке:[/b]
[color=#006600]ЛКМ[/color] => описание,
[color=#006600]СКМ[/color] => описание,
[color=#006600]ПКМ[/color] => описание.
Другие клики(если они есть)

[spoiler=Код кнопки, вкладки код и инициализации:]

[b]Код кнопки:[/b]
тут код получаемый по ПКМ - Копировать код в буфер

[b]Код:[/b]
тут код из вкладки Код(если он есть)

[b]Инициализация:[/b]
тут код из вкладки Инициализация(если он есть)

[/spoiler]
Автор кнопки(если он известен): [b]указать автора без ссылки на его профиль[/b] + ссылка на страницу кнопки если такая есть.


Важно!
Расширение Custom Buttons (bootstrap) можно взять тут 11-04-2023 12:33:42, но перед установкой нужно сделать это Как отключить проверку цифровых подписей в дополнениях Firefox.

Отредактировано bunda1 (27-12-2013 14:29:59)

Отсутствует

 

№10214-11-2012 13:40:02

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 16.0

Re: Готовые кнопки для Custom Buttons

Copy links
Копирует ссылки из выделенного текста, а если ничего не выделено, то и вообще все ссылки, в буфер обмена (≈ расширению Multi Links).

скрытый текст

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ECopy%20links%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAkBJREFUeJydku1Lk1EYxp8/p28F9a36EGESUguliHBIyOYLKM7yZQ3LNF8oZaZirdwsl6JO02nLdG463WaaL1tZGmhqWGYzBCFwzxa/tkccbYw+eODicO7rvq/7Ovc5AiDEovzFD66Ur5KkWYmguPk71tldYnOjDrpXPuT1Izx06yifTiXPmcLAdiFqlwydbYHC5k1yG9eJK1DTtYlC30bXtwLqF+XkuvPJGEvlpjMBo6eT91+DOBaDFLdskVW3SpRAt2Mb+SMDz1cz6d5USfvdGRmTYiX51lQsSy7m1/YFqu0dZBv1ESeSQFJxyJ4tnZYvSjo2cjD7Chja0WDbvY3WXcvHjT9MLQexfghwZ/iJ5PBiRe++gGVym8tVU6jd58kaOUXrWibG9Wxy7IkUTlxAM5orFY9+CtA/F6DNJZLRW8K1RgsVxjUEbdc6yoZlZN1HSDGdpmkpjSJXIs+mnZTZayRn4c4D8wE634roHSLaN34K2n9z6ZYHQXl/AZXBR5nFQ5M9NAtzAhnWk5hnA/TM/OKp08vLdwHa3SKGUHHDsJ/rphIUg2c5nu5CSK/ykqX7SWX/HnVDfsoGxyU3D2wTkl2jU6RlXERn90t8Ud84eWNnqPVe5WiaA6G69TPJ91bQmPYo7fORbDoRmowQhXBhbOzGawXJ6imEntENzqk90p0OyNj1n9j+Mx6TD6Hq3IkkxnaLh0heeG82L5NUOhdFxOscj498ZZV25vAODlDyeP5wM/gXTs9WvG5CvFgYfwFzo6tZMWWyMgAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20win%20%3D%20document.commandDispatcher.focusedWindow%2C%20doc%20%3D%20win.document%3B%0Avar%20sel%20%3D%20doc%2C%20winSel%20%3D%20win.getSelection%28%29%3B%0Aif%28winSel.toString%28%29%29%7B%0A%09sel%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09sel.appendChild%28winSel.getRangeAt%280%29.cloneContents%28%29%29%3B%0A%7D%3B%0Avar%20str%20%3D%20%27%27%2C%20links%20%3D%20sel.getElementsByTagName%28%27a%27%29%3B%0Afor%28var%20i%20%3D%200%2C%20lnk%3B%20lnk%20%3D%20links%5Bi%5D%3B%20i++%29%7Bif%28lnk.href%29str%20+%3D%20lnk.href%20+%20%27%5Cr%5Cn%27%7D%3B%0AgClipboard.write%28str%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№10317-11-2012 13:22:08

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 16.0

Re: Готовые кнопки для Custom Buttons

UP
Перенаправляет на уровень вверх или, при зажатии, на самый верх (т.е. отсюда на http://forum.mozilla-russia.org/ , а если вы уже наверху, то на список похожих страниц).
(≈ расширению Uppity/Navigate Up).

скрытый текст

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EUP%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAYAAAAmlE46AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6AAAdTAAAOpgAAA6lwAAF2+XqZnUAAAB2ElEQVR4nGL8//8/AzkAIICY0AUYJzLyA3E9IY0AAYSiEaQJSB0wlTJpALLn49MIEEAsaPwD+faZBoZqKgxrDoklADUz/M//n4hNI0AAwTWCbEg0jzEQlmZneP7rKUOonSsDGwM7SPMBoOaF6BoBAogJpslC2TRBQpqf4cvPLww/fv1kePbrMYOXhQ2DpojGAqB8PLpGgABiAgrmm6oYJjjpWwE1fQVq+sXwHagRpPkv82+GHt8WBi0RTZBme2SNAAHEyDCBYT+ULeCl72YgLSnEwMnKxiDFJc1QsbL9A1D8AlT+AtDJhTCNAAHEAuQ4Qp1rz8jIcABkEwh8//MTptgRW+AABBBKqH7+9YWB6zcrmP2D7ScDDzuPAjZNQEvOAwQQPB6BJh+8/OgaAwsTK8OP378YXn17zaAvo6OAHjAwPkAAodj4/suHBfdfPkkQ5RcE841VdBk+fPsIChgHIPcBEINckADCAAHEiJxWYSnHTtvSQJhfgIGFmYlBmleagesfL4MYqyTDorNLGc49O78AlCgAAogRPZFDNU9QEJVNkBKUZBDhE2L49u07w+VH1xlefnnVANTUCFIHEEAYGpEMkAdSBlB8gAESwh9h8gABhFMjIQAQYADQGKKCjfSDsAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E2%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20btn%20%3D%20this%3B%0A%0Avar%20opt%20%3D%20%7B%0A%09delay%3A%20500%2C%0A%09timerId%3A%200%2C%0A%09isPressed%3A%20false%2C%0A%09longClick%3A%20function%28%29%7B%0A%09%09goUp%28false%29%3B%0A%09%7D%2C%0A%09stdClick%3A%20function%28%29%7B%0A%09%09goUp%28true%29%3B%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseDown%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09opt.isPressed%20%3D%20true%3B%0A%09%09opt.timerId%20%3D%20setTimeout%28function%28%29%7B%0A%09%09%09if%28opt.isPressed%29%7B%0A%09%09%09%09opt.isPressed%20%3D%20false%3B%0A%09%09%09%09var%20k%20%3D%20%22_transitionTimer%22%3B%0A%09%09%09%09if%28k%20in%20btn%29clearInterval%28btn%5Bk%5D%29%3B%0A%09%09%09%09var%20stl%20%3D%20btn.style%3B%0A%09%09%09%09stl.setProperty%28%22transition%22%2C%20%22opacity%20150ms%20ease-in-out%22%2C%20%22important%22%29%3B%0A%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09stl.setProperty%28%22opacity%22%2C%20%220.5%22%2C%20%22important%22%29%3B%0A%09%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09%09stl.opacity%20%3D%20%22%22%3B%0A%09%09%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09%09%09stl.transition%20%3D%20%22%22%3B%0A%09%09%09%09%09%09%09delete%20btn%5Bk%5D%3B%0A%09%09%09%09%09%09%7D%2C%20150%29%3B%0A%09%09%09%09%09%7D%2C%20150%29%3B%0A%09%09%09%09%7D%2C%200%29%3B%0A%09%09%09%09opt.longClick%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%2C%20opt.delay%29%3B%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseUp%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09clearTimeout%28opt.timerId%29%3B%0A%09%09if%28opt.isPressed%29%7B%0A%09%09%09opt.isPressed%20%3D%20false%3B%0A%09%09%09opt.stdClick%28%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseOut%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09opt.isPressed%20%3D%20false%3B%0A%09%7D%0A%7D%3B%0A%0Abtn.addEventListener%28%27mousedown%27%2C%20mouseDown%2C%20false%29%3B%0Abtn.addEventListener%28%27mouseup%27%2C%20mouseUp%2C%20false%29%3B%0Abtn.addEventListener%28%27mouseout%27%2C%20mouseOut%2C%20false%29%3B%0A%0Abtn.onDestroy%20%3D%20function%28%29%7B%0A%20%20%20%20btn.removeEventListener%28%27mousedown%27%2C%20mouseDown%2C%20false%29%3B%0A%09btn.removeEventListener%28%27mouseup%27%2C%20mouseUp%2C%20false%29%3B%0A%09btn.removeEventListener%28%27mouseout%27%2C%20mouseOut%2C%20false%29%3B%0A%7D%3B%0A%0A%0Afunction%20goUp%28step%29%7B%0A%09var%20loc%20%3D%20content.location%3B%0A%09if%20%28loc.protocol%20%3D%3D%20%27about%3A%27%29%20return%3B%0A%0A%09var%20p%20%3D%20loc.protocol%20+%20%27//%27%2C%20h%20%3D%20loc.host%20+%20%27/%27%3B%0A%09if%20%28loc.href%20%3D%3D%20p%20+%20h%29%20%7B%0A%09%09var%20a%20%3D%20h.split%28%27.%27%29%2C%20l%20%3D%20a.length%2C%20n%20%3D%202%3B%0A%09%09if%20%28l%20%3E%202%29%20%7B%0A%09%09%09if%20%28a%5B0%5D%20%3D%3D%20%27www%27%29%20%7Ba.shift%28%29%3B%20l--%7D%3B%0A%09%09%09if%20%28/%5E%28co%7Ccom%7Cnet%7Corg%7Cedu%7Cgov%7Cmil%7Cint%29%24/i.test%28a%5Bl%20-%202%5D%29%29%20n++%0A%09%09%7D%0A%09%09if%20%28l%20%3E%20n%29%20%7B%0A%09%09%09h%20%3D%20%28n%20%3D%3D%203%20%3F%20a%5Bl%20-%203%5D%20+%20%27.%27%20%3A%20%27%27%29%20+%20a%5Bl%20-%202%5D%20+%20%27.%27%20+%20a%5Bl%20-%201%5D%0A%09%09%7D%20else%20%7B%0A%09%09%09p%20%3D%20%27http%3A//www.google.com/search%3Fsourceid%3Dopera%26q%3Drelated%3A%27%20+%20p%0A%09%09%7D%0A%09%7D%20else%20if%20%28step%29%20%7B%0A%09%09h%20%3D%20loc.host%20+%20loc.pathname.replace%28/%5B%5E%5C/%5D+%5C/%3F%24/%2C%20%27%27%29%0A%09%7D%3B%0A%09loc.href%20%3D%20p%20+%20h%3B%0A%7D%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5BAlt+UP%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано Lex1 (04-10-2013 00:27:40)

Отсутствует

 

№10418-11-2012 18:24:06

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Сохранить ярлык страницы на ...( Firefox24+ ) от 16.03.2017.
Сохраняет ярлыки страниц с иконкой сайта в указанную папку. Может сохранять ярлыки страниц в последнюю папку сохранения без запроса на место сохранение.

ЛКМ => Сохранить ярлык страницы в указанную папку,
Длиный ЛКМ => Сохранить ярлык страницы в последнюю папку сохранения без запроса,
СКМ => Сохранить ярлык с выделенным текстом или из буфера  в указанную папку,
Длиный СКМ => Сохранить ярлык с выделенным текстом или из буфера без запроса,
ПКМ => Стандартное меню кнопки

Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0430%20...%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAWAUAAAAAAAAAAAAAAAAAAAAAAAD+/vL/5vP//9v2///p+Pb/+PTv//nx+P/19PX/+Pbv//z08f/4+O7/+fb0//v29f/1+O7/5Pr0/976///i7///9/b/////8//i7Ov/h5zF/2GEs/+LpLH/0dHW/9fO3v/O0dj/1NTQ/9zR0v/O1Mz/0tHS/9TO1P/N1tb/nrzE/22PtP9xiL7/s7nX//n59P/T5vb/V3i+/zNhrv9tkbb/4en9/+rn///j6/X/5+3t/+7r7//i7+j/5unv/+ji8//i7P7/mbvc/z9rsP8+YrP/jaLO//L8///K4v3/UnrU/zFqyv9kkMT/3er+/+vn///m7PP/5u7r/+rq7f/h8OX/6Ors/+rg9P/f5f//lLbn/zpsyP88ac3/iKXa/+z+///N4///Unvb/yxo0v9hkcz/4Oz///Ps/P/w8O3/7fLn//Dv7//r9+f/8Ozo//Xk8f/o6f//l7fr/zZr0v86adb/iKXc/+/+/v/R4/7/VHvb/ytq1f9hks7/4er///zu9//++uz/+Pno//Lv7v/t9eT/+vHo///r7v/x7Pz/mbrr/zZu1P82Z9X/jKXb//f++//W5v3/VX/a/yls2f9dk9D/4ez////z9v/69eb/9Pfo/+/x9f/r9O3//fLs///o5v/18fn/msDq/zJx1f81a9n/jqbd//z++v/U6P3/UoPc/yRw3/9Vldb/2uv////0/P/69+v/8vry/+Pt/f/g7/f/+vL1///w7f/2+vz/kMDp/yx11/8wbuD/jKbk//z6/f/T6/z/UYXc/yNx4v9Wldj/2+7///Xy+//X3+D/1ufu/+Tz///g9P//29vs/+re4f/y/P3/jsPq/yl32/8wcOP/jabl//n5///S6Pf/V4rZ/zFz3/91mtn/6fD6/+v7//+RvN//bpLH/9Pg/v/F3Pj/c4e2/8PF3f/1/P//lsPq/zV64P9Ec9r/marZ//H8///L5vz/Tork/yhy7f9smeP/4fD8/+H7//+Bue//N2/D/2eO3f9Zi9f/Pmi1/7fF7f/y/f//kMLw/yt58P88c+j/kKvh/+X8///O5/z/To3o/yF29f9imuv/3e/9/+X4//+Lv/P/LXPY/ylx4v8ict//M23N/7fI8v/2/v//kcTy/yd89/81dfP/ja3p/+f8///h6vf/YpTd/zF97P9rnub/6vP6//v9+f+jxOv/M3nb/xt19f8YePP/NXPV/8HK6f////f/pcro/zaB7v9Be+3/nbLg//j++v/n6vb/cJjW/z6D4f91peX/7PP5////+v+zx+f/PH/e/xZ5/f8Wevn/NnfY/8bO6f///+//sM3j/0OG6P9NgOj/orPb//r98//S4Pr/bZnf/0SM5f9qpOf/2O3///r///+txu//PIPm/xZ+//8Yffz/NXvm/7fL8/////z/q9Ht/0OJ7v9QhvH/mLLl/+T4/v/E3P//apjg/0yO3P9tquf/zfD//+T1//+ow/T/Robh/yuI+v8yiPL/OX3j/6bH9v/r////oM7x/0iK6v9Thej/krHm/9P4///U4///kqzZ/3qhxf+Qttf/1e39/+jw/f/AyOv/e5vQ/2WY1f9smMv/aZLU/7bN9f/x/v3/tNPm/3Kc2/+Emtz/s8De/+D9///z8f//6ev3/+Xu7v/g7O3/7fH5//Lr9v/x6fL/5ebx/9zr9f/i6uz/2OP3/+Tp+f/08+n/5/Ls/9jm/P/r5vz/9u/0//f/+f8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0430%2C%20%u043E%u0442%2016.03.2017.%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u0438%20%u0434%u043B%u0438%u043D%u043D%u044B%u0445%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmousedown%20%3De%3D%3E%20%7B%0A%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%29%20return%3B%20//%20%u0441%u0442%u043E%u043F%20%u0435%u0441%u043B%u0438%20%u041F%u041A%u041C%0A%0A%20%20%20%20self.onclick%20%3De%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%2C%20clearTimeout%28self.timer%29%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20e.button%20%3D%3D%200%20%3F%20saveShortcuts%28false%29%20%3A%20saveShortcuts%28false%2C%20getSelect%28%29%29%3B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20self.timer%20%3D%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20e.button%20%3D%3D%200%20%3F%20saveShortcuts%28true%29%20%3A%20saveShortcuts%28true%2C%20getSelect%28%29%29%3B%0A%20%20%20%20%7D%2C%20500%20%29%3B%0A%7D%3B%0A%0A%0A//%20%u041E%u0431%u044A%u044F%u0432%u043B%u044F%u0435%u043C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u0438%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0435%20%u0434%u043B%u044F%20%u044D%u0442%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20.............%0Avar%20disk%20%3D%20%27C%27%3B%20//%20%u0434%u0438%u0441%u043A%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u0438%u043A%u043E%u043D%u043E%u043A%20%u0434%u043B%u044F%20%u044F%u0440%u043B%u044B%u043A%u043E%u0432%20%u0438%20%u044F%u0440%u043B%u044B%u043A%u043E%u0432%20%u0441%u0430%u0439%u0442%u043E%u0432%0Avar%20pref%20%3D%20%22CB.Shortcuts.pathToSaveShortcuts%22%3B%0Avar%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmouseover%20%3D%28%29%3D%3E%20%7B%20%0A%20%20%20var%20folder%20%3D%20gPrefService.getComplexValue%28pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20this.tooltipText%20%3D%20%22%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%5Cn%u0414%u041B%20%20%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u043A%u0430%u043A...%20%5Cn%u041B%3A%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u0414%u0421%3A%20%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u043C%20%u0442%u0435%u043A%u0441%u0442%u043E%u043C%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043A%u0430%u043A...%20%5Cn%u0421%3A%20%20%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u043C%20%u0442%u0435%u043A%u0441%u0442%u043E%u043C%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%5Cn%u041F%u0430%u043F%u043A%u0430%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u0431%u0435%u0437%20%u0437%u0430%u043F%u0440%u043E%u0441%u0430%3A%20%22%20+%20folder%3B%0A%7D%3B%0A%0A%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0432%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u0443%u044E%20%u043F%u0430%u043F%u043A%u0443%20%u0438%u043B%u0438%20%u0432%20%u043F%u043E%u0441%u043B%u0435%u0434%u043D%u044E%u044E%20%u043F%u0430%u043F%u043A%u0443%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20..............%0Afunction%20saveShortcuts%28saveAs%2C%20shortcutName%29%20%7B%0A%20%20%20var%20url%20%3D%20content.document.location%3B%0A%20%20%20cbu.isPref%28pref%2C%20disk%20+%20%22%3A%5C%5C%22%29%3B%0A%0A%20%20%20//%20%u0431%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u0435%20%u044F%u0440%u043B%u044B%u043A%u043E%u0432%20%u0434%u043B%u044F%20%u0432%u043D%u0443%u0442%u0440%u0435%u043D%u043D%u0438%u0445%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%20FF%0A%20%20%20if%20%28%20%5B%22about%3A%22%2C%20%22chrome%3A%22%2C%20%22jar%3A%22%2C%20%22data%3A%22%5D.indexOf%28url.protocol%29%20%21%3D%3D%20-1%20%29%20%7B%20%20%20%0A%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20self.label%2C%20%22%u041D%u0435%20%u043F%u043E%u0434%u0434%u0435%u0440%u0436%u0438%u0432%u0430%u0435%u0442%u0441%u044F%22%29%3B%0A%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%0A%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u044F%u0440%u043B%u044B%u043A%u0430%20%0A%20%20%20if%20%28%20saveAs%20%29%20shortcutName%20%3D%20setPathToShortcut%28shortcutName%29%0A%20%20%20else%20%0A%20%20%20%20%20%20%20%20shortcutName%20%3D%20shortcutName%20%3F%20shortcutName%20%3A%20getSiteName%28%29%20+%20getTabLabel%28%29%20+%20%22%20%22%20+%20Date.now%28%29%3B%0A%20%20%20if%20%28%20saveAs%20%26%26%20shortcutName%20%3D%3D%20false%20%29%20return%3B%0A%20%20%20%0A%20%20%20//%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0442%u0430%u0431%u0430%20%u0432%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u043D%u0443%u044E%20%u043F%u0430%u043F%u043A%u0443%0A%20%20%20var%20faviconName%20%3D%20%22favicon%22%20+%20Date.now%28%29%3B%0A%20%20%20var%20favicon%20%3D%20saveFaviconToFolder%28faviconName%29%3B%0A%20%0A%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u044F%u0440%u043B%u044B%u043A%u0430%20%u0438%u0437%20%27about%3Aconfig%27%20%0A%20%20%20var%20pathToFolder%20%3D%20gPrefService.getComplexValue%28pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20var%20pathToShortcut%20%3D%20pathToFolder%20+%20shortcutName%20+%20%22.url%22%3B%0A%20%20%20%20%20%20%20%0A%20%20%20//%20%u0430%u0434%u0440%u0435%u0441%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0432%20UTF-8%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20%u043F%u0440%u043E%u0442%u043E%u043A%u043E%u043B%20%27file%27%20%u0438%u043B%u0438%20%u0432%20%27Punycode%27%20%u0435%u0441%u043B%u0438%20%u044D%u0442%u043E%20.%u0440%u0444%20%u0434%u043E%u043C%u0435%u043D%0A%20%20%20if%20%28%20url.protocol%20%3D%3D%20%27file%3A%27%20%29%20url%20%3D%20convertFromUnicode%28%22UTF-8%22%2C%20url%29%3B%20%20%20%0A%20%20%20if%20%28%20url.host.slice%28-3%29%20%3D%3D%20%27.%u0440%u0444%27%29%20url%20%3D%20Services.io.newURI%28url%2C%20null%2C%20null%29.asciiSpec%3B%0A%20%20%20%20%20%0A%20%20%20//%20%u0442%u0435%u043A%u0441%u0442%20%u044F%u0440%u043B%u044B%u043A%u0430%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%20%u043F%u0443%u0442%u0438%20%u043A%20%u0438%u043A%u043E%u043D%u043A%u0435%20%u0442%u0430%u0431%u0430%20%20%20%20%0A%20%20%20var%20text%20%3D%20%22%5BInternetShortcut%5D%22%20+%20%22%5Cr%5Cn%22%20+%20%22URL%3D%22%20+%20url%3B%0A%20%20%20var%20pathToFavicon%20%3D%20%22IconFile%3D%22%20+%20disk%20+%20%22%3A%5C%5CDocuments%20and%20Settings%5C%5CFavicon%5C%5C%22%20+%20faviconName%20+%20%22.ico%22%20+%20%22%5Cr%5Cn%22%3B%0A%20%20%20if%20%28%20favicon%20%3D%3D%20false%20%29%20var%20pathToFavicon%20%3D%20%22%22%3B%0A%20%20%20var%20data%20%3D%20text%20+%20%22%5Cr%5Cn%22%20+%20pathToFavicon%20+%20%22IconIndex%3D0%22%3B%20%20%20%20%20%20%0A%0A%20%20%20//%20%u0437%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044F%u0440%u043B%u044B%u043A%0A%20%20%20custombuttonsUtils.writeFile%28pathToShortcut%2C%20data%29%3B%0A%0A%20%20%20//%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20....%0A%20%20%20var%20notification%20%3D%20%27%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u043B%20%u0432%3A%20%27%20+%20pathToFolder%3B%0A%20%20%20var%20image%20%3D%20%28favicon%20%3D%3D%20false%29%20%3F%20self.image%20%3A%20gBrowser.selectedBrowser.mIconURL%3B%0A%20%20%20alertsService.showAlertNotification%28image%2C%20shortcutName%2C%20notification%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0430%20%u043F%u0443%u0442%u0438%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u044F%u0440%u043B%u044B%u043A%u0430%20%u0447%u0435%u0440%u0435%u0437%20%u0434%u0438%u0430%u043B%u043E%u0433%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%2C%20%u043E%u0442%u043C%u0435%u043D%u0430%20%u043E%u0442%u0434%u0430%u0441%u0442%20%27false%27%20..............%0Afunction%20setPathToShortcut%28shortcutName%29%20%7B%20%20%20%20%20%0A%20%20%20//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u0440%u0435%u0434%u044B%u0434%u0443%u0449%u0438%u0439%20%u043F%u0443%u0442%u044C%20%u0434%u043B%u044F%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20%u0438%u0437%20%27about%3Aconfig%27%0A%20%20%20var%20pathToFile%20%3D%20gPrefService.getComplexValue%28pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20%0A%20%20%20//%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0434%u043B%u044F%20%u044F%u0440%u043B%u044B%u043A%u0430%0A%20%20%20var%20shortcutName%20%3D%20shortcutName%20%3F%20shortcutName%20%3A%20getSiteName%28%29%20+%20getTabLabel%28%29%20+%20%22%20%22%20+%20Date.now%28%29%3B%0A%0A%20%20%20//%20%u0434%u0438%u0430%u043B%u043E%u0433%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u044F%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20%u043F%u0443%u0442%u0438%20%20%20%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.init%28window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u0433%u0434%u0435%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u044F%u0440%u043B%u044B%u043A%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%21%22%2C%20fp.modeSave%29%3B%0A%20%20%20fp.appendFilters%28fp.filterAll%29%3B%0A%20%20%20fp.defaultString%20%3D%20shortcutName%3B%0A%20%20%20%20%20%0A%20%20%20if%20%28%20fp.show%28%29%20%3D%3D%20fp.returnCancel%20%29%20return%20false%3B%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20//%20%u0443%u0431%u0440%u0430%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0444%u0430%u0439%u043B%u0430%20%u0438%u0437%20%u043F%u0443%u0442%u0438%20%u043A%20%u0444%u0430%u0439%u043B%u0443%20%u0438%20%u0437%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u0432%20%27about%3Aconfig%27%0A%20%20%20var%20filePath%20%3D%20fp.file.path.toString%28%29%3B%0A%20%20%20var%20fileName%20%3D%20fp.file.leafName.toString%28%29%3B%0A%20%20%20cbu.setPrefs%28pref%2C%20convertFromUnicode%28%22UTF-8%22%2C%20filePath.replace%28fileName%2C%20%22%22%29%29%20%29%3B%20%20%20%20%20%20%0A%20%20%20return%20fileName%3B%0A%7D%3B%0A%0A%0A//%20%u0421%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0432%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u0443%u044E%20%u043F%u0430%u043F%u043A%u0443%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0442%u0430%u0431%u0430%20%u043A%u0430%u043A%20.ico%20%u0438%20%u0431%u0435%u0437%20%u0434%u0438%u0430%u043B%u043E%u0433%u0430%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u0438%u044F%20..............%0Afunction%20saveFaviconToFolder%28faviconName%29%20%7B%0A%20%20%20var%20url%20%3D%20gBrowser.mCurrentTab.image.replace%28%22%23-moz-resolution%3D16%2C16%22%2C%22%22%29%3B%0A%20%20%20if%20%28%20%21url%20%7C%7C%20content.document.mozSyntheticDocument%20%29%20return%20false%3B%0A%20%20%20if%20%28%20url.startsWith%28%22http%22%29%20%29%20url%20%3D%20%22moz-anno%3Afavicon%3A%22%20+%20url%3B%0A%0A%20%20%20var%20img%20%3D%20new%20Image%28%29%3B%0A%20%20%20img.onload%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20var%20tools%20%3D%20Cc%5B%22@mozilla.org/image/tools%3B1%22%5D.getService%28Ci.imgITools%29%3B%0A%20%20%20%20%20%20%20var%20stream%20%3D%20Cc%5B%22@mozilla.org/scriptableinputstream%3B1%22%5D.createInstance%28Ci.nsIScriptableInputStream%29%3B%0A%20%20%20%20%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%0A%20%20%20%20%20%20%20var%20request%20%3D%20img.QueryInterface%28Ci.nsIImageLoadingContent%29.getRequest%28img.CURRENT_REQUEST%29%3B%0A%20%20%20%20%20%20%20var%20istrm%20%3D%20tools.encodeImage%28request.image%2C%20%22image/vnd.microsoft.icon%22%2C%20%22format%3Dbmp%3Bbpp%3D32%22%29%3B%0A%20%20%20%20%20%20%20stream.init%28istrm%29%3B%0A%20%20%20%20%20%20%20var%20data%20%3D%20stream.readBytes%28stream.available%28%29%29%3B%0A%20%20%20%20%20%20%20istrm.close%28%29%3B%20stream.close%28%29%3B%0A%0A%20%20%20%20%20%20%20var%20path%20%3D%20disk%20+%20%22%3A%5C%5CDocuments%20and%20Settings%5C%5CFavicon%5C%5C%22%20+%20faviconName%20+%20%22.ico%22%3B%0A%20%20%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20%20%20%20file.exists%28%29%20%26%26%20file.remove%28false%29%3B%0A%20%20%20%20%20%20%20try%20%7B%20file.create%28file.NORMAL_FILE_TYPE%2C%20448%29%20%7D%20%0A%20%20%20%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u041D%u0435%20%u043C%u043E%u0433%u0443%20%u0441%u043E%u0445%u0440%u0430%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u043D%u0430%20%u0434%u0438%u0441%u043A%u0435%3A%20%22%20+%20disk%20+%20%22%5Cn%22%20+%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u0432%20%u043D%u0430%u0447%u0430%u043B%u0435%20%u043A%u043E%u0434%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0434%u0440%u0443%u0433%u043E%u0439%20%u0434%u0438%u0441%u043A%21%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%2C%202500%29%3B%0A%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20cbu.writeFile%28path%2C%20data%29%3B%0A%20%20%20%7D%0A%20%20%20img.setAttribute%28%22src%22%2C%20url%29%3B%0A%7D%3B%0A%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20.............%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0434%u043E%u043C%u0435%u043D%u0430%20%u0441%20%u0437%u0430%u0433%u043B%u0430%u0432%u043D%u044B%u043C%20%u043F%u0435%u0440%u0432%u044B%u043C%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u043C%20%u0438%20%u0431%u0435%u0437%20%u043F%u0440%u0438%u0441%u0442%u0430%u0432%u043E%u043A%28%20%u0442%u0438%u043F%u0430%20.ru%20%u0438%20.com%20%29%20..............%0Afunction%20getSiteName%28%29%20%7B%0A%20%20%20try%20%7B%20var%20domain%20%3D%20content.document.domain.split%28%27.%27%29%20%7D%20catch%28e%29%20%7B%20return%20%22%22%20%7D%3B%0A%20%20%20domain%20%3D%20%28domain.length%20%3D%3D%202%29%20%3F%20domain%5B0%5D%20%3A%20domain%5B1%5D%0A%20%20%20return%20domain.charAt%280%29.toUpperCase%28%29%20+%20domain.slice%281%29.split%28%27.%27%29%5B0%5D%20+%20%22%20%22%3B%20%20%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0431%u0435%u0437%20%u043D%u0435%20%u0441%u043E%u0445%u0440%u0430%u043D%u044F%u0435%u043C%u044B%u0445%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0438%20%u043B%u0438%u0448%u043D%u0438%u0445%20%u043F%u0440%u043E%u0431%u0435%u043B%u043E%u0432%20..............%0Afunction%20getTabLabel%28%29%20%7B%20%0A%20%20%20var%20label%20%3D%20gBrowser.mCurrentTab.label%3B%20%20%20%20%20%20%0A%20%20%20var%20label%20%3D%20label.replace%28/%5B%3A.%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%22%20%22%29.replace%28/%5Cs%5Cs+/g%2C%20%22%20%22%29%3B%0A%20%20%20return%20label.substring%280%2C%2050%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%2C%20%u0435%u0441%u043B%u0438%20%u043D%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%u0430%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%27false%27%20..............%0Afunction%20getSelect%28%29%20%7B%0A%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29.toString%28%29%3B%20//%20%u0438%u0437%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0A%20%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20%7B%20%20%20%20%0A%20%20%20%20%20%20%20var%20el%20%3D%20document.commandDispatcher.focusedElement%3B%20//%20%u0438%u0437%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0433%u043E%20%u043F%u043E%u043B%u044F%0A%20%20%20%20%20%20%20if%20%28%20el%20%26%26%20el.textLength%20%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20sel%20%3D%20el.value.substring%28el.selectionStart%2C%20el.selectionEnd%29%3B%20%20%0A%20%20%20%20%20%20%20%7D%0A%20%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20sel%20%3D%20gClipboard.read%28%29%3B%20//%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20if%20%28%20sel%20%3D%3D%20%27%27%20%29%20alertsService.showAlertNotification%28%22chrome%3A//global/skin/icons/error-16.png%22%2C%20self.label%2C%20%22%u0412%u044B%u0434%u0435%u043B%u0438%u0442%u0435%20%u0438%u043B%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u0443%u0439%u0442%u0435%20%u0442%u0435%u043A%u0441%u0442%21%22%29%3B%0A%20%20%0A%20%20%20return%20%28%20sel%20%3D%3D%20%27%27%20%29%20%3F%20false%20%3A%20sel.replace%28/%5B%3A.%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%22%20%22%29.toString%28%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%22%22%29%3B%20//%20%u0437%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0435%u0434%u043E%u043F%u0443%u0441%u0442%u0438%u043C%u044B%u0435%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043B%u0438%u0448%u043D%u0438%u0435%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Большое спасибо Dumby за помощь с кнопкой.

Отредактировано bunda1 (07-03-2014 19:52:08)

Отсутствует

 

№10525-11-2012 00:15:30

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 17.0

Re: Готовые кнопки для Custom Buttons

Tetris (c)

скрытый текст

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ETetris%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABeElEQVR42o2TzUrDQBSFz8QgtNBVS9di6K4LwZ0g+iju270+gq4EfZqu2oKULkTEhd2JG6PELpqG1vlLxrnTH6ykmknChMOdL/eee8NaN63reBYfZCYDLZMZlHfLkJlEmqVbNRh7K/PoT2aT4+Hz8FAoAc/zoL4UGvUGxmqM6Xy6VTOpgfpUFd8Yk0glsQLQu9YaUv+tEUAKmfiMMTCPOdE9bLH/p9kPu92XUlaIBlsaiVQb5xxCCMgvuchASNg458Uqzp0BKqx2VDvTqd7DctHBYD84rdarJ1ppgMFBoo+oH4Zhz9uxmZC4MPeVIWe1b9vn3afuJRfcHYZtUPwSX0R30dXvWD8PYGstxUm8YZiQopQXmwugWtcGLg0jswsDkiRxBlL7HMAClVLFAeFbiKAauI44v6g5NYPBw6AYoNlsonPf2fTgXRTPgFJPZgm44msAj3lxwLapKwywk1j6OZ3LqSvexn6vP5pP5z36xWnqDF3GjPJivwH38hbq/xF5SwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0Awindow.open%28%27data%3Atext/html%3Bbase64%2CPGh0bWw+DQoJPGhlYWQ+DQoJCTx0aXRsZT5UZXRyaXM8L3RpdGxlPg0KCQk8bWV0YSBuYW1lPSJhdXRob3IiIGNvbnRlbnQ9Imh0dHA6Ly9lbGJlcnRmLmNvbS90ZXRyaXMvIj4NCgkJPHN0eWxlIHR5cGU9InRleHQvY3NzIj4jdGV0cmlzICp7YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtmb250LXNpemU6MWVtO2ZvbnQtd2VpZ2h0OmluaGVyaXQ7Zm9udC1mYW1pbHk6J1RyZWJ1Y2hldCBNUycsVmVyZGFuYSxBcmlhbDtsaW5lLWhlaWdodDoxLjRlbTtsaXN0LXN0eWxlOm5vbmUgaW5zaWRlO21hcmdpbjowO3BhZGRpbmc6MDt0ZXh0LWFsaWduOmluaGVyaXQ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7fSN0ZXRyaXN7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZy10b3A6LjVlbTt9I3RldHJpcyBhOmxpbmssI3RldHJpcyBhOmhvdmVyLCN0ZXRyaXMgYTphY3RpdmUsI3RldHJpcyBhOnZpc2l0ZWR7Y29sb3I6IzIwMjt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30jdGV0cmlzIHN0cm9uZ3tmb250LXdlaWdodDpib2xkO30jdGV0cmlzIC5jbGVhcntjbGVhcjpib3RoO30jdGV0cmlzLXdyYXB7bWFyZ2luOi4yZW0gYXV0byAwIGF1dG87cG9zaXRpb246cmVsYXRpdmU7dGV4dC1hbGlnbjpyaWdodDt3aWR0aDo0NTZweDt9I3RldHJpcy13cmFwLWlubmVye2JvcmRlcjoycHggc29saWQgIzMxMzttYXJnaW4tYm90dG9tOi4yZW07fSN0ZXRyaXMtbWFpbiwjdGV0cmlzLW92ZXJsYXksI3RldHJpcy1zaWRle2hlaWdodDo2MDBweDt9I3RldHJpcy1tYWluLCN0ZXRyaXMtb3ZlcmxheXt3aWR0aDozMDBweDt9I3RldHJpcy1tYWlue2JhY2tncm91bmQ6IzIwMjtmbG9hdDpsZWZ0O292ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTt9I3RldHJpcy1vdmVybGF5e3Bvc2l0aW9uOmFic29sdXRlO30jdGV0cmlzLW1lc3NhZ2V7Zm9udC1zaXplOjJlbTt0ZXh0LWFsaWduOmNlbnRlcjt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7fSN0ZXRyaXMtbWVzc2FnZSBwe2NvbG9yOiNGRkY7cGFkZGluZzouNWVtO30jdGV0cmlzLW1lc3NhZ2UgcCBzcGFue2Rpc3BsYXk6YmxvY2s7Zm9udC1zaXplOi41ZW07Zm9udC1zdHlsZTppdGFsaWM7dGV4dC10cmFuc2Zvcm06bm9uZTt9I3RldHJpcy1zaWRle2JhY2tncm91bmQ6IzMxMztjb2xvcjojRkZGO2Zsb2F0OnJpZ2h0O3RleHQtYWxpZ246bGVmdDt3aWR0aDoxNTJweDt9I3RldHJpcy1zaWRlLWlubmVye3BhZGRpbmc6MTZweDt9I3RldHJpcy1zaWRlIGRse2NsZWFyOmJvdGg7fSN0ZXRyaXMtc2lkZSBkdHtmbG9hdDpsZWZ0O30jdGV0cmlzLXNpZGUgZGR7ZmxvYXQ6cmlnaHQ7Zm9udC1mYW1pbHk6R2VvcmdpYSxzZXJpZjt9ZGQjdGV0cmlzLWxldmVsLGRkI3RldHJpcy1zY29yZXttYXJnaW4tYm90dG9tOjFlbTt9I3RldHJpcy1uZXh0e2JhY2tncm91bmQ6IzIwMjtwb3NpdGlvbjpyZWxhdGl2ZTtoZWlnaHQ6MTIwcHg7bWFyZ2luLWJvdHRvbToxZW07d2lkdGg6MTIwcHg7fSN0ZXRyaXMtbmV4dC1pbm5lcntwYWRkaW5nOjFlbTt9I3RldHJpcy1rZXlze2NvbG9yOiM5Nzk7Zm9udC1zaXplOi44ZW07bWFyZ2luLXRvcDoxZW07fTwvc3R5bGU+DQoJCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij52YXIgdGV0cmlzPXticmlja1NpemU6MzAsYnJpY2tCb3JkZXJTaXplOjIsbWFpbldpbldpZHRoOjEwLG1haW5XaW5IZWlnaHQ6MjAsbGV2ZWxVcFNjb3JlOjE1MCxsZXZlbDoxLHNjb3JlOjAsc2luZ2xlczowLGRvdWJsZXM6MCx0cmlwbGVzOjAscXVhZHM6MCxicmlja3M6W10scGlsZTpbXSxwaWxlQW5pbUxpbmU6W10scGlsZUFuaW1Ecm9wOltdLGdhbWVTdGFydDp0cnVlLGdhbWVPdmVyOmZhbHNlLHBhdXNlZDpmYWxzZSxrZXlQcmVzc2VkOmZhbHNlLHNoYXBlQ291bnQ6MCxrZXlEcm9wOjMyLGtleUxlZnQ6Mzcsa2V5Um90YXRlOjM4LGtleVJpZ2h0OjM5LGtleURvd246NDAsa2V5UGF1c2U6MTksa2V5U3RvcDoyNyxpbml0OmZ1bmN0aW9uKCl7dGV0cmlzLm1haW5XaW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1tYWluIik7dGV0cmlzLm5leHRXaW49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1uZXh0LWlubmVyIik7dGV0cmlzLm1lc3NhZ2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1tZXNzYWdlIik7dGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MPSI8cD5OZXcgZ2FtZSA8c3Bhbj5QcmVzcyBhbnkga2V5IHRvIHN0YXJ0PC9zcGFuPjwvcD4iO2RvY3VtZW50Lm9ua2V5ZG93bj10ZXRyaXMua2V5TGlzdGVuZXJ9LG5ld0dhbWU6ZnVuY3Rpb24oKXtmb3IodmFyIEI9MDtCPHRldHJpcy5tYWluV2luV2lkdGg7QisrKXtpZighdGV0cmlzLnBpbGVbQl0pe3RldHJpcy5waWxlW0JdPVtdfXRldHJpcy5waWxlQW5pbUxpbmVbQl09W107dGV0cmlzLnBpbGVBbmltRHJvcFtCXT1bXTtmb3IodmFyIEE9MDtBPHRldHJpcy5tYWluV2luSGVpZ2h0O0ErKyl7aWYodGV0cmlzLnBpbGVbQl1bQV0pe3RldHJpcy5tYWluV2luLnJlbW92ZUNoaWxkKHRldHJpcy5waWxlW0JdW0FdKX10ZXRyaXMucGlsZVtCXVtBXT1mYWxzZTt0ZXRyaXMucGlsZUFuaW1MaW5lW0JdW0FdPWZhbHNlO3RldHJpcy5waWxlQW5pbURyb3BbQl1bQV09ZmFsc2V9fXRldHJpcy5sZXZlbD0xO3RldHJpcy5zY29yZT0wO3RldHJpcy5zaW5nbGVzPTA7dGV0cmlzLmRvdWJsZXM9MDt0ZXRyaXMudHJpcGxlcz0wO3RldHJpcy5xdWFkcz0wO3RldHJpcy51cGRhdGVTY29yZSgpO3RldHJpcy5uZXdTaGFwZSgpfSxuZXdTaGFwZTpmdW5jdGlvbigpe3RldHJpcy5zaGFwZUNvdW50Kys7dGV0cmlzLnNoYXBlTnVtPXR5cGVvZiAodGV0cmlzLnNoYXBlTnVtTmV4dCkhPSJ1bmRlZmluZWQiP3RldHJpcy5zaGFwZU51bU5leHQ6TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjYpO3RldHJpcy5zaGFwZU51bU5leHQ9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjcpO3RldHJpcy5zaGFwZVJvdD10eXBlb2YgKHRldHJpcy5zaGFwZVJvdE5leHQpIT0idW5kZWZpbmVkIj90ZXRyaXMuc2hhcGVSb3ROZXh0Ok1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KTt0ZXRyaXMuc2hhcGVSb3ROZXh0PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSo0KTt0ZXRyaXMuc2hhcGVQb3NIb3I9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKih0ZXRyaXMubWFpbldpbldpZHRoLTYpKSszO3RldHJpcy5zaGFwZVBvc1Zlcj0tMTt0ZXRyaXMuZHJhd1NoYXBlKCk7dGV0cmlzLmRyYXdOZXh0KCk7dGV0cmlzLnNoYXBlTGFuZGVkPWZhbHNlO2NsZWFySW50ZXJ2YWwodGV0cmlzLmludHZhbCk7dGV0cmlzLmludHZhbD1zZXRJbnRlcnZhbCgidGV0cmlzLnRpbWVTdGVwKCkiLDIwMDAvdGV0cmlzLmxldmVsKX0sbmV3QnJpY2s6ZnVuY3Rpb24oQixELEEpe3ZhciBDPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0Muc2V0QXR0cmlidXRlKCJzdHlsZSIsImJhY2tncm91bmQ6ICIrQisiOyBib3JkZXItY29sb3I6ICIrRCsiICIrQSsiICIrQSsiICIrRCsiOyBib3JkZXItd2lkdGg6ICIrdGV0cmlzLmJyaWNrQm9yZGVyU2l6ZSsicHg7IGJvcmRlci1zdHlsZTogc29saWQ7IGhlaWdodDogIisodGV0cmlzLmJyaWNrU2l6ZS10ZXRyaXMuYnJpY2tCb3JkZXJTaXplKjIpKyJweDsgbGVmdDogMDsgdG9wOiAwOyB3aWR0aDogIisodGV0cmlzLmJyaWNrU2l6ZS10ZXRyaXMuYnJpY2tCb3JkZXJTaXplKjIpKyI7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiKTtyZXR1cm4gQ30sZHJhd1NoYXBlOmZ1bmN0aW9uKCl7dmFyIEQ9MCxCPXRydWU7dGV0cmlzLmJyaWNrUG9zPVtdO2Zvcih2YXIgQT0wO0E8NDtBKyspe2Zvcih2YXIgRj0wO0Y8NDtGKyspe2lmKHRldHJpcy5icmlja0xpYlt0ZXRyaXMuc2hhcGVOdW1dW0EqNCtGK3RldHJpcy5zaGFwZVJvdCoxNl0pe3RldHJpcy5icmlja1Bvc1tEXT17aG9yOkYrdGV0cmlzLnNoYXBlUG9zSG9yLHZlcjpBK3RldHJpcy5zaGFwZVBvc1Zlcn07aWYodGV0cmlzLmNvbGxpc2lvbih0ZXRyaXMuYnJpY2tQb3NbRF0uaG9yLHRldHJpcy5icmlja1Bvc1tEXS52ZXIpKXtCPWZhbHNlfUQrK319fWlmKEImJiF0ZXRyaXMucGF1c2VkJiYhdGV0cmlzLmdhbWVPdmVyKXt2YXIgRT10ZXRyaXMuYnJpY2tzP3RldHJpcy5icmlja3Muc2xpY2UoMCk6ZmFsc2U7Zm9yKHZhciBDPTA7QzxEO0MrKyl7dGV0cmlzLmJyaWNrc1tDXT10ZXRyaXMubmV3QnJpY2sodGV0cmlzLmJyaWNrTGliW3RldHJpcy5zaGFwZU51bV1bNjRdLHRldHJpcy5icmlja0xpYlt0ZXRyaXMuc2hhcGVOdW1dWzY1XSx0ZXRyaXMuYnJpY2tMaWJbdGV0cmlzLnNoYXBlTnVtXVs2Nl0pO3RldHJpcy5icmlja3NbQ10ubnVtPXRldHJpcy5zaGFwZUNvdW50O3RldHJpcy5icmlja3NbQ10uc3R5bGUubGVmdD10ZXRyaXMuYnJpY2tQb3NbQ10uaG9yKnRldHJpcy5icmlja1NpemUrInB4Ijt0ZXRyaXMuYnJpY2tzW0NdLnN0eWxlLnRvcD10ZXRyaXMuYnJpY2tQb3NbQ10udmVyKnRldHJpcy5icmlja1NpemUrInB4In1mb3IodmFyIEM9MDtDPEQ7QysrKXt0ZXRyaXMubWFpbldpbi5hcHBlbmRDaGlsZCh0ZXRyaXMuYnJpY2tzW0NdKX1mb3IodmFyIEM9MDtDPEQ7QysrKXtpZihFW0NdJiZFW0NdLm51bT09dGV0cmlzLnNoYXBlQ291bnQpe3RldHJpcy5tYWluV2luLnJlbW92ZUNoaWxkKEVbQ10pfX10ZXRyaXMucHJldlNoYXBlUm90PXRldHJpcy5zaGFwZVJvdDt0ZXRyaXMucHJldlNoYXBlUG9zSG9yPXRldHJpcy5zaGFwZVBvc0hvcjt0ZXRyaXMucHJldlNoYXBlUG9zVmVyPXRldHJpcy5zaGFwZVBvc1Zlcjt0ZXRyaXMucHJldkJyaWNrUG9zPXRldHJpcy5icmlja1Bvcy5zbGljZSgwKX1lbHNle3RldHJpcy5zaGFwZVJvdD10ZXRyaXMucHJldlNoYXBlUm90O3RldHJpcy5zaGFwZVBvc0hvcj10ZXRyaXMucHJldlNoYXBlUG9zSG9yO3RldHJpcy5zaGFwZVBvc1Zlcj10ZXRyaXMucHJldlNoYXBlUG9zVmVyO3RldHJpcy5icmlja1Bvcz10ZXRyaXMucHJldkJyaWNrUG9zLnNsaWNlKDApfX0sZHJhd05leHQ6ZnVuY3Rpb24oKXt0ZXRyaXMubmV4dFdpbi5pbm5lckhUTUw9IiI7Zm9yKHZhciBBPTA7QTw0O0ErKyl7Zm9yKHZhciBCPTA7Qjw0O0IrKyl7aWYodGV0cmlzLmJyaWNrTGliW3RldHJpcy5zaGFwZU51bU5leHRdW0EqNCtCK3RldHJpcy5zaGFwZVJvdE5leHQqMTZdKXticmljaz10ZXRyaXMubmV3QnJpY2sodGV0cmlzLmJyaWNrTGliW3RldHJpcy5zaGFwZU51bU5leHRdWzY0XSx0ZXRyaXMuYnJpY2tMaWJbdGV0cmlzLnNoYXBlTnVtTmV4dF1bNjVdLHRldHJpcy5icmlja0xpYlt0ZXRyaXMuc2hhcGVOdW1OZXh0XVs2Nl0pO2JyaWNrLnN0eWxlLmxlZnQ9Qip0ZXRyaXMuYnJpY2tTaXplKyJweCI7YnJpY2suc3R5bGUudG9wPUEqdGV0cmlzLmJyaWNrU2l6ZSsicHgiO3RldHJpcy5uZXh0V2luLmFwcGVuZENoaWxkKGJyaWNrKX19fX0sY29sbGlzaW9uOmZ1bmN0aW9uKEIsQSl7aWYoQjwwKXtpZih0ZXRyaXMua2V5UHJlc3NlZD09dGV0cmlzLmtleVJvdGF0ZSl7aWYoIXRldHJpcy5jb2xsaXNpb24oQisxLEEpKXt0ZXRyaXMuc2hhcGVQb3NIb3IrKzt0ZXRyaXMuZHJhd1NoYXBlKCk7cmV0dXJuIHRydWV9ZWxzZXt0ZXRyaXMuc2hhcGVSb3QtLTtyZXR1cm4gdHJ1ZX19cmV0dXJuIHRydWV9aWYoQj49dGV0cmlzLm1haW5XaW5XaWR0aCl7aWYodGV0cmlzLmtleVByZXNzZWQ9PXRldHJpcy5rZXlSb3RhdGUpe2lmKCF0ZXRyaXMuY29sbGlzaW9uKEItMSxBKSl7dGV0cmlzLnNoYXBlUG9zSG9yLS07dGV0cmlzLmRyYXdTaGFwZSgpO3JldHVybiB0cnVlfWVsc2V7dGV0cmlzLnNoYXBlUm90LS07cmV0dXJuIHRydWV9fXJldHVybiB0cnVlfWlmKEE+PXRldHJpcy5tYWluV2luSGVpZ2h0KXtpZih0ZXRyaXMua2V5UHJlc3NlZCE9dGV0cmlzLmtleVJvdGF0ZSl7dGV0cmlzLnNoYXBlUG9zVmVyLS19dGV0cmlzLnNoYXBlTGFuZGVkPXRydWU7cmV0dXJuIHRydWV9aWYodGV0cmlzLnBpbGVbQl1bQV0pe2lmKHRldHJpcy5zaGFwZVBvc1Zlcj50ZXRyaXMucHJldlNoYXBlUG9zVmVyKXt0ZXRyaXMuc2hhcGVMYW5kZWQ9dHJ1ZX1yZXR1cm4gdHJ1ZX1yZXR1cm4gZmFsc2V9LHRpbWVTdGVwOmZ1bmN0aW9uKCl7dGV0cmlzLnNoYXBlUG9zVmVyKys7dGV0cmlzLmRyYXdTaGFwZSgpO2lmKHRldHJpcy5zaGFwZUxhbmRlZCl7Zm9yKHZhciBFIGluIHRldHJpcy5icmlja3Mpe3RldHJpcy5waWxlW3RldHJpcy5icmlja1Bvc1tFXS5ob3JdW3RldHJpcy5icmlja1Bvc1tFXS52ZXJdPXRldHJpcy5icmlja3NbRV19dmFyIEM9MDtmb3IodmFyIEE9MDtBPHRldHJpcy5tYWluV2luSGVpZ2h0O0ErKyl7dmFyIEI9dHJ1ZTtmb3IodmFyIEY9MDtGPHRldHJpcy5tYWluV2luV2lkdGg7RisrKXtpZighdGV0cmlzLnBpbGVbRl1bQV0pe0I9ZmFsc2V9fWlmKEIpe0MrKztmb3IodmFyIEY9MDtGPHRldHJpcy5tYWluV2luV2lkdGg7RisrKXtpZih0ZXRyaXMucGlsZVtGXVtBXSl7dGV0cmlzLnBpbGVBbmltTGluZVtGXVtBXT10ZXRyaXMucGlsZVtGXVtBXTtzZXRUaW1lb3V0KCJ0ZXRyaXMubWFpbldpbi5yZW1vdmVDaGlsZCh0ZXRyaXMucGlsZUFuaW1MaW5lWyIrRisiXVsiK0ErIl0pOyIsRio1MCk7dGV0cmlzLnBpbGVbRl1bQV09ZmFsc2V9fWZvcih2YXIgRj0wO0Y8dGV0cmlzLm1haW5XaW5XaWR0aDtGKyspe2Zvcih2YXIgRD1BO0Q+MDtELS0pe2lmKHRldHJpcy5waWxlW0ZdW0RdKXt0ZXRyaXMucGlsZUFuaW1Ecm9wW0ZdW0RdPXRldHJpcy5waWxlW0ZdW0RdO3NldFRpbWVvdXQoInRldHJpcy5waWxlQW5pbURyb3BbIitGKyJdWyIrRCsiXS5zdHlsZS50b3AgPSAoICIrRCsiICsgMSApICogdGV0cmlzLmJyaWNrU2l6ZSArICdweCc7Iix0ZXRyaXMubWFpbldpbldpZHRoKjUwKTt0ZXRyaXMucGlsZVtGXVtEKzFdPXRldHJpcy5waWxlW0ZdW0RdO3RldHJpcy5waWxlW0ZdW0RdPWZhbHNlfX19fX10ZXRyaXMudXBkYXRlU2NvcmUoQyk7Zm9yKHZhciBGPTA7Rjx0ZXRyaXMubWFpbldpbldpZHRoO0YrKyl7aWYodGV0cmlzLnBpbGVbRl1bMF0pe3RldHJpcy5kb0dhbWVPdmVyKCk7cmV0dXJuIH19dGV0cmlzLm5ld1NoYXBlKCl9fSx1cGRhdGVTY29yZTpmdW5jdGlvbihBKXt2YXIgQj10ZXRyaXMuc2NvcmU7aWYoQSl7dGV0cmlzLnNjb3JlKz1BKkErQSoxMH1mb3IoaT1CO2k8dGV0cmlzLnNjb3JlO2krKyl7c2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RldHJpcy1zY29yZScpLmlubmVySFRNTCA9ICciK2krIic7IiwoaS1CKSoyMCl9dGV0cmlzLmxldmVsPU1hdGguZmxvb3IodGV0cmlzLnNjb3JlL3RldHJpcy5sZXZlbFVwU2NvcmUpKzE7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1sZXZlbCIpLmlubmVySFRNTD10ZXRyaXMubGV2ZWw7aWYoQT09MSl7dGV0cmlzLnNpbmdsZXMrKztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV0cmlzLXNpbmdsZXMiKS5pbm5lckhUTUw9dGV0cmlzLnNpbmdsZXN9aWYoQT09Mil7dGV0cmlzLmZsYXNoTWVzc2FnZSgnPHAgY2xhc3M9InRldHJpcy1kb3VibGUiPkRvdWJsZSE8L3A+Jyk7dGV0cmlzLmRvdWJsZXMrKztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV0cmlzLWRvdWJsZXMiKS5pbm5lckhUTUw9dGV0cmlzLmRvdWJsZXN9aWYoQT09Myl7dGV0cmlzLmZsYXNoTWVzc2FnZSgnPHAgY2xhc3M9InRldHJpcy1kb3VibGUiPlRyaXBsZSE8L3A+Jyk7dGV0cmlzLnRyaXBsZXMrKztkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGV0cmlzLXRyaXBsZXMiKS5pbm5lckhUTUw9dGV0cmlzLnRyaXBsZXN9aWYoQT09NCl7dGV0cmlzLmZsYXNoTWVzc2FnZSgnPHAgY2xhc3M9InRldHJpcy1kb3VibGUiPlRldHJpcyE8L3A+Jyk7dGV0cmlzLnF1YWRzKys7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRldHJpcy1xdWFkcyIpLmlubmVySFRNTD10ZXRyaXMucXVhZHN9fSxmbGFzaE1lc3NhZ2U6ZnVuY3Rpb24oQSl7dGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MPUE7c2V0VGltZW91dCgidGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MID0gJyc7IiwxMDAwKX0sZG9HYW1lT3ZlcjpmdW5jdGlvbigpe2NsZWFySW50ZXJ2YWwodGV0cmlzLmludHZhbCk7dGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MPSI8cD5HYW1lIG92ZXIgPHNwYW4+UHJlc3MgU3BhY2ViYXIgdG8gY29udGludWU8L3NwYW48L3A+Ijt0ZXRyaXMuZ2FtZU92ZXI9dHJ1ZX0sa2V5TGlzdGVuZXI6ZnVuY3Rpb24oQSl7aWYoIUEpe0E9d2luZG93LmV2ZW50fXRldHJpcy5rZXlQcmVzc2VkPUEua2V5Q29kZTtpZih0ZXRyaXMuZ2FtZVN0YXJ0KXt0ZXRyaXMuZ2FtZVN0YXJ0PWZhbHNlO3RldHJpcy5tZXNzYWdlLmlubmVySFRNTD0iIjt0ZXRyaXMubmV3R2FtZSgpfWVsc2V7aWYodGV0cmlzLmdhbWVPdmVyJiZBLmtleUNvZGU9PXRldHJpcy5rZXlEcm9wKXt0ZXRyaXMuZ2FtZU92ZXI9ZmFsc2U7dGV0cmlzLm1lc3NhZ2UuaW5uZXJIVE1MPSIiO3RldHJpcy5uZXdHYW1lKCl9ZWxzZXtpZighdGV0cmlzLmdhbWVPdmVyKXtpZihBLmtleUNvZGU9PXRldHJpcy5rZXlTdG9wfHxBLmtleUNvZGU9PXRldHJpcy5rZXlQYXVzZSl7dGV0cmlzLnBhdXNlZD0hdGV0cmlzLnBhdXNlZDtpZih0ZXRyaXMucGF1c2VkKXt0ZXRyaXMubWVzc2FnZS5pbm5lckhUTUw9IjxwPlBhdXNlZCA8c3Bhbj5QcmVzcyBFc2MgdG8gcmVzdW1lPC9zcGFuPC9wPiJ9ZWxzZXt0ZXRyaXMubWVzc2FnZS5pbm5lckhUTUw9IiJ9fWlmKCF0ZXRyaXMucGF1c2VkKXtpZihBLmtleUNvZGU9PXRldHJpcy5rZXlEcm9wKXtjbGVhckludGVydmFsKHRldHJpcy5pbnR2YWwpO3RldHJpcy5pbnR2YWw9c2V0SW50ZXJ2YWwoInRldHJpcy50aW1lU3RlcCgpIiwyMCl9aWYoQS5rZXlDb2RlPT10ZXRyaXMua2V5TGVmdCl7dGV0cmlzLnNoYXBlUG9zSG9yLS07dGV0cmlzLmRyYXdTaGFwZSgpfWlmKEEua2V5Q29kZT09dGV0cmlzLmtleVJvdGF0ZSl7dGV0cmlzLnNoYXBlUm90PSh0ZXRyaXMuc2hhcGVSb3QrMSklNDt0ZXRyaXMuZHJhd1NoYXBlKCl9aWYoQS5rZXlDb2RlPT10ZXRyaXMua2V5UmlnaHQpe3RldHJpcy5zaGFwZVBvc0hvcisrO3RldHJpcy5kcmF3U2hhcGUoKX1pZihBLmtleUNvZGU9PXRldHJpcy5rZXlEb3duKXt0ZXRyaXMuc2hhcGVQb3NWZXIrKzt0ZXRyaXMuZHJhd1NoYXBlKCl9fX19fXJldHVybiB0cnVlfSxicmlja0xpYjp7MDpbMSwwLDAsMCwxLDAsMCwwLDEsMSwwLDAsMCwwLDAsMCwxLDEsMSwwLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwxLDAsMCwwLDEsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDEsMSwxLDAsMCwwLDAsMCwiI0Y5MCIsIiNGQzAiLCIjRjYwIl0sMTpbMCwxLDAsMCwwLDEsMCwwLDAsMSwwLDAsMCwxLDAsMCwwLDAsMCwwLDEsMSwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxLDAsMCwwLDEsMCwwLDAsMSwwLDAsMCwwLDAsMCwxLDEsMSwxLDAsMCwwLDAsMCwwLDAsMCwiI0MwMCIsIiNFMDAiLCIjQjAwIl0sMjpbMSwxLDAsMCwxLDAsMCwwLDEsMCwwLDAsMCwwLDAsMCwxLDEsMSwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDEsMCwwLDEsMSwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDEsMSwxLDAsMCwwLDAsMCwiIzBDMCIsIiMwRTAiLCIjMEEwIl0sMzpbMSwwLDAsMCwxLDEsMCwwLDEsMCwwLDAsMCwwLDAsMCwxLDEsMSwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwxLDEsMCwwLDAsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDEsMSwxLDAsMCwwLDAsMCwiIzAwQyIsIiMwMEUiLCIjMDBBIl0sNDpbMSwxLDAsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDEsMCwwLDEsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMSwwLDAsMSwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwxLDAsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwiIzYwQyIsIiM4MEUiLCIjNDBBIl0sNTpbMCwxLDEsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwwLDEsMSwwLDAsMCwxLDAsMCwwLDAsMCwwLDAsMSwxLDAsMSwxLDAsMCwwLDAsMCwwLDAsMCwwLDAsMSwwLDAsMCwxLDEsMCwwLDAsMSwwLDAsMCwwLDAsMCwiI0NDQyIsIiNFRUUiLCIjQUFBIl0sNjpbMSwxLDAsMCwwLDEsMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDEsMCwwLDEsMSwwLDAsMSwwLDAsMCwwLDAsMCwwLDEsMSwwLDAsMCwxLDEsMCwwLDAsMCwwLDAsMCwwLDAsMCwxLDAsMCwxLDEsMCwwLDEsMCwwLDAsMCwwLDAsMCwiI0NDMCIsIiNFRTAiLCIjQUEwIl19LH07d2luZG93Lm9ubG9hZD10ZXRyaXMuaW5pdDs8L3NjcmlwdD4NCgk8aGVhZD4NCgk8Ym9keT4NCgkJPGRpdiBpZD0idGV0cmlzIj4NCgkJCTxkaXYgaWQ9InRldHJpcy13cmFwIj4NCgkJCQk8ZGl2IGlkPSJ0ZXRyaXMtd3JhcC1pbm5lciI+DQoJCQkJCTxkaXYgaWQ9InRldHJpcy1tYWluIj4JCQ0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBpZD0idGV0cmlzLW92ZXJsYXkiPg0KCQkJCQkJPGRpdiBpZD0idGV0cmlzLW1lc3NhZ2UiPjwvZGl2Pg0KCQkJCQk8L2Rpdj4NCgkJCQkJPGRpdiBpZD0idGV0cmlzLXNpZGUiPg0KCQkJCQkJPGRpdiBpZD0idGV0cmlzLXNpZGUtaW5uZXIiPg0KCQkJCQkJCTxkaXYgaWQ9InRldHJpcy1uZXh0Ij4NCgkJCQkJCQkJPGRpdiBpZD0idGV0cmlzLW5leHQtaW5uZXIiPjwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTxkaXYgaWQ9InRldHJpcy1zY29yZXMiPg0KCQkJCQkJCQk8ZGw+DQoJCQkJCQkJCQk8ZHQ+TGV2ZWw6PC9kdD4NCgkJCQkJCQkJCTxkZCBpZD0idGV0cmlzLWxldmVsIj4xPC9kZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PlNjb3JlOjwvZHQ+DQoJCQkJCQkJCQk8ZGQgaWQ9InRldHJpcy1zY29yZSI+MDwvZGQ+DQoJCQkJCQkJCTwvZGw+DQoJCQkJCQkJCTxkbD4NCgkJCQkJCQkJCTxkdD5TaW5nbGVzOjwvZHQ+DQoJCQkJCQkJCQk8ZGQgaWQ9InRldHJpcy1zaW5nbGVzIj4wPC9kZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PkRvdWJsZXM6PC9kdD4NCgkJCQkJCQkJCTxkZCBpZD0idGV0cmlzLWRvdWJsZXMiPjA8L2RkPg0KCQkJCQkJCQk8L2RsPg0KCQkJCQkJCQk8ZGw+DQoJCQkJCQkJCQk8ZHQ+VHJpcGxlczo8L2R0Pg0KCQkJCQkJCQkJPGRkIGlkPSJ0ZXRyaXMtdHJpcGxlcyI+MDwvZGQ+DQoJCQkJCQkJCTwvZGw+DQoJCQkJCQkJCTxkbD4NCgkJCQkJCQkJCTxkdD5UZXRyaXM6PC9kdD4NCgkJCQkJCQkJCTxkZCBpZD0idGV0cmlzLXF1YWRzIj4wPC9kZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRpdiBjbGFzcz0iY2xlYXIiPjwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTxkaXYgaWQ9InRldHJpcy1rZXlzIj4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0Pk1vdmU6PC9kdD4NCgkJCQkJCQkJCTxkZD4mbGFycjsgJmRhcnI7ICZyYXJyOzxkZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PlJvdGF0ZTo8L2R0Pg0KCQkJCQkJCQkJPGRkPiZ1YXJyOzxkZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PkRyb3A6PC9kdD4NCgkJCQkJCQkJCTxkZD5TcGFjZWJhcjxkZD4NCgkJCQkJCQkJPC9kbD4NCgkJCQkJCQkJPGRsPg0KCQkJCQkJCQkJPGR0PlBhdXplOjwvZHQ+DQoJCQkJCQkJCQk8ZGQ+UGF1emUvRXNjPGRkPg0KCQkJCQkJCQk8L2RsPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJjbGVhciI+PC9kaXY+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQk8L2Rpdj4NCgkJCQkJPC9kaXY+DQoJCQkJCTxkaXYgY2xhc3M9ImNsZWFyIj48L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJPC9ib2R5Pg0KPC9odG1sPg%3D%3D%27%2C%27_blank%27%2C%27width%3D500%2Cheight%3D650%2Cleft%3D300%2Ctop%3D100%27%29%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№10626-11-2012 22:30:34

feas
Участник
 
Группа: Extensions
Откуда: от DNS
Зарегистрирован: 25-08-2011
Сообщений: 5213
UA: Firefox 20.0
Веб-сайт

Re: Готовые кнопки для Custom Buttons

2 шага назад для Direct Images и подобных скриптов
Можно изменить количество шагов и их направленность ("javascript:history.go(-2)" заменить на "javascript:history.go(+2)").

Код кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E2%20%u0448%u0430%u0433%u0430%20%u041D%u0430%u0437%u0430%u0434%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAATCAYAAACdkl3yAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAOwgAADsIBFShKgAAAABp0RVh0U29mdHdhcmUAUGFpbnQuTkVUIHYzLjUuMTAw9HKhAAADFUlEQVQ4T42UfUxNcRjHz5hzz8vFMGM2Nn+wsfGP28tNQiKr3ZuXiGqkkkQz8nY1eas/yKwW9+YuaxOWjWwqr/N2Vejtnu5EdPO6aSlRoijn6zk3NUc36zn77pzf5/d7PjvvDDOEiq/XelFeUkx9y+l4OGUfpZEy/b+ajbUiE/dMXL6pTvxKAcWiNBDn456L1j9M4T6DiqLt4rCYGnFbrEPsMr8Nh6luFmIcoiVGEscQvxb/dBwufEjCRsdIhbsXrS8X2KgK8UR01Uj5/Ptd6JG7kVLrjahKsZhSvVWaDEfbLbz9JoHWYEOlG1HkQ2HUulLhUvSj0fLNxpOQ5V9QKlnywroyQU6qnkmCGhd70yFhfZlW4eozCr8rTIq4L5TFlkxAefMV1+K+MlV6YU+FDi1d7/rZm68SIh9oQT29orDrPBN2g5+95pZQn2CbhpdfnqgkymDPIy/kPEtU8dftEtbe1oL6ekWhV3n/VUV8c9KDOWjscA6QKGCnzRNWxz+iNglhxSKo14dZcZlfvbKA/3641ID2H5/cShS4444nsu1q0avPEkKviFhRQKKQfD5zWT6PwhdmyLQNVttueMJSoRY1tEpYflFESD7nwxjPcRpDHpdtPCvIefZDrkftrhILPXDq8VbVVMMnCcY8AYazJFIqOJcbHnSGOxicw3dn2OLxo6dzgGtLgQeyStQiZ4uE4DMCgnL+iBTZ0myOCbRwMYFmTWdykRHtXa0q2eaLHki9Gd7/XimTzmYJSy08qEf9Hi3J0jCLMzVBARma1oQLejS1v++XxZ3TYUmmAKvNhJ5fvZdf/9FOjAetd/+J+KdrdAuPad5FnJ4BZ5PD1RSbq4PC/I9x3WmFUej8+Q31TXYsSucVPvhHOz+NneqXytYYjk9E1et72GDVgcbZxMNp37E9LxDlDbexII2D3xF2cJFy3+YdZMf7prB3Ao6MxeLUsZibwlqIMb4H2AA6bjEcnQzfFI3C/y9SZPp9LKc3sef1e1mZYu777xCfRWMnBRT9EP6PDOO9mx1BSaB4/91A4ymU/RTtb1y+mnDvcYnvAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20url%3D%22javascript%3Ahistory.go%28-2%29%22%3B%0AloadURI%20%28url%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано feas (26-11-2012 22:35:45)


Добро пожаловать на форум mozilla-russia.org. Здесь вы можете посоветоваться или обратиться за помощью к фанатам и пользователям продуктов Мозиллы. Если не знаете как правильно оформить пост специально для вас расписан пункт 2.2 правил форума
Сброс на примере Firefox – лёгкое решение большинства проблем
Починка браузера. Перенос своих настроек на новый профиль.

Отсутствует

 

№10704-12-2012 10:51:25

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 17.0

Re: Готовые кнопки для Custom Buttons

google-translate
Версия google-translate.js в виде кнопки. Переводит выделенный текст (без особых ограничений на размер) или всю страницу на русский. Также добавляет пункты меню: «Перевести на русский» и «Перевести на английский».

Код кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EGoogle%20translate%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAALCAIAAAD5gJpuAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQtJREFUKM9VkSFOhFEQg799/CjEihWAwKDgIFwAyWHgLDjuAGfZgMCQDQkG8abtQ/z8u9A0k4rOTCez2u0GB0gCsLELbCuxLduJy0zAZgOQBBqQALEbtOQoyRgjSZLt9nOaJyf5K2zPjr01SWst8ermZtzd5euLhCQ2Y9iOHXssIvZYr1f39x/T87Ourtr7O3ZUyK6KlN5HVRaOqlxcNGACJKRItigdHFXpFdXoPVWRGmSac0suRYWUWhz7zt5/BXh65Pi6Hr7rI/IopZyqpSqldLsq9onPX3iabuHYr6o3pCVHP2Sa11nIzZdnMAmOSpyejiocVEhtjrwc15L5l4HVDgReCGTR+V9n/AAByma0J+vVwwAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0Avar%20btn%20%3D%20this%3B%0A%0Abtn.lastClick%20%3D%20%7B%0A%20%20%20%20X%3A%200%2C%0A%20%20%20%20Y%3A%200%0A%7D%3B%0AaddEventListener%28%22mouseup%22%2C%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e%20%26%26%20e.button%20%3D%3D%200%20%26%26%20e.view.top%20%3D%3D%20content%29%20%7B%0A%20%20%20%20%20%20%20%20var%20lc%20%3D%20btn.lastClick%3B%0A%20%20%20%20%20%20%20%20lc.X%20%3D%20e.clientX%3B%0A%20%20%20%20%20%20%20%20lc.Y%20%3D%20e.clientY%3B%0A%20%20%20%20%7D%0A%7D%2C%20false%29%3B%0A%0Avar%20safeHTMLParser%20%3D%20function%28code%29%20%7B%0A%20%20%20%20var%20gUnescapeHTML%20%3D%20Cc%5B%22@mozilla.org/feed-unescapehtml%3B1%22%5D.getService%28Ci.nsIScriptableUnescapeHTML%29%3B%0A%20%20%20%20var%20doc%20%3D%20document.implementation.createDocument%28xhtmlns%2C%20%22html%22%2C%20null%29%3B%0A%20%20%20%20var%20body%20%3D%20document.createElementNS%28xhtmlns%2C%20%22body%22%29%3B%0A%20%20%20%20doc.documentElement.appendChild%28body%29%3B%0A%20%20%20%20body.appendChild%28gUnescapeHTML.parseFragment%28code%2C%20false%2C%20null%2C%20body%29%29%3B%0A%20%20%20%20return%20doc%3B%0A%7D%3B%0A%0Avar%20createWindow%20%3D%20function%28text%2C%20status%2C%20title%2C%20id%2C%20pos%2C%20size%29%7B%0A%20%20%20%20var%20win%20%3D%20document.commandDispatcher.focusedWindow.top%20%3D%3D%20content%20%3F%20document.commandDispatcher.focusedWindow%20%3A%20content%3B%0A%09var%20doc%20%3D%20win.document%2C%20wId%20%3D%20%27ujs_window%27+%28id%20%7C%7C%20%27%27%29%2C%20w%20%3D%20doc.getElementById%28wId%29%3B%0A%09var%20keyDown%20%3D%20function%28e%29%7Bif%28%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.altKey%20%26%26%20e.keyCode%20%3D%3D%2027%29doc.getElementById%28wId%29.closeWin%28%29%7D%3B%0A%09if%28w%29w.closeWin%28%29%3B%0A%09w%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09w.setAttribute%28%27style%27%2C%20%27position%3Afixed%3Bdisplay%3Ablock%3Bvisibility%3Ahidden%3Bleft%3A0%3Btop%3A0%3Bwidth%3Aauto%3Bheight%3Aauto%3Bborder%3A1px%20solid%20gray%3Bpadding%3A3px%3Bmargin%3A0%3Bz-index%3A99999%3Boverflow%3Ahidden%3Bcursor%3Amove%3B%27+%28typeof%20w.style.borderRadius%20%3D%3D%3D%20%27string%27%20%3F%20%27background-color%3A%23f3f5f7%3Bpadding-top%3A4px%3Bborder-radius%3A4px%3Bbox-shadow%3A0%200%2012px%20rgba%280%2C0%2C0%2C.4%29%3B%27%20%3A%20%27background%3A-o-skin%28%22Window%20Skin%22%29%3B%27%29%29%3B%0A%09w.id%20%3D%20wId%3B%0A%09w.closeWin%20%3D%20function%28%29%7B%0A%09%09doc.removeEventListener%28%27keydown%27%2C%20keyDown%2C%20false%29%3B%0A%09%09this.parentNode.removeChild%28this%29%3B%0A%09%7D%3B%0A%09w.addEle%20%3D%20function%28str%2C%20style%29%7B%0A%09%09var%20ele%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09%09ele.setAttribute%28%27style%27%2C%20style%29%3B%0A%09%09if%28str%29%7B%0A%09%09%09ele.innerHTML%20%3D%20str%3B%0A%09%09%09for%28var%20el%2C%20all%20%3D%20ele.getElementsByTagName%28%27*%27%29%2C%20i%20%3D%20all.length%3B%20i--%3B%29%7B%0A%09%09%09%09el%20%3D%20all%5Bi%5D%3B%0A%09%09%09%09if%28/%5E%28script%7Cframe%7Ciframe%7Capplet%7Cembed%7Cobject%29%24/i.test%28el.nodeName%29%29%7B%0A%09%09%09%09%09el.parentNode.removeChild%28el%29%3B%0A%09%09%09%09%7Delse%7B%0A%09%09%09%09%09for%28var%20att%20%3D%20el.attributes%2C%20j%20%3D%20att.length%3B%20j--%3B%29%7B%0A%09%09%09%09%09%09if%28/%5Eon%5Ba-z%5D+%24/i.test%28att%5Bj%5D.name%29%29att%5Bj%5D.value%20%3D%20%27%27%3B%0A%09%09%09%09%09%7D%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%3B%0A%09%09return%20this.appendChild%28ele%29%3B%0A%09%7D%3B%0A%09var%20img%20%3D%20doc.createElement%28%27div%27%29%3B%0A%09img.setAttribute%28%27style%27%2C%20%27display%3Ablock%3Bfloat%3Aright%3Bwidth%3A18px%3Bheight%3A18px%3Bpadding%3A0%3Bmargin%3A0%3Bborder%3Anone%3Bcursor%3Apointer%3Bbackground-image%3Aurl%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII%3D%22%29%3Bbackground%3A-o-skin%28%22Caption%20Close%20Button%20Skin%22%29%3B%27%29%3B%0A%09img.title%20%3D%20%28win.navigator.language.indexOf%28%27ru%27%29%20%3D%3D%200%29%20%3F%20%27%5Cu0417%5Cu0430%5Cu043A%5Cu0440%5Cu044B%5Cu0442%5Cu044C%27%20%3A%20%27Close%27%3B%0A%09img.addEventListener%28%27click%27%2C%20function%28%29%7Bthis.parentNode.closeWin%28%29%7D%2C%20false%29%3B%0A%09w.appendChild%28img%29%3B%0A%09w.addEle%28title%2C%20%27display%3Atable%3Bcolor%3A%23000%3Bfont%3A16px%20Times%20New%20Roman%3Bwidth%3Aauto%3Bheight%3Aauto%3Bpadding%3A0%3Bmargin%3A0%202px%3Bcursor%3Atext%3B%27%29%3B%0A%09var%20cnt%20%3D%20w.addEle%28text%2C%20%27display%3Ablock%3Bborder%3A1px%20solid%20%23aaa%3Bmargin%3A2px%200%201px%200%3Bpadding%3A4px%3Bbackground-color%3A%23fafcfe%3Bcolor%3A%23000%3Bfont%3A14px%20Times%20New%20Roman%3Bwidth%3A240px%3Bheight%3A120px%3Boverflow%3Aauto%3Bcursor%3Atext%3B%27%29%3B%0A%09w.addEle%28status%2C%20%27display%3Atable%3Bcolor%3A%23555%3Bfont%3A10px%20Times%20New%20Roman%3Bwidth%3Aauto%3Bheight%3Aauto%3Bpadding%3A0%3Bmargin%3A0%202px%3Bcursor%3Atext%3B%27%29%3B%0A%09w.addEventListener%28%27mousedown%27%2C%20function%28e%29%7B%0A%09%09if%28e.target%20%3D%3D%20w%29%7B%0A%09%09%09e.preventDefault%28%29%3B%0A%09%09%09var%20grabX%20%3D%20e.clientX%2C%20grabY%20%3D%20e.clientY%2C%20origX%20%3D%20parseInt%28w.style.left%29%2C%20origY%20%3D%20parseInt%28w.style.top%29%3B%0A%09%09%09var%20mouseMove%20%3D%20function%28ev%29%7B%0A%09%09%09%09w.style.left%20%3D%20origX+ev.clientX-grabX+%27px%27%3B%0A%09%09%09%09w.style.top%20%3D%20origY+ev.clientY-grabY+%27px%27%3B%0A%09%09%09%7D%3B%0A%09%09%09doc.addEventListener%28%27mousemove%27%2C%20mouseMove%2C%20false%29%3B%0A%09%09%09doc.addEventListener%28%27mouseup%27%2C%20function%28%29%7Bdoc.removeEventListener%28%27mousemove%27%2C%20mouseMove%2C%20false%29%7D%2C%20false%29%3B%0A%09%09%7D%0A%09%7D%2C%20false%29%3B%0A%09doc.documentElement.appendChild%28w%29%3B%0A%0A%09if%28size%29%7B%0A%09%09cnt.style.height%20%3D%20size.height%3B%0A%09%09cnt.style.width%20%3D%20size.width%3B%0A%09%7Delse%7B%0A%09%09for%28var%20i%20%3D%203%3B%20i%20%3C%2010%3B%20i++%29%7B%0A%09%09%09if%28cnt.scrollHeight%20%3E%20cnt.offsetHeight%20%7C%7C%20cnt.scrollWidth%20%3E%20cnt.offsetWidth%29%7B%0A%09%09%09%09cnt.style.height%20%3D%2050*i+%27px%27%3B%0A%09%09%09%09cnt.style.width%20%3D%20100*i+%27px%27%3B%0A%09%09%09%7Delse%20break%3B%0A%09%09%7D%0A%09%7D%3B%0A%09var%20docEle%20%3D%20doc.compatMode%20%3D%3D%20%27CSS1Compat%27%20%3F%20doc.documentElement%20%3A%20doc.body%3B%0A%09var%20mX%20%3D%20docEle.clientWidth-w.offsetWidth%2C%20mY%20%3D%20docEle.clientHeight-w.offsetHeight%3B%0A%09if%28mX%20%3C%200%29%7Bcnt.style.width%20%3D%20parseInt%28cnt.style.width%29+mX+%27px%27%3B%20mX%20%3D%200%7D%3B%0A%09if%28mY%20%3C%200%29%7Bcnt.style.height%20%3D%20parseInt%28cnt.style.height%29+mY+%27px%27%3B%20mY%20%3D0%7D%3B%0A%09var%20hW%20%3D%20parseInt%28w.offsetWidth/2%29%3B%0A%09w.style.left%20%3D%20%28pos%20%26%26%20pos.X%20%3C%20mX+hW%20%3F%20%28pos.X%20%3E%20hW%20%3F%20pos.X-hW%20%3A%200%29%20%3A%20mX%29+%27px%27%3B%0A%09w.style.top%20%3D%20%28pos%20%26%26%20pos.Y+10%20%3C%20mY%20%3F%20pos.Y+10%20%3A%20mY%29+%27px%27%3B%0A%09w.style.visibility%20%3D%20%27visible%27%3B%0A%09doc.addEventListener%28%27keydown%27%2C%20keyDown%2C%20false%29%3B%0A%7D%3B%0A%0Avar%20getSel%20%3D%20function%20%28w%29%20%7B%0A%20%20%20%20var%20s%2C%20d%20%3D%20w.document%3B%0A%20%20%20%20if%20%28d.selection%29%20%7B%0A%20%20%20%20%20%20%20%20var%20r%20%3D%20d.selection.createRange%28%29%3B%0A%20%20%20%20%20%20%20%20s%20%3D%20r%20%3F%20r.text%20%3A%20%27%27%0A%20%20%20%20%7D%20else%20%7B%0A%09%09s%20%3D%20d.getSelection%28%29.toString%28%29%3B%0A%09%09if%20%28%21s%29%20%7B%0A%09%09%09var%20e%2C%20t%20%3D%20d.getElementsByTagName%28%27textarea%27%29%2C%20u%20%3D%20d.getElementsByTagName%28%27input%27%29%2C%20i%20%3D%20t.length%3B%0A%09%09%09while%28e%20%3D%20%28i%20%3E%200%29%20%3F%20t%5B--i%5D%20%3A%20u%5B-i--%5D%29try%7B%0A%09%09%09%09if%20%28e.offsetHeight%20%3E%200%20%26%26%20%28s%20%3D%20e.value.substring%28e.selectionStart%2C%20e.selectionEnd%29%29%29%20break%0A%09%09%09%7Dcatch%28x%29%7B%7D%0A%09%09%7D%0A%09%7D%3B%0A%20%20%20%20if%20%28%21s%29%20for%20%28var%20j%20%3D%200%2C%20f%3B%20f%20%3D%20w.frames%5Bj%5D%3B%20j++%29%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28s%20%3D%20getSel%28f%29%29%20break%0A%20%20%20%20%20%20%20%20%7D%20catch%28x%29%20%7B%7D%0A%20%20%20%20%7D%3B%0A%20%20%20%20return%20s%0A%7D%3B%0A%0Avar%20ujs_google_translate%20%3D%20function%20%28dir%29%7B%0A%20%20%20%20var%20win%20%3D%20content%2C%20lng%20%3D%20win.navigator.language.slice%280%2C%202%29%2C%20txt%20%3D%20getSel%28win%29%3B%0A%20%20%20%20if%20%28txt%29%20%7B%20%0A%20%20%20%20%20%20%20%20var%20xhr%20%3D%20new%20XMLHttpRequest%28%29%3B%0A%20%20%20%20%20%20%20%20var%20encTxt%20%3D%20%27text%3D%27%20+%20encodeURIComponent%28txt%29%2C%20post%20%3D%20encTxt.length%20%3E%201024%2C%20l%20%3D%20dir.split%28%27%7C%27%29%3B%0A%20%20%20%20%20%20%20%20var%20url%20%3D%20%27https%3A//translate.google.com/%3F%27%20+%20%28post%20%3F%20%27%27%20%3A%20encTxt%20+%20%27%26%27%29%20+%20%27sl%3D%27%20+%20l%5B0%5D%20+%20%27%26tl%3D%27%20+%20l%5B1%5D%20+%20%27%26hl%3D%27%20+%20lng%20+%20%27%26eotf%3D0%26ujs%3Dgtt%27%3B%0A%0A%20%20%20%20%20%20%20%20xhr.open%28post%20%3F%20%27POST%27%20%3A%20%27GET%27%2C%20url%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20if%28post%29xhr.setRequestHeader%28%27Content-Type%27%2C%20%27application/x-www-form-urlencoded%27%29%3B%0A%20%20%20%20%20%20%20%20xhr.onreadystatechange%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28xhr.readyState%20%3D%3D%204%20%26%26%20xhr.status%20%3D%3D%20200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20%27%27%2C%20status%20%3D%20%27%27%2C%20tmp%20%3D%20safeHTMLParser%28xhr.responseText%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20r%20%3D%20tmp.querySelector%28%27%23result_box%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28r%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20p%20%3D%20r.getElementsByTagName%28%27span%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%28var%20i%20%3D%200%2C%20n%3B%20n%20%3D%20p%5Bi%5D%3B%20i++%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20n.setAttribute%28%27style%27%2C%20%27background-color%3Ainherit%3Bcolor%3Ainherit%3Bfont-size%3Ainherit%3Bfont-family%3Aserif%3B%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20result%20%3D%20r.innerHTML%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20sl%20%3D%20tmp.querySelector%28%27%23nc_sl%27%29%2C%20dl%20%3D%20tmp.querySelector%28%27%23nc_dl%27%29%2C%20tl%20%3D%20tmp.querySelector%28%27%23nc_tl%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%28sl%20%26%26%20dl%20%26%26%20tl%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20status%20%3D%20%28%28dl.value%20%7C%7C%20sl.value%29+%27%20-%5Cu203A%20%27+tl.value%29.toUpperCase%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20createWindow%28result%2C%20status%2C%20%27%3Ca%20href%3D%22%27+url.replace%28/%26/g%2C%27%26amp%3B%27%29+%27%22%20target%3D%22_blank%22%20style%3D%22display%3Ainline%3Bpadding%3A0%3Bmargin%3A0%3Btext-decoration%3Anone%3Bborder%3Anone%3Bcolor%3A%23009%3Bfont%3A16px%20Times%20New%20Roman%3B%22%3EGoogle%20Translate%3C/a%3E%27%2C%20%27_gt%27%2C%20btn.lastClick%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28x%29%7B%7D%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20xhr.send%28post%20%3F%20encTxt%20%3A%20null%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20win.open%28%27http%3A//translate.google.com/translate%3Fu%3D%27+escape%28win.location.href%29+%27%26hl%3D%27+lng+%27%26langpair%3D%27+dir+%27%26tbb%3D1%27%29%3B%0A%20%20%20%20%7D%3B%0A%7D%3B%0A%0A%0Abtn.onclick%20%3D%20function%28e%29%7Bif%28e.button%20%3D%3D%200%29ujs_google_translate%28%27auto%7Cru%27%29%7D%3B%0A%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%0Avar%20nextEleMenu%20%3D%20document.getElementById%28%22context-inspect%22%29%3B%0A%0Avar%20menuId%20%3D%20%22context-ext-google-translate%22%3B%0Avar%20menuItem%20%3D%20document.getElementById%28menuId%29%3B%0Aif%20%28menuItem%29%20%7B%0A%20%20%20%20contextMenu.removeChild%28menuItem.nextElementSibling%29%3B%0A%20%20%20%20contextMenu.removeChild%28menuItem.nextElementSibling%29%3B%0A%20%20%20%20contextMenu.removeChild%28menuItem%29%3B%0A%7D%3B%0A%0AmenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0AmenuItem.setAttribute%28%22id%22%2C%20menuId%29%3B%0AmenuItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%20%u0440%u0443%u0441%u0441%u043A%u0438%u0439%22%29%3B%0AmenuItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0AmenuItem.setAttribute%28%22image%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC%22%29%3B%0AmenuItem.addEventListener%28%22command%22%2C%20function%28%29%7Bujs_google_translate%28%27auto%7Cru%27%29%7D%2C%20false%29%3B%0AcontextMenu.insertBefore%28menuItem%2C%20nextEleMenu%29%3B%0A%0AmenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0AmenuItem.setAttribute%28%22label%22%2C%20%22%u041F%u0435%u0440%u0435%u0432%u0435%u0441%u0442%u0438%20%u043D%u0430%20%u0430%u043D%u0433%u043B%u0438%u0439%u0441%u043A%u0438%u0439%22%29%3B%0AmenuItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0AmenuItem.setAttribute%28%22image%22%2C%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII%3D%22%29%3B%0AmenuItem.addEventListener%28%22command%22%2C%20function%28%29%7Bujs_google_translate%28%27auto%7Cen%27%29%7D%2C%20false%29%3B%0AcontextMenu.insertBefore%28menuItem%2C%20nextEleMenu%29%3B%0A%0AcontextMenu.insertBefore%28document.createElement%28%22menuseparator%22%29%2C%20nextEleMenu%29%3B%0A%0AaddEventListener%28%27keydown%27%2C%20function%20%28e%29%7B%0A%20if%28e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20e.altKey%20%26%26%20e.keyCode%20%3D%3D%2084%29ujs_google_translate%28%27auto%7Cru%27%29%3B%0A%7D%2C%20false%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Код

Выделить код

Код:

/*Initialization Code*/

var btn = this;

btn.lastClick = {
    X: 0,
    Y: 0
};
addEventListener("mouseup", function(e) {
    if (e && e.button == 0 && e.view.top == content) {
        var lc = btn.lastClick;
        lc.X = e.clientX;
        lc.Y = e.clientY;
    }
}, false);

var safeHTMLParser = function(code) {
    var gUnescapeHTML = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML);
    var doc = document.implementation.createDocument(xhtmlns, "html", null);
    var body = document.createElementNS(xhtmlns, "body");
    doc.documentElement.appendChild(body);
    body.appendChild(gUnescapeHTML.parseFragment(code, false, null, body));
    return doc;
};

var createWindow = function(text, status, title, id, pos, size){
    var win = document.commandDispatcher.focusedWindow.top == content ? document.commandDispatcher.focusedWindow : content;
    var doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId);
    var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()};
    if(w)w.closeWin();
    w = doc.createElement('div');
    w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:3px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#f3f5f7;padding-top:4px;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");'));
    w.id = wId;
    w.closeWin = function(){
        doc.removeEventListener('keydown', keyDown, false);
        this.parentNode.removeChild(this);
    };
    w.addEle = function(str, style){
        var ele = doc.createElement('div');
        ele.setAttribute('style', style);
        if(str){
            ele.innerHTML = str;
            for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
                el = all[i];
                if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
                    el.parentNode.removeChild(el);
                }else{
                    for(var att = el.attributes, j = att.length; j--;){
                        if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
                    }
                }
            }
        };
        return this.appendChild(ele);
    };
    var img = doc.createElement('div');
    img.setAttribute('style', 'display:block;float:right;width:18px;height:18px;padding:0;margin:0;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");');
    img.title = (win.navigator.language.indexOf('ru') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close';
    img.addEventListener('click', function(){this.parentNode.closeWin()}, false);
    w.appendChild(img);
    w.addEle(title, 'display:table;color:#000;font:16px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    var cnt = w.addEle(text, 'display:block;border:1px solid #aaa;margin:2px 0 1px 0;padding:4px;background-color:#fafcfe;color:#000;font:14px Times New Roman;width:240px;height:120px;overflow:auto;cursor:text;');
    w.addEle(status, 'display:table;color:#555;font:10px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    w.addEventListener('mousedown', function(e){
        if(e.target == w){
            e.preventDefault();
            var grabX = e.clientX, grabY = e.clientY, origX = parseInt(w.style.left), origY = parseInt(w.style.top);
            var mouseMove = function(ev){
                w.style.left = origX+ev.clientX-grabX+'px';
                w.style.top = origY+ev.clientY-grabY+'px';
            };
            doc.addEventListener('mousemove', mouseMove, false);
            doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false);
        }
    }, false);
    doc.documentElement.appendChild(w);

    if(size){
        cnt.style.height = size.height;
        cnt.style.width = size.width;
    }else{
        for(var i = 3; i < 10; i++){
            if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){
                cnt.style.height = 50*i+'px';
                cnt.style.width = 100*i+'px';
            }else break;
        }
    };
    var docEle = doc.compatMode == 'CSS1Compat' ? doc.documentElement : doc.body;
    var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight;
    if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0};
    if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0};
    var hW = parseInt(w.offsetWidth/2);
    w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px';
    w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px';
    w.style.visibility = 'visible';
    doc.addEventListener('keydown', keyDown, false);
};

var getSel = function (w) {
    var s, d = w.document;
    if (d.selection) {
        var r = d.selection.createRange();
        s = r ? r.text : ''
    } else {
        s = d.getSelection().toString();
        if (!s) {
            var e, t = d.getElementsByTagName('textarea'), u = d.getElementsByTagName('input'), i = t.length;
            while(e = (i > 0) ? t[--i] : u[-i--])try{
                if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd))) break
            }catch(x){}
        }
    };
    if (!s) for (var j = 0, f; f = w.frames[j]; j++) {
        try {
            if (s = getSel(f)) break
        } catch(x) {}
    };
    return s
};

var ujs_google_translate = function (dir){
    var win = content, lng = win.navigator.language.slice(0, 2), txt = getSel(win);
    if (txt) { 
        var xhr = new XMLHttpRequest();
        var encTxt = 'text=' + encodeURIComponent(txt), post = encTxt.length > 1024, l = dir.split('|');
        var url = 'https://translate.google.com/?' + (post ? '' : encTxt + '&') + 'sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&ujs=gtt';

        xhr.open(post ? 'POST' : 'GET', url, true);
        if(post)xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.onreadystatechange = function() {
            try{
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var result = '', status = '', tmp = safeHTMLParser(xhr.responseText);
                    var r = tmp.querySelector('#result_box');
                    if (r) {
                        var p = r.getElementsByTagName('span');
                        for(var i = 0, n; n = p[i]; i++){
                            n.setAttribute('style', 'background-color:inherit;color:inherit;font-size:inherit;font-family:serif;');
                        };
                        result = r.innerHTML;
                    };
                    var sl = tmp.querySelector('#nc_sl'), dl = tmp.querySelector('#nc_dl'), tl = tmp.querySelector('#nc_tl');
                    if(sl && dl && tl){
                        status = ((dl.value || sl.value)+' -\u203A '+tl.value).toUpperCase();
                    };
                    createWindow(result, status, '<a href="'+url.replace(/&/g,'&amp;')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Google Translate</a>', '_gt', btn.lastClick);
                }
            } catch (x){};
        };
        xhr.send(post ? encTxt : null);
    } else {
        win.open('http://translate.google.com/translate?u='+escape(win.location.href)+'&hl='+lng+'&langpair='+dir+'&tbb=1');
    };
};


btn.onclick = function(e){if(e.button == 0)ujs_google_translate('auto|ru')};

var contextMenu = document.getElementById("contentAreaContextMenu");
var nextEleMenu = document.getElementById("context-inspect");

var menuId = "context-ext-google-translate";
var menuItem = document.getElementById(menuId);
if (menuItem) {
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem);
};

menuItem = document.createElement("menuitem");
menuItem.setAttribute("id", menuId);
menuItem.setAttribute("label", "Перевести на русский");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|ru')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);

menuItem = document.createElement("menuitem");
menuItem.setAttribute("label", "Перевести на английский");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII=");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|en')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);

contextMenu.insertBefore(document.createElement("menuseparator"), nextEleMenu);

addEventListener('keydown', function (e){
 if(e.shiftKey && !e.ctrlKey && e.altKey && e.keyCode == 84)ujs_google_translate('auto|ru');
}, false);


Обновлённая версия, т.к. при работе через POST, translate.google.com теперь требует хэш от строки да и результат выдаётся в подобии json.
скрытый текст

Выделить код

Код:

/*Initialization Code*/

var btn = this;

btn.lastClick = {
    X: 0,
    Y: 0
};
addEventListener("mouseup", function(e) {
    if (e && e.button == 0 && e.view.top == content) {
        var lc = btn.lastClick;
        lc.X = e.clientX;
        lc.Y = e.clientY;
    }
}, false);

var createWindow = function(text, status, title, id, pos, size){
    var win = document.commandDispatcher.focusedWindow.top == content ? document.commandDispatcher.focusedWindow : content;
    var doc = win.document, wId = 'ujs_window'+(id || ''), w = doc.getElementById(wId);
    var keyDown = function(e){if(!e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode == 27)doc.getElementById(wId).closeWin()};
    if(w)w.closeWin();
    w = doc.createElement('div');
    w.setAttribute('style', 'position:fixed;display:block;visibility:hidden;left:0;top:0;width:auto;height:auto;border:1px solid gray;padding:3px;margin:0;z-index:99999;overflow:hidden;cursor:move;'+(typeof w.style.borderRadius === 'string' ? 'background-color:#f3f5f7;padding-top:4px;border-radius:4px;box-shadow:0 0 12px rgba(0,0,0,.4);' : 'background:-o-skin("Window Skin");'));
    w.id = wId;
    w.closeWin = function(){
        doc.removeEventListener('keydown', keyDown, false);
        this.parentNode.removeChild(this);
    };
    w.addEle = function(str, style){
        var ele = doc.createElement('div');
        ele.setAttribute('style', style);
        if(str){
            ele.innerHTML = str;
            for(var el, all = ele.getElementsByTagName('*'), i = all.length; i--;){
                el = all[i];
                if(/^(script|frame|iframe|applet|embed|object)$/i.test(el.nodeName)){
                    el.parentNode.removeChild(el);
                }else{
                    for(var att = el.attributes, j = att.length; j--;){
                        if(/^on[a-z]+$/i.test(att[j].name))att[j].value = '';
                    }
                }
            }
        };
        return this.appendChild(ele);
    };
    var img = doc.createElement('div');
    img.setAttribute('style', 'display:block;float:right;width:18px;height:18px;padding:0;margin:0;border:none;cursor:pointer;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAQAAAD8x0bcAAAAZElEQVR42mNgGNyAGQixsVGU/AdCXjCbHczmxKaMFywlAlWiw6DAwIZNmQhYGqJEDWoqFiAGVmKKTwk73CRJ/Ep0GIyhbsPpO4hbIG4TwKaMk0EZ7hYBBk1cvmNDEmbDrmSwAADE8h10+qICXwAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAASUVORK5CYII=");background:-o-skin("Caption Close Button Skin");');
    img.title = (win.navigator.language.indexOf('ru') == 0) ? '\u0417\u0430\u043A\u0440\u044B\u0442\u044C' : 'Close';
    img.addEventListener('click', function(){this.parentNode.closeWin()}, false);
    w.appendChild(img);
    w.addEle(title, 'display:table;color:#000;font:16px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    var cnt = w.addEle(text, 'display:block;border:1px solid #aaa;margin:2px 0 1px 0;padding:4px;background-color:#fafcfe;color:#000;font:14px Times New Roman;width:240px;height:120px;overflow:auto;cursor:text;');
    w.addEle(status, 'display:table;color:#555;font:10px Times New Roman;width:auto;height:auto;padding:0;margin:0 2px;cursor:text;');
    w.addEventListener('mousedown', function(e){
        if(e.target == w){
            e.preventDefault();
            var grabX = e.clientX, grabY = e.clientY, origX = parseInt(w.style.left), origY = parseInt(w.style.top);
            var mouseMove = function(ev){
                w.style.left = origX+ev.clientX-grabX+'px';
                w.style.top = origY+ev.clientY-grabY+'px';
            };
            doc.addEventListener('mousemove', mouseMove, false);
            doc.addEventListener('mouseup', function(){doc.removeEventListener('mousemove', mouseMove, false)}, false);
        }
    }, false);
    doc.documentElement.appendChild(w);

    if(size){
        cnt.style.height = size.height;
        cnt.style.width = size.width;
    }else{
        for(var i = 3; i < 10; i++){
            if(cnt.scrollHeight > cnt.offsetHeight || cnt.scrollWidth > cnt.offsetWidth){
                cnt.style.height = 50*i+'px';
                cnt.style.width = 100*i+'px';
            }else break;
        }
    };
    var docEle = doc.compatMode == 'CSS1Compat' ? doc.documentElement : doc.body;
    var mX = docEle.clientWidth-w.offsetWidth, mY = docEle.clientHeight-w.offsetHeight;
    if(mX < 0){cnt.style.width = parseInt(cnt.style.width)+mX+'px'; mX = 0};
    if(mY < 0){cnt.style.height = parseInt(cnt.style.height)+mY+'px'; mY =0};
    var hW = parseInt(w.offsetWidth/2);
    w.style.left = (pos && pos.X < mX+hW ? (pos.X > hW ? pos.X-hW : 0) : mX)+'px';
    w.style.top = (pos && pos.Y+10 < mY ? pos.Y+10 : mY)+'px';
    w.style.visibility = 'visible';
    doc.addEventListener('keydown', keyDown, false);
};

var getSel = function (w) {
    var s, d = w.document;
    if (d.selection) {
        var r = d.selection.createRange();
        s = r ? r.text : ''
    } else {
        s = d.getSelection().toString();
        if (!s) {
            var e, t = d.getElementsByTagName('textarea'), u = d.getElementsByTagName('input'), i = t.length;
            while(e = (i > 0) ? t[--i] : u[-i--])try{
                if (e.offsetHeight > 0 && (s = e.value.substring(e.selectionStart, e.selectionEnd))) break
            }catch(x){}
        }
    };
    if (!s) for (var j = 0, f; f = w.frames[j]; j++) {
        try {
            if (s = getSel(f)) break
        } catch(x) {}
    };
    return s
};

var getHash = function (txt) {
    TKK=eval('((function(){var a\x3d817046147;var b\x3d-335196159;return 410049+\x27.\x27+(a+b)})())');
    function sM(a) {
        var b;
        if (null !== yr)
            b = yr;
        else {
            b = wr(String.fromCharCode(84));
            var c = wr(String.fromCharCode(75));
            b = [b(), b()];
            b[1] = c();
            b = (yr = window[b.join(c())] || "") || ""
        }
        var d = wr(String.fromCharCode(116))
            , c = wr(String.fromCharCode(107))
            , d = [d(), d()];
        d[1] = c();
        c = "&" + d.join("") + "=";
        d = b.split(".");
        b = Number(d[0]) || 0;
        for (var e = [], f = 0, g = 0; g < a.length; g++) {
            var l = a.charCodeAt(g);
            128 > l ? e[f++] = l : (2048 > l ? e[f++] = l >> 6 | 192 : (55296 == (l & 64512) && g + 1 < a.length && 56320 == (a.charCodeAt(g + 1) & 64512) ? (l = 65536 + ((l & 1023) << 10) + (a.charCodeAt(++g) & 1023),
                e[f++] = l >> 18 | 240,
                e[f++] = l >> 12 & 63 | 128) : e[f++] = l >> 12 | 224,
                e[f++] = l >> 6 & 63 | 128),
                e[f++] = l & 63 | 128)
        }
        a = b;
        for (f = 0; f < e.length; f++)
            a += e[f],
                a = xr(a, "+-a^+6");
        a = xr(a, "+-3^+b+-f");
        a ^= Number(d[1]) || 0;
        0 > a && (a = (a & 2147483647) + 2147483648);
        a %= 1E6;
        return c + (a.toString() + "." + (a ^ b))
    }

    var yr = null;
    var wr = function(a) {
        return function() {
            return a
        }
    }
        , xr = function(a, b) {
        for (var c = 0; c < b.length - 2; c += 3) {
            var d = b.charAt(c + 2)
                , d = "a" <= d ? d.charCodeAt(0) - 87 : Number(d)
                , d = "+" == b.charAt(c + 1) ? a >>> d : a << d;
            a = "+" == b.charAt(c) ? a + d & 4294967295 : a ^ d
        }
        return a
    };

    return sM(txt);
};

var ujs_google_translate = function (dir){
    var win = content, lng = win.navigator.language.slice(0, 2), txt = getSel(win), l = dir.split('|');
    if (txt) {
        var xhr = new XMLHttpRequest();
        var url = 'https://translate.google.com/translate_a/single?client=t&sl=' + l[0] + '&tl=' + l[1] + '&hl=' + lng + '&eotf=0&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t' + getHash(txt);

        xhr.open('POST', url, true);
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
        xhr.onreadystatechange = function() {
            try{
                if (xhr.readyState == 4 && xhr.status == 200) {
                    var result = '', status = '', tmp = JSON.parse(xhr.responseText.replace(/\[(?=,)/g, '[0').replace(/,(?=,|\])/g, ',0'));
                    for(var i = 0, n; n = tmp[0][i]; i++){
                        if(n[0])result += n[0].toString();
                    };
                    result = '<span style="background-color:inherit;color:inherit;font-size:inherit;font-family:Times,serif;">' + result + '</span>';
                    status = tmp[8][0][0].toUpperCase() + ' -\u203A ' + l[1].toUpperCase();

                    createWindow(result, status, '<a href="'+url.replace(/&/g,'&amp;')+'" target="_blank" style="display:inline;padding:0;margin:0;text-decoration:none;border:none;color:#009;font:16px Times New Roman;">Google Translate</a>', '_gt', btn.lastClick);
                }
            } catch (x){LOG(x)};
        };
        xhr.send('q=' + encodeURIComponent(txt));
    } else {
        win.open('http://translate.google.com/translate?u='+escape(win.location.href)+'&hl='+lng+'&langpair='+dir+'&tbb=1');
    };
};


btn.onclick = function(e){if(e.button == 0)ujs_google_translate('auto|ru')};

var contextMenu = document.getElementById("contentAreaContextMenu");
var nextEleMenu = document.getElementById("context-inspect");

var menuId = "context-ext-google-translate";
var menuItem = document.getElementById(menuId);
if (menuItem) {
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem.nextElementSibling);
    contextMenu.removeChild(menuItem);
};

menuItem = document.createElement("menuitem");
menuItem.setAttribute("id", menuId);
menuItem.setAttribute("label", "Перевести на русский");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAABBUlEQVR4Ac2RMU4DMRREB2MqihQpAkUaqnAduuQw4Sx03CGcJYIiDYqQ0lCsZ77535ZFcgAkRuPvV7zd/dLiz3N1PFb8hmRckrfELZrF9ONQ1B6Yz0MyM7S0O6zGkVprh/3+Kw/JzkHSpRpJKZkpr9fYbOx0cjVsCbWG31oHBM9mtt0q73ZcrdLhAMlYQKkUI22aqsNo8HKZAMQhvVaKSHWj2Q2aPU3mJQFY7nuHyvYFduP83WF3AJRfcPNYnr/Lp1G1uK4m9sno1LaUbnX/htf8BNzoneUD5NhjvLCMhURQSQ93QCZwXYjFwg3I0NZKrvoknQPMIHkt/jRAQKMeG2yX89/mB4EJbKbZxIhFAAAAAElFTkSuQmCC");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|ru')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);

menuItem = document.createElement("menuitem");
menuItem.setAttribute("label", "Перевести на английский");
menuItem.setAttribute("class", "menuitem-iconic");
menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAAAAAAABupgeRAAAB5UlEQVR4AWOgPZg0c9+Oq2+qpx9LaQaiw4mNB27efbs2uXFNQh2Q4Zm9zSNth23MhqjGnXMC86vnHmUS4udxv7OvOd2yPE7PTlfCTk9GVVEoyJA7WI8dyPA0k3U1l+jJMV7CeThpTZeoKDdDUsvBPSff/V+6/P/Bvf///2+bdvU/EKRm/k9IBNIlfZe+LFrzvbsbyJ636pKkyQyQhoUb7tZNvPpw3/0/TfX/ISAm5n94BIiRm/n/xYsLd946ei4vajoiqDuRAejQf//+o4PQ0P9+fmhiQGVnrr1kXJNYG2zEzXDxDsPv3wy/fkFJoOTPn39+/fr/69e/37//AUX+/mXRkO458wWHDba2f8wswCyQ3N+/f//8/fP7z5+TV18w2Mdt6plzPiptx5Wr7/+/ffMzOR6kysjkt74hWMPfp06O+2dulZCeFZKwnkE4m8E8bN3i9aCQ+dxY96GrK6bkGJD9R1v3l6Y20NVW9kt+/v//ZdbcFwkxTVPPMQimM8XEqkb7a/zoqLxkH9v4zVyI5+///wyMmtKMmhJAnbLqQjHxaw5r2orOmZN5uj470Zahat6BKS7JzpmLBHXm8GhM5lCdcP7ai1ZpixZxk9NXXjKIFzOIFjAI54oY1vXuue5qmscw+AAAW0tKxtPoicEAAAAASUVORK5CYII=");
menuItem.addEventListener("command", function(){ujs_google_translate('auto|en')}, false);
contextMenu.insertBefore(menuItem, nextEleMenu);

contextMenu.insertBefore(document.createElement("menuseparator"), nextEleMenu);

addEventListener('keydown', function (e){
 if(e.shiftKey && !e.ctrlKey && e.altKey && e.keyCode == 84)ujs_google_translate('auto|ru');
}, false);

Отредактировано Lex1 (20-10-2016 15:33:51)

Отсутствует

 

№10804-12-2012 16:28:37

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Показать пароль на странице( Firefox17+ ) от 11.01.2014.
Кнопка дает возможность включить показ паролей в на страницах.

ЛКМ => включить / выключить показ пароля.

Код кнопки и инициализации:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u0430%u0440%u043E%u043B%u044C%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bconst%20attr%20%3D%20%22Showpassword%22%3B%0A%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28%20self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20icon.src%20%3D%20gBrowser.selectedTab.hasAttribute%28attr%29%0A%20%20%20%3F%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAEZ0FNQQAAsY58+1GTAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAK9SURBVHjadJM9iFxVGIaf794zuzNxJrNjMk5+SApZ0RQJC0FNGoUQRAULBSvBxmpREFRs1MpSSCdoYWUjErsUsRFRBFGIbhIk7kY0kd24mfuzmdm5M+ee75xjsYtISJ76fT++4nnlwatgIw/vb7RfHpiDhwQhEiP3QBCJRG659ZuFVl80E9aNDTxycs/SJ8v73jxzuHGUQCByzz6CkJDwV/0HH+fnnr4yu/a66afdV17rLZ85236eO77ERUWj7hYgAqkkNNI5CDuHjs0fZ9uPX/jwn/e/MT3pPdSSPVy3q2z7EQ/QYa/p0mq2SCShshX5dsZYxszPz0EUiiSjLXvpSfdA4tS5YX2bodvklt2gaxZYlMcY/liwdvFPOhsLnGyfov5bWdtYpfAZQ3eb3A3xGtR49RQuoylNyrqAXmTlhxXe/ugtzEB4YulJ3nv1A+SGYWXrMseeeZROo0NZ53ivGFWlsBlpTCnrkspXOBuw+yv6L/ap+ltMm1OGNzNWb6yycLrNtNOjqHO8eow6R25zQoiUtiAbD3nq8bO803oXWfScOLjE7HrN199dZLK4TVHn2OmMwuaoeoyqp7AZTmvKuqDSCcmc0B31qL+v+am4xIVvL/Cr+5kjxweUMWdcjSjrguA8Rp2nmBVM0xlbtkDm4LdfrvHGuWXsoQmmZeBwZN+JLvGoks2GJDFlomO8Cxivyp3ZFlVSUdocjYoo1P0pyXOO9qBJIgmh4ShDQZxEEkmxYYb3HuNdYBxHJJIw1hFZNsRfXsOpg3lLlQrRQdT4n0iCoChBg5jgfWMSJgCEJPLZpU+pr8D0wJhEFZ3URH+X03FH0xBCaqJnU3cTInA1/k44Da05iCk467nPNBBh3eD5XOAU8CzsFGnuJjyI536cB76ShS+ByBEiLwEDICL/e/XuQe6wjnAeYfPfAQD6z4IW9epAmAAAAABJRU5ErkJggg%3D%3D%22%0A%20%20%20%3A%20self.image%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AaddEventListener%28%22TabAttrModified%22%2C%20toggleImage%2C%20true%2C%20gBrowser.tabContainer%20%29%3B%0A%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20if%20%28%20e.button%20%29%20return%3B%0A%0A%20%20%20%20var%20tab%20%3D%20gBrowser.selectedTab%3B%0A%20%20%20%20var%20input%20%3D%20gBrowser.contentDocument.getElementsByTagName%28%22input%22%29%3B%0A%20%20%20%20%0A%20%20%20%20Array.slice%28input%29.forEach%28function%28el%29%20%7B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20if%20%28%20el.hasAttribute%28%22type%22%29%20%26%26%20el.getAttribute%28%22type%22%29.toLowerCase%28%29%20%3D%3D%20%22password%22%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.type%20%3D%20%22text%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.setAttribute%28%22typechanged%22%2C%20true%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20if%20%28%20tab.hasAttribute%28%20attr%20%29%20%26%26%20el.hasAttribute%28%22typechanged%22%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.type%20%3D%20%22password%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20el.removeAttribute%28%22typechanged%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%29%0A%20%20%20%0A%20%20%20tab.hasAttribute%28%20attr%20%29%20%3F%20tab.removeAttribute%28%20attr%20%29%20%3A%20tab.setAttribute%28%20attr%2C%20true%20%29%3B%0A%20%20%20toggleImage%28%29%3B%20%20%20%0A%7D%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

const attr = "Showpassword";

function toggleImage() {
   var icon = self.ownerDocument.getAnonymousElementByAttribute( self, "class", "toolbarbutton-icon");
   icon.src = gBrowser.selectedTab.hasAttribute(attr)
   ? "data:image/png;base64,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"
   : self.image;
};
toggleImage();
addEventListener("TabAttrModified", toggleImage, true, gBrowser.tabContainer );

this.onclick = function(e) {
    if ( e.button ) return;

    var tab = gBrowser.selectedTab;
    var input = gBrowser.contentDocument.getElementsByTagName("input");
    
    Array.slice(input).forEach(function(el) {        
         if ( el.hasAttribute("type") && el.getAttribute("type").toLowerCase() == "password" ) {
              el.type = "text";
              el.setAttribute("typechanged", true);              
              }
         if ( tab.hasAttribute( attr ) && el.hasAttribute("typechanged") ) {
              el.type = "password";
              el.removeAttribute("typechanged"); 
              }
   })
   
   tab.hasAttribute( attr ) ? tab.removeAttribute( attr ) : tab.setAttribute( attr, true );
   toggleImage();   
};

Отредактировано bunda1 (11-01-2014 04:38:23)

Отсутствует

 

№10910-01-2013 23:27:27

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

About:( Firefox24+ ) от 29.11.2017.
Открывает about:config в новой активной вкладке или меню с разными about:, меню легко изменить или дополнить.
Даёт возможность средним кликом открыть about:config с настройкой из буфера обмена или выделенную на странице и сразу искать.

ЛКМ => открыть about:config,
СКМ => открыть about:config с настройкой( выделенной или из буфера ),
ПКМ => открыть меню с разными about: + стандартное меню кнопки.

Скриншот about: меню
dbdc50657e07f20038f949b2f6bf4b5a.png

Код кнопки и инициализации:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EAbout%3A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAAD2klEQVQ4jUWSXUxTVxzA/+fccz9oYa29QK0OKC4gHbAYoDUV0WxmURdjTIhbmBphMYubyTZefFoWMxdcso+HxfmB0y0q0WmyKVscHzqjEYIW6AbChJDhBUGwFPpB77W959yzBx/2e/89/X6IUnrw1MmTa1qOHTu8Mt+NY4m4RSkFURRBURTYvnUbUlWVq7nqJn8gcPilnJyqpaWllnQ6fbx/YAALzc3NUkV5+dkpTbPNzcx2FxcVSbF4jC1GoxAIBLAoEi5Jsr+6pvq2YRi+rq6ur6c17Ux0IZqtqq4UQQj1NjY1Ve/bs7d9d339WDKZPCdJkjgyMmouLi7heDxuBYPBdzfW1cldnZ1cEkXd4/G0JxLJy6mUfgLLsiyEw+HB/Y2NGyLPIp/LstyUTCZNt9stck6BCAhy8/NficViIMtKusbv/8pmt6+mlLZRSgFzzpkkScR4bkydPnmqdjm5fNThcDTJkmjqJtCE/tyFzFT1hfMXYXh4SPR6vcAoO+h0OuOqqgoEAIAxRgFAYJRqP5xu3dB04ECfJ28FHkGlZ8N67jnP/fSqTS/nZWYWEtfGHz0acqmuWcYYEEI40nUdfD4faJoGm4O1goAxQwBFDR8cauPzXIlc+qX67NpDuo12169MDXS83bAfr1ZdFuIcBEKAACAA4AAAkCp507I5coUF3dSG70xGjuRGdz1zzYFz+rv2eQN1FKQ02T0UBiEYzHBCOAYLCPwPZoqTW7YVCJD7t9lbbTv+ZrfNwrd2k8o//3jntX9GQx7J/q155nsk3LuBECEcZ9kAv3ARAgCOgeEcKe+q1j+zo6f2Izhf2hTu+7F1LH+dH7Ha17/pAbiVtNm9WcsJiyxGBBKLAgYECAAQAOayUnDh/t2FXY6iNZbLiSL3UM5OWNYb+js7TG9lBS32+98YSBj9EUsIEkFkFhYFzDlgzkzLFfzw+OhDoYHnqJmVq+zo6ePBvflZ5rzbnv2XRc2jPdevk+JAQK8IrHeFtOjvyQQvk5Y5w9SIM8/mjz9VivccokgwispWSU+nRptlUe96Mt4nhgRA2cxqScVi3b1XrtgKqqoMX02NK7wYv6gzbhd2vndkW+uNyCfE1EKF6+rKp8cenEjPdn8W6/0JLz4OsZtGGj00DMuZyfzqsKyaxMREWcnG2ucIUKGSyXChxLd+bdeDJ9uLfV7l39Cd8dTgl/vSE3ezkJmSJVmWiCBITwnJCgHQcdO8ZDLmUSYnA6VbtiSvTk19gSpfLYXJmON9xekth7mbP2PEFCA2+4suL/7AAGBxjgwAgwNEgpxvjWE8Pkzptf8ApubSUysIvccAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20................................%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Aconfig%22%29%3B%20%20%0A%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20//%20%u0437%u0430%u043F%u043E%u043C%u043D%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u0438%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20%20var%20clip%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20window.content.focus%28%29%3B%0A%20%20%20%20%20%20%20%20goDoCommand%28%22cmd_copy%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%27about%3Aconfig%3Ffilter%3D%27%20+%20gClipboard.read%28%29%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20clip%20%26%26%20%20gClipboard.write%28clip%29%3B%20//%20%u0432%u0435%u0440%u043D%u0443%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20menu.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%20%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Avar%20array%20%3D%20%5B%0A%20%20%20%5B%20%27%u0412%u0441%u0435%20about%3A%27%2C%20%27about%3Aabout%27%20%5D%2C%0A%20%20%20%5B%20%27%u041E%20%u043F%u043B%u0430%u0433%u0438%u043D%u0430%u0445%27%2C%20%27value%3A%22about%3Aplugins%27%20%5D%2C%0A%20%20%20%5B%20%27%u041E%20%u0442%u0435%u043B%u0435%u043C%u0435%u0442%u0440%u0438%u0438%27%2C%20%27about%3Atelemetry%27%20%5D%2C%0A%20%20%20%5B%20%27%u041D%u043E%u0432%u0430%u044F%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%27%2C%20%27about%3Anewtab%27%20%5D%2C%0A%20%20%20%5B%20%27%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u0430%u043A%20%u0442%u0430%u0431%27%2C%20%27about%3Apreferences%27%20%5D%2C%0A%20%20%20%5B%20%27%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u043E%20%u043A%u044D%u0448%u0435%27%2C%20%27about%3Acache%27%20%5D%2C%0A%20%20%20%5B%20%27%u041D%u0430%u0447%u0430%u043B%u044C%u043D%u0430%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%27%2C%20%27about%3Ahome%27%20%5D%2C%20%20%20%0A%20%20%20%5B%20%27%u0412%u043E%u0441%u0441%u0442%u0430%u043D%u043E%u0432%u043B%u0435%u043D%u0438%u0435%20%u0441%u0435%u0441%u0441%u0438%u0438%27%2C%20%27about%3Asessionrestore%27%20%5D%2C%0A%20%20%20%5B%20%27%u0423%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0440%u0430%u0437%u0440%u0435%u0448%u0435%u043D%u0438%u044F%u043C%u0438%27%2C%20%27about%3Apermissions%27%20%5D%2C%0A%20%20%20%5B%20%27%u0418%u043D%u0444%u043E%u0440%u043C%u0430%u0446%u0438%u044F%20%u0434%u043B%u044F%20%u0440%u0435%u0448%u0435%u043D%u0438%u044F%20%u043F%u0440%u043E%u0431%u043B%u0435%u043C%27%2C%20%27about%3Asupport%27%20%5D%2C%0A%20%20%20%5B%20%27%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0438%u0441%u043F%u043B%u044A%u0437%u043E%u0432%u0430%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%27%2C%20%27about%3Amemory%27%20%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0Avar%20menu%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28m%3D%3E%20%7B%0A%20%20%20var%20mItem%20%3D%20menu.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m%5B0%5D%29%3B%20%20%0A%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28m%5B1%5D%29%3B%20%0A%7D%29%3B%0Amenu.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%27about%3Aconfig%27%5Cn%u0421%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%27about%3Aconfig%27%20%u0441%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u043E%u0439%20%28%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u043E%u0439%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%29%5Cn%u041F%3A%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u0432%u0441%u0435%20about%3A%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

// Настройка функций кликов мыши ................................
this.onclick =e=> {
   if ( e.button == 0 ) gBrowser.selectedTab = gBrowser.addTab("about:config");  
     
   if ( e.button == 1 ) { 
        // запомнить текст из буфера обмена и скопировать текст на странице
        var clip = gClipboard.read();
        window.content.focus();
        goDoCommand("cmd_copy");            

        gBrowser.selectedTab = gBrowser.addTab('about:config?filter=' + gClipboard.read()); 
                   
        clip &&  gClipboard.write(clip); // вернуть текст в буфер обмена
        }
          
   if ( e.button == 2 && !e.ctrlKey && !e.shiftKey && !e.altKey && !e.metaKey ) { 
        e.preventDefault();  
        menu.showPopup(this, -1, -1, "popup", "bottomleft", "topleft");
        }        
};
this.oncontextmenu =e=> { e.button && !e.ctrlKey && e.preventDefault() };

 
// Создать меню для кнопки ................................
var array = [
   [ 'Все about:', 'about:about' ],
   [ 'О плагинах', 'value:"about:plugins' ],
   [ 'О телеметрии', 'about:telemetry' ],
   [ 'Новая вкладка', 'about:newtab' ],
   [ 'Настройки как таб', 'about:preferences' ],
   [ 'Информация о кэше', 'about:cache' ],
   [ 'Начальная страница', 'about:home' ],   
   [ 'Восстановление сессии', 'about:sessionrestore' ],
   [ 'Управление разрешениями', 'about:permissions' ],
   [ 'Информация для решения проблем', 'about:support' ],
   [ 'Показать исплъзование памяти подробно', 'about:memory' ]
            ];
var menu = self.appendChild(document.createElement("menupopup"));
array.forEach(m=> {
   var mItem = menu.appendChild(document.createElement("menuitem"));
   mItem.setAttribute("label", m[0]);  
   mItem.onclick =()=> gBrowser.selectedTab = gBrowser.addTab(m[1]); 
});
menu.setAttribute("onclick", "event.stopPropagation()");


// Подсказка кнопки ................................
this.tooltipText = "Л: Открыть 'about:config'\nС: Открыть 'about:config' с настройкой ( выделенной или из буфера )\nП: Показать все about:";

Отредактировано bunda1 (30-03-2013 16:59:52)

Отсутствует

 

№11012-01-2013 14:46:23

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

VT ( Firefox10+ )
Создаёт вертикальную панель слева на котором можно размещать кнопки как на обычном панели, вертикальная панель автоматически принимает такой же цвет как у других панелей, если поменять тему оформления или обои.  Вертикальная панель свёрнута но автоматически появляется над страницей при наведение курсора. Клик на кнопке или двойной левый клик на панели выключает и включает режим автоматического свёртывания. В начале кода инициализации кнопки есть разные настройки где можно установить расстояние от курсора и длительность нахождения курсора рядом с вертикальной панелью при котором она появляется или сворачивается и другие свойства панели.


ЛКМ => Выключить и включить режим автоматического свёртывания,
Двойной левый клик на панели => Выключить и включить режим автоматического свёртывания.

Скриншот вертикальной панели
945606b025dd7da5834a23f88bbb6fb0.png[/url]

Код кнопки для Firefox10-45

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0432%u0435%u0440%u0442%u0438%u043A%u0430%u043B%u044C%u043D%u0443%u044E%20%u043F%u0430%u043D%u0435%u043B%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAKP+AAIX/gAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAFf+AABUAAAAAAAAAAAAAAAAAAAAA/4AAJP+AAP//gAD//4AA//+AACQAAAAAAAAAAAAAAAAAAAAA/4AAEv+AAP//gAD//4AAEgAAAAAAAAAA/4AAIP+AAP//gAD//4AA//+AAP//gAD//4AAJgAAAAAAAAAAAAAAAP+AABH/gAD//4AA//+AABEAAAAAAAAAAP+AAP//gAD//4AA//+AADb/gAD//4AA//+AAP//gAAQAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AACAAAAAA/4AAIP+AAP//gAD//4AAEQAAAAAAAAAA/4AAD/+AAP//gAD//4AADwAAAAAAAAAA/4AA//+AAP//gAAMAAAAAP+AAAz/gAD//4AA//+AAA8AAAAAAAAAAP+AAA//gAD//4AA//+AAA8AAAAAAAAAAP+AAP//gAD//4AADwAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AAA8AAAAA/4AAD/+AAP//gAD//4AADAAAAAAAAAAA/4AACv+AAP//gAD//4AACgAAAAAAAAAA/4AA//+AAP//gAAPAAAAAP+AAA//gAD//4AA//+AAAv/gAAL/4AADP+AACH/gAD//4AA//+AACH/gAAK/4AAD/+AAP//gAD//4AAEQAAAAD/gAAR/4AA//+AAP//gAAm/4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AABIAAAAA/4AAEv+AAP//gAD//4AAJ/+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AAEf+AABIAAAAAAAAAAAAAAAD/gAAV/4AAEgAAAAD/gAAQ/4AAEf+AAA//gAAP/4AAD/+AAA//gAAP/4AADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQe//rEHH56xBg8OsQQHDrEEAw6xBEMOsQRDDrEEQw6xBEMOsQRAArEEQAKxBEACsQTkArEH//6xB//+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20button%20%3D%20this%3B%0A%0Aconst%20sideBarAutoClose%20%3D%20false%3B%20//%20true%20%3D%3E%20%u0432%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0430%u0432%u0442%u043E%20%u0437%u0430%u043A%u0440%u044B%u0442%u0438%u0435%20%u0431%u043E%u043A%u043E%u0432%u043E%u0439%20%u043F%u0430%u043D%u0435%u043B%u0438%20%0Aconst%20autoCloseDelay%20%3D%20500%3B%20%20%20%20%20//%20ms%0A%0Aconst%20showDelay%20%3D%20250%3B%09%09//%20ms%0Aconst%20distanceShow%20%3D%202%3B%09%09//%20px%0Aconst%20distanceHide%20%3D%2064%3B%09//%20px%0Aconst%20vtWidthCorrection%20%3D%20-1%3B%09//%20px%20%28%20number%20%5B%20+%20or%20-%20%5D%20%29%0A%0Aconst%20toolbarId%20%3D%20%22vertical_toolbar%22%3B%0Aconst%20toolboxId%20%3D%20toolbarId%20+%20%22_toolbox%22%3B%0Aconst%20sep%20%3D%20%22%5Cu00A0%22%3B%0Aconst%20firstAttributes%20%3D%20%22%5C%0Aid%20%25id%25%20class%20chromeclass-toolbar%20fullscreentoolbar%20true%20context%20toolbar-context-menu%20_width%2020%20%5C%0Acustomizable%20true%20flex%201%20iconize%20large%20mode%20icons%20orient%20vertical%20widthcorr%200%22%0A.replace%28/%20/g%2C%20sep%29.replace%28/%25id%25/%2C%20toolbarId%29%3B%0A%0A//%20....................................................................................................%0A%0Aconst%20pn%20%3D%20%22custombutton.verticaltoolbar.attributes%22%3B%0Avar%20prefs%20%3D%20Application.prefs%3B%0Aif%20%28%21prefs.has%28pn%29%29%20prefs.setValue%28pn%2C%20firstAttributes%29%3B%0Avar%20pref%20%3D%20prefs.get%28pn%29%3B%0Afunction%20getAttr_pref%28%29%20%7B%0A%09return%20pref.value%0A%7D%0Afunction%20setAttr_pref%28%29%20%7B%0A%09pref.value%20%3D%20%22%22%3B%0A%09Array.slice%28document.getElementById%28toolbarId%29.attributes%29.forEach%28function%28attr%29%20%7B%0A%09%09pref.value%20+%3D%20%28attr.name%20+%20sep%20+%20attr.value%20+%20sep%29%3B%0A%09%7D%29%3B%0A%7D%0A//%20....................................................................................................%0A%0Avar%20browser%20%3D%20document.getElementById%28%22browser%22%29%3B%0Avar%20toolbar%20%3D%20document.getElementById%28toolbarId%29%3B%0Avar%20toolbox%20%3D%20document.getElementById%28toolboxId%29%3B%0A%0Aif%20%28%21toolbar%29%20%7B%0A%0A%09toolbox%20%3D%20document.createElement%28%22toolbox%22%29%3B%0A%09toolbox.id%20%3D%20toolboxId%3B%0A%09toolbox.palette%20%3D%20gNavToolbox.palette%3B%0A%09%0A%09toolbar%20%3D%20document.createElement%28%22toolbar%22%29%3B%0A%09toolbar.style.minWidth%20%3D%20%2220px%22%3B%0A%09%0A%09browser.insertBefore%28toolbox%2C%20browser.firstChild%29%3B%0A%09toolbox.appendChild%28toolbar%29%3B%0A%0A//%20....................................................................................................%0A//%20Thanks%20-%20http%3A//nanto.asablo.jp/blog/2007/04/22/1459018%0A%0A%09const%20style%20%3D%27%5C%0A%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%7B%5Cn%5C%0A%09%09-moz-appearance%3A%20none%3B%5Cn%5C%0A%09%09border-bottom%3A%200px%20none%3B%5Cn%5C%0A%09%09border-top%3A%200px%20none%3B%5Cn%5C%0A%09%09border-right%3A%201px%20solid%20rgb%28170%2C%20188%2C%20207%29%3B%5Cn%5C%0A%09%09background%3A%20none%20repeat%20scroll%200%25%200%25%20rgb%28207%2C%20219%2C%20236%29%3B%5Cn%5C%0A%09%09-image%3A%20-moz-linear-gradient%28rgba%28255%2C%20255%2C%20255%2C%20.5%29%2C%20rgba%28255%2C%20255%2C%20255%2C%200%29%2027px%29%20%21important%3B%5Cn%5C%0A%7D%5Cn%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%3E%20toolbarseparator%2C%5Cn%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%3E%20%5Bid%5E%3D%22wrapper-separator%22%5D%20%7B%5Cn%5C%0A%09%09-moz-appearance%3A%20none%20%21important%3B%5Cn%5C%0A%09%09margin%3A%200.2em%202px%3B%5Cn%5C%0A%09%09border-bottom%3A%201px%20solid%20ThreeDHighlight%3B%5Cn%5C%0A%09%09border-top%3A%201px%20solid%20ThreeDShadow%3B%5Cn%5C%0A%09%09height%3A%202px%3B%5Cn%5C%0A%09%09border-left%3A%20none%3B%5Cn%5C%0A%09%09border-right%3A%20none%3B%5Cn%5C%0A%7D%5Cn%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%3E%20toolbarspacer%2C%5Cn%5C%0A%09toolbar%5Borient%3D%22vertical%22%5D%20%3E%20%5Bid%5E%3D%22wrapper-spacer%22%5D%20%7B%20height%3A%2015px%3B%20%7D%27%0A%0A%09var%20sspi%20%3D%20document.createProcessingInstruction%28%27xml-stylesheet%27%2C%0A%09%09%20%20%27type%3D%22text/css%22%20href%3D%22data%3Atext/css%2C%27%20+%20encodeURI%28style%29%20+%20%27%22%27%29%3B%0A%09document.insertBefore%28sspi%2C%20document.documentElement%29%3B%0A%0A//%20....................................................................................................%0A%0A%09var%20attr%20%3D%20getAttr_pref%28%29.split%28sep%29%3B%0A%09for%20%28var%20i%3D0%3B%20i%3C%28attr.length-1%29%3B%20i+%3D2%29%20%7B%20toolbar.setAttribute%28attr%5Bi%5D%2C%20attr%5Bi+1%5D%29%3B%20%7D%0A%0A%09var%20currentSet%20%3D%20toolbar.getAttribute%28%22currentset%22%29.split%28%22%2C%22%29%3B%0A%09currentSet.forEach%28function%28id%29%7B%20toolbar.insertItem%28id%29%3B%20%7D%29%3B%0A%7D%0A//%20....................................................................................................%0A%0Avar%20et%20%3D%20gNavToolbox.externalToolbars%3B%0Avar%20already%20%3D%20false%3B%0Afor%20%28var%20i%3D0%3B%20i%3Cet.length%3B%20i++%29%20%7B%20if%20%28et%5Bi%5D%20%3D%3D%20toolbar%29%20%7B%20already%20%3D%20true%3B%20break%20%7D%20%7D%0Aif%20%28%21already%29%20et%5Bet.length%5D%20%3D%20toolbar%3B%0A%0Avar%20delta%20%3D%20toolbar.getAttribute%28%22widthcorr%22%29%20-%20vtWidthCorrection%3B%0Atoolbar.setAttribute%28%22widthcorr%22%2C%20vtWidthCorrection%29%3B%0Aif%20%28delta%29%20toolbar.setAttribute%28%22_width%22%2C%20toolbar.getAttribute%28%22_width%22%29%20-%20delta%29%3B%0A%0Afunction%20lock%28%29%20%7B%0A%0A%09var%20width%20%3D%20toolbar.getAttribute%28%22_width%22%29%3B%0A%09%0A%09toolbox.style.position%20%3D%20toolbar.hasAttribute%28%22autohide%22%29%20%3F%20%22%22%20%3A%20%22fixed%22%3B%0A%09toolbox.style.height%20%3D%0A%09toolbar.style.height%20%3D%20browser.boxObject.height%20+%20%22px%22%3B%0A%0A%09toolbar.style.maxWidth%20%3D%0A%09toolbar.style.minWidth%20%3D%0A%09toolbox.style.maxWidth%20%3D%0A%09toolbox.style.minWidth%20%3D%20width%20*%20%21toolbar.collapsed%20+%20%22px%22%3B%09%0A%7D%0Afunction%20beforeCustomize%28%29%20%7B%0A%0A%09toolbox.removeAttribute%28%22style%22%29%3B%0A%09toolbox.removeAttribute%28%22width%22%29%3B%0A%09toolbar.removeAttribute%28%22style%22%29%3B%0A%09toolbar.style.minWidth%20%3D%20%2220px%22%3B%0A%7D%0Afunction%20customizationChange%28%29%20%7B%0A%09window.setTimeout%28function%28%29%20%7B%0A%09%09toolbar.setAttribute%28%22_width%22%2C%20toolbar.boxObject.width%20+%20vtWidthCorrection%29%3B%0A%09%7D%2C%20640%29%3B%0A%7D%0Afunction%20afterCustomize%28%29%20%7B%0A%0A%09setAttr_pref%28%29%3B%0A%09removeListeners%28%29%3B%0A%09lock%28%29%3B%0A%7D%0Afunction%20collapser%28e%29%20%7B%0A%0A%09var%20distance%20%3D%20e.screenX%20-%20browser.boxObject.screenX%3B%0A%09if%20%28toolbar.waiting%29%20return%3B%0A%0A%09if%20%28%28distance%20%3C%3D%20distanceShow%29%20%26%26%20%28toolbar.collapsed%29%29%20%7B%0A%0A%09%09if%20%28showDelay%20%3C%201%29%20%7B%20toolbar.collapsed%20%3D%20false%3B%20lock%28%29%3B%20return%3B%20%7D%0A%0A%09%09toolbar.waiting%20%3D%20true%3B%0A%09%09window.setTimeout%28function%28%29%20%7B%0A%0A%09%09%09if%20%28distance%20%3E%3D%20distanceShow%29%20%7B%20toolbar.waiting%20%3D%20false%3B%20return%3B%20%7D%0A%09%09%09toolbar.collapsed%20%3D%20false%3B%0A%09%09%09lock%28%29%3B%0A%09%09%09toolbar.waiting%20%3D%20false%3B%0A%0A%09%09%7D%2C%20showDelay%29%3B%0A%09%7D%0A%09if%20%28%28distance%20%3E%3D%20distanceHide%29%20%26%26%20%28%21toolbar.collapsed%29%29%20%7B%0A%09%09toolbar.collapsed%20%3D%20true%3B%0A%09%09lock%28%29%3B%0A%09%7D%0A%7D%0Afunction%20removeListeners%28%29%20%7B%0A%0A%09gNavToolbox.removeEventListener%28%22beforecustomization%22%2C%20beforeCustomize%2C%20false%29%3B%0A%09gNavToolbox.removeEventListener%28%22customizationchange%22%2C%20customizationChange%2C%20false%29%3B%0A%09gNavToolbox.removeEventListener%28%22aftercustomization%22%2C%20afterCustomize%2C%20false%29%3B%0A%7D%0A%0Athis.onclick%20%3D%20function%28e%29%20%7B%20%0A%0A%09if%20%28e.button%29%20return%3B%0A%0A%09var%20autohide%20%3D%20toolbar.hasAttribute%28%22autohide%22%29%3B%0A%09toolbar.collapsed%20%3D%20autohide%3B%0A%0A%09if%20%28%21autohide%29%20%7B%0A%09%09browser.removeEventListener%28%22mousemove%22%2C%20collapser%2C%20false%29%3B%0A%09%09toolbar.setAttribute%28%22autohide%22%2C%20%22true%22%29%3B%0A%09%7D%0A%09else%20%7B%0A%09%09browser.addEventListener%28%22mousemove%22%2C%20collapser%2C%20false%29%3B%0A%09%09toolbar.removeAttribute%28%22autohide%22%29%3B%0A%09%7D%0A%09lock%28%29%3B%0A%7D%0A%0Atoolbar.ondblclick%20%3D%20function%28e%29%20%7B%0A%0A%09if%20%28%20e.button%20%7C%7C%20e.target.nodeName%20%3D%3D%20%22toolbarbutton%22%0A%09%20%20%09%20%20%20%20%20%20%7C%7C%20e.target.nodeName%20%3D%3D%20%22toolbaritem%22%20%29%20return%3B%0A%09button.click%28%29%3B%0A%7D%0A//%20....................................................................................................%0A%0Aif%20%28%21toolbar.hasAttribute%28%22autohide%22%29%29%20%7B%0A%09browser.addEventListener%28%22mousemove%22%2C%20collapser%2C%20false%29%3B%0A%7D%0Aelse%20toolbar.setAttribute%28%22autohide%22%2C%20%22true%22%29%3B%0A%0Alock%28%29%3B%0A%0AgNavToolbox.addEventListener%28%22beforecustomization%22%2C%20beforeCustomize%2C%20false%29%3B%0AgNavToolbox.addEventListener%28%22customizationchange%22%2C%20customizationChange%2C%20false%29%3B%0AgNavToolbox.addEventListener%28%22aftercustomization%22%2C%20afterCustomize%2C%20false%29%3B%0A%0A%0A%0A//%20....................................................................................................%0Avar%20observer%20%3D%20%7B%0A%20%20%20%20get%20obs%28%29%20%7B%0A%20%20%20%20%20%20%20%20return%20Cc%5B%22@mozilla.org/observer-service%3B1%22%5D.getService%28Ci.nsIObserverService%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20init%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20this.obs.addObserver%28this%2C%20%22lightweight-theme-styling-update%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.observe%28%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroy%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.obs.removeObserver%28this%2C%20%22lightweight-theme-styling-update%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20observe%3A%20function%28subject%2C%20topc%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20win%20%3D%20document.getElementById%28%22main-window%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20bgi%20%3D%20window.getComputedStyle%28win%29.backgroundImage%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28bgi%20%3D%3D%20%22none%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20bgc%20%3D%20window.getComputedStyle%28win%29.backgroundColor%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toolbar.style.backgroundColor%20%3D%20bgc%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20brc%20%3D%20bgc%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20bgc.match%28/%5Cd+/g%29.forEach%28function%28color%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28i%20%3E%202%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20brc%20%3D%20brc.replace%28color%2C%20Math.round%28color/1.5%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toolbar.style.borderRightColor%20%3D%20brc%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20url%20%3D%20bgi.replace%28%27url%28%22%27%2C%20%22%22%29.replace%28%27%22%29%27%2C%20%22%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20const%20xhtml%20%3D%20%22http%3A//www.w3.org/1999/xhtml%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20img%20%3D%20document.createElementNS%28xhtml%2C%20%22img%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20canvas%20%3D%20document.createElementNS%28xhtml%2C%20%22canvas%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20img.src%20%3D%20url%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20img.onload%20%3D%20function%28%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20width%20%3D%20canvas.width%20%3D%20img.width%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20height%20%3D%20canvas.height%20%3D%20img.height%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20context%20%3D%20canvas.getContext%28%222d%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20context.drawImage%28img%2C%200%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20arr%20%3D%20context.getImageData%280%2C%200%2C%20width%2C%20height%29.data%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20r%20%3D%200%2C%20g%20%3D%200%2C%20b%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20len%20%3D%20arr.length%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20%28var%20i%20%3D%200%3B%20i%20%3C%20len%3B%20i%20+%3D%204%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20r%20+%3D%20arr%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20g%20+%3D%20arr%5Bi%20+%201%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20b%20+%3D%20arr%5Bi%20+%202%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20colors%20%3D%20%5Br%2C%20g%2C%20b%5D%2C%20borderRightColors%20%3D%20%5B%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20colors.forEach%28function%28color%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20clr%20%3D%20Math.round%284%20*%20color%20/%20len%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20colors%5Bi%5D%20%3D%20clr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderRightColors.push%28Math.round%28clr%20/1.5%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rgb%20%3D%20%22rgb%28%22%20+%20colors.join%28%22%2C%20%22%29%20+%20%22%29%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20rgbBrc%20%3D%20%22rgb%28%22%20+%20borderRightColors.join%28%22%2C%20%22%29%20+%20%22%29%22%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toolbar.style.backgroundColor%20%3D%20rgb%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20toolbar.style.borderRightColor%20%3D%20rgbBrc%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%2C%20200%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Aobserver.init%28%29%3B%0A%0A%0A%0Afunction%20n%28id%29%20document.getElementById%28id%29%3B%0Aconst%20page%20%3D%20n%28%22content%22%29%2C%20box%20%3D%20n%28%22sidebar-box%22%29%2C%20sidebar%20%3D%20n%28%22sidebar%22%29%3B%0Avar%20tvtc%2C%20timeout%3B%0A%0Afunction%20listenMO%28node%2C%20listen%29%20%7B%0A%20%20%20%20var%20func%20%3D%20node%20%3D%3D%20box%20%3F%20onBMO%20%3A%20onPMO%3B%0A%20%20%20%20%28listen%20%3F%20addEventListener%20%3A%20removeEventListener%29%0A%20%20%20%20.apply%28this%2C%20%5B%22mouseover%22%2C%20func%2C%20false%2C%20node%5D%29%3B%0A%7D%0Afunction%20onPMO%28%29%20%7B%0A%20%20%20%20listenMO%28page%2C%20false%29%3B%0A%20%20%20%20timeout%20%3D%20setTimeout%28hideSB%2C%20autoCloseDelay%20%29%3B%0A%20%20%20%20listenMO%28box%2C%20true%29%3B%0A%7D%0Afunction%20onBMO%28%29%20%7B%0A%20%20%20%20listenMO%28box%2C%20false%29%3B%0A%20%20%20%20clearTimeout%28timeout%29%3B%0A%20%20%20%20listenMO%28page%2C%20true%29%3B%0A%7D%0Afunction%20hideSB%28%29%20%7B%0A%20%20%20%20listenMO%28box%2C%20false%29%3B%0A%20%20%20%20if%20%28box.hidden%29%20return%3B%0A%20%20%20%20var%20id%20%3D%20box.getAttribute%28%22sidebarcommand%22%29%20%7C%7C%20%22viewBookmarksSidebar%22%3B%0A%20%20%20%20n%28id%29.setAttribute%28%22checked%22%2C%20true%29%3B%0A%20%20%20%20toggleSidebar%28id%29%3B%0A%7D%0Afunction%20onSBL%28%29%20%7B%0A%20%20%20%20var%20time%20%3D%20Date.now%28%29%3B%0A%20%20%20%20listenMO%28page%2C%20false%29%3B%0A%20%20%20%20if%20%28time%20-%20tvtc%20%3C%20800%29%20listenMO%28page%2C%20true%29%3B%0A%7D%0Afunction%20onVTC%28e%29%20%7B%0A%20%20%20%20var%20time%20%3D%20Date.now%28%29%3B%0A%20%20%20%20for%20%28var%20node%20%3D%20e.target%3B%20node%3B%20node%20%3D%20node.parentNode%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28node%20%21%3D%20toolbar%29%20continue%3B%0A%20%20%20%20%20%20%20%20tvtc%20%3D%20time%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%7D%0Afunction%20ael%28add%29%20%7B%0A%20%20%20%20%5B%20%20%20%20%5B%22DOMContentLoaded%22%2C%20onSBL%2C%20false%2C%20sidebar%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22click%22%2C%20onVTC%2C%20false%2C%20window%5D%2C%0A%20%20%20%20%20%20%20%20%5B%22command%22%2C%20onVTC%2C%20false%2C%20window%5D%0A%20%20%20%20%5D.forEach%28function%28args%29%20%7B%0A%20%20%20%20%20%20%20%20%28add%20%3F%20addEventListener%20%3A%20removeEventListener%29.apply%28this%2C%20args%29%3B%0A%20%20%20%20%7D%29%3B%0A%7D%0Aif%20%28%20sideBarAutoClose%20%29%20ael%28true%29%3B%0A%0A%0A%0Athis.onDestroy%20%3D%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20observer.destroy%28%29%3B%0A%20%20%20%20%20%20%20%20%0A%09browser.removeEventListener%28%22mousemove%22%2C%20collapser%2C%20false%29%3B%0A%09if%20%28%21toolbar.hasAttribute%28%22customizing%22%29%29%20removeListeners%28%29%3B%0A%09if%20%28reason%20%3D%3D%20%22delete%22%29%20pref.reset%28%29%3B%0A%09if%20%28%21getAttr_pref%28%29%29%20return%3B%0A%09setAttr_pref%28%29%3B%0A%09%0A%09ael%28false%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Код кнопки для Firefox45+

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EVT%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAKP+AAIX/gAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/4AAFf+AABUAAAAAAAAAAAAAAAAAAAAA/4AAJP+AAP//gAD//4AA//+AACQAAAAAAAAAAAAAAAAAAAAA/4AAEv+AAP//gAD//4AAEgAAAAAAAAAA/4AAIP+AAP//gAD//4AA//+AAP//gAD//4AAJgAAAAAAAAAAAAAAAP+AABH/gAD//4AA//+AABEAAAAAAAAAAP+AAP//gAD//4AA//+AADb/gAD//4AA//+AAP//gAAQAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AACAAAAAA/4AAIP+AAP//gAD//4AAEQAAAAAAAAAA/4AAD/+AAP//gAD//4AADwAAAAAAAAAA/4AA//+AAP//gAAMAAAAAP+AAAz/gAD//4AA//+AAA8AAAAAAAAAAP+AAA//gAD//4AA//+AAA8AAAAAAAAAAP+AAP//gAD//4AADwAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAAP/4AA//+AAP//gAAPAAAAAAAAAAD/gAD//4AA//+AAA8AAAAA/4AAD/+AAP//gAD//4AADAAAAAAAAAAA/4AACv+AAP//gAD//4AACgAAAAAAAAAA/4AA//+AAP//gAAPAAAAAP+AAA//gAD//4AA//+AAAv/gAAL/4AADP+AACH/gAD//4AA//+AACH/gAAK/4AAD/+AAP//gAD//4AAEQAAAAD/gAAR/4AA//+AAP//gAAm/4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AA//+AABIAAAAA/4AAEv+AAP//gAD//4AAJ/+AAP//gAD//4AA//+AAP//gAD//4AA//+AAP//gAD//4AAEf+AABIAAAAAAAAAAAAAAAD/gAAV/4AAEgAAAAD/gAAQ/4AAEf+AAA//gAAP/4AAD/+AAA//gAAP/4AADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQe//rEHH56xBg8OsQQHDrEEAw6xBEMOsQRDDrEEQw6xBEMOsQRAArEEQAKxBEACsQTkArEH//6xB//+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20vto%20%3D%20%7B%0A%20%20%20%20distanceShow%3A%202%2C%0A%20%20%20%20distanceHide%3A%2064%2C%0A%20%20%20%20showDelay%3A%20320%2C%0A%20%20%20%20color%3A%20%22lightblue%22%2C%0A%20%20%20%20fringe%3A%20%22black%22%2C%0A%20%20%20%20padding%3A%203%2C%0A%20%20%20%20name%3A%20%22VT%22%2C%0A%0A%20%20%20%20btn%3A%20this%2C%0A%20%20%20%20tcm%3A%20document.getElementById%28%22toolbar-context-menu%22%29%2C%0A%20%20%20%20ctm%3A%20document.getElementById%28%22customization-toolbar-menu%22%29%2C%0A%20%20%20%20deck%3A%20document.getElementById%28%22content-deck%22%29%2C%0A%20%20%20%20id%3A%20%22cb-vt%22%2C%0A%0A%20%20%20%20get%20cust%28%29%20gBrowser.currentURI.spec%20%3D%3D%20%22about%3Acustomizing%22%2C%0A%20%20%20%20get%20xs%28%29%20%7B%0A%20%20%20%20%20%20%20%20delete%20this.xs%3B%0A%20%20%20%20%20%20%20%20return%20this.xs%20%3D%20Cc%5B%22@mozilla.org/xul/xulstore%3B1%22%5D.getService%28Ci.nsIXULStore%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20init%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28this.cust%20%7C%7C%20this.btn._destructors.length%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.initVT%28%29%3B%0A%20%20%20%20%20%20%20%20var%20vto%20%3D%20this%3B%0A%0A%20%20%20%20%20%20%20%20this.btn.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.button%20%7C%7C%20vto.toggleVT%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22popupshown%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.addEventListener%28%22resize%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.addEventListener%28%22command%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.addEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20vto.toggleVT%28vt.hasOwnProperty%28%22on%22%29%20%3F%20vt.on%0A%20%20%20%20%20%20%20%20%20%20%20%20%3A%20%21this.xs.hasValue%28location%2C%20vto.id%2C%20%22collapsed%22%29%0A%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20this.resize%28%29%3B%0A%20%20%20%20%20%20%20%20vto.btn._destructors.push%28%7Bcontext%3A%20vto%2C%20destructor%3A%20vto.destroy%7D%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroy%3A%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popupshown%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22resize%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.removeEventListener%28%22command%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.tcm.removeEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.setCollapser%28false%29%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28reason%20%3D%3D%20%22destructor%22%20%26%26%20this.cust%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20vto%20%3D%20this%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vto.resize%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.addEventListener%28%22customizationready%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.addListener%28vto%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20this.ctm.addEventListener%28%22command%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.ctm.addEventListener%28%22popupshowing%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20window.addEventListener%28%22resize%22%2C%20vto%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.addEventListener%28%22aftercustomization%22%2C%20function%20ac%28%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.removeEventListener%28%22aftercustomization%22%2C%20ac%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.removeEventListener%28%22customizationready%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.removeListener%28vto%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.ctm.removeEventListener%28%22command%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.ctm.removeEventListener%28%22popupshowing%22%2C%20vto%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.removeEventListener%28%22resize%22%2C%20vto%2C%20false%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28vto.btn.id%29%20%7C%7C%20vto.destroyVT%28%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28reason%20%3D%3D%20%22delete%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.removeWidgetFromArea%28this.btn.id%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.destroyVT%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20handleEvent%3A%20function%28e%29%20this%5Be.type%5D%28e%29%2C%0A%0A%20%20%20%20command%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28e.target.id%20%21%3D%20%22toggle_%22%20+%20this.id%29%20return%3B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20this.toggleVT%28%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20popupshowing%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20var%20menuitem%20%3D%20e.target.querySelector%28%22%23toggle_%22%20+%20this.id%29%3B%0A%20%20%20%20%20%20%20%20menuitem%20%26%26%20menuitem.setAttribute%28%22checked%22%2C%20this.vt.on%29%3B%0A%20%20%20%20%20%20%20%20if%20%28this.cust%20%7C%7C%20%21this.vt.contains%28e.target.triggerNode%29%29%20return%3B%0A%20%20%20%20%20%20%20%20for%28var%20selector%20of%20%5B%22.customize-context-moveToPanel%22%2C%20%22.customize-context-removeFromToolbar%22%5D%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20menuitem%20%3D%20e.target.querySelector%28selector%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20menuitem%20%26%26%20menuitem.removeAttribute%28%22disabled%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20mousemove%3A%20function%20collapser%28e%29%20%7B%0A%20%20%20%20%20%20%20%20var%20distance%20%3D%20collapser.distance%20%3D%20e.screenX%20-%20document.documentElement.boxObject.screenX%3B%0A%20%20%20%20%20%20%20%20if%20%28collapser.waiting%29%20return%3B%0A%20%20%20%20%20%20%20%20if%20%28distance%20%3C%3D%20this.distanceShow%20%26%26%20this.vt.collapsed%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28this.showDelay%20%3C%201%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28vto%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28collapser.distance%20%3E%3D%20vto.distanceShow%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.collapsed%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20collapser.waiting%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%2C%20this.showDelay%2C%20this%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28distance%20%3E%3D%20this.distanceHide%20%26%26%20%21this.vt.collapsed%29%0A%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%3D%20true%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20setCollapser%3A%20function%28set%29%20%7B%0A%20%20%20%20%20%20%20%20set%0A%20%20%20%20%20%20%20%20%3F%20this.cust%20%7C%7C%20window.addEventListener%28%22mousemove%22%2C%20this%2C%20false%29%0A%20%20%20%20%20%20%20%20%3A%20window.removeEventListener%28%22mousemove%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20callCollapser%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20this.mousemove%28%7BscreenX%3A%20document.documentElement.boxObject.screenX%20+%20MousePosTracker._x%7D%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20customizationready%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20window.removeEventListener%28%22customizationready%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20this.vt.on%20%26%26%20this.insertBox%28true%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20resize%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20this.vt.style.maxHeight%20%3D%20this.deck.boxObject.height%20+%201%20+%20%22px%22%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20popupshown%3A%20function%28e%29%20this.handlePopup%28e%29%2C%0A%20%20%20%20popuphidden%3A%20function%28e%29%20this.handlePopup%28e%29%2C%0A%0A%20%20%20%20handlePopup%3A%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20this.vt.collapsed%20%7C%7C%20this.vt.on%0A%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28e.target.localName%20%21%3D%20%22menupopup%22%20%26%26%20e.target.localName%20%21%3D%20%22panel%22%29%0A%20%20%20%20%20%20%20%20%29%20return%3B%0A%20%20%20%20%20%20%20%20setTimeout%28function%28vto%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20hasPopup%20%3D%20Array.concat%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28document.getElementsByTagName%28%22menupopup%22%29%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Array.slice%28document.getElementsByTagName%28%22panel%22%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29.some%28function%28popup%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22state%22%20in%20popup%20%26%26%20popup.state%20%3D%3D%20%22open%22%20%26%26%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.contains%28popup%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28%22triggerNode%22%20in%20popup%20%26%26%20vto.vt.contains%28popup.triggerNode%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22anchorNode%22%20in%20popup%20%26%26%20popup.anchorNode%20%26%26%20%28%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20vto.vt.contains%28popup.anchorNode%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20vto.vt.contains%28document.getBindingParent%28popup.anchorNode%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vto.setCollapser%28%21hasPopup%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20hasPopup%20%7C%7C%20vto.callCollapser%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%2C%20200%2C%20this%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20onWidgetAfterDOMChange%3A%20function%28...a%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28a%5B2%5D%20%3D%3D%20this.vt.box%29%20this.vt.hbox.style.minWidth%20%3D%20this.vt.boxObject.width%20+%20%22px%22%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20initVT%3A%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20var%20id%20%3D%20this.id%3B%0A%20%20%20%20%20%20%20%20var%20boxId%20%3D%20id%20+%20%22-customization-target%22%3B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%20%3D%0A%20%20%20%20%20%20%20%20%20%20%20%20document.getElementById%28id%29%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20document.createElement%28%22toolbar%22%29%3B%0A%20%20%20%20%20%20%20%20var%20attrs%20%3D%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20id%3A%20id%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20mode%3A%20%22icons%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20iconsize%3A%20%22small%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20orient%3A%20%22vertical%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20customizable%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20persist%3A%20%22collapsed%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20toolbarname%3A%20this.name%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20fullscreentoolbar%3A%20%22true%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20class%3A%20%22chromeclass-toolbar%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20context%3A%20%22toolbar-context-menu%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20style%3A%20%22-moz-appearance%3A%20none%3B%20display%3A%20-moz-box%3B%20height%3A%20100%25%3B%20position%3A%20fixed%3B%20min-width%3A%2020px%22%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20for%28var%20attr%20in%20attrs%29%20vt.setAttribute%28attr%2C%20attrs%5Battr%5D%29%3B%0A%20%20%20%20%20%20%20%20if%20%28%21vt.parentNode%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20box%20%3D%20vt.box%20%3D%20document.createElement%28%22vbox%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.appendChild%28box%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.id%20%3D%20boxId%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.style.cssText%20%3D%20%22height%3A%20100%25%3B%20width%3A%20100%25%3B%22%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.customizationTarget%20%3D%20box%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20gNavToolbox.appendChild%28vt%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28CustomizableUI.areas.indexOf%28id%29%20%3D%3D%20-1%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20CustomizableUI.registerArea%28id%2C%20%7Blegacy%3A%20true%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20box.removeAttribute%28%22class%22%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20box.__defineGetter__%28%22localName%22%2C%20function%28%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Components.stack.caller.toString%28%29.indexOf%28%22custombutton.buttonConstructor%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3D%20-1%20%3F%20%22vbox%22%20%3A%20%22toolbar%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.hbox%20%3D%20document.createElement%28%22hbox%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20vt.hbox.id%20%3D%20id%20+%20%22-hbox%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20vt.box.style.padding%20%3D%20%220%20%22%20+%20this.padding%20+%20%22px%22%3B%0A%20%20%20%20%20%20%20%20vt.style.backgroundColor%20%3D%20this.color%3B%0A%20%20%20%20%20%20%20%20vt.style.borderRight%20%3D%20%221px%20solid%20%22%20+%20this.fringe%3B%0A%20%20%20%20%20%20%20%20return%20vt%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20destroyVT%3A%20function%28reason%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20CustomizableUI.unregisterArea%28vt.id%2C%20%7B%7D%29%3B%0A%20%20%20%20%20%20%20%20vt.hbox.parentNode%20%26%26%20vt.hbox.parentNode.removeChild%28vt.hbox%29%3B%0A%20%20%20%20%20%20%20%20vt.parentNode%20%26%26%20vt.parentNode.removeChild%28vt%29%3B%0A%0A%20%20%20%20%20%20%20%20this.xs.removeValue%28location%2C%20vto.id%2C%20%22collapsed%22%29%3B%0A%20%20%20%20%20%20%20%20this.xs.removeValue%28location%2C%20vto.id%2C%20%22currentset%22%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20insertBox%3A%20function%28ins%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20var%20box%20%3D%20vt.hbox%3B%0A%20%20%20%20%20%20%20%20if%20%28%21ins%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20box.parentNode%20%26%26%20box.parentNode.removeChild%28box%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20var%20id%20%3D%20this.cust%20%3F%20%22customization-palette-container%22%20%3A%20%22sidebar-box%22%3B%0A%20%20%20%20%20%20%20%20var%20point%20%3D%20document.getElementById%28id%29%3B%0A%20%20%20%20%20%20%20%20point.parentNode.insertBefore%28box%2C%20point%29%3B%0A%20%20%20%20%20%20%20%20var%20mw%20%3D%20function%28%29%20box.style.minWidth%20%3D%20vt.boxObject.width%20+%20%22px%22%3B%0A%20%20%20%20%20%20%20%20mw%28%29%3B%20setTimeout%28mw%2C%20100%29%3B%0A%20%20%20%20%7D%2C%0A%20%20%20%20toggleVT%3A%20function%28on%29%20%7B%0A%20%20%20%20%20%20%20%20var%20vt%20%3D%20this.vt%3B%0A%20%20%20%20%20%20%20%20if%20%28on%20%3D%3D%20undefined%29%20on%20%3D%20%21vt.on%3B%0A%20%20%20%20%20%20%20%20vt.on%20%3D%20on%3B%0A%20%20%20%20%20%20%20%20this.setCollapser%28%21on%29%3B%0A%20%20%20%20%20%20%20%20vt.collapsed%20%3D%20%21on%3B%0A%20%20%20%20%20%20%20%20this.insertBox%28on%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Avto.init%28%29%3B%0A%0A%0Afunction%20addBackground%28e%29%20%7B%0A%20%20%20setTimeout%28function%28%29%20%7B%0A%20%20%20%20%20%20var%20toolbar%20%3D%20document.getElementById%28%27cb-vt%27%29%3B%0A%20%20%20%20%20%20var%20win%20%3D%20document.getElementById%28%22main-window%22%29%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20image%20%3D%20win.style.backgroundImage%3B%0A%20%20%20%20%20%20if%20%28%20image%20%3D%3D%20%27%27%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20toolbar.style.background%20%3D%20%27%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20toolbar.style.background%20%3D%20image%3B%0A%20%20%20%20%20%20toolbar.style.backgroundSize%20%3D%20%27auto%20100%25%27%3B%0A%20%20%20%7D%2C%20500%29%3B%0A%7D%3B%0AaddBackground%28%29%3B%20%0AServices.obs.addObserver%28addBackground%2C%20%22lightweight-theme-styling-update%22%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.obs.removeObserver%28addBackground%2C%20%22lightweight-theme-styling-update%22%29%20%29%3B%20%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Автор кнопки: Dumby

Отредактировано bunda1 (07-03-2014 19:52:36)

Отсутствует

 

№11103-02-2013 13:16:30

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 17.0

Re: Готовые кнопки для Custom Buttons

Menuitem hider( Firefox24+ ) от 07.06.2016.
Даёт возможность быстро удалять пункты меню из главного меню и контекстного меню нажатием средней кнопки мыши на ненужном пункте, удалённые пункты останутся скрыты пока кнопка включена. Список удалённых пунктов меню сохраняется в кнопке вкладе Инициализация сверху и его можно вручную редактировать - удалить вообще или только отдельные пункты.
Некоторые пункты меню добавленные расширениями или Custom Buttons кодом или чем то подобным кнопка не сможет удалить.

ЛКМ => Выключить и включить кнопку.

Код кнопки и инициализации:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EMenuitem%20hider%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHz/fHx8/3t7e/97e3v/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/6Gkyf9HWOP/OEas//f3+v////////////////////////////////////////////Ly8///////fHx8/3x8fP9ueNT/Rlzs/x810P+/xe///////////////////////////////////////9fX3f+Mjbb//////3x8fP98fHz/V2HM/0FZ5P8xRt3/P02w/3d6jv6FhYX+hYWF/oWFhf6FhYX+hYWF/oWFhf5HSZH/T1B6/oWFhf58fHz/fHx8/5me8v80TN3/HDfd/ztIu//IzfL///////////////////////////+6u87/NULL/+Dg5P//////fHx8/3x8fP/o6PX/VGPS/xYy2P8aMMv/ra3A///////////////////////o6Or/NUjT/3uCvP///////////3x8fP98fHz/hYWF/nd4k/4xRtb/Ei7a/yQwpv9ycXT+hYWF/oWFhf6AgYP+OUOb/yE1yf95eXz+hYWF/oWFhf58fHz/fHx8////////////e36v/x820P8QLd7/VVur//T09P//////cXjC/xs27v+qrMj/////////////////fHx8/3x8fP///////////42Njf+7vfX/ITjT/x444P9dZLD/YWq3/xUy8/9lb8P//////////////////////3x8fP98fHz/hYWF/oWFhf6FhYX+hYWF/nl7oP4aLbj/DSbT/w4r4f8sOrP/e3uC/oWFhf6FhYX+hYWF/oWFhf58fHz/fHx8////////////jY2N//T09v+ho9X/FCzS/wki2/8DHNP/OknJ/8fN9v//////////////////////fHx8/3x8fP///////////2xtf/9dZ7//GDPk/wcn6/8vQtH/ZnDX/wke0f8+S7n/ys7n/////////////////3x8fP98fHz/dXV7/mNolP9reeT/VGr5/0BX9f8yRMn/cHGG/oWFhf5rb7L+KkPy/zE8of9mZnT+hYWF/oWFhf58fHz/e3t8/2Vy0P+JmPj/h5b6/3qK9v9/idz/3Nzl/////////////////9na+P+Ik/j/Y27S/5CSrP/y8vP/fHx8/3x8fP+WpPn/coPp/4OP3/+ws9f/9vb6////////////////////////////+fn9/8XH+P+Mk+//ZWmq/3t7e/98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20ids%20%3D%20%5B%0A%0A%5D//menuitem%20hider%20mark%0A%0Avar%20button%20%3D%20this%3B%0Avar%20currentImage%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYX+hYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYX+hYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXtAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0Avar%20imgFalse%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHz/fHx8/3t7e/97e3v/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/6Gkyf9HWOP/OEas//f3+v////////////////////////////////////////////Ly8///////fHx8/3x8fP9ueNT/Rlzs/x810P+/xe///////////////////////////////////////9fX3f+Mjbb//////3x8fP98fHz/V2HM/0FZ5P8xRt3/P02w/3d6jv6FhYX+hYWF/oWFhf6FhYX+hYWF/oWFhf5HSZH/T1B6/oWFhf58fHz/fHx8/5me8v80TN3/HDfd/ztIu//IzfL///////////////////////////+6u87/NULL/+Dg5P//////fHx8/3x8fP/o6PX/VGPS/xYy2P8aMMv/ra3A///////////////////////o6Or/NUjT/3uCvP///////////3x8fP98fHz/hYWF/nd4k/4xRtb/Ei7a/yQwpv9ycXT+hYWF/oWFhf6AgYP+OUOb/yE1yf95eXz+hYWF/oWFhf58fHz/fHx8////////////e36v/x820P8QLd7/VVur//T09P//////cXjC/xs27v+qrMj/////////////////fHx8/3x8fP///////////42Njf+7vfX/ITjT/x444P9dZLD/YWq3/xUy8/9lb8P//////////////////////3x8fP98fHz/hYWF/oWFhf6FhYX+hYWF/nl7oP4aLbj/DSbT/w4r4f8sOrP/e3uC/oWFhf6FhYX+hYWF/oWFhf58fHz/fHx8////////////jY2N//T09v+ho9X/FCzS/wki2/8DHNP/OknJ/8fN9v//////////////////////fHx8/3x8fP///////////2xtf/9dZ7//GDPk/wcn6/8vQtH/ZnDX/wke0f8+S7n/ys7n/////////////////3x8fP98fHz/dXV7/mNolP9reeT/VGr5/0BX9f8yRMn/cHGG/oWFhf5rb7L+KkPy/zE8of9mZnT+hYWF/oWFhf58fHz/e3t8/2Vy0P+JmPj/h5b6/3qK9v9/idz/3Nzl/////////////////9na+P+Ik/j/Y27S/5CSrP/y8vP/fHx8/3x8fP+WpPn/coPp/4OP3/+ws9f/9vb6////////////////////////////+fn9/8XH+P+Mk+//ZWmq/3t7e/98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0A%0Avar%20s%20%3D%20%27custombutton.menuitem_hider.active%27%3B%0Acbu.isPref%28s%2C%20true%29%3B%0A%0Avar%20ios%20%3D%20Cc%5B%27@mozilla.org/network/io-service%3B1%27%5D.getService%28Ci.nsIIOService%29%3B%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Avar%20us%20%3D%20sss.USER_SHEET%3B%0A%0Afunction%20makeCssURI%28%29%20%7B%0A%20%20%20%20%20%20%20%20cssStr%20%3D%20ids%20+%20%22%20%7B%20display%3A%20none%20%21important%20%7D%22%0A%20%20%20%20%20%20%20%20return%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28cssStr%29%2C%20null%2C%20null%29%3B%0A%7D%0Avar%20currCssURI%20%3D%20makeCssURI%28%29%3B%0Aif%20%28%20cbu.getPrefs%28s%29%20%29%20regSheet%28%20currCssURI%2C%20true%20%29%3B%0A%0Afunction%20regSheet%28newCssURI%2C%20reg%29%20%7B%0A%0A%09if%20%28sss.sheetRegistered%28currCssURI%2C%20us%29%29%20sss.unregisterSheet%28currCssURI%2C%20us%29%3B%0A%09if%20%28%21reg%29%20return%3B%0A%09if%20%28%21sss.sheetRegistered%28newCssURI%2C%20us%29%29%20sss.loadAndRegisterSheet%28newCssURI%2C%20us%29%3B%0A%09currCssURI%20%3D%20newCssURI%3B%0A%7D%0Afunction%20onClick%28e%29%20%7B%0A%09if%20%28e.button%20%21%3D%201%29%20return%3B%0A%09var%20target%20%3D%20e.target%3B%0A%09var%20nn%20%3D%20target.nodeName%3B%0A%09if%20%28nn%20%21%3D%20%22menuitem%22%20%26%26%20nn%20%21%3D%20%22menu%22%20%26%26%20nn%20%21%3D%20%22menuseparator%22%29%20return%3B%0A%09var%20id%20%3D%20target.id%3B%0A%09if%20%28%21id%29%20return%3B%0A%09var%20label%20%3D%20target.label%20%7C%7C%20target.nodeName%3B%0A%0A%09var%20link%20%3D%20custombuttons.makeButtonLink%28%22edit%22%2C%20button.id%29%3B%0A%09var%20param%20%3D%20custombuttons.cbService.getButtonParameters%28link%29%3B%0A%09param%20%3D%20param.wrappedJSObject%20%7C%7C%20param%3B%0A%09var%20init%20%3D%20param.initCode%3B%0A%09var%20index%20%3D%20init.indexOf%28%22%5Cn%5D//menuitem%20hider%20mark%22%29%3B%0A%09var%20part1%20%3D%20init.substring%280%2C%20index%29%3B%0A%09var%20part2%20%3D%20init.substring%28index%2C%20init.length%29%3B%0A%09param.initCode%20%3D%20part1%20+%20%27%22%23%27%20+%20id%20+%20%27%22%2C%20/*%20%27%20+%20label%20+%20%27%5C*%5C/%27%20+%20%27%5Cn%27%20+%20part2%3B%0A%09custombuttons.cbService.installButton%28param%29%3B%09%0A%7D%0AaddEventListener%28%22click%22%2C%20onClick%2C%20false%29%3B%0A%0Athis.onDestroy%20%3D%20function%28reason%29%20%7B%0A%09removeEventListener%28%22click%22%2C%20onClick%2C%20false%29%3B%0A%09regSheet%28currCssURI%2C%20false%29%3B%0A%09if%20%28reason%20%3D%3D%20%22delete%22%29%20cbu.clearPrefs%28s%29%3B%0A%7D%0Abutton.onclick%20%3D%20function%28e%29%20%7B%0A%09if%20%28e.button%29%20return%3B%0A%09cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%3B%0A%20%20%20%20%20%20%20%20button.image%20%3D%20cbu.getPrefs%28s%29%20%3F%20currentImage%20%3A%20imgFalse%3B%0A%09cbu.getPrefs%28s%29%20%3F%20button.init%28%29%20%3A%20button.onDestroy%28%29%3B%0A%09%0A%7D%0Abutton.image%20%3D%20cbu.getPrefs%28s%29%20%3F%20currentImage%20%3A%20imgFalse%3B%0Aif%20%28%20%21cbu.getPrefs%28s%29%20%29%20button.onDestroy%28%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация

Выделить код

Код:

var ids = [

]//menuitem hider mark

var button = this;
var currentImage = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYX+hYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYX+hYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7f//////////jY2N////////////////////////////////////////////////////////////hYWF7YWFhe3//////////42Njf///////////////////////////////////////////////////////////4WFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXthYWF7YWFhe2FhYXtAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==";
var imgFalse = "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8fHz/fHx8/3t7e/97e3v/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/6Gkyf9HWOP/OEas//f3+v////////////////////////////////////////////Ly8///////fHx8/3x8fP9ueNT/Rlzs/x810P+/xe///////////////////////////////////////9fX3f+Mjbb//////3x8fP98fHz/V2HM/0FZ5P8xRt3/P02w/3d6jv6FhYX+hYWF/oWFhf6FhYX+hYWF/oWFhf5HSZH/T1B6/oWFhf58fHz/fHx8/5me8v80TN3/HDfd/ztIu//IzfL///////////////////////////+6u87/NULL/+Dg5P//////fHx8/3x8fP/o6PX/VGPS/xYy2P8aMMv/ra3A///////////////////////o6Or/NUjT/3uCvP///////////3x8fP98fHz/hYWF/nd4k/4xRtb/Ei7a/yQwpv9ycXT+hYWF/oWFhf6AgYP+OUOb/yE1yf95eXz+hYWF/oWFhf58fHz/fHx8////////////e36v/x820P8QLd7/VVur//T09P//////cXjC/xs27v+qrMj/////////////////fHx8/3x8fP///////////42Njf+7vfX/ITjT/x444P9dZLD/YWq3/xUy8/9lb8P//////////////////////3x8fP98fHz/hYWF/oWFhf6FhYX+hYWF/nl7oP4aLbj/DSbT/w4r4f8sOrP/e3uC/oWFhf6FhYX+hYWF/oWFhf58fHz/fHx8////////////jY2N//T09v+ho9X/FCzS/wki2/8DHNP/OknJ/8fN9v//////////////////////fHx8/3x8fP///////////2xtf/9dZ7//GDPk/wcn6/8vQtH/ZnDX/wke0f8+S7n/ys7n/////////////////3x8fP98fHz/dXV7/mNolP9reeT/VGr5/0BX9f8yRMn/cHGG/oWFhf5rb7L+KkPy/zE8of9mZnT+hYWF/oWFhf58fHz/e3t8/2Vy0P+JmPj/h5b6/3qK9v9/idz/3Nzl/////////////////9na+P+Ik/j/Y27S/5CSrP/y8vP/fHx8/3x8fP+WpPn/coPp/4OP3/+ws9f/9vb6////////////////////////////+fn9/8XH+P+Mk+//ZWmq/3t7e/98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/fHx8/3x8fP98fHz/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ==";

var s = 'custombutton.menuitem_hider.active';
cbu.isPref(s, true);

var ios = Cc['@mozilla.org/network/io-service;1'].getService(Ci.nsIIOService);
var sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService);
var us = sss.USER_SHEET;

function makeCssURI() {
        cssStr = ids + " { display: none !important }"
        return ios.newURI("data:text/css," + encodeURIComponent(cssStr), null, null);
}
var currCssURI = makeCssURI();
if ( cbu.getPrefs(s) ) regSheet( currCssURI, true );

function regSheet(newCssURI, reg) {

    if (sss.sheetRegistered(currCssURI, us)) sss.unregisterSheet(currCssURI, us);
    if (!reg) return;
    if (!sss.sheetRegistered(newCssURI, us)) sss.loadAndRegisterSheet(newCssURI, us);
    currCssURI = newCssURI;
}
function onClick(e) {
    if (e.button != 1) return;
    var target = e.target;
    var nn = target.nodeName;
    if (nn != "menuitem" && nn != "menu" && nn != "menuseparator") return;
    var id = target.id;
    if (!id) return;
    var label = target.label || target.nodeName;

    var link = custombuttons.makeButtonLink("edit", button.id);
    var param = custombuttons.cbService.getButtonParameters(link);
    param = param.wrappedJSObject || param;
    var init = param.initCode;
    var index = init.indexOf("\n]//menuitem hider mark");
    var part1 = init.substring(0, index);
    var part2 = init.substring(index, init.length);
    param.initCode = part1 + '"#' + id + '", /* ' + label + '\*\/' + '\n' + part2;
    custombuttons.cbService.installButton(param);    
}
addEventListener("click", onClick, false);

this.onDestroy = function(reason) {
    removeEventListener("click", onClick, false);
    regSheet(currCssURI, false);
    if (reason == "delete") cbu.clearPrefs(s);
}
button.onclick = function(e) {
    if (e.button) return;
    cbu.setPrefs(s, !cbu.getPrefs(s));
        button.image = cbu.getPrefs(s) ? currentImage : imgFalse;
    cbu.getPrefs(s) ? button.init() : button.onDestroy();
    
}
button.image = cbu.getPrefs(s) ? currentImage : imgFalse;
if ( !cbu.getPrefs(s) ) button.onDestroy();


Автор кнопки: Dumby

Отредактировано bunda1 (30-03-2013 16:14:12)

Отсутствует

 

№11202-04-2013 20:53:08

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Вставка символа в текстовое поле( Firefox24+ ) от 15.01.2015.
Открывает меню с разными символами и даёт возможность вставлять их в любые поля ввода. В коде меню легко добавить свои символы или удалить не нужные.

Можно менять величину шрифта меню:
В коде инициализации меняем или вообще удаляем не оставляя пустую строку:

Выделить код

Код:

menuItem.style.fontSize = "16px"; // размер шрифта


Скриншот меню кнопки
834add28bcb9b2c78007277330d54558.jpg

ЛКМ => Показать меню.
Код кнопки и инициализации:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEADQ0AAAEAIAAAAwAAFgAAACgAAAANAAAAGgAAAAEAIAAAAAAA2AIAAAAAAAAAAAAAAAAAAAAAAAAAAAAlAAAAVwAAACMAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAPAAAAEoAAAAMAAAAQgAAAOQAAACiAAAAAgAAABcAAABKAAAAVwAAADsAAAAHAAAAGwAAANcAAAC7AAAAFwAAAAsAAACHAAAA8QAAAJ0AAACeAAAA/QAAAP8AAADvAAAAhAAAAL8AAADrAAAAXwAAAAQAAAAAAAAABgAAAJMAAAD/AAAA7AAAAKUAAACHAAAAvQAAAPcAAAD/AAAAYQAAAAAAAAAAAAAAAwAAAAsAAACXAAAA9gAAAF8AAAAAAAAAAQAAAAwAAACOAAAA+QAAAGAAAAAAAAAAAwAAAAAAAAA1AAAA5gAAAK8AAAACAAAABgAAAA4AAAAAAAAAJQAAAOAAAAC1AAAADwAAAAAAAAAAAAAASwAAAPMAAACIAAAAAAAAAAkAAAAAAAAABgAAAAMAAAC8AAAAzgAAACQAAAAAAAAAAAAAAEAAAADuAAAAnAAAAAAAAAALAAAACgAAAAMAAAARAAAAzwAAAMEAAAAXAAAAAAAAAAAAAAAUAAAArwAAAOMAAAA8AAAAAAAAAAgAAAAAAAAAYQAAAP8AAAB+AAAAAgAAAAAAAAAEAAAAAQAAAHwAAAD/AAAAzAAAAG4AAABZAAAAggAAAOMAAAD/AAAASgAAAAAAAAAFAAAAAAAAAFIAAADlAAAAygAAAMYAAAD/AAAA+AAAAP8AAAC8AAAA3AAAAMoAAAApAAAAAAAAADoAAADjAAAAyQAAACEAAAAuAAAAeAAAAH8AAABqAAAAIQAAAD8AAADqAAAAvQAAAB4AAAA4AAAAhQAAADoAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAWQAAAIUAAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20.................%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20.................%0Avar%20array%20%3D%20%5B%22%A4%22%2C%20%22%A6%22%2C%20%22%A7%22%2C%20%22@%22%2C%20%22%A9%22%2C%20%22%AB%22%2C%20%22%BB%22%2C%20%22%AC%22%2C%20%22%AE%22%2C%20%22%B0%22%2C%20%22%B1%22%2C%20%22%B5%22%2C%20%22%B6%22%2C%20%22%u2014%22%2C%20%22%u2018%22%2C%20%22%u2019%22%2C%20%22%u201C%22%2C%20%22%u201D%22%2C%20%22%u2022%22%2C%20%22%u2030%22%2C%20%22%u2039%22%2C%20%22%u203A%22%2C%20%22%u2122%22%5D%3B%20%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28symbol%29%3D%3E%20%7B%20%0A%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20symbol%29%3B%0A%20%20%20mItem.style.fontSize%20%3D%20%2216px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20menuPopup.appendChild%28mItem%29%3B%0A%7D%29%3B%0A%20%20%20%0A%0A//%20%u0421%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20.................%0AmenuPopup.addEventListener%28%22click%22%2C%20e%3D%3E%20%7B%0A%20%20%20var%20text%20%3D%20e.target.label%3B%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Ci.nsICommandController%29%3B%0A%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%20%0A%7D%2C%20false%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

// Настройка функций кликов мыши .................
this._handleClick =()=> menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft"); 


// Создать меню .................
var array = ["¤", "¦", "§", "@", "©", "«", "»", "¬", "®", "°", "±", "µ", "¶", "—", "‘", "’", "“", "”", "•", "‰", "‹", "›", "™"]; 
var menuPopup = self.appendChild(document.createElement("menupopup"));
array.forEach((symbol)=> { 
   var mItem = document.createElement("menuitem");
   mItem.setAttribute("label", symbol);
   mItem.style.fontSize = "16px"; // размер шрифта
   menuPopup.appendChild(mItem);
});
   

// Ставить текст в текстовое поле .................
menuPopup.addEventListener("click", e=> {
   var text = e.target.label;
   var cmd = "cmd_insertText";
   var controller = document.commandDispatcher.getControllerForCommand(cmd);
   var controller = controller.QueryInterface(Ci.nsICommandController);
   var params = Cc["@mozilla.org/embedcomp/command-params;1"].createInstance(Ci.nsICommandParams);
   params.setStringValue("state_data", text);
   controller.doCommandWithParams(cmd, params); 
}, false);

Отредактировано bunda1 (11-05-2013 15:40:52)

Отсутствует

 

№11311-05-2013 14:10:40

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Текстовые смайлы 2( Firefox20+ ) от 11.01.2015.
Текстовые смайлы(Азия) 2( Firefox20+ ) от 11.01.2015.
Открывает меню с разными текстовыми смайликами и даёт возможность вставлять их в любые поля ввода. В коде меню легко добавить свои символы или удалить не нужные.

Пример как добавлять или удалять смайлики:

Добавляем в меню новый пункт :-C  ошибка после :-)  улыбка
В коде инициализации добавляем под:

Выделить код

Код:

":-)  улыбка",

новую строку в которой между смайликом и текстом два пробела:

Выделить код

Код:

":-C  ошибка",

Если в смайлике обратный слэш \, пишите его как \\:

Удаляем из меню пункт :-)  улыбка
В коде инициализации удаляем не оставляя пустую строку:

Выделить код

Код:

":-)  улыбка",

Нажать Ok или Сохранить


Можно менять величину шрифта меню или подменю:
В коде инициализации меняем или вообще удаляем не оставляя пустую строку:

Выделить код

Код:

subMenuItem.style.fontSize = "14px"; // размер шрифта подменю
Выделить код

Код:

menu.style.fontSize = "12px"; // размер шрифта меню


Скриншот меню кнопки
c8434c83b2f474f79a11ec0cff23b2de.png

da05fa469ace5524ef002f869a23d41c.png


ЛКМ => Показать меню.
Текстовые смайлы 2 - kод кнопки:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0422%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0435%20%u0441%u043C%u0430%u0439%u043B%u044B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAi9JREFUeJyVk8tLVHEUxz+/e2dGzWlCp2wxQykyiwQlw0JbhFJBEIEugqB90L5NLnr9A+3b1KZcxeiuxYTUoskQLc1ZJGXYSBk+ynnPvfecFlPqnaDHd3P48X2cc35wjKriw8KRHkzotmL3KXZc1UO9ShatTCOVm4HeT3O75cYXkDmaxNjDVJfB2wT1fhI2YsK4JoqqM95wbHnEH5C91kju2SLuWpzqR/4EhyiuNGVzbjzRNpAuWwBspcb+xQwQZB2bfDxsvR+rTZDpOw7yiuLMX827UXD2oyon7FtXWx/grHQiRR5OJrh+vx+Ano4Nn6GeMwgitFtqNXXhbQLwaDKxU8MnfQH1XMCq4IrpslQ19uu3Lw8t1uqFA9A84Auo54xRRCRm3Le9apdnd5TNA7Xu+RdQSPsXr+M2cnswzlx3NlDNxMDjf6Bq2MyHViy8fEZMeJtIzcaZSHf8ZphId3A32bP9rroWtnEzASE4KiZ6NqTfawGvY8wvRUm9SdB9OAvA/FIrH75E6O6sQuQcbD2hWDaIeKNGVanMHEpaWhwOsk6hHODe0/OkphzfBGf6G7hyqZ1me4XC58dUHRlvGZQRo6psTJ9ubNJ3izb5eMj6BqaBr84Qq4XaKgejQdqiQSgtUFx7TqlUyq6ua6LropZ9x1Scakuq6nDIyhOwKpjAXrAjqBqcSp5CIQd44y2DUndMu1B8ua9bhDsi2ueJxlUEY9ysQaYt492InJL53fofa8ocVmP9V6MAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0412%u0435%u0440%u0441%u0438%u044F%3A%2011.01.2015.%20.................%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20.................%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%20.................%0Avar%20array%20%3D%20%5B%20%0A%20%20%20%20%20%20%20%5B%20%0A%20%20%20%20%20%20%20%22%u042D%u043C%u043E%u0446%u0438%u044F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%29%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%28%20%20%u0433%u0440%u0443%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%7C%20%20%u0437%u0430%u0434%u0443%u043C%u0447%u0438%u0432%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-D%20%20%u0441%u043C%u0435%u0445%22%2C%0A%20%20%20%20%20%20%20%20%20%22X-D%20%20%u0441%u043C%u0435%u0445%20%u0441%20%u0437%u0430%u0436%u043C%u0443%u0440%u0435%u043D%u043D%u044B%u043C%u0438%20%u0433%u043B%u0430%u0437%u0430%u043C%u0438%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-C%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u043E%u0433%u043E%u0440%u0447%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-/%20%20%u043D%u0435%u0434%u043E%u0432%u043E%u043B%u044C%u0441%u0442%u0432%u043E/%u043E%u0437%u0430%u0434%u0430%u0447%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%5C%5C%20%20%u043D%u0435%u0434%u043E%u0432%u043E%u043B%u044C%u0441%u0442%u0432%u043E/%u043E%u0437%u0430%u0434%u0430%u0447%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A-0%20%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%20%0A%20%20%20%20%20%20%20%20%20%228-O%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3D-O%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A-%5B%20%5D%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A-%5B%20%20%u0441%u043C%u0443%u0449%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%250%20%20%u0441%u0431%u0438%u0442%20%u0441%20%u0442%u043E%u043B%u043A%u0443%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3E%3A-D%20%20%u0437%u043B%u043E%u0440%u0430%u0434%u043D%u044B%u0439%20%20%u0441%u043C%u0435%u0445%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%7D%3A-%3E%20%20%u043A%u043E%u0432%u0430%u0440%u043D%u0430%u044F%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%5D%3A-%3E%20%20%u043A%u043E%u0432%u0430%u0440%u043D%u0430%u044F%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A%27-%29%20%20%u0441%u0438%u043B%u044C%u043D%u044B%u0439%20%u0441%u043C%u0435%u0445%28%u0434%u043E%20%u0441%u043B%u0451%u0437%29%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%3A%27-D%20%20%u0441%u0438%u043B%u044C%u043D%u044B%u0439%20%u0441%u043C%u0435%u0445%28%u0434%u043E%20%u0441%u043B%u0451%u0437%29%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22D-%3A%20%20%u0441%u0438%u043B%u044C%u043D%u0430%u044F%20%u0437%u043B%u043E%u0441%u0442%u044C%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22/%3A-%28%20%20%AB%u0435%u0434%u0435%u0442%20%u043A%u0440%u044B%u0448%u0430%BB%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22/%3A-%5D%20%20%AB%u0435%u0434%u0435%u0442%20%u043A%u0440%u044B%u0448%u0430%BB%22%0A%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%22%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3B-%29%20%20%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-*%20%20%u0446%u0435%u043B%u043E%u0432%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A_%28%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A%7E%28%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A%27%28%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A*%28%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%7B%7D%20%20%u0441%u0442%u0440%u0430%u0441%u0442%u043D%u044B%u0439%20%u043F%u043E%u0446%u0435%u043B%u0443%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-@%20%20%u043A%u0440%u0438%u0447%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-X%20%20%u0440%u043E%u0442%20%u043D%u0430%20%u0437%u0430%u043C%u043A%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%21%20%20%u043E%u0442%u0432%u0440%u0430%u0449%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-P%20%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u044F%u0437%u044B%u043A%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-p%20%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u044F%u0437%u044B%u043A%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3Alol%3A%20%20%u0433%u0440%u043E%u043C%u043A%u0438%u0439%20%u0441%u043C%u0435%u0445%22%2C%0A%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%22%u041F%u0435%u0440%u0441%u043E%u043D%u0430%u0436%22%2C%0A%20%20%20%20%20%20%20%20%20%228-%29%20%20%u0447%u0435%u043B%u043E%u0432%u0435%u043A%20%u0432%20%u043E%u0447%u043A%u0430%u0445%22%2C%0A%20%20%20%20%20%20%20%20%20%22B-%29%20%20%u0447%u0435%u043B%u043E%u0432%u0435%u043A%20%u0432%20%u043E%u0447%u043A%u0430%u0445%22%2C%0A%20%20%20%20%20%20%20%20%20%22O%3A-%29%20%20%u0430%u043D%u0433%u0435%u043B%22%2C%0A%20%20%20%20%20%20%20%20%20%22%25%29%20%20%u0441%u0443%u043C%u0430%u0441%u0448%u0435%u0434%u0448%u0438%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A*%29%20%20%u043F%u044C%u044F%u043D%u044B%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22/b/%20%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5C%5Co/%20%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%u0413%u0433Y%20%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%7B%3A%u20AC%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3AE%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3B%2C%3B%29%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22*%3AO%29%20%20%u043A%u043B%u043E%u0443%u043D%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-E%20%20%u043E%u0441%u043A%u0430%u043B%u0435%u043D%u043D%u044B%u0439%20%20%u0432%u0430%u043C%u043F%u0438%u0440%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-F%20%20%u0432%u0430%u043C%u043F%u0438%u0440%20%u0431%u0435%u0437%20%u043A%u043B%u044B%u043A%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A%3A-%29%20%20%u043C%u0443%u0442%u0430%u043D%u0442/%u043F%u0440%u0438%u0448%u0435%u043B%u0435%u0446%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5B%3A%5D%20%20%u0440%u043E%u0431%u043E%u0442%22%2C%0A%20%20%20%20%20%20%20%20%20%22-%3D%3C%3A-%29%20%20%u0432%u043E%u043B%u0448%u0435%u0431%u043D%u0438%u043A%22%2C%0A%20%20%20%20%20%20%20%20%20%22%2C%u2019-/%20%20%u043A%u0438%u0442%u0430%u0435%u0446%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3C%7C-%29%20%20%u043A%u0438%u0442%u0430%u0435%u0446%22%2C%0A%20%20%20%20%20%20%20%20%20%22%u043E-%29%20%20%u0446%u0438%u043A%u043B%u043E%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22O-%29%20%20%u0446%u0438%u043A%u043B%u043E%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%5D%5B%20%20%u0447%u0435%u0440%u0435%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3A-%3F%20%20%u043A%u0443%u0440%u044F%u0449%u0438%u0439%20%u0442%u0440%u0443%u0431%u043A%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%u042D%3A-%29%20%20%u043E%u043B%u0435%u043D%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3C3%20%20%u0441%u0435%u0440%u0434%u0446%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22@%7D-%3E--%20%20%u0440%u043E%u0437%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5C%5Cm/%20%20%u043A%u043E%u0437%u0430%20%28%u0436%u0435%u0441%u0442%29%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5C%5Cm/_%20%20%u043A%u043E%u0437%u0430%20%28%u0436%u0435%u0441%u0442%29%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5B%3A%7C%7C%7C%3A%5D%20%20%u0431%u0430%u044F%u043D%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5B%3A%5D/%5C%5C/%5C%5C/%5C%5C%5B%3A%5D%20%20%u0431%u0430%u044F%u043D%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5B%3A%5D%7C%7C%7C%5B%3A%5D%20%20%u0431%u0430%u044F%u043D%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28_%21_%29%20%20%u0437%u0430%u0434%u043D%u0438%u0446%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%29%28%29%20%20%u0437%u0430%u0434%u043D%u0438%u0446%u0430%22%2C%0A%20%20%20%20%20%20%20%5D%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28arr%29%3D%3E%20%7B%0A%20%20%20var%20menu%2C%20subMenu%2C%20subMenuItem%3B%20%20%0A%20%20%20menu%20%3D%20document.createElement%28%22menu%22%29%3B%0A%20%20%20subMenu%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%20%20%20%20%20%0A%20%20%20arr.forEach%28%28smile%2Ci%29%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%20i%20%3D%3D%200%20%29%20return%3B%0A%20%20%20%20%20%20subMenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20subMenuItem.setAttribute%28%22label%22%2C%20smile%29%3B%0A%20%20%20%20%20%20subMenuItem.style.fontSize%20%3D%20%2214px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%0A%20%20%20%20%20%20subMenu.appendChild%28subMenuItem%29%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20menu.appendChild%28subMenu%29%3B%0A%20%20%20menu.setAttribute%28%22label%22%2C%20arr%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20menu.style.fontSize%20%3D%20%2212px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043C%u0435%u043D%u044E%0A%20%20%20menuPopup.appendChild%28menu%29%3B%0A%7D%29%3B%0AmenuPopup.addEventListener%28%22click%22%2C%20e%3D%3E%20insertText%28e.target.label.split%28%22%20%20%22%29%5B0%5D%29%20%29%3B%0A%20%0A%0A//%20%u0421%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043C%u0430%u0439%u043B%u0438%u043A%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20.................%0Afunction%20insertText%28smile%29%20%7B%20%20%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Ci.nsICommandController%29%3B%0A%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20params.setStringValue%28%22state_data%22%2C%20smile%29%3B%0A%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%20%20%20%20%20%20%20%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


ЛКМ => Показать меню.
Текстовые смайлы (Азия)2 - kод кнопки:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0422%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0435%20%u0441%u043C%u0430%u0439%u043B%u044B%20%28%u0410%u0437%u0438%u044F%29%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAACB0RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgTVi7kSokAAAAFnRFWHRDcmVhdGlvbiBUaW1lADExLzA1LzA33bqJ2wAAAi9JREFUeJyVk8tLVHEUxz+/e2dGzWlCp2wxQykyiwQlw0JbhFJBEIEugqB90L5NLnr9A+3b1KZcxeiuxYTUoskQLc1ZJGXYSBk+ynnPvfecFlPqnaDHd3P48X2cc35wjKriw8KRHkzotmL3KXZc1UO9ShatTCOVm4HeT3O75cYXkDmaxNjDVJfB2wT1fhI2YsK4JoqqM95wbHnEH5C91kju2SLuWpzqR/4EhyiuNGVzbjzRNpAuWwBspcb+xQwQZB2bfDxsvR+rTZDpOw7yiuLMX827UXD2oyon7FtXWx/grHQiRR5OJrh+vx+Ano4Nn6GeMwgitFtqNXXhbQLwaDKxU8MnfQH1XMCq4IrpslQ19uu3Lw8t1uqFA9A84Auo54xRRCRm3Le9apdnd5TNA7Xu+RdQSPsXr+M2cnswzlx3NlDNxMDjf6Bq2MyHViy8fEZMeJtIzcaZSHf8ZphId3A32bP9rroWtnEzASE4KiZ6NqTfawGvY8wvRUm9SdB9OAvA/FIrH75E6O6sQuQcbD2hWDaIeKNGVanMHEpaWhwOsk6hHODe0/OkphzfBGf6G7hyqZ1me4XC58dUHRlvGZQRo6psTJ9ubNJ3izb5eMj6BqaBr84Qq4XaKgejQdqiQSgtUFx7TqlUyq6ua6LropZ9x1Scakuq6nDIyhOwKpjAXrAjqBqcSp5CIQd44y2DUndMu1B8ua9bhDsi2ueJxlUEY9ysQaYt492InJL53fofa8ocVmP9V6MAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0412%u0435%u0440%u0441%u0438%u044F%3A%2011.01.2015.%20.................%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20.................%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%20.................%0Avar%20array%20%3D%20%5B%20%0A%20%20%20%20%20%20%20%5B%20%0A%20%20%20%20%20%20%20%22%u042D%u043C%u043E%u0446%u0438%u044F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28n_n%29%20%20%u0443%u043B%u044B%u0431%u043A%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E_%5E%29%20%20%u0440%u0430%u0434%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3C_%3E%29%20%20%u0433%u0440%u0443%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28v_v%29%20%20%u0433%u0440%u0443%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E%20%5E%29%20%20%u0443%u043B%u044B%u0431%u043A%u0430%20%u0447%u0435%u0440%u0435%u0437%20%u0441%u0438%u043B%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3E_%3C%29%20%20%u0437%u043B%u043E%u0441%u0442%u044C/%u043A%u0430%u0442%u0435%u0433%u043E%u0440%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3E_%3E%29%20%20%u0441%u043A%u0435%u043F%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3C_%3C%29%20%20%u0441%u043A%u0435%u043F%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-%A8%29%20%20%u0441%u043A%u043E%u043D%u0444%u0443%u0436%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5E_%5E%A8%20%20%u0441%u043C%u0443%u0449%u0451%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22*%5E_%5E*%20%20%u0441%u043C%u0443%u0449%u0435%u043D%u043D%u043E%u0441%u0442%u044C%20%u0441%20%u043F%u043E%u043A%u0440%u0430%u0441%u043D%u0435%u043D%u0438%u0435%u043C%22%2C%20%0A%20%20%20%20%20%20%20%20%20%22%28-_-%23%29%20%20%u044F%u0440%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-%A4%29%20%20%u044F%u0440%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-+%29%20%20%u044F%u0440%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28o_o%29%20%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%280_0%29%20%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28O_o%29%20%20%u043E%u0447%u0435%u043D%u044C%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28o_O%29%20%20%u043E%u0447%u0435%u043D%u044C%20%u0441%u0438%u043B%u044C%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28V_v%29%20%20%u043D%u0435%u043F%u0440%u0438%u044F%u0442%u043D%u043E%u0435%20%u0443%u0434%u0438%u0432%u043B%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28@_@%29%20%20%u043E%u0431%u0430%u043B%u0434%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%25_%25%29%20%20%u0443%u0441%u0442%u0430%u043B%u043E%u0441%u0442%u044C%20%u0433%u043B%u0430%u0437%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28u_u%29%20%20%u0434%u0435%u043F%u0440%u0435%u0441%u0441%u0438%u044F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3Ex%3C%21%29%20%20%u0447%u0435%u0440%u0442%21%22%2C%0A%20%20%20%20%20%20%20%20%20%228%28%3E_%3C%29%20%20%u0432%u0440%u0435%u0432%u043D%u0438%u0432%u044B%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3E%3E%29%20%20%u043A%u043E%u0441%u043E%u0439%20%u0432%u0437%u0433%u043B%u044F%u0434%2C%20%u043D%u0435%u0434%u043E%u0432%u0435%u0440%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%280_%3C%29%20%20%u043D%u0435%u0440%u0432%u043D%u044B%u0439%20%u0442%u0438%u043A%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28*_*%29%20%20%u0444%u0430%u043D%u0430%u0442%u0435%u043D%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22-__-%20%20%u0444%u043B%u0435%u0433%u043C%u0430%u0442%u0438%u0447%u043D%u043E%u0441%u0442%u044C/%AB%u043C%u0434%u0430-%u0430-%u0430%u2026%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%289_9%29%20%20%u043D%u0435%20%u0441%u043F%u0430%u043B%20%u0432%u0441%u044E%20%u043D%u043E%u0447%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3D__%3D%20%20%u0441%u043E%u043D%u043D%u044B%u0439%20%u0438%u043B%u0438%20%AB%u0434%u043E%u0441%u0442%u0430%u043B%u0438%u2026%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-.-%29%20%20Zzz.%u0441%u043F%u044F%u0449%u0438%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-%29%20%20Zzz.%u0441%u043F%u044F%u0449%u0438%u0439%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-_-%3B%29%20%20%u0431%u043E%u043B%u0435%u0437%u043D%u0435%u043D%u043D%u043E%u0441%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%u0425_%u0445%29%20%20%u0442%u0440%u0443%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28+_+%29%20%20%u0442%u0440%u0443%u043F%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%u0445_%u0445%29%20%20%u0442%u0440%u0443%u043F%22%0A%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%22%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E_%7E%29%20%20%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E_-%29%20%20%u043F%u043E%u0434%u043C%u0438%u0433%u0438%u0432%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3B_%3B%29%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28T_T%29%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28TT.TT%29%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28ToT%29%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22Q__Q%20%20%u043F%u043B%u0430%u043A%u0430%u0442%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3DX%3D%20%20%u0440%u0443%u043A%u043E%u043F%u043E%u0436%u0430%u0442%u0438%u0435%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5E%7D%7B%5E%20%20%u043B%u044E%u0431%u043E%u0432%u044C%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%5E3%5E%29%20%20%u043F%u043E%u0446%u0435%u043B%u0443%u0439%22%0A%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%22%u041F%u0435%u0440%u0441%u043E%u043D%u0430%u0436%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3D%5E.%5E%3D%29%20%20%u043A%u043E%u0448%u043A%u0430%28%u043D%u044F%29%22%2C%0A%20%20%20%20%20%20%20%20%20%22%3D%5E_%5E%3D%20%20%u043A%u043E%u0448%u043A%u0430%28%u043D%u044F%29%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28O%2Co%29%20%20%u0441%u043E%u0432%u0430%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5E..%5E%20%20%u0441%u0432%u0438%u043D%u044C%u044F%22%2C%0A%20%20%20%20%20%20%20%20%20%22///_%u0422%20%20%u044D%u043C%u043E-%u043A%u0438%u0434%22%2C%0A%20%20%20%20%20%20%20%20%20%22T_%5C%5C%5C%5C%5C%5C%20%20%u044D%u043C%u043E-%u043A%u0438%u0434%22%2C%0A%20%20%20%20%20%20%20%20%20%22///_%5E%20%20%u044D%u043C%u043E-%u043A%u0438%u0434%22%2C%0A%20%20%20%20%20%20%20%20%20%22%5E_%5C%5C%5C%5C%5C%5C%20%20%u044D%u043C%u043E-%u043A%u0438%u0434%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%A8%5C%5C%28%u043E_%u041E%29/%A8%29%20%20%u041C%u0435%u0434%u0432%u0435%u0434/%AB%u041F%u0440%u0435%u0432%u0435%u0434%21%BB%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28jIj%29%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28%3B%2C%3B%29%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28o%2C.%2CO%29%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22Y%28O%2C%2C%2C%2CO%29Y%20%20%u041A%u0442%u0443%u043B%u0445%u0443%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28x%28x_%28x_x%28%u041E_%u043E%29x_x%29_x%29x%29%20%20%u0436%u0438%u0432%u043E%u0439%20%u0441%u0440%u0435%u0434%u0438%20%u0437%u043E%u043C%u0431%u0438%22%2C%0A%20%20%20%20%20%20%20%20%20%22%28-%28-_%28-_-%28%u041E_%u043E%29-_-%29_-%29-%29%20%20%u043F%u0440%u043E%u0441%u043D%u0443%u043B%u0441%u044F%20%u0432%20%u043C%u0435%u0442%u0440%u043E%22%2C%0A%20%20%20%20%20%20%20%20%20%22@-_-@%20%20%u043E%u0432%u0435%u043D%2C%20%u0431%u0430%u0440%u0430%u0448%u043A%u0430%22%0A%20%20%20%20%20%20%20%5D%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Aarray.forEach%28%28arr%29%3D%3E%20%7B%0A%20%20%20var%20menu%2C%20subMenu%2C%20subMenuItem%3B%20%20%0A%20%20%20menu%20%3D%20document.createElement%28%22menu%22%29%3B%0A%20%20%20subMenu%20%3D%20document.createElement%28%22menupopup%22%29%3B%0A%20%20%20%20%20%0A%20%20%20arr.forEach%28%28smile%2Ci%29%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%20i%20%3D%3D%200%20%29%20return%3B%0A%20%20%20%20%20%20subMenuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20subMenuItem.setAttribute%28%22label%22%2C%20smile%29%3B%0A%20%20%20%20%20%20subMenuItem.style.fontSize%20%3D%20%2214px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E%0A%20%20%20%20%20%20subMenu.appendChild%28subMenuItem%29%3B%0A%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%0A%20%20%20menu.appendChild%28subMenu%29%3B%0A%20%20%20menu.setAttribute%28%22label%22%2C%20arr%5B0%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20menu.style.fontSize%20%3D%20%2212px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u043C%u0435%u043D%u044E%0A%20%20%20menuPopup.appendChild%28menu%29%3B%0A%7D%29%3B%0AmenuPopup.addEventListener%28%22click%22%2C%20e%3D%3E%20insertText%28e.target.label.split%28%22%20%20%22%29%5B0%5D%29%20%29%3B%0A%20%0A%0A//%20%u0421%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043C%u0430%u0439%u043B%u0438%u043A%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20.................%0Afunction%20insertText%28smile%29%20%7B%20%20%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Ci.nsICommandController%29%3B%0A%20%20%20var%20params%20%3D%20Cc%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Ci.nsICommandParams%29%3B%0A%20%20%20params.setStringValue%28%22state_data%22%2C%20smile%29%3B%0A%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%20%20%20%20%20%20%20%20%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Тут другой аналогичный и действующих вариант этих кнопок 11-05-2013 13:28:43

Отредактировано bunda1 (12-05-2013 16:41:05)

Отсутствует

 

№11412-05-2013 17:07:47

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

BBCode( Firefox ) от 12.05.2013.
Открывает меню с разными BB кодами и даёт возможность вставлять их в любые поля ввода. В меню кнопки легко добавить свои коды, для этого надо редактировать в кнопке вкладку Справка.

Скриншот меню кнопки:
04d05629c31c8fbe82f175ba3439edde.png

ЛКМ => Открыть меню с BB кодами.
Код кнопки:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EBBCode%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACS0lEQVR4XpWTS4iSURTHj2/F8oFP1JIWQyZmBm3STavZjIuhTdHKaVMMzMZNLWtRFNGmgWJaTJS0qoEpJEgMA8FVCydRfBvoQgJzhoFCEW//e8fvcyaYRQd+fF7O+6GC/k+UgOVypLqiIxNp6b7yGMMTkKDVar2s1WrP4q0BxuWrN96+e7X2eeGPYnOsp7uko/0jXkaj8XwikdhIp9PdarU6LpfLk+3t7VE8Hv/u9/uzS/FlVsi9YR/fr/+8uUQhuMw7iEQiq/l8fn88HrN+v8+KxSJKzTEEY6lUikHPePkGg4md9i985VWSFCEYDK5sbW1tmkwm6na7NBwOaXd3V2Y0GlEmk6FCoSDlWwUvAKnBmWQy+Wg6ndLOzs4Rx729PZlOp0OH5DZ4DX4rA4HAda/X6+TO7XabG0rIb7RDaIsUCoUAEgaLgJSQRW7YarUEzWaTf2UqlQo1Gg1ijNE/EhMBoDyVzWbljEA41Ot1Qa/Xo8lkQhARRK1Wk8FgIIgPCPmm0WiYx+NhPp+P2Ww2ptfrGUrlKWVUKhXDmpnL5RJ20G9IW3gG1ugYQYuk0+kIzgKz2Sy2UqvVbkH9kl/iB8DAfEhzR+GAqgQOh0N8sZVfMMlKt/0FrANZcL7Eb8Jut5PT6RSOKJ3QJg0GA76RJzBrSwG43AOfZn8CbizjdrsJayaLxSI2VCqVnsPsMZDFAELgEniIKf/gAw2HwywajbJYLMZCodAUrVShvwMuAAeQRQFOAg/wgotgBbN4AJ7OqrsGzgEnsAG15PwXcMcNgug5BPIAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0412%u0435%u0440%u0441%u0438%u044F%3A%20%u043E%u0442%2012.05.2013.%20.................%20%0A%0Aconst%20data%20%3D%20this.Help.split%28%22%5Cn%22%29%3B%0A%0Aconst%20names%20%3D%20%5B%22menupopup%22%2C%20%22hbox%22%2C%20%22popupset%22%2C%20%22button%22%5D%3B%0Aconst%20btnAttrs%20%3D%20%5B%22label%22%2C%20%22tooltiptext%22%2C%20%22value1%22%2C%20%22value2%22%2C%20%22popup%22%2C%20%22image%22%5D%3B%0Aconst%20prefixId%20%3D%20%22CB-BBCode-node%22%3B%0Aconst%20button%20%3D%20this%3B%0A%0Afunction%20rep%28str%29%20%7B%20return%20str.replace%28/%25dot%25/g%2C%20%22.%22%29.replace%28/%25sym%25/g%2C%20%22%7C%22%29%3B%20%7D%0A%20%0Adata.forEach%28function%28str%29%20%7B%0A%09if%20%28%21str%29%20return%3B%0A%09var%20nm%20%3D%20str.split%28%22.%22%29.map%28rep%29%3B%0A%0A%09var%20name%20%3D%20names%5Bnm%5B0%5D%5D%3B%0A%09var%20id%20%3D%20parseInt%28nm%5B1%5D%29%20%26%26%20%28prefixId%20+%20nm%5B1%5D%29%3B%0A%09var%20parent%20%3D%20document.getElementById%28prefixId%20+%20nm%5B2%5D%29%20%7C%7C%20button%3B%0A%09var%20attrs%20%3D%20nm%5B3%5D%20%3F%20nm%5B3%5D.split%28%22%7C%22%29.map%28rep%29%20%3A%20%5B%5D%3B%0A%0A%09var%20node%20%3D%20document.createElement%28name%29%3B%0A%09if%20%28id%29%20node.id%20%3D%20id%3B%0A%09if%20%28name%20%3D%3D%20%22button%22%29%20%7B%0A%09%09btnAttrs.forEach%28function%28attr%2C%20i%29%20%7B%20attrs%5Bi%5D%20%26%26%20node.setAttribute%28attr%2C%20%28%28attr%20%3D%3D%20%22label%22%29%20%3F%20%22%20%22%20%3A%20%22%22%29%20+%20attrs%5Bi%5D%29%20%7D%29%3B%0A//%09%09node.setAttribute%28%22height%22%2C%20%228px%22%29%3B%0A%09%09var%20p%20%3D%20node.getAttribute%28%22popup%22%29%3B%0A%09%09p%20%26%26%20node.setAttribute%28%22popup%22%2C%20prefixId%20+%20p%29%3B%0A%09%7D%20else%20%7B%0A%09%09if%20%28name%20%3D%3D%20%22menupopup%22%29%20node.setAttribute%28%22style%22%2C%20%22-moz-appearance%3A%20none%3B%20border%3A%201px%20solid%20gray%22%29%3B%0A%09%09attrs.forEach%28function%28str%29%20%7B%0A%09%09%09var%20a%20%3D%20str.split%28%22%3D%22%29%3B%0A%09%09%09node.setAttribute%28a%5B0%5D%2C%20a%5B1%5D%29%3B%0A%09%09%7D%29%3B%0A%09%7D%0A%09parent.appendChild%28node%29%3B%0A%7D%29%3B%0Avar%20popup%20%3D%20document.getElementById%28prefixId%20+%201%29%3B%0Apopup.setAttribute%28%22oncommand%22%2C%20%27document.getElementById%28%22%27%20+%20button.id%20+%20%27%22%29.handleClick%28event%29%27%29%3B%0A%0Aconst%20btnIdPrefix%20%3D%20%22cb-bbcode-button-%22%3B%0Aconst%20mid%20%3D%20%22%20%3E%20.box-inherit.button-box%20%3E%20.button-icon%20%7B%20background-color%3A%20%22%3B%0Aconst%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Aconst%20type%20%3D%20sss.USER_SHEET%3B%0Avar%20mp%20%3D%20document.getElementById%28prefixId%20+%207%29%3B%0Avar%20style%20%3D%20%22%22%3B%0AArray.slice%28mp.children%29.forEach%28function%28btn%29%20%7B%0A%09btn.setAttribute%28%22image%22%2C%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAIA4AAAEAIABgBwAAFgAAACgAAAAgAAAAHAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAH////5////+f////n////5////+f////n////5////+f////n////5////+f////gAAAAA%3D%22%29%3B%0A%09btn.setAttribute%28%22value1%22%2C%20%22color%22%29%3B%0A%09var%20color%20%3D%20btn.getAttribute%28%22value2%22%29%3B%0A%09btn.id%20%3D%20btnIdPrefix%20+%20color.substring%281%29%3B%0A%09style%20+%3D%20%22%23%22%20+%20btn.id%20+%20mid%20+%20color%20+%20%22%20%21important%3B%20%7D%5Cn%22%0A%7D%29%3B%0Avar%20cssURI%3B%0AsetTimeout%28function%28%29%20%7B%0A%09cssURI%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28style%29%2C%20null%2C%20null%29%3B%0A%09if%20%28%21sss.sheetRegistered%28cssURI%2C%20type%29%29%20sss.loadAndRegisterSheet%28cssURI%2C%20type%29%3B%0A%7D%2C%201000%29%3B%0A%0Avar%20hbox%20%3D%20document.getElementById%28prefixId%20+%202%29%3B%0Athis.handleClick%20%3D%20function%28evt%29%20%7B%0A%0A%09var%20node%20%3D%20evt.target%3B%0A%09if%20%28node.nodeName%20%21%3D%20%22button%22%20%7C%7C%20node.parentNode%20%3D%3D%20hbox%29%20return%3B%0A%0A%09var%20v1%20%3D%20node.getAttribute%28%22value1%22%29%3B%0A%09var%20v2%20%3D%20node.getAttribute%28%22value2%22%29%3B%0A%09if%20%28v2%29%20v2%20%3D%20%22%3D%22%20+%20v2.replace%28%22%25clipboard%25%22%2C%20gClipboard.read%28%29%29%3B%0A%0A%09var%20bb1%20%3D%20%22%5B%22%20+%20v1%20+%20%28v2%20%7C%7C%20%22%22%29%20+%20%22%5D%22%3B%0A%09var%20bb2%20%3D%20%22%5B/%22%20+%20v1%20+%20%22%5D%22%3B%0A%0A%09var%20box%20%3D%20content.document.activeElement%3B%0A%09var%20txt%20%3D%20box.value%3B%0A%0A%09var%20s%20%3D%20box.selectionStart%3B%0A%09var%20e%20%3D%20box.selectionEnd%3B%0A%0A%09var%20bef%20%3D%20txt.substring%280%2C%20s%29%3B%0A%09var%20mid%20%3D%20txt.substring%28s%2C%20e%29%3B%0A%09var%20aft%20%3D%20txt.substring%28e%29%3B%0A%0A%09var%20ins%20%3D%20bb1.replace%28/%25copy%25%7C%25move%25/%2C%20mid%29%20+%20%28v2%20%3D%3D%20%22%3D%25move%25%22%20%3F%20%22%22%20%3A%20mid%29%20+%20bb2%3B%0A%09var%20val%20%3D%20bef%20+%20ins%20+%20aft%3B%0A%0A%09box.value%20%3D%20val%3B%0A%09box.selectionStart%20%3D%20s%3B%0A%09box.selectionEnd%20%3D%20s%20+%20ins.length%3B%0A//%09box.focus%28%29%3B%0A%7D%0Abutton.onclick%20%3D%20function%28e%29%20%7B%0A%09if%20%28%21e.button%29%20document.getElementById%28prefixId%20+%201%29.openPopup%28button%29%3B%0A%7D%3B%0Abutton.onDestroy%20%3D%20function%28reason%29%20%7B%0A%20%20%20%20if%20%28reason%20%3D%3D%20%22update%22%20%7C%7C%20reason%20%3D%3D%20%22delete%22%29%0A%20%20%20%20%20%20%20%20if%20%28cssURI%20%26%26%20sss.sheetRegistered%28cssURI%2C%20type%29%29%20sss.unregisterSheet%28cssURI%2C%20type%29%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B0.1.0.position%3Dafter_start%7Concontextmenu%3Devent%25dot%25preventDefault%28%29%3B%0A1.2.1%0A%0A3.3.2.BBCode%7CSpaces%20to%20Add%7C%7C%7C5%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEACQkAAAEAIACQAQAAFgAAACgAAAAJAAAAEgAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/87W1v8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAKxBjACsQYwArEGMAKxBgICsQYwArEGMAKxBjACsQQCArEE%3D%0A2.4.2%0A0.5.4.position%3Dafter_start%0A%0A3.0.2.Colors%7CColors%7C%7C%7C7%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAC4jAAAuIwF4pT92AAADzUlEQVR42jWTa0yTdxjF/yAXleDMmEYSN7PFLEv8MDYyTZaNgZrFhMzEZGbGLUFL71x6fdtSSi/0AkihdIAiFxUvWIcilw2l4FwkQxiZkC7MC0YYblBGdFkBkfZ9/2dvzfhwnufL83tyPpxDrFYrsVgshN/xdrudaLVakp+fnycU5PR/nSOYOiLTBb8SyCeEMolDrVYSk8nE35vj/2fIGhxjNpuJWq3+UCKR9ObJZYsKjZE7WVVO+zzKif5z314o1ZlGVGq931Zq22212gh/HxNlo3BcFJbLZMekUukyo1Gh2OLC4DUzZbtTKTqTn6H/jcBcfcKg6/NtSwcyMl/oGU2e3eGMPoklUdsqleoTHg4XGQywWi3hlrMXabjnA+D6erADr4MdiQNm3gV7Oy5szyDYuS0VKumxdFupnRCNRpMklUiGGYaB0+kM19V60dF1gy517qVo30Q5/0ZKR99i2ZlqjovcBIaTVyW7YrDnvXfk7io3IWKRqKSwIP8Fb4d6vV7advE87b15C5OjPYj0pAFXCaX+WGA8m0YWFzhuTsw9LSUvcw9mpzvKywmR5xUUqRl9yOV0oKWpkevu7sbw3SE8mJxG8K9pLP/qRNifDjqQAgQOcRj5mMUVwv5s2feZxlJBiCLn8GuM8Mh9l9tLmy/4WH9fHw2Mj2H2zxksLa0gtArMBufxePwGHtw20yftWeHQlU0IFqUI1LYaQo5mpekq920O3Tdm0K56J9d76yeMPZqmswvPsbK8xCuE2bkgxn97hF7/XTS1dkRqKh1w64XtCqY4jogP7b9jytyKsCIZtDCFzjPpdOq8BX+MDWL2eQjBhWd48ngSo6O/4Ifvu+iZlibO6aqghRoDpFKJkzCCw3eO79nOTgjXB2nNm4BiC4U4kbLyJPqv5yB+vzeEkXsBDPT3wefz0bq6OmqzWqhSUUhFIlErcZdojx/9dNdKTWbCEM7FP+VqtyBi2M5x6lRAvA6Lxe+jr/MafN+108aGBpSXlbEGvZ6VyWTLYrE4i1RVe0htmbkj++2NuPRl0hQuE4pWXmWERkoSAA2hAed+6jl1BhUuJ1dsNK7yXQEPe191gdFqY9su+3ZUmzUPD+xIxIm9CexDRxz3siGGopGXl9BJz25qKq1gi/Q6FPCwMDe3iw/eBpvNto7wI1Zv0BPe4tbrl5qvSrPTkJ+xGZVfJKLtG4IfmZ1ocBkgL1BCKhb/zVvXG41GstbiV4N/EqPTMeRkw2nCh+ij5lMn/PUebbDpdMk/dnflvEAkHRfmCpRKlWpDFOQVu1bn/wDzd1RKwhrzpQAAAABJRU5ErkJggg%3D%3D%0A2.6.2%0A0.7.6.position%3Dafter_start%7Cheight%3D350px%0A%0A3.0.2.Position%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%20%u0438%20%u0432%u044B%u0440%u0430%u0432%u043D%u0438%u0432%u0430%u043D%u0438%u0435%7C%7C%7C9%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAC4jAAAuIwF4pT92AAAD2ElEQVR42l2Ra0xbdRiH/2PDS2b0g4l+nG4Rpw4ahYYs0xU/LJIZCBljczDHshnmZc4wJi3n3nPKpYUaNgOBArOlhRUmG90MAiqXcottBYGyMkYLLbJBNkAs0ts557XovrgPv/ze5E2ePG9exDH0DgVFIZNKlSBOOlfD87714LzbDwN93i4l/fIlJRWrZOmnaJaOfTJUdIc4mondAjSpVBJY8ISCy/Ow4RkH0drxyIrRL8gxBnEYjRiMQkqc+V84gkUoahAF0MikpBMivW3B1f5WeNR1FQLGb+7Xq8/Hf1GFJePVSilRUyxVVJPSwipMKq/CozMuvXD54ttRgyiAZpCRxCX+Bi7kq7wEM3npsJhzxMW0HtNUO4+CeeJc+IdZLe9Y7hYmV4aE3x7+wt9dHRHYcW4FcRQVq2CUyITLJQ/y0kMTh+Jh8tBuWMiSTWtNR0tv30kXOuyp4cYBGV9vTRN6prSCY/YaP+E2C+V21VIUQO6QK1lk/PqixJsqCU7nSkQfdUB8WJDquvLdEc300icwdjcbOsbSQWc9COU/74c222fQO05DyYhiDbFRAzmrQob8C5KF7MRND5nCLxsyeb8my4XVH8ar5k56jbbj9prBDJumJ81Od39gL+jLnFbb8zynB3PHUAlZuA3jKNT86WnJes4eWC3dD0L3MYDqw5sNpw68lKHPedbZEnfOY3lDPtu+r+CPm68r9NeS4z6sydt5vPbUTvQlrX8+r7T1ucrPi1+1pWcSfdkfEz25Z0lr2keFmiztiwSrexrGds+FfbsgMrIXoDMeVvTJKWxRCSrbeqPcNHWHvO6aO9v4+70T+glHfrPDobnZa2/ua7e1T1z36eoqCoPDe6wbzl38372vBQVLAu8xymRF0dczLLEdaW85A1e6p4CwjEJGnRUKWrqgud8Mo85K8C2WQ4uJ4wKd+/qD/W+Km5a9YdEsEb3GgzKMZBDLkDHI1Ov+85bDK3SM+sTavhnhvHlQYNssvOEnY6h1qEUwGMqYcOtb1kBTHGwa3onA7RPgbXo/BSdpxCqp7ejG8JLf5v5LGJlZ50c9fqHftSY0Drn5qu5fQ+ofHaC7WsHx379nDVnOQHigNAJj34LPJEvBiccArKQmkVLrkih1bRJZVpuk1OiSirUNSVxFXaKiTJ+sLi56JTKCjYv3OkV+tisM3g7R15Qiw3FqCxCDGApDNIkh5nG2ZoosirYCkQSByuivtgWdjdPgfwD8xgoPgUXwbZ2AE/8Z0IwyhonmyWYYJoagVTFqJv+ZwFDBsOg2r0VmTPfBdXnNp5e+ixPMvwb/AKyLUjULoolGAAAAAElFTkSuQmCC%0A2.8.2%0A0.9.8.position%3Dafter_start%0A%0A3.0.5.HypLink%7C%u0413%u0438%u043F%u0435%u0440%u0441%u0441%u044B%u043B%u043A%u0430%7Curl%7C%25move%25%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAKIAAGZmZgAAAP///8zMzP///////////////yH5BAEAAAQALAAAAAAQABAAAAMxSLrc/jBKCYK16lpAqhBDaH3hEHimpoqBEJhkWJkpq17iXFZnaXK8S0bDmRiPyGQyAQA7%0A3.0.5.Seltxtlink%7C%u0422%u0435%u043A%u0441%u0442%20%u0413%u0438%u043F%u0435%u0440%u0441%u0441%u044B%u043B%u043A%u043E%u0439%7Curl%7C%25clipboard%25%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAKIAAGZmZgAAAP///8zMzP///////////////yH5BAEAAAQALAAAAAAQABAAAAMxSLrc/jBKCYK16lpAqhBDaH3hEHimpoqBEJhkWJkpq17iXFZnaXK8S0bDmRiPyGQyAQA7%0A3.0.5.Post%20URL%7C%7Curl%7C%25copy%25%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyAAAAMgAAADIAAAAyAAAAWpKGc/+Mhmb/ipFq/4qXbv+ekXb/oI9+/wAAAFoAAAAyAAAAMgAAADIAAAAyAAAAMgAAADIAAABaj35t/36CVv91l1z/d5lc/3ubX/+gnW//upx7/7aaff+ulnz/mYZy/wAAAFoAAAAyAAAAMgAAADIAAABaj3pl/519Wv+tkWf/r5dm/6+ZY/+4mmT/xJtq/8Kcbf/CnHL/t5pz/6WTcP+ZgWr/AAAAWgAAADIAAAAycDAgWpBrQ/+1jWH/wJRh/8aYXv/Jmlz/yptb/8KZWP9wj0D/gZJK/3mTTv94k1P/pYlm/5eBaf9wMCAycDAgMopoRP8AAP//AAD//wAA///LmlX/zZ1X/wAA///InFT/co02/wAA//9yizj/AAD//wAA//8AAP//AAD//83Btf8AAP//tYNI/8OPSP/Ll07/AAD//9KhWP8AAP//06NZ/9GgVf8AAP//upNG/wAA//+4jFP/pX9V/5eAaP+pmID/AAD//4aEMv/JlEr/0J9U/wAA///aq2H/AAD//4OXPv8AAP//1aVb/8+dU/8AAP//v41L/66CUf+FZUX/nYlq/wAA//9mgyj/zpxR/9eoXf8AAP//p6VR/wAA//8AAP//AAD//9yvZP/Vplv/AAD//8OORf+vgkr/hmM+/6aUef8AAP//hoo0/9OjWP/dsGX/AAD//2eXOv8AAP//6MN+/+a/dv8AAP//2q1i/wAA///GkUf/an4s/15iKv++sZ7/AAD//4qQPv/Wp1z/4bdt/wAA//9omkH/AAD//9jFg//qx4b/AAD//96zaP8AAP//x5JI/2d8K/9ZXyr/cDAgoQAA//+DnlX/2K1n/+S8c/8AAP//n7Nq/wAA//8AAP//AAD//+nFgf/htmv/AAD//56MO/9fdin/jnpg/3AwIDK7uKH/m7R+/8K5f//oxoj/7dKd/7HBhP92qmD/dKhd/7/Dhf/qy47/4rl0/9OlX/+sjEb/imQ3/3AwIDIAAAAAcDAgMsvDq//Wy6f/6dKn/6W+gv+Kt3j/i7l9/4q4ef+YuXr/zMWJ/8K2df+zpWT/rodY/5R/aP8AAAAAAAAAAAAAAABwMCAy4NG//+zav//Dz6b/pcaU/6DHlv+ew4//m72D/5e2eP+SrnH/pKJz/5J8Zf9wMCAyAAAAAAAAAAAAAAAAAAAAAHAwIDLWy77/59vH/9PXuP/B0Kj/tMia/7LDlP+3vZP/s6WJ/7Gklv9wMCAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAwIDLPxrz/yr2w/8Kzo//BtKb/cDAgWgAAAAAAAAAAAAAAAAAAAAAAAAAAAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBgAGsQcABrEHgA6xB+B+sQQ%3D%3D%0A3.0.5.BBCode%7C%u041F%u043E%u043B%u0443%u0436%u0438%u0440%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Cb%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAPcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAAQABAAAAg4AAMIHEiwoMGDCBMaBMCwIcOEDQVGPDhx4sKHASwWdKhxI8aOAytivAhA4kiCHEEqXMmypcuBAQEAOw%3D%3D%0A3.0.5.UnLiner%7C%u041F%u043E%u0434%u0447%u0451%u0440%u043A%u043D%u0443%u0442%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Cu%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAPcAAAAAAHt7ewAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAQABAAAAg+AAUIHEiwoMGDBwEoBCBgIcOEDxtGNKhwYEWEFyUi1CgwI8WIHgtmDElQYQABAUiWdLix5UeHC13KnElTYEAAOw%3D%3D%0A3.0.5.StrikTh%7C%u0417%u0430%u0447%u0451%u0440%u043A%u043D%u0443%u0442%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Cs%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAAaUlEQVR42ryTUQrAMAhD84r3v3L2Ndik63SF+SVS0jTPYls7NbRZkQfA2WZrSFJ2/OTAxdlUwOlWViJRfCqdEHmzfTtsW8AnlrbZxkjGcsE4C5YqRlXxRgFje5UzhaXgaHCnFOLvv/EYACqEIRcK3R/8AAAAAElFTkSuQmCC%0A3.0.5.Italic%7C%u041D%u0430%u043A%u043B%u043E%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Ci%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAPcAAAAAAHt7e4SEhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAMALAAAAAAQABAAAAgyAAcIHEiwoMGDCBMqBMCQoUKBDAU8HBDA4USGASZWBDBxAEaNFh9+XNgwZMeTKFMqDAgAOw%3D%3D%0A3.0.5.Quote%7C%u0426%u0438%u0442%u0430%u0442%u0430%7Cquote%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACCklEQVR42mL8//8/AyUAIICYGCgEAAFEsQEAAUSxAQABxAIiurq6OM+cOZPPx8fHaWZm1rp8+fLEDx8+aGVmZrZKSEgwT5s2rRPIFwKyj/38+fPbmzdvvHh5eV/v27cvGiCAwAY8fPgwfvfu3Q3e3t5Vx48fD7hy5UonNzf3opcvX34FSiuePHkyEGgAj6ys7P9v3759fPv2rSsPD88nkF6AAAJ7YceOHbFSUlLb+fn5Jx09ejRORkbmkomJSVVtbe1XZmZmVmBMMYLUsbOzf/n37x9YDysr63cQDRBAYM6TJ09kfv/+fXbz5s18QNO1vn//fnHNmjVfQHKioqLP/fz85ggKCr4DGsAVEhKyXkND4yJQPTtIHiCAGKDp4BnQSYcUFBSagBoeA/k3gC5Ki42N5QXJL1y4kEdVVfWks7PzBhA/NTW1AqjuHYgNEECwWPj79etXWyYmpkigLT+AfHU2NrbYI0eO8IEkga7i//HjhxQQXwfxgeJqwAB9BWIDBBDMAHagZoa/f/8yAp3GBhL4/Pnz36CgoH8LFizgX7Vq1XSggQympqbLBQQEEq5fvx6hq6u7AqQOIIDAsQAMtBPAwBIGmvoAaAsH0GnvhYWFL8rJyf3g5OQUBrrun7q6egGQfQsY1VE6OjozgXITQXoBAoiR0rwAEEAUp0SAAKLYAIAAotgAgAADANuDzfQSUmlqAAAAAElFTkSuQmCC%0A3.0.5.Spoiler%7C%u0421%u043F%u043E%u0439%u043B%u0435%u0440%7Cspoiler%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAMklEQVQ4jWNgGKzgP7EKmSi1iWIDGJHY+JzNiEcOKxhCYTDwgNjQxRaojAwMwyIMKAYA3esECwxQ4k8AAAAASUVORK5CYII%3D%0A3.0.5.Code%7C%u041A%u043E%u0434%7Ccode%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAA60lEQVR42mL8//8/AyUAIICYGCgEAAFEsQEAAYQNKQHxfyieABWrRRJTQlYMEEBYNc9YtR2MoRoYsIjBDQEIIKyavTOb0RWC5ZJrJ2PIAQQQTs2g2EHH2AwBCCCQIIeNkweGzTgMwHAJQACBBLkUdC3BArqOgSDBSAaIE7AZADdk6dYD/+W0Tf8DBBAoGhk5GX+AZbx8A0DUMjwhDRK/C9TMsGzLYYZHV08zAAQQiqkgV5T3LcQV0nCbkb0KEEAYCnAYglMzQABhjUo0QxjwaQYIIEIpMQcqNgFXSgQIIEZKcyNAAFGcmQACDAB0jLqYK4uYbwAAAABJRU5ErkJggg%3D%3D%0A3.0.5.AnLink%7C%u0410%u043D%u043E%u043D%u0438%u043C%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%7Curl%7Chttp%3A//anonym%25dot%25to/%3F%25copy%25%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB50lEQVQ4jY2TS2tTURSFb7EJpS1KB7a2eSf3cR43UWKMN7nnxhdYsF4VkRadiAg6KVSwEkFDITqxKiqC+C+c+Ad0moFTcaYggoiIgtPPUSshSXWwRnvtj73PPsuK45gwDDHG9KkZRhxqRNQaLYJmNFAPw5A4jrGCIEBK2aesrfGV5EyzwEqUo1V1yNkaV6g+XxAEWMaY/mZXc+VYnvftCXgwBpsWv+/v4uWlWYSnccVfrzGmH1B0FYt1m1/3xvnZTdA9N8/qyRS9G5Pw1OLhhX2kS3o0YL6k2Tw/By8sOnGK3ZkKs3mfekXwYyPJh/YESortVQYAWVtzaynF2/VpTgc2Wcen5EkcIfh0O8nXuwmqvsDxRgCUlDieouAopCfY73sIKemeXYBHY7xZ3UPRUYhRK2zJERKlJK+vz/C5k4THFt+7CZZNgZyjRr/BloSQ2J7m3foUH+9M8PziXpYOF8nb/WccDZCSgqPo3ZzkyfIcU+kKBddHCfn/gLyjeXVthvapBdKl8oDnnwCtPY5WXeoVDyEGm3cEZG3N1RMZvnSS9NamOVh2B77xjoB0yWdtMQ3PLL5tjFMre9u3HwAMC5MrFM0DLpePZ1hp5dBSIoZMEAQB1rA4R8bQaEZUgyPUGi3C0IyM8x/V4agSvEQ6QAAAAABJRU5ErkJggg%3D%3D%0A3.0.5.Image%7C%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u043A%u0430%u0440%u0442%u0438%u043D%u043A%u0438%7Cimg%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAABpUlEQVR42p2TP0gbURzHPxebwyEJVBw6aKZAxOUcbYYOpS0IRSgljVBMOLgxZA64SBY30RDp0HuEDraBQodChrQI/UNj3XRRoreYQfo3NF4kSo9ct4dHcsX4pvd77/v9/B7vva8CUKlU3E6nw7DDMAxFMU3TTSQSxGKxocyWZVGv1wkAvmYhBJqmoaoqmqYhhMBxHLrdrvTc8OsghODt6zXq7zZQ1RG6Z39YNPI4jkM6nZa6gB+gWCzy8sUGI73vXPz+SOB8j2crjyiVSh6dPIGqqn2Qm5P3aO0vyzoSHqXRaAwGAHxb0nFOmrKeKG8xNr3MZmmBubtTnNrnxONxf4Bz0uTv8ZFH8OnrLndmZ3j/ymD1+Wey2axnP/C/pyoUCuwc/gQgV/jCw8c5MpnM1QDlZpv780/40bLR8+tEo1F0Xe/T+QJ+PXjKwXELgPFbk9RqNarVap/OcwcT5S05317N8ebDvqz1/DrJZJJ2uz0YcDkLoVCI2zNTV/rSEuC6rly0bXuguNfrARAMBr0Ay7KuFaZIJIICYJqmO2yUw+EwqVRK+QdtIZCYwfQIRQAAAABJRU5ErkJggg%3D%3D%0A3.0.5.Hide%7C%u0421%u043A%u0440%u044B%u0442%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%7Chide%7C%7C%7Cdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAHpSURBVHjapJK9aipRFEbXOc6MM5EkiIX5KaYShJQ+gpVtIF1Kq4Av4RuIZao0AUkTiAi+gEUgSipjNQYcizRJBowDZ2Z2ConFLW5yb1a3i734PvZWIvIKuPwfMSIST6dTCYJAvgiCQCaTyXYOw1Du7+8lSRL5g1gDMhwOub29ZbFYAGCMIY5jAJbLJYPBgKurK9I0JYoiZrPZVwKxADzPo9frMR6Pqdfr+L7PYrEgDEP6/T5hGFKr1Xh+fqbT6WCMoVqtcnFxgQb4+Pjg9PSUdrvNaDQijmMeHx+5ubmh2+1yfn6O4zhcXl6SJAknJyfc3d0xn883Aq01+/v72LaNZVmICGmakqYpjuNQKBRIkoT393dc18X3fc7OziiVShtBPp/Htm2UUhQKBQB836fRaNBqtbi+vsayLJrNJqvVislkQhRFuK6LEpF1FEWu1hrP83h7e8PzPIwx7O3t8fDwgOd5HB0dUSwWeXp64uXlhUqlwuHhYaxEZP2bP7AAVqsVy+USpRRKqW+30jRld3eXg4MDLID1ek0QBIgIWutvBcYYjo+PKZfLG4HWGsdxfixQSpHL5QDQ/BIL2N49y7Kt+W8kSUKWZVuByuVy7Ozs/LiCbds4jrNpIyKvWZa5xph/iq61xrbt+HMA/wYFcDfOeqsAAAAASUVORK5CYII%3D%0A%0A3.0.7.%7CBlack%7C%7C%23000000%0A3.0.7.%7CDarkGrey%7C%7C%23424242%0A3.0.7.%7CMediumGrey%7C%7C%23666666%0A3.0.7.%7CGrey%7C%7C%23808080%0A3.0.7.%7CLight%20Grey%7C%7C%23d3d3d3%0A3.0.7.%7CWhite%7C%7C%23ffffff%0A3.0.7.%7CAqua%7C%7C%2302feff%0A3.0.7.%7CBaby-Blue%7C%7C%2376ebff%0A3.0.7.%7CSky-Blue%7C%7C%2300c0fe%0A3.0.7.%7CLight%20Blue%7C%7C%230080ff%0A3.0.7.%7CMedium%20Blue%7C%7C%230002f7%0A3.0.7.%7CDark%20Blue%7C%7C%2300008b%0A3.0.7.%7CIndigo%7C%7C%234b007f%0A3.0.7.%7CDarkPurple%7C%7C%235c246e%0A3.0.7.%7CMediumPurple%7C%7C%23670099%0A3.0.7.%7CPurple%7C%7C%23a020f0%0A3.0.7.%7CLightPurple%7C%7C%23c05eff%0A3.0.7.%7CPink-Purple%7C%7C%23de00ed%0A3.0.7.%7CFuschia%7C%7C%23eb00cb%0A3.0.7.%7CHot%20Pink%7C%7C%23ff40f3%0A3.0.7.%7CNeon%20Pink%7C%7C%23f46ffc%0A3.0.7.%7CPink%7C%7C%23fec0cb%0A3.0.7.%7CPeach%7C%7C%23fccec1%0A3.0.7.%7CFlesh%7C%7C%23fddeb0%0A3.0.7.%7CTan%7C%7C%23fdf1b5%0A3.0.7.%7CLightBrown%7C%7C%23b87332%0A3.0.7.%7CBrown%7C%7C%237e4102%0A3.0.7.%7CDark%20Red%7C%7C%238b0101%0A3.0.7.%7CMedium%20Red%7C%7C%23e3170e%0A3.0.7.%7CRed%7C%7C%23ff0000%0A3.0.7.%7COrange-Red%7C%7C%23fe2400%0A3.0.7.%7COrange%7C%7C%23ff803f%0A3.0.7.%7CYellow-Orange%7C%7C%23ffbe00%0A3.0.7.%7CGold%7C%7C%23fed602%0A3.0.7.%7CYellow%7C%7C%23ffff00%0A3.0.7.%7CGreen-yellow%7C%7C%23adff30%0A3.0.7.%7CNeon%20Green%7C%7C%235dfc0a%0A3.0.7.%7CLightGreen%7C%7C%2390ee90%0A3.0.7.%7CGreen%7C%7C%2356ad3c%0A3.0.7.%7CMediumGreen%7C%7C%23008000%0A3.0.7.%7CDarkGreen%7C%7C%23006400%0A%0A3.0.9.Font%2010%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2010%7Csize%7C10%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEEDw6xBz5msQc85rEHPPKxBzzysQc88rEHPPKxBzzysQc88rEHPOaxBD5msQc/DrEH//6xB//+sQQ%3D%3D%0A3.0.9.Font%2012%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2012%7Csize%7C12%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEECAaxBzwGsQc+erEHPz6xBz+esQc/3rEHP86xBz/msQc/5rEHPeaxBDzGsQc+DrEH//6xB//+sQQ%3D%3D%0A3.0.9.Font%2014%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2014%7Csize%7C14%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEED86xBz/OsQc/zrEHPAKxBz3OsQc+zrEHPs6xBz9OsQc/DrEHP46xBD/OsQc/zrEH//6xB//+sQQ%3D%3D%0A3.0.9.Font%2016%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2016%7Csize%7C16%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEEDw6xBz5msQc89rEHPPKxBzzysQc84rEHPGaxBzwOsQc+frEHPz6xBD+esQc/wrEH//6xB//+sQQ%3D%3D%0A3.0.9.Font%2018%7C%u0420%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%2018%7Csize%7C18%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAAAAAAAAAAAAAAAAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEEDw6xBz5msQc88rEHPPKxBz7msQc+RrEHP46xBz4OsQc+ZrEHPPaxBD5msQc/DrEH//6xB//+sQQ%3D%3D%0A3.0.9.Justify%7C%7Cjustify%7C%7C%7Cdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERP8/Pz//Ozs7/zY2Nv8yMjL/LS0t/ygoKP8kJCT/Hx8f/xoaGv8WFhb/ERER/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATk5O/0pKSv9FRUX/QEBA/zw8PP83Nzf/MzMz/y4uLv8pKSn/JSUl/yAgIP8bGxv/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWFj/VFRU/09PT/9LS0v/RkZG/0FBQf89PT3/ODg4/zMzM/8vLy//Kioq/yYmJv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYv9eXl7/WVlZ/1VVVf9QUFD/S0tL/0dHR/9CQkL/PT09/zk5Of80NDT/MDAw/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxs/2hoaP9jY2P/X19f/1paWv9VVVX/UVFR/0xMTP9HR0f/Q0ND/z4+Pv86Ojr/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2dnb/cnJy/21tbf9paWn/ZGRk/19fX/9bW1v/VlZW/1FRUf9NTU3/SEhI/0RERP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//+sQf//rEH//6xBwAOsQf//rEHAA6xB//+sQcADrEH//6xBwAOsQf//rEHAA6xB//+sQcADrEH//6xB//+sQQ%3D%3D%0A3.0.9.Left%7C%u0412%u044B%u0440%u0430%u0432%u043D%u0438%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%20%u043B%u0435%u0432%u043E%u043C%u0443%20%u043A%u0440%u0430%u044E%7Cleft%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAIABAAAAAP///yH5BAEKAAEALAAAAAAQABAAAAIbjI+pm+APIZshRoqr3Vlt2S0fEE7jVRqnkx4FADs%3D%0A3.0.9.Center%7C%u0412%u044B%u0440%u0430%u0432%u043D%u0438%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%20%u0446%u0435%u043D%u0442%u0440%u0443%7Ccenter%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAIABAAAAAP///yH5BAEKAAEALAAAAAAQABAAAAIajI+pm+APIZsnRkqtBnhu1zHfFSpjaY4PahQAOw%3D%3D%0A3.0.9.Right%7C%u0412%u044B%u0440%u0430%u0432%u043D%u0438%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%20%u043F%u0440%u0430%u0432%u043E%u043C%u0443%20%u043A%u0440%u0430%u044E%7Cright%7C%7C%7Cdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQAIABAAAAAP///yH5BAEKAAEALAAAAAAQABAAAAIajI+pm+APIZsqSortxU1bPnkPSIkkIkanUQAAOw%3D%3D%0A%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Автор кнопки: Dumby

Отредактировано bunda1 (07-03-2014 19:42:13)

Отсутствует

 

№11518-05-2013 00:25:29

MySh
Кактусогрыз
 
Группа: Extensions
Зарегистрирован: 17-12-2006
Сообщений: 4623
UA: Firefox 21.0

Re: Готовые кнопки для Custom Buttons

FFolders (Папки Firefox) (Windows) (Firefox 20)
Автор: Anton.
Кнопка содержит выпадающее меню, через которое можно открыть папку с текущим профилем и папку установки Firefox.

скрытый текст
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EFFolders%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20%27%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20onclick%3D%22this.%20parentNode.%20handleClick%20%28event%29%3B%22%3E%5Cn%5C%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22ProfD%22/%3E%5Cn%5C%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20Firefox%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22CurProcD%22/%3E%5Cn%5C%0A%20%20%20%20%20%20%3C/menupopup%3E%27%3B%0Athis.%20appendChild%20%28e4xConv_parseXULFromString%20%28menu%29%29%3B%0Athis.%20type%20%3D%20%22menu%22%3B%0Athis.%20orient%20%3D%20%22horizontal%22%3B%0A%20%0Athis.%20handleClick%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20menuitem%20%3D%20event.%20target%3B%0A%20%20%20%20var%20value%20%3D%20menuitem.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20file%20%3D%20Cc%20%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%20getService%20%28Ci.%20nsIProperties%29%3B%0A%20%20%20%20%20%20%20%20file%20%3D%20file.%20get%20%28value%2C%20Ci.%20nsIFile%29.%20QueryInterface%20%28Ci.%20nsILocalFile%29%3B%0A%20%20%20%20%20%20%20%20file.%20launch%20%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20this.%20open%20%3D%20false%3B%0A%7D%3B%0A%0Afunction%20e4xConv_parseXULFromString%28xul%29%20%7B%0A%09xul%20%3D%20xul.replace%28/%3E%5Cs+%3C/g%2C%20%22%3E%3C%22%29%3B%0A%09return%20new%20DOMParser%28%29.parseFromString%28xul%2C%20%22application/xml%22%29.documentElement%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Пиктограмма:

Выделить код

Код:

data:image/png;base64,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

Инициализация:

Выделить код

Код:

var menu = '<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\
              onclick="this. parentNode. handleClick (event);">\n\
        <menuitem label="Открыть папку текущего профиля"\n\
              value="ProfD"/>\n\
        <menuitem label="Открыть папку установки Firefox"\n\
              value="CurProcD"/>\n\
      </menupopup>';
this. appendChild (e4xConv_parseXULFromString (menu));
this. type = "menu";
this. orient = "horizontal";
 
this. handleClick = function (event)
{
    var menuitem = event. target;
    var value = menuitem. getAttribute ("value");
    if (event. button == 0)
    {
        var file = Cc ["@mozilla.org/file/directory_service;1"]. getService (Ci. nsIProperties);
        file = file. get (value, Ci. nsIFile). QueryInterface (Ci. nsILocalFile);
        file. launch ();
        }
    this. open = false;
};

function e4xConv_parseXULFromString(xul) {
    xul = xul.replace(/>\s+</g, "><");
    return new DOMParser().parseFromString(xul, "application/xml").documentElement;
}


FFolders (Папки Firefox) (Linux + KDE) (Firefox 20)
Автор: Anton.
Та же кнопка для Linux (с KDE).
скрытый текст
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EFFolders%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20fmPath%20%3D%20%22/usr/bin/dolphin%22%3B%0A%0Avar%20menu%20%3D%20%27%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20onclick%3D%22this.%20parentNode.%20handleClick%20%28event%29%3B%22%3E%5Cn%5C%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0442%u0435%u043A%u0443%u0449%u0435%u0433%u043E%20%u043F%u0440%u043E%u0444%u0438%u043B%u044F%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22ProfD%22/%3E%5Cn%5C%0A%20%20%20%20%20%20%20%20%3Cmenuitem%20label%3D%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043F%u0430%u043F%u043A%u0443%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20Firefox%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20value%3D%22CurProcD%22/%3E%5Cn%5C%0A%20%20%20%20%20%20%3C/menupopup%3E%27%3B%0Athis.%20appendChild%20%28e4xConv_parseXULFromString%20%28menu%29%29%3B%0Athis.%20type%20%3D%20%22menu%22%3B%0Athis.%20orient%20%3D%20%22horizontal%22%3B%0A%20%0Afunction%20startProcess%28path%2C%20args%29%20%7B%0A%20%20%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%20%7B%0A%20%20%20%20%20%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%20%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2C%20path%29%3B%20%0A%7D%3B%0A%20%0Athis.%20handleClick%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20var%20menuitem%20%3D%20event.%20target%3B%0A%20%20%20%20var%20value%20%3D%20menuitem.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20if%20%28event.%20button%20%3D%3D%200%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20var%20file%20%3D%20Cc%20%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%20getService%20%28Ci.%20nsIProperties%29%3B%0A%20%20%20%20%20%20%20%20file%20%3D%20file.%20get%20%28value%2C%20Ci.%20nsIFile%29.%20QueryInterface%20%28Ci.%20nsILocalFile%29%3B%0A%20%20%20%20%20%20%20%20startProcess%20%28fmPath%2C%20%5Bfile.%20path%5D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20this.%20open%20%3D%20false%3B%0A%7D%3B%0A%0Afunction%20e4xConv_parseXULFromString%28xul%29%20%7B%0A%09xul%20%3D%20xul.replace%28/%3E%5Cs+%3C/g%2C%20%22%3E%3C%22%29%3B%0A%09return%20new%20DOMParser%28%29.parseFromString%28xul%2C%20%22application/xml%22%29.documentElement%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Пиктограмма:

Выделить код

Код:

data:image/png;base64,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

Инициализация:

Выделить код

Код:

var fmPath = "/usr/bin/dolphin";

var menu = '<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\
              onclick="this. parentNode. handleClick (event);">\n\
        <menuitem label="Открыть папку текущего профиля"\n\
              value="ProfD"/>\n\
        <menuitem label="Открыть папку установки Firefox"\n\
              value="CurProcD"/>\n\
      </menupopup>';
this. appendChild (e4xConv_parseXULFromString (menu));
this. type = "menu";
this. orient = "horizontal";
 
function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("Файл не найден", path); 
};
 
this. handleClick = function (event)
{
    var menuitem = event. target;
    var value = menuitem. getAttribute ("value");
    if (event. button == 0)
    {
        var file = Cc ["@mozilla.org/file/directory_service;1"]. getService (Ci. nsIProperties);
        file = file. get (value, Ci. nsIFile). QueryInterface (Ci. nsILocalFile);
        startProcess (fmPath, [file. path]);
        }
    this. open = false;
};

function e4xConv_parseXULFromString(xul) {
    xul = xul.replace(/>\s+</g, "><");
    return new DOMParser().parseFromString(xul, "application/xml").documentElement;
}

Добавлено 18-05-2013 00:37:04
Вставка символа (Firefox 20)
Авторы: 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%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAA80lEQVRIie3TPyuFYRjH8c/COVkQFot4B2RS2BQ2g0F5DzbehBcgnTOcMpmUTSxSijLIaOAVUCd/Bo7huYR60nPux+b5bdf9u/p977v7uqj0b9WLoQJ9E6mABq4w8EvPMl6xkAKYwgPOsYSTqO+xi1U84xA9KQCYQRsdvOASt1F3AlpPDYexANxg/Nv5Gt5wUCYctmQ3ncvxmnjHYBnATgD6c7yN8CbLADYjZD7Ha/mDF4zKJuVa9h+fWo/w/TLhMIsnX1N04ecUnaIvNXwajzjDIo6jvsM2VgJ6hFoKYE+xTW7L9qVr1TFcoG8kJbxSpe70AT7wNojTKWYHAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20menu%20%3D%20%27%3Cmenupopup%20xmlns%3D%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%5Cn%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20oncommand%3D%22this.parentNode.handleMenuCommand%28event%29%22%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A4%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A6%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A7%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%A9%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AB%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%BB%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AC%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%AE%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B0%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B1%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B5%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%B6%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2014%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2018%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2019%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u201C%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u201D%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2022%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2030%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2039%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u203A%22/%3E%5Cn%5C%0A%20%20%20%20%3Ctoolbarbutton%20value%3D%22%u2122%22/%3E%5Cn%5C%0A%3C/menupopup%3E%27%3B%0A%0Amenu%20%3D%20e4xConv_parseXULFromString%20%28menu%29%3B%0Athis.%20appendChild%20%28menu%29%3B%0Athis.%20value%20%3D%20menu.%20firstChild.%20getAttribute%20%28%22value%22%29%3B%0A%0Athis.%20makePNG%20%3D%20function%20%28text%2C%20height%29%0A%7B%0A%20%20%20%20var%20h%20%3D%20height%3B%0A%20%20%20%20var%20cw%20%3D%2024%2C%20ch%20%3D%2024%3B%0A%20%20%20%20var%20canvas%20%3D%20%27%3Ccanvas%20xmlns%3D%22http%3A//www.w3.org/1999/xhtml%22%20width%3D%22%27%20+%20e4xConv_encodeHTML%28cw%2C%20true%29%20+%20%27%22%20height%3D%22%27%20+%20e4xConv_encodeHTML%28ch%2C%20true%29%20+%20%27%22%20style%3D%22display%3Anone%3B%22%3E%3C/canvas%3E%27%3B%0A%20%20%20%20cw%20-%3D%202%3B%0A%20%20%20%20ch%20-%3D%202%3B%0A%20%20%20%20canvas%20%3D%20e4xConv_parseXULFromString%20%28canvas%29%3B%0A%20%20%20%20this.%20appendChild%20%28canvas%29%3B%0A%20%20%20%20var%20ctxt%20%3D%20canvas.%20getContext%20%28%222d%22%29%3B%0A%20%20%20%20ctxt.%20clearRect%20%280%2C%200%2C%20cw%2C%20ch%29%3B%0A%20%20%20%20ctxt.%20font%20%3D%20h%20+%20%22pt%20times%20bold%22%0A%20%20%20%20var%20m%20%3D%20ctxt.%20measureText%20%28text%29%3B%0A%20%20%20%20m%20%3D%20%28cw%20-%20m.%20width%29%20/%202.0%3B%0A%20%20%20%20h%20%3D%20ch%20-%20%28ch%20-%20h%29%20/%202.0%3B%0A%20%20%20%20ctxt.%20fillText%20%28text%2C%20m%2C%20h%29%3B%0A%20%20%20%20var%20uri%20%3D%20canvas.%20toDataURL%20%28%22image/png%22%2C%20%22%22%29%3B%0A%20%20%20%20this.%20removeChild%20%28canvas%29%3B%0A%20%20%20%20return%20uri%3B%0A%7D%3B%0A%0Athis.%20image%20%3D%20this.%20makePNG%20%28this.%20value%2C%2016%29%3B%0A%0Avar%20mi%2C%20val%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20menu.%20childNodes.%20length%3B%20i++%29%0A%7B%0A%20%20%20%20mi%20%3D%20menu.%20childNodes%20%5Bi%5D%3B%0A%20%20%20%20val%20%3D%20mi.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20val%20%3D%20this.%20makePNG%20%28val%2C%2012%29%3B%0A%20%20%20%20mi.%20setAttribute%20%28%22image%22%2C%20val%29%3B%0A%7D%0A%0Athis.%20insertText%20%3D%20function%20%28text%29%0A%7B%0A%20%20%20%20var%20command%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20%20var%20controller%20%3D%20document.%20commandDispatcher.%20getControllerForCommand%20%28command%29%3B%0A%20%20%20%20if%20%28controller%20%26%26%20controller.%20isCommandEnabled%20%28command%29%29%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20controller%20%3D%20controller.%20QueryInterface%20%28Components.%20interfaces.%20nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.%20classes%20%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20createInstance%20%28Components.%20interfaces.%20nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.%20setStringValue%20%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20controller.%20doCommandWithParams%20%28command%2C%20params%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Athis.%20handleMenuCommand%20%3D%20function%20%28event%29%0A%7B%0A%20%20%20%20event.%20stopPropagation%20%28%29%3B%0A%20%20%20%20var%20mi%20%3D%20event.%20originalTarget%3B%0A%20%20%20%20var%20text%20%3D%20mi.%20getAttribute%20%28%22value%22%29%3B%0A%20%20%20%20this.%20image%20%3D%20this.%20makePNG%20%28text%2C%2016%29%3B%0A%20%20%20%20this.%20value%20%3D%20text%3B%0A%20%20%20%20this.%20insertText%20%28text%29%3B%0A%7D%3B%0A%0Athis.%20type%20%3D%20%22menu-button%22%3B%0A%0Afunction%20e4xConv_parseXULFromString%28xul%29%20%7B%0A%09xul%20%3D%20xul.replace%28/%3E%5Cs+%3C/g%2C%20%22%3E%3C%22%29%3B%0A%09return%20new%20DOMParser%28%29.parseFromString%28xul%2C%20%22application/xml%22%29.documentElement%3B%0A%7D%0Afunction%20e4xConv_encodeHTML%28s%2C%20isAttr%29%20%7B%0A%09s%20%3D%20String%28s%29%0A%09%09.replace%28/%26/g%2C%20%22%26amp%3B%22%29%0A%09%09.replace%28/%3C/g%2C%20%22%26lt%3B%22%29%0A%09%09.replace%28/%3E/g%2C%20%22%26gt%3B%22%29%0A%09%09.replace%28/%22/g%2C%20%22%26quot%3B%22%29%3B%0A%09if%28isAttr%29%20%7B%0A%09%09s%20%3D%20s%0A%09%09%09.replace%28/%5Ct/g%2C%20%22%26%23x9%3B%22%29%0A%09%09%09.replace%28/%5Cn/g%2C%20%22%26%23xA%3B%22%29%0A%09%09%09.replace%28/%5Cr/g%2C%20%22%26%23xD%3B%22%29%3B%0A%09%7D%0A%09return%20s%3B%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.%20insertText%20%28this.%20value%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

var menu = '<menupopup xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"\n\
              oncommand="this.parentNode.handleMenuCommand(event)">\n\
    <toolbarbutton value="¤"/>\n\
    <toolbarbutton value="¦"/>\n\
    <toolbarbutton value="§"/>\n\
    <toolbarbutton value="©"/>\n\
    <toolbarbutton value="«"/>\n\
    <toolbarbutton value="»"/>\n\
    <toolbarbutton value="¬"/>\n\
    <toolbarbutton value="®"/>\n\
    <toolbarbutton value="°"/>\n\
    <toolbarbutton value="±"/>\n\
    <toolbarbutton value="µ"/>\n\
    <toolbarbutton value="¶"/>\n\
    <toolbarbutton value="—"/>\n\
    <toolbarbutton value="‘"/>\n\
    <toolbarbutton value="’"/>\n\
    <toolbarbutton value="“"/>\n\
    <toolbarbutton value="”"/>\n\
    <toolbarbutton value="•"/>\n\
    <toolbarbutton value="‰"/>\n\
    <toolbarbutton value="‹"/>\n\
    <toolbarbutton value="›"/>\n\
    <toolbarbutton value="™"/>\n\
</menupopup>';

menu = e4xConv_parseXULFromString (menu);
this. appendChild (menu);
this. value = menu. firstChild. getAttribute ("value");

this. makePNG = function (text, height)
{
    var h = height;
    var cw = 24, ch = 24;
    var canvas = '<canvas xmlns="http://www.w3.org/1999/xhtml" width="' + e4xConv_encodeHTML(cw, true) + '" height="' + e4xConv_encodeHTML(ch, true) + '" style="display:none;"></canvas>';
    cw -= 2;
    ch -= 2;
    canvas = e4xConv_parseXULFromString (canvas);
    this. appendChild (canvas);
    var ctxt = canvas. getContext ("2d");
    ctxt. clearRect (0, 0, cw, ch);
    ctxt. font = h + "pt times bold"
    var m = ctxt. measureText (text);
    m = (cw - m. width) / 2.0;
    h = ch - (ch - h) / 2.0;
    ctxt. fillText (text, m, h);
    var uri = canvas. toDataURL ("image/png", "");
    this. removeChild (canvas);
    return uri;
};

this. image = this. makePNG (this. value, 16);

var mi, val;
for (var i = 0; i < menu. childNodes. length; i++)
{
    mi = menu. childNodes [i];
    val = mi. getAttribute ("value");
    val = this. makePNG (val, 12);
    mi. setAttribute ("image", val);
}

this. insertText = function (text)
{
    var command = "cmd_insertText";
    var controller = document. commandDispatcher. getControllerForCommand (command);
    if (controller && controller. isCommandEnabled (command))
    {
            controller = controller. QueryInterface (Components. interfaces. nsICommandController);
        var params = Components. classes ["@mozilla.org/embedcomp/command-params;1"].
                 createInstance (Components. interfaces. nsICommandParams);
        params. setStringValue ("state_data", text);
        controller. doCommandWithParams (command, params);
    }
};

this. handleMenuCommand = function (event)
{
    event. stopPropagation ();
    var mi = event. originalTarget;
    var text = mi. getAttribute ("value");
    this. image = this. makePNG (text, 16);
    this. value = text;
    this. insertText (text);
};

this. type = "menu-button";

function e4xConv_parseXULFromString(xul) {
    xul = xul.replace(/>\s+</g, "><");
    return new DOMParser().parseFromString(xul, "application/xml").documentElement;
}
function e4xConv_encodeHTML(s, isAttr) {
    s = String(s)
        .replace(/&/g, "&amp;")
        .replace(/</g, "&lt;")
        .replace(/>/g, "&gt;")
        .replace(/"/g, "&quot;");
    if(isAttr) {
        s = s
            .replace(/\t/g, "&#x9;")
            .replace(/\n/g, "&#xA;")
            .replace(/\r/g, "&#xD;");
    }
    return s;
}

Код:

Выделить код

Код:

this. insertText (this. value);

Отредактировано MySh (18-05-2013 00:37:04)

Отсутствует

 

№11602-06-2013 20:58:44

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 21.0

Re: Готовые кнопки для Custom Buttons

Quote+ - Копирует выделенный текст, с сохранением форматирования в bbcode и тегами {quote}, в форму ответа или буфер обмена.

Код кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EQuote+%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAC4jAAAuIwF4pT92AAAAcElEQVR4nL2TUQoAIQhE+/JC3v/fW7U7C0JaisGiMFDWPCahISIDemtWpZ7Pp2Zb+Z6IZgCogQBg5nlMkEVfEwSAHxPYdWcCPwefqn8G/QkqoA0AoRkJl9W4mg0AwsFJMCGFN2+ATHjm+omuAQrxvQe3Gn9JVU+LzAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20win%20%3D%20document.commandDispatcher.focusedWindow.top%20%3D%3D%20content%20%3F%20document.commandDispatcher.focusedWindow%20%3A%20content%2C%20doc%20%3D%20win.document%3B%0A%0Avar%20addText%20%3D%20function%20%28el%2C%20start%2C%20end%29%20%7B%0A%20%20%20%20if%20%28el.firstChild%29%20%7B%0A%20%20%20%20%20%20%20%20el.insertBefore%28doc.createTextNode%28start%29%2C%20el.firstChild%29%3B%0A%20%20%20%20%20%20%20%20el.appendChild%28doc.createTextNode%28end%29%29%3B%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20el.parentNode.insertBefore%28doc.createTextNode%28start%29%2C%20el%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Avar%20s%20%3D%20win.getSelection%28%29%3B%0Aif%20%28s%20%21%3D%20%27%27%29%20%7B%0A%20%20%20%20var%20rng%20%3D%20s.getRangeAt%280%29%2C%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0A%20%20%20%20sel.appendChild%28rng.cloneContents%28%29%29%3B%0A%20%20%20%20var%20ele%20%3D%20sel.getElementsByTagName%28%27*%27%29%3B%0A%20%20%20%20for%20%28var%20i%20%3D%200%2C%20e%3B%20e%20%3D%20ele%5Bi%5D%3B%20i++%29%20%7B%0A%20%20%20%20%20%20%20%20switch%20%28e.nodeName.toUpperCase%28%29%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27A%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Burl%3D%27%20+%20e.href%20+%20%27%5D%27%2C%20%27%5B/url%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27FONT%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.color%29%20addText%28e%2C%20%27%5Bcolor%3D%27%20+%20e.color%20+%20%27%5D%27%2C%20%27%5B/color%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27B%27%3A%0A%20%20%20%20%20%20%20%20case%20%27STRONG%27%3A%0A%20%20%20%20%20%20%20%20case%20%27H2%27%3A%0A%20%20%20%20%20%20%20%20case%20%27H3%27%3A%0A%20%20%20%20%20%20%20%20case%20%27H4%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bb%5D%27%2C%20%27%5B/b%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27I%27%3A%0A%20%20%20%20%20%20%20%20case%20%27EM%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bi%5D%27%2C%20%27%5B/i%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27U%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bu%5D%27%2C%20%27%5B/u%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27PRE%27%3A%0A%20%20%20%20%20%20%20%20case%20%27CODE%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bcode%5D%27%2C%20%27%5B/code%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27BLOCKQUOTE%27%3A%0A%20%20%20%20%20%20%20%20case%20%27Q%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bquote%5D%27%2C%20%27%5B/quote%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27DIV%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28e.className%20%3D%3D%20%27code%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bcode%5D%27%2C%20%27%5B/code%5D%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28e.className%20%3D%3D%20%27quote%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bquote%5D%27%2C%20%27%5B/quote%5D%27%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27IMG%27%3A%0A%20%20%20%20%20%20%20%20%20%20%20%20e.removeAttribute%28%27alt%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20e.removeAttribute%28%27title%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20addText%28e%2C%20%27%5Bimg%5D%27%20+%20e.src%20+%20%27%5B/img%5D%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20var%20cnt%20%3D%20rng.commonAncestorContainer%3B%0A%20%20%20%20if%20%28cnt.nodeType%20%21%3D%201%29%20cnt%20%3D%20cnt.parentNode%3B%0A%20%20%20%20cnt.appendChild%28sel%29%3B%0A%20%20%20%20s.removeAllRanges%28%29%3B%0A%20%20%20%20rng%20%3D%20doc.createRange%28%29%3B%0A%20%20%20%20rng.selectNodeContents%28sel%29%3B%0A%20%20%20%20s.addRange%28rng%29%3B%0A%20%20%20%20var%20txt%20%3D%20s.toString%28%29%3B%0A%20%20%20%20s.removeAllRanges%28%29%3B%0A%20%20%20%20cnt.removeChild%28sel%29%3B%0A%0A%20%20%20%20var%20prequote%20%3D%20function%28v%2Cc%29%7Bvar%20n%3D%27%27%2Cu%3D%27%27%3Bif%28win.location.hostname%3D%3D%27forum.ru-board.com%27%29%7Bwhile%28c.className%21%3D%27tpc%27%26%26c.parentNode%29%7Bc%3Dc.parentNode%7D%3Bif%28c.className%21%3D%27tpc%27%29return%3Bvar%20tn%3Dc.parentNode.parentNode.childNodes%5B1%5D.childNodes%5B0%5D.childNodes%5B1%5D%3Bn%3D%27%5Bb%5D%27+c.parentNode.firstChild.getElementsByTagName%28%27b%27%29%5B0%5D.textContent+%27%5B/b%5D%20%27%3Bu%3D%27%5Burl%3D%27+tn.childNodes%5B5%5D.href+%27%5D%5Bcolor%3D%23007777%5D%5Bsize%3D1%5D%5Bu%5D%27+tn.childNodes%5B7%5D.textContent.replace%28/%5E%20+/%2C%27%27%29.replace%28/%20+%24/%2C%27%27%29+%27%5B/u%5D%5B/size%5D%5B/color%5D%5B/url%5D%20%27%7D%3Bif%28%28win.wrappedJSObject%7C%7Cwin%29.smf_theme_url%29%7Bwhile%28%28c.className%7C%7C%27%27%29.indexOf%28%27windowbg%27%29%3D%3D-1%26%26c.parentNode%29%7Bc%3Dc.parentNode%7D%3Bvar%20dv%3Dc.getElementsByTagName%28%27div%27%29%3Bfor%28var%20i%3D0%2Cdi%3Bdi%3Ddv%5Bi%5D%3Bi++%29%7Bif%28di.className%3D%3D%27post%27%29%7Bc%3Ddi%3Bbreak%7D%7D%3Bif%28c.className%21%3D%27post%27%29return%3Bn%3D%27%5Bb%5D%27+c.parentNode.parentNode.getElementsByTagName%28%27a%27%29%5B0%5D.textContent+%27%5B/b%5D%20%27%3Bu%3D%27%5Burl%3D%27+c.parentNode.getElementsByTagName%28%27a%27%29%5B0%5D.href+%27%5D%5Bsize%3D1%5D%5Bu%5D%5B%3F%5D%5B/u%5D%5B/size%5D%5B/url%5D%20%27%7D%3Bif%28v.indexOf%28n%29%21%3D-1%29n%3D%27%27%3Bif%28v.indexOf%28u%29%21%3D-1%29u%3D%27%27%3Breturn%20n+u%7D%3B%0A%0A%20%20%20%20var%20pre%2C%20t%2C%20ts%20%3D%20doc.getElementsByTagName%28%27textarea%27%29%3B%0A%20%20%20%20for%20%28var%20i%20%3D%20ts.length%3B%20i--%3B%29%20%7B%0A%20%20%20%20%20%20%20%20t%20%3D%20ts%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20if%20%28t.rows%20%3E%204%20%26%26%20t.offsetHeight%20%3E%200%29%20break%0A%20%20%20%20%7D%3B%0A%20%20%20%20if%20%28%21t%20%7C%7C%20t.offsetHeight%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20gClipboard.write%28txt%29%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20if%20%28t.rows%20%3C%2015%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20len%20%3D%20t.rows%20+%20txt.split%28%27%5Cn%27%29.length%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20t.rows%20%3D%20%28len%20%3C%3D%2015%29%20%3F%20len%20%3A%2015%0A%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pre%20%3D%20prequote%28t.value%2C%20cnt%29%20%7C%7C%20%27%27%0A%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20pre%20%3D%20%27%27%0A%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20%20%20%20%20%20var%20tEnd%20%3D%20t.selectionEnd%2C%20tLen%20%3D%20t.value.length%3B%0A%20%20%20%20%20%20%20%20t.value%20%3D%20t.value.substring%280%2C%20tEnd%29%20+%20pre%20+%20%27%5Bquote%5D%27%20+%20txt%20+%20%27%5B/quote%5D%5Cn%27%20+%20t.value.substring%28tEnd%2C%20tLen%29%3B%0A%20%20%20%20%20%20%20%20tEnd%20+%3D%20t.value.length%20-%20tLen%3B%0A%20%20%20%20%20%20%20%20t.setSelectionRange%28tEnd%2C%20tEnd%29%3B%0A%20%20%20%20%20%20%20%20t.focus%28%29%0A%20%20%20%20%7D%0A%7D%20else%20%7B%0A%09ujs_bbcode_tag%28%27%5Bquote%5D%27%29%3B%0A%7D%3B%0A%0Afunction%20ujs_bbcode_tag%28tag%29%7B%0A%09var%20ts%3Dwin.getSelection%28%29.toString%28%29%3B%0A%09var%20et%3Ddoc.activeElement%3B%0A%09var%20en%3Det%20%26%26%20et.nodeName.toLowerCase%28%29%3B%0A%09var%20ta%3D%28en%3D%3D%27textarea%27%20%7C%7C%20%28en%3D%3D%27input%27%20%26%26%20et.type%3D%3D%27text%27%29%29%20%3F%20et%20%3A%20null%3B%3B%0A%09if%28%21ta%29for%28var%20t%3Ddoc.getElementsByTagName%28%27textarea%27%29%2C%20i%3Dt.length%3B%20i--%3B%29%7Bta%3Dt%5Bi%5D%3B%20if%28ta.rows%3E4%20%26%26%20ta.offsetHeight%3E0%29break%7D%3B%0A%09if%28%21ta%20%7C%7C%20ta.offsetHeight%3D%3D0%29return%3B%0A%0A%09var%20s%2C%20e_tag%3B%0A%09var%20s_tag%3Dtag%3B%0A%09var%20nStart%3Dta.selectionStart%3B%0A%09var%20nEnd%3Dta.selectionEnd%3B%0A%09var%20txt%3Dta.value.substring%28nStart%2C%20nEnd%29%3B%0A%09var%20s_txt%3Dta.value.substring%280%2C%20nStart%29%3B%0A%09var%20e_txt%3Dta.value.substring%28nEnd%2C%20ta.value.length%29%3B%0A%0A%09var%20al%3Darguments.length%3B%0A%09if%28al%3D%3D0%29return%20ts%20%7C%7C%20txt%3B%0A%09if%28al%3D%3D1%20%26%26%20typeof%20arguments%5B0%5D%3D%3D%27function%27%29%7B%0A%09%09var%20sel%3D%7Btext%3A%20txt%2C%20start%3A%200%2C%20end%3A%20nEnd-nStart%7D%3B%0A%09%09arguments%5B0%5D%28sel%29%3B%0A%09%09ta.value%3Ds_txt+sel.text+e_txt%3B%0A%09%09var%20len%3Dta.value.length-s_txt.length-e_txt.length+1%3B%0A%09%09ta.setSelectionRange%28nStart+sel.start+%28sel.start%3C0%20%3F%20len%20%3A%200%29%2C%20nStart+sel.end+%28sel.end%3C0%20%3F%20len%20%3A%200%29%29%3B%0A%09%09ta.focus%28%29%3B%0A%09%09return%3B%0A%09%7D%3B%0A%09if%28al%3D%3D2%20%26%26%20arguments%5B1%5D%21%3D%27%27%29%7B%0A%09%09e_tag%3Darguments%5B1%5D%3B%0A%09%7D%0A%09else%7B%0A%09%09e_tag%3Dtag.replace%28/%28%5E.%29%28%5B%5E%3D%20%5D*%29%28.*%29%28.%24%29/%2C%20%27%241/%242%244%27%29%3B%0A%09%7D%3B%0A%0A%09var%20stl%3Ds_tag.length%3B%0A%09var%20etl%3De_tag.length%3B%0A%09var%20lt%3Dstl+etl%3B%0A%0A%09if%28txt.indexOf%28s_tag%29%3D%3D0%20%26%26%20txt.lastIndexOf%28e_tag%29%3D%3D%28txt.length-etl%29%29%7B%0A%09%09s%3Ds_txt+txt.slice%28stl%2C%20-etl%29+e_txt%3B%0A%09%09nEnd-%3Dlt%3B%0A%09%7D%0A%09else%7B%0A%09%09if%28nStart%3D%3DnEnd%20%26%26%20s_txt.lastIndexOf%28s_tag%29%3D%3Ds_txt.length-stl%20%26%26%20e_txt.indexOf%28e_tag%29%3D%3D0%29%7B%0A%09%09%09s%3Ds_txt.slice%280%2C%20-stl%29+e_txt.slice%28etl%29%3B%0A%09%09%09nStart-%3Dstl%3B%0A%09%09%09nEnd%3DnStart%3B%0A%09%09%7D%0A%09%09else%7B%0A%09%09%09if%28ts%20%26%26%20ta%21%3Det%29%7B%0A%09%09%09%09s%3Ds_txt+txt+s_tag+ts+e_tag+e_txt%3B%0A%09%09%09%09nStart%3DnEnd%3B%0A%09%09%09%09nEnd+%3Dts.length%3B%0A%09%09%09%09txt%3Dts%3B%0A%09%09%09%7D%0A%09%09%09else%7B%0A%09%09%09%09s%3Ds_txt+s_tag+txt+e_tag+e_txt%3B%0A%09%09%09%7D%3B%0A%0A%09%09%09if%28txt.length%3D%3D0%20%26%26%20s_tag%21%3D%27%27%29%7B%0A%09%09%09%09nStart+%3Dstl%3B%0A%09%09%09%09nEnd%3DnStart%3B%0A%09%09%09%7D%0A%09%09%09else%7B%0A%09%09%09%09if%28s_tag.slice%28-4%2C%20-1%29%3D%3D%27%3D%22%22%27%20%7C%7C%20s_tag.slice%28-2%2C%20-1%29%3D%3D%27%3D%27%20%26%26%20s_tag.slice%28-1%29%21%3D%27%22%27%29%7B%0A%09%09%09%09%09nStart%3DnStart+stl-%28s_tag.slice%28-3%2C%20-1%29%3D%3D%27%22%22%27%20%3F%202%20%3A%201%29%3B%0A%09%09%09%09%09nEnd%3DnStart%3B%0A%09%09%09%09%7D%0A%09%09%09%09else%7B%0A%09%09%09%09%09nEnd+%3Dlt%3B%0A%09%09%09%09%09if%28s_tag%3D%3D%27%27%20%7C%7C%20s_tag.slice%28-1%29%3D%3D%27%22%27%20%7C%7C%20%28al%3D%3D2%20%26%26%20arguments%5B1%5D%3D%3D%27%27%29%29nStart%3DnEnd%3B%0A%09%09%09%09%7D%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%3B%0A%0A%09ta.value%3Ds%3B%0A%09ta.setSelectionRange%28nStart%2C%20nEnd%29%3B%0A%09ta.focus%28%29%3B%0A%7D%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано Lex1 (09-07-2013 11:01:43)

Отсутствует

 

№11722-06-2013 23:53:51

wolwerine
╒╤╬╧╣╠═╝
 
Группа: Members
Зарегистрирован: 15-04-2009
Сообщений: 159
UA: Firefox 23.0

Re: Готовые кнопки для Custom Buttons

Добавить закладку на Desktop (Firefox). Создаёт пункт в контекстном меню страницы/ссылки для добавления закладки в расширение Desktop (Рабочий стол).

скрытый текст
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u043D%u0430%20Desktop%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%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%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u043D%u0430%20Desktop%22%20%u0432%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u043C%20%u043C%u0435%u043D%u044E%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%2C%20%u043E%u0442%2022.06.2013.%0A%28function%20%28%29%20%7B%20%0A%0A%20%20%20const%20alertsService%20%3D%20Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%3B%0A%20%20%20var%20icon1%3D%22data%3Aimage/png%3Bbase64%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%3D%3D%22%3B%0A%0A%20%20%20var%20menuitem%20%3D%20document.createElement%28%22menuitem%22%29%3B%20%20%20%0A%20%20%20menuitem.setAttribute%28%22id%22%2C%20%22context-addBookmark%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22label%22%2C%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u043D%u0430%20%22%20+%20getFolderName%28%29%20%29%3B%20%20%0A%20%20%20menuitem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20%20menuitem.setAttribute%28%22image%22%2C%20icon1%29%3B%0A%0A%20%20%20const%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%20%0A%20%20%20contextMenu.appendChild%28%20menuitem%20%29%3B%20%0A%20%20%20addDestructor%28function%28%20reason%20%29%20%7B%20contextMenu.removeChild%28%20menuitem%29%20%7D%29%3B%0A%0A%20%20%20addEventListener%28%22click%22%2C%20function%28e%29%20%7B%20%20%20%20%20%0A%0A%20%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20gContextMenu.onLink%20%0A%20%20%20%20%20%20%20%20%20%20%20%3F%20addBookmark%28%20gContextMenu.getLinkURI%28%29%2C%20gContextMenu.linkText%28%29%2C%20gContextMenu.onLink%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%3A%20addBookmark%28%20gBrowser.selectedBrowser.webNavigation.currentURI%2C%20getDocTitle%28%29%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%0A%20%20%20%7D%2C%20false%2C%20menuitem%20%29%3B%0A%0A%20%20%20function%20getDocTitle%28%29%20%7B%0A%20%20%20%20%20%20var%20docTitle%20%3D%20content.document.title%20%7C%7C%20gBrowser.mCurrentTab.label%3B%20%20%20%20%20%20%20%0A%20%20%20%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u043B%u0438%u0448%u043D%u0438%u0435%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%20%u043F%u0440%u043E%u0431%u0435%u043B%u044B%20%0A%20%20%20%20%20%20var%20docTitle%20%3D%20docTitle.replace%28/%5B%3A.%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%22%20%22%29%0A%20%20%20%20%20%20var%20docTitle%20%3D%20docTitle.replace%28/%5Cs%5Cs+/g%2C%20%22%20%22%29%3B%0A%0A%20%20%20%20%20%20return%20docTitle.substring%280%2C%2050%29%3B%0A%20%20%20%7D%3B%0A%0A%20%20%20function%20getFolderName%28%29%20%7B%0A%20%20%20%20%20%20var%20folder%20%3D%20Application.prefs.getValue%28%22CB.bookmarkFolderForSaving%22%2C%200%29%3B%20%0A%20%20%20%20%20%20return%20%28%20folder%20%3D%3D%200%20%29%20%3F%20%22Desktop%22%20%3A%20folder%3B%0A%20%20%20%7D%3B%0A%0A%20%20%20function%20getChildFolder%28%20parentId%2C%20title%20%29%20%7B%0A%20%20%20%20%20%20var%20res%20%3D%20null%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20hs%20%3D%20Cc%20%5B%22@mozilla.org/browser/nav-history-service%3B1%22%5D.getService%28Ci.nsINavHistoryService%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20options%20%3D%20hs.getNewQueryOptions%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20options.excludeItems%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20var%20query%20%3D%20hs.getNewQuery%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20query.setFolders%28%20%5BparentId%5D%2C%201%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20result%20%3D%20hs.executeQuery%28%20query%2C%20options%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20rn%20%3D%20result.root%3B%0A%20%20%20%20%20%20%20%20%20%20rn.containerOpen%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20var%20i%2C%20node%3B%0A%20%20%20%20%20%20%20%20%20%20for%20%28%20i%20%3D%200%3B%20i%20%3C%20rn.childCount%3B%20i++%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20node%20%3D%20rn.getChild%28i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20node.title%20%3D%3D%20title%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20res%20%3D%20node.itemId%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20rn.containerOpen%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20catch%28e%29%20%7B%7D%0A%0A%20%20%20return%20res%3B%0A%20%20%20%7D%3B%20%0A%0A%20%20%20function%20addBookmark%28%20url%2C%20label%2C%20link%20%29%20%7B%0A%20%20%20%20%20%20var%20bmsvc%20%3D%20Components.classes%20%5B%22@mozilla.org/browser/nav-bookmarks-service%3B1%22%5D.getService%28Components.interfaces.nsINavBookmarksService%29%3B%0A%20%20%20%20%20%20var%20rootFolder%20%3D%20bmsvc.bookmarksMenuFolder%3B%0A%20%20%20%20%20%20var%20folderName%20%3D%20getFolderName%28%29%3B%0A%20%20%20%20%20%20var%20folder%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20if%20%28%20%21folder%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20bmsvc.createFolder%28%20rootFolder%2C%20folderName%2C%20bmsvc.DEFAULT_INDEX%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20folder%20%3D%20getChildFolder%28%20rootFolder%2C%20folderName%20%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%0A%20%20%20%20%20%20bmsvc.insertBookmark%28%20folder%2C%20url%2C%20bmsvc.DEFAULT_INDEX%2C%20label%20%29%3B%0A%20%20%20%0A%20%20%20%20%20%20var%20image%20%3D%20%21link%20%26%26%20gBrowser.mCurrentTab.image%20%3F%20gBrowser.mCurrentTab.image%20%3A%20%22chrome%3A//global/skin/icons/information-16.png%22%3B%0A%20%20%20%20%20%20alertsService.showAlertNotification%28%20image%2C%20label%2C%20%27%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0437%u0430%u043A%u043B%u0430%u0434%u043A%u0443%20%u043D%u0430%20%27%20+%20folderName%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%7D%3B%0A%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

// "Добавить закладку на Desktop" в контекстном меню на странице, от 22.06.2013.
(function () { 

   const alertsService = Components.classes["@mozilla.org/alerts-service;1"].getService(Components.interfaces.nsIAlertsService);
   var icon1="data:image/png;base64,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";

   var menuitem = document.createElement("menuitem");   
   menuitem.setAttribute("id", "context-addBookmark");
   menuitem.setAttribute("label", "Добавить закладку на " + getFolderName() );  
   menuitem.setAttribute("class", "menuitem-iconic");
   menuitem.setAttribute("image", icon1);

   const contextMenu = document.getElementById("contentAreaContextMenu"); 
   contextMenu.appendChild( menuitem ); 
   addDestructor(function( reason ) { contextMenu.removeChild( menuitem) });

   addEventListener("click", function(e) {     

      if ( e.button == 0 ) {
           gContextMenu.onLink 
           ? addBookmark( gContextMenu.getLinkURI(), gContextMenu.linkText(), gContextMenu.onLink )
           : addBookmark( gBrowser.selectedBrowser.webNavigation.currentURI, getDocTitle() );
           }   
   }, false, menuitem );

   function getDocTitle() {
      var docTitle = content.document.title || gBrowser.mCurrentTab.label;       
      // удалить лишние символы и пробелы 
      var docTitle = docTitle.replace(/[:.\\\/<>?*|"]+/g, " ")
      var docTitle = docTitle.replace(/\s\s+/g, " ");

      return docTitle.substring(0, 50);
   };

   function getFolderName() {
      var folder = Application.prefs.getValue("CB.bookmarkFolderForSaving", 0); 
      return ( folder == 0 ) ? "Desktop" : folder;
   };

   function getChildFolder( parentId, title ) {
      var res = null;
      try {
          var hs = Cc ["@mozilla.org/browser/nav-history-service;1"].getService(Ci.nsINavHistoryService);
          var options = hs.getNewQueryOptions();
          options.excludeItems = true;
          var query = hs.getNewQuery();
          query.setFolders( [parentId], 1 );
          var result = hs.executeQuery( query, options );
          var rn = result.root;
          rn.containerOpen = true;
          var i, node;
          for ( i = 0; i < rn.childCount; i++ ) {
                var node = rn.getChild(i);
                if ( node.title == title ) {
                     res = node.itemId;
                     break;
                     }
                }
          rn.containerOpen = false;
          } 
   catch(e) {}

   return res;
   }; 

   function addBookmark( url, label, link ) {
      var bmsvc = Components.classes ["@mozilla.org/browser/nav-bookmarks-service;1"].getService(Components.interfaces.nsINavBookmarksService);
      var rootFolder = bmsvc.bookmarksMenuFolder;
      var folderName = getFolderName();
      var folder = getChildFolder( rootFolder, folderName );
      if ( !folder ) {
           bmsvc.createFolder( rootFolder, folderName, bmsvc.DEFAULT_INDEX );
           folder = getChildFolder( rootFolder, folderName );
           }  
      bmsvc.insertBookmark( folder, url, bmsvc.DEFAULT_INDEX, label );
   
      var image = !link && gBrowser.mCurrentTab.image ? gBrowser.mCurrentTab.image : "chrome://global/skin/icons/information-16.png";
      alertsService.showAlertNotification( image, label, 'Добавил закладку на ' + folderName, false, "", null, "");
   };

})();


Мод кнопки "Добавить закладку в папку" в контекстном меню на странице by bunda1.

Отсутствует

 

№11824-06-2013 21:10:29

Indomito
Участник
 
Группа: Members
Откуда: Москва-Север
Зарегистрирован: 27-08-2009
Сообщений: 426
UA: Firefox 21.0

Re: Готовые кнопки для Custom Buttons

Clipboard(Firefox 53 - идёт ремонт)
Сканирование и запоминание буфера обмена по стандартным действиям, выделить и нажать - Ctrl+C or Ctrl+X or Shift+Ins или мышкой через контекстное меню.
Основные настоечные переменные:

Выделить код

Код:

this.MAX_ENTRIES = 16;    //Максимальное число записей 16 (размер буфера)
this.CHECK_INTERVAL = 1000;    //Время опроса буфера 1000 миллисекунд

Массив описан как

Выделить код

Код:

// Блок инициализации глоб. переменных и функций
// срок существования - один сеанс браузера

для вставки BBCode - не нужное можно убрать, только аккуратно.
Всё комментировано - промахнуться сложно.

скрытый текст
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EClipboard%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHvSURBVDjLjZI/aFNRFMZ/Ly+GlCYlaMF/1D+4FQRJREigk7OiIAguHSwUkrkgLhVcpIurQjdBcLAITi4FETpIAw46CGIHJ0tFamlt3rvnfA7Ji2kTwQOXe4b7/c73HW4kCYCnc+engU8M1/b88kaFf1T05O65KvAAuFY6epw79xfZ3XoPwPjkFZ4t3uP37i+A58DK/PLGy0FAHli5euPmmbFSmfTrByRhnV0AJDFzcYrcyQtIuvXm1evrwBDg7FhpgmRnk+CBjRePQQLEltoIsb/5jeLk6QJQOBwhD4AbCoFc5QRuAckP5tzfI9neG7mDPIDc8RDwtIOnnZ6D/6seIOCW9ie7Ij7+mGDfYlB3F4oKfD8yTavVWnJ3zAwz+9wDGB5SsICbkYQc8dgkt+cekiTJ4aELkojjOG02m0t9ACFF5ig4bsLN6XQ6rK2toYFIWV+v1wkh8NeBOR4cD4ZbhJkBUK1WDwizXtIgwPHUUHAUDLcc3hO02+2+eBBSr9cxsy6gO70L8CwChqSRDrLqO8CEp97bgSGL8CgAsL6+PiSURKPR6Dt4lybJzPipKeRC7uRTiH+WkUStVhsSZ3cGePR2dbUMXMoeGXl2KpcpFotEUTTyA8VxjJkRjco2OzubM7MFMzvW+zD94+6D58sfRXpka4kRkDcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++%0A//%20%u0411%u043B%u043E%u043A%20%u0438%u043D%u0438%u0446%u0438%u0430%u043B%u0438%u0437%u0430%u0446%u0438%u0438%20%u0433%u043B%u043E%u0431.%20%u043F%u0435%u0440%u0435%u043C%u0435%u043D%u043D%u044B%u0445%20%u0438%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%0A//%20%u0441%u0440%u043E%u043A%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u043E%u0432%u0430%u043D%u0438%u044F%20-%20%u043E%u0434%u0438%u043D%20%u0441%u0435%u0430%u043D%u0441%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%0A//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++%0A//%0AbbBBCodeStat%3Dtrue%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0440%u0430%u0437%u0440%u0435%u0448%u0438%u0442%u044C/%u0432%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20BBCode%0Awindow.arycb_BBCodeClipboardStrings%20%3D%20this.clipboardStrings%20%3D%20%5B%5D%3B%20%20%20//%20%u041C%u0430%u0441%u0441%u0438%u0432%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%0A//%0A//********************************************************%0A//--------%u041E%u0431%u0449%u0438%u0435%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20%u0434%u043B%u044F%20%u0432%u0441%u0442%u0430%u0432%u043A%u0438%20BBCode----------------%0A//*********************************************************%0A%0A//++++++++++++++++++BEGIN%20DEF++++++++++++++++++++++++++++++%0A//--------------------------------------------------------%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20lb_BBCodePrim%20%0A//%20%5BbbCode%5D%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%5B/bbCode%5D%0A//%20%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u043E%u0442%20%u041B%u041A%u041C%29%0Alb_BBCodePrim%20%3D%20function%20%28open%2Cclose%29%7B%0Avar%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0Avar%20startPos%20%3D%20theBox.selectionStart%3B%0Avar%20endPos%20%3D%20theBox.selectionEnd%3B%0Avar%20oPosition%20%3D%20theBox.scrollTop%3B%0Avar%20oHeight%20%3D%20theBox.scrollHeight%3B%0Avar%20text%3DtheBox.value.substring%280%2CstartPos%29%3B%0Atext%20+%3Dopen+theBox.value.substring%28startPos%2C%20endPos%29+close%3B%0Atext%20+%3DtheBox.value.substring%28endPos%2C%20theBox.value.length%29%3B%0AtheBox.value%20%3D%20text%3B%0Avar%20nHeight%20%3D%20theBox.scrollHeight%20-%20oHeight%3B%0AtheBox.scrollTop%20%3D%20oPosition%20+%20nHeight%3B%0A%7D%3B%0A%0A//---------------------------------------------------------%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20mb_BBCodePrim%20%0A//%20%u0420%u0435%u0437%u0435%u0440%u0432%0A//%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u043E%u0442%20C%u041A%u041C%0Amb_BBCodePrim%20%3D%20function%20%28open%2Cclose%29%20%7B%7D%3B%0A%0A//%20-------------------------------------------------------%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20rb_BBCodePrim%20%0A//%20%5BbbCode%5D%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%20PASTE%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%5B/bbCode%5D%0A//%20%u043F%u043E%20%u0443%u043C%u043E%u043B%u0447%u0430%u043D%u0438%u044E%20%u043E%u0442%20%u041F%u041A%u041C%0Arb_BBCodePrim%20%3D%20function%20%28open%2Cclose%2Cpaste%29%7B%0Aif%20%28paste%20%3D%3D%20undefined%29%20%20%7B%20open%20+%3Dclose%3B%7D%20//%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%20%u043F%u0443%u0441%u0442%0A%20%20%20else%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7B%20open%20+%3Dpaste+close%3B%7D%0A%20%20%20%0Avar%20theBox%20%3D%20document.commandDispatcher.focusedElement%3B%0Avar%20startPos%20%3D%20theBox.selectionStart%3B%0Avar%20endPos%20%3D%20theBox.selectionEnd%3B%0Avar%20selectionLen%20%3D%20endPos%20-%20startPos%0Avar%20oPosition%20%3D%20theBox.scrollTop%3B%0Avar%20oHeight%20%3D%20theBox.scrollHeight%3B%0Avar%20text%3DtheBox.value.substring%280%2CstartPos%29%3B%20%0Avar%20nHeight%20%3D%20theBox.scrollHeight%20-%20oHeight%3B%0Atext%20+%3Dopen%3B%0Atext%20+%3DtheBox.value.substring%28endPos%2C%20theBox.value.length%29%3B%0AtheBox.value%20%3D%20text%3B%20%0AtheBox.selectionStart%20%3D%20endPos%20+%20open.length%3B%0AtheBox.selectionEnd%20%3D%20endPos%20+%20open.length%20-%20selectionLen%3B%0AtheBox.scrollTop%20%3D%20oPosition%20+%20nHeight%3B%0A%7D%3B%0A%0A//%20-------------------------------------------------------%0A//%20%u0424%u0443%u043D%u043A%u0446%u0438%u044F%20fHLD_Get_ListClipboardPrim%20%0A//%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0441%u043F%u0438%u0441%u043E%u043A%20%u0441%u043E%u0445%u0440%u0430%u043D%u0451%u043D%u043E%u0433%u043E%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A//%0AfnHLD_Get_ListClipboardPrim%20%3D%20function%20%28%29%7B%0Avar%20cs%20%3D%20arycb_BBCodeClipboardStrings%3B%20%0Areturn%20%28cs.slice%280%29%29%3B%20%0A%7D%3B%20%0A%0A%0A//++++++++++++++++++END%20DEF+++++++++++++++++++++++++++++++++++%0A%0A//%u0421%u043F%u0438%u0441%u043E%u043A%20%u0441%u043E%u0445%u0440%u0430%u043D%u0451%u043D%u043E%u0433%u043E%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A//%u041D%u0435%20%u0432%u044B%u0437%u044B%u0432%u0430%u0435%u043C%20%u044D%u0442%u043E%2C%20%u043E%u0431%u0440%u0430%u0431%u043E%u0442%u043A%u0430%20%u043F%u043E%20%u0442%u0430%u0439%u043C%u0435%u0440%u0443%20%u0438%u043B%u0438%20%u043F%u043E%20%u0441%u043E%u0431%u044B%u0442%u0438%u044E%20%u041B%u041A%u041C%0A//-----%u041E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%u0438%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%0Athis.MAX_ENTRIES%20%3D%2016%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%u041C%u0430%u043A%u0441%u0438%u043C%u0430%u043B%u044C%u043D%u043E%u0435%20%u0447%u0438%u0441%u043B%u043E%20%u0437%u0430%u043F%u0438%u0441%u0435%u0439%2016%0Athis.CHECK_INTERVAL%20%3D%201000%3B%20%20%20%20%20%20//%u0412%u0440%u0435%u043C%u044F%20%u043E%u043F%u0440%u043E%u0441%u0430%20%u0431%u0443%u0444%u0435%u0440%u0430%201000%20%u043C%u0438%u043B%u043B%u0438%u0441%u0435%u043A%u0443%u043D%u0434%0Athis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0Athis._menupopup%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Athis._menupopup.setAttribute%28%22oncommand%22%2C%20%22this.parentNode.handleCommand%28event.target%29%3B%22%29%3B%0A%0A%0A%0Athis.checkClipboard%20%3D%20function%28%29%20%7B%0A%20%20%20%20var%20clipStr%20%3D%20readFromClipboard%28%29%3B%0A%20%20%20%20if%28clipStr%20%26%26%20this.clipboardStrings.indexOf%28clipStr%29%20%3D%3D%20-1%29%0A%20%20%20%20%20%20%20%20this.storeString%28clipStr%29%3B%0A%7D%3B%0A%0A%0Athis.storeString%20%3D%20function%28str%29%20%7B%0A%20%20%20%20var%20cs%20%3D%20this.clipboardStrings%3B%0A%20%20%20%20cs.push%28str%29%3B%0A%20%20%20%20while%28cs.length%20%3E%20this.MAX_ENTRIES%29%0A%20%20%20%20%20%20%20%20cs.shift%28%29%3B%20%0A%0A%20%20%20%20var%20mi%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20mi.setAttribute%28%22label%22%2C%20str%29%3B%0A%20%20%20%0A%20%20%20%20%0A%20%20%20%20this._menupopup.appendChild%28mi%29%3B%0A%20%20%20%20while%28this._menupopup.childNodes.length%20%3E%20this.MAX_ENTRIES%29%0A%20%20%20%20%20%20%20%20this._menupopup.removeChild%28this._menupopup.firstChild%29%3B%0A%7D%3B%0A%0A%0Athis.handleCommand%20%3D%20function%28mi%29%20%7B%0A%20%20%20%20var%20indx%20%3D%20Array.indexOf%28mi.parentNode.childNodes%2C%20mi%29%3B%0A%20%20%20%20if%28indx%20%21%3D%20-1%29%0A%20%20%20%20%20%20%20%20this.insertText%28this.clipboardStrings%5Bindx%5D%29%3B%0A%7D%3B%0A%0Athis.insertText%20%3D%20function%28str%29%20%7B%0A%20%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20%20if%28controller%20%26%26%20controller.isCommandEnabled%28cmd%29%29%20%7B%0A%20%20%20%20%20%20%20%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20str%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0AsetInterval%28function%28button%29%20%7B%0A%20%20%20%20button.checkClipboard%28%29%3B%0A%7D%2C%20this.CHECK_INTERVAL%2C%20this%29%3B%0A%0Athis.setAttribute%28%22onpopupshowing%22%2C%20%22this.checkClipboard%28%29%3B%22%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Код:

Инициализация:

Выделить код

Код:

/*Initialization Code*/
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Блок инициализации глоб. переменных и функций
// срок существования - один сеанс браузера
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//
bbBBCodeStat=true                                                   // разрешить/включить BBCode
window.arycb_BBCodeClipboardStrings = this.clipboardStrings = [];   // Массив буфера обмена

//
//********************************************************
//--------Общие функции для вставки BBCode----------------
//*********************************************************

//++++++++++++++++++BEGIN DEF++++++++++++++++++++++++++++++
//--------------------------------------------------------
// Функция lb_BBCodePrim 
// [bbCode]выделенный[/bbCode]
//  по умолчанию от ЛКМ)
lb_BBCodePrim = function (open,close){
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos);
text +=open+theBox.value.substring(startPos, endPos)+close;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text;
var nHeight = theBox.scrollHeight - oHeight;
theBox.scrollTop = oPosition + nHeight;
};

//---------------------------------------------------------
// Функция mb_BBCodePrim 
// Резерв
// по умолчанию от CКМ
mb_BBCodePrim = function (open,close) {};

// -------------------------------------------------------
// Функция rb_BBCodePrim 
// [bbCode]параметр PASTE по умолчанию из буфер обмена[/bbCode]
// по умолчанию от ПКМ
rb_BBCodePrim = function (open,close,paste){
if (paste == undefined)  { open +=close;} //буфер обмена пуст
   else                 { open +=paste+close;}
   
var theBox = document.commandDispatcher.focusedElement;
var startPos = theBox.selectionStart;
var endPos = theBox.selectionEnd;
var selectionLen = endPos - startPos
var oPosition = theBox.scrollTop;
var oHeight = theBox.scrollHeight;
var text=theBox.value.substring(0,startPos); 
var nHeight = theBox.scrollHeight - oHeight;
text +=open;
text +=theBox.value.substring(endPos, theBox.value.length);
theBox.value = text; 
theBox.selectionStart = endPos + open.length;
theBox.selectionEnd = endPos + open.length - selectionLen;
theBox.scrollTop = oPosition + nHeight;
};

// -------------------------------------------------------
// Функция fHLD_Get_ListClipboardPrim 
// получить список сохранёного буфера обмена
//
fnHLD_Get_ListClipboardPrim = function (){
var cs = arycb_BBCodeClipboardStrings; 
return (cs.slice(0)); 
}; 


//++++++++++++++++++END DEF+++++++++++++++++++++++++++++++++++

//Список сохранёного буфера обмена
//Не вызываем это, обработка по таймеру или по событию ЛКМ
//-----Обработчики буфера обмена

this.MAX_ENTRIES = 16;               //Максимальное число записей 16
this.CHECK_INTERVAL = 1000;      //Время опроса буфера 1000 миллисекунд
this.type = "menu";
this.orient = "horizontal";
this._menupopup = this.appendChild(document.createElement("menupopup"));
this._menupopup.setAttribute("oncommand", "this.parentNode.handleCommand(event.target);");



this.checkClipboard = function() {
    var clipStr = readFromClipboard();
    if(clipStr && this.clipboardStrings.indexOf(clipStr) == -1)
        this.storeString(clipStr);
};


this.storeString = function(str) {
    var cs = this.clipboardStrings;
    cs.push(str);
    while(cs.length > this.MAX_ENTRIES)
        cs.shift(); 

    var mi = document.createElement("menuitem");
    mi.setAttribute("label", str);
   
    
    this._menupopup.appendChild(mi);
    while(this._menupopup.childNodes.length > this.MAX_ENTRIES)
        this._menupopup.removeChild(this._menupopup.firstChild);
};


this.handleCommand = function(mi) {
    var indx = Array.indexOf(mi.parentNode.childNodes, mi);
    if(indx != -1)
        this.insertText(this.clipboardStrings[indx]);
};

this.insertText = function(str) {
    var cmd = "cmd_insertText";
    var controller = document.commandDispatcher.getControllerForCommand(cmd);
    if(controller && controller.isCommandEnabled(cmd)) {
        controller = controller.QueryInterface(Components.interfaces.nsICommandController);
        var params = Components.classes["@mozilla.org/embedcomp/command-params;1"]
            .createInstance(Components.interfaces.nsICommandParams);
        params.setStringValue("state_data", str);
        controller.doCommandWithParams(cmd, params);
    }
};

setInterval(function(button) {
    button.checkClipboard();
}, this.CHECK_INTERVAL, this);

this.setAttribute("onpopupshowing", "this.checkClipboard();");


Пример  скрипта для тега [ b][ /b] на базе использования Clipboard
скрытый текст
Инициализация:

Выделить код

Код:

/*Initialization Code*/

function lbMouse(){
var open="[b]", close="[/b]";
lb_BBCodePrim (open,close);
};

function rbMouse(){
var open="[b]", close="[/b]";
var cm = fnHLD_Get_ListClipboardPrim (), cs = cm.reverse();
if (cs.length==0) cs.unshift("Буфер обмена пуст!");
var selected = {};

var x = custombuttons. selectBox ("Текст из буфера обмена", "Выберите ТЕКСТ:", cs, selected);
  if (x [0]) rb_BBCodePrim (open,close,cs [x [1]. value]);
};

//----------------------------------------
this.onclick = function(event) {
    if(event.button == 0) {
// Действие при клике ЛКМ
lbMouse();
    }
    else if(event.button == 1) {
        // Действие при клике СКМ
    }
    else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Действие при клике ПКМ без модификаторов
        rbMouse();
    }
};
this.oncontextmenu = function(event) {
    if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Блокируем контекстное меню при клике ПКМ без модификаторов
        event.preventDefault();
        event.stopPropagation();
    }
};

Отредактировано Indomito (17-05-2017 23:46:08)


"Никогда не выявляйте в программе ошибки, если не знаете, что с ними дальше делать." Штейнбах

Отсутствует

 

№11914-08-2013 22:08:34

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Block Site Button 2( Firefox ) от 13.02.2016. для дополнения BlockSite :: Дополнения Firefox
Кнопка добавляет текущую страницу в список BlockSite. Можно добавлять ссылку или текстовую ссылку перетаскиванием на кнопку в список BlockSite. Кнопка меняет иконку на зелёную если в BlockSite включен белый список.

ЛКМ => Добавить текущую страницу в список BlockSite.

Код кнопки и инициализации:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EBlock%20Site%20Button%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAAGHRFWHRTb2Z0d2FyZQBQYWludC5ORVQgdjMuMzap5+IlAAACu0lEQVQ4T21Ta0hTYRg+23GbOm+TdFZejrk5L6hked3QJkIr9YdYQRA2QrcpZqbRn6SICEN/RBT9EIJWoNSPLiKUIizDa1OPHqeZIGhBRqKzpsVZ1tPZEYdzO/D+ON/3Ps/zPe9FQOz5egOj9U7h1vl/gj/HAsESTuFfYklMEKxw6x13br76DY/3Yvj/YUkC1e8fR9vOVmGj8xl+FxbBLpRgjZTgl4DEF7EAHeEE7kQRNBeUB8m4KJEaizxsX3/+Gmut9zEWfQQjKjXGj5+BVXcKlpRsDAbIsEKKwATwJHYPElqkoje7e7FyrQW0shA3CAKcgkdY8ovQJ5WBO9whoflX2MgU/deaZqzfbAOjPOYFdBFNGi9hOK8Qm0ISPUEhnC1yx46emCFTLM5HZtjkWT6VGWMDRnO1YA1G9EXsx1tNAfqlUnCFdVmxEPMx3GVdA2yKIi91m+EyxnKKeHC/Kg1WUx2f8zQslLdyV87ZXDyQCwensFBR60EwW92IidxiOGtqMZCYjnHTRfd9T2kJlv22bRCLwalwhB/EfPE5d8JcdRMm83RgG5swnJQJ2ljvQd5TdhKrpHCb4COpAisQYVqh5ZPmq65gOr8EbPN1DMWmYoor4N6OPJGF8Ba4GoBgyGSLQyjFnCQOTFYpZtRlYG/dxgiVgWlDgxfY1eJBWSiWAsjtIk75Jek/SSj8lMdhVqUBq78Aa0w6ZgyNPlv66lA8HFx0yEUuAj0/C1axkv4emwxotZjYlwRrjs6ncleCEguZmWCSKX6k3eM8KlZQA/7x9uWjGjjKT4NJU4NbKozqKjB0ohwvgyPwIU+DjcpKMAVZ3qPsYnrvT1F9gdH0iCIdKwYT0N6O1ZY2/HjwEDCb8bnehI6MGN/LtHuzuoOi9C9CIiydYTK8UeegqyAb9yJFaI0SWNyedwH+A+D1pJXWZfRiAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20Block%20Site%20Button%20%u043E%u0442%2013.02.2016.%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Athis._handleClick%20%3D%28%29%3D%3E%20%7B%20BlockSite.AddPage%28window.content.location.href%29%3B%20showTooltip%28%29%3B%20%7D%3B%0A%0A%0A//%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0432%20%u0441%u043F%u0438%u0441%u043E%u043A%20BlockSite%20%u043F%u0440%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0438%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20..........%0Athis.ondrop%20%3De%3D%3E%20%7B%0A%20%20%20%20var%20url%20%3D%20e.dataTransfer.mozGetDataAt%28%22text/x-moz-url-data%22%2C%200%29%3B%0A%20%20%20%20if%20%28%20%21url%20%29%20%7B%0A%09%20var%20text%20%3D%20e.dataTransfer.mozGetDataAt%28%22text/plain%22%2C%200%29.trim%28%29%3B%0A%09%20%20%0A%20%20%20%20%20%20%20%20%20if%20%28%20/%5E%28%3F%3Ahttps%3F%29%3A/i.test%28text%29%20%29%20%7B%20try%20%7B%20url%20%3D%20makeURI%28text%29%20%7D%20catch%20%28e%29%20%7B%7D%20%7D%0A%20%20%20%20%20%20%20%20%20else%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%5E%28%3F%3A%5Ba-z%5Cd-%5D+%5C.%29+%5Ba-z%5D+%24/i.test%28text%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20uriFixup%20%3D%20Cc%5B%22@mozilla.org/docshell/urifixup%3B1%22%5D.getService%28Ci.nsIURIFixup%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20url%20%3D%20uriFixup.createFixupURI%28text%2C%20uriFixup.FIXUP_FLAG_NONE%29%20%7D%20catch%20%28e%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20if%20%28%20url%20%26%26%20url.host%20%29%20url%20%3D%20url.spec%3B%0A%09%20%7D%0A%20%20%20%20url%20%3D%20url%20%26%26%20url.substring%280%2C%204%29%20%3D%3D%20%22http%22%20%3F%20url%20%3A%20null%3B%0A%0A%20%20%20%20BlockSite.AddPage%28%20url%20%29%3B%20%0A%20%20%20%20showTooltip%28%29%3B%20%20%20%0A%7D%3B%0Athis.ondragover%20%3De%3D%3E%20%7B%20e.preventDefault%28%29%20%7D%3B%0A%0A%0A//%20%u041F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0443%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0434%u043E%u0431%u0430%u0432%u043B%u0435%u043D%u0438%u0438%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u0432%20%u0441%u043F%u0438%u0441%u043E%u043A%20BlockSite%20..........%20%20%20%20%20%20%20%20%0Afunction%20showTooltip%28%29%20%7B%0A%20%20%20var%20tooltip%20%3D%20self.lastChild%3B%0A%20%20%20if%20%28%20%21tooltip%20%29%20%7B%0A%20%20%20%20%20%20%20%20tooltip%20%3D%20self.appendChild%28document.createElement%28%22tooltip%22%29%29%3B%0A%20%20%20%20%20%20%20%20tooltip.style.cssText%20%3D%20%22font-weight%3A%20bold%20%21important%3B%20color%3A%20red%20%21important%3B%20font-size%3A%2014px%20%21important%3B%22%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20self.tooltipText%20%3D%20%22%22%20%20%20%20%20%0A%20%20%20tooltip.label%20%3D%20%22%u0414%u043E%u0431%u0430%u0432%u0438%u043B%20%u0432%20%22%20+%20%28custombuttons.getPrefs%28%22extensions.BlockSite.listtype%22%29%5B0%5D%20%3D%3D%20%22b%22%20%3F%20%22%u0447%u0451%u0440%u043D%22%20%3A%20%22%u0431%u0435%u043B%22%29%20+%20%22%u044B%u0439%20%u0441%u043F%u0438%u0441%u043E%u043A%22%3B%0A%20%20%20tooltip.showPopup%28%20self%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22topleft%22%2C%20%22topright%22%29%3B%0A%20%20%20self.onmouseleave%20%3D%28%29%3D%3E%20%7B%20tooltip.hidePopup%28%20self.onmouseleave%20%3D%20null%20%29%3B%20self.tooltipText%20%3D%20self.label%20%7D%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20BlockSite%20..........%0Avar%20s%20%3D%20%22extensions.BlockSite.listtype%22%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20icon.src%20%3D%20custombuttons.getPrefs%28s%29%5B0%5D%20%3D%3D%20%22b%22%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLQYYA6uFb8QpxH/O7c3/z6yNv8WkQX/GIoBvxiIAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwiAgCrwczyTILv9m62j/mv+a/4fti/+U8Zb/of+h/27iaP8vph3/GIgAzxiIACAAAAAAAAAAAAAAAAAGySQgCMQh7zTnPP9R81X/LdI7/wq6HP9IyVP/ScZR/w2vFf85yjz/XvRe/z7SNf8YiADvGIgAIAAAAAAAAAAABsslzx7qKf9B/0H/FM4o/zfLSP8AAAD/AAAA/wAAAP8AAAD/AH8A/yOyJf8y3TL/KdIg/xiIAM8AAAAABNEoYAfZIP8X8h//J9Y8/2D5Yv8dyy7/ZtVy/wAAAP8AAAD/AAAA/wAAAP8AAAD/IrAh/yLzIf8XpgX/GIgAYAPSKb8C8wv/B9gf/zXSTP871U3/g/mF/yDIL/9m03D/AAAA/wAAAP8AAAD/AAAA/wB/AP8RxQ//CeED/xiIAL8D1yf/AfkF/yTTQf8AAAD/ZNp0/zrTS/98+X7/HsYr/2fRb/8AAAD/AAAA/wAAAP8AAAD/EaIO/wD/AP8YiAD/DeAr/xLzG/9E2lz/AAAA/wAAAP9l2HP/OdBI/3L5c/8oxzL/Z89u/wAAAP8AAAD/AAAA/025Sv8D7QL/EqYA/xrgOP8480H/U91q/wAAAP8AAAD/AAAA/2XWcv84zkT/afpq/ybELv9ozW3/AAAA/wAAAP9MuUv/BOcD/xKmAP8d2kH/bPlw/yTUQv8AAAD/AAAA/wAAAP8AAAD/ZtRx/zfMQv9m+Wf/J8Et/2jLbP8AAAD/EKMP/wD/AP8XjwD/A9Uqv536of8X1DX/AH8A/wAAAP8AAAD/AAAA/wAAAP9n0nD/OMlB/2b5Z/8VvBn/PLg+/wvBC/8G4QD/GIgAvwPUKmBp5nz/gfCL/yXSQP8AAAD/AAAA/wAAAP8AAAD/AAAA/2fQb/85xz//AvUD/wy5Dv8D7gP/EqYA/xiIAGAAAAAABc8nz7T1uv9764f/Jc8//wB/AP8AAAD/AAAA/wAAAP8AAAD/Or9C/wu8Ef8A/wD/CdIA/xiIAM8AAAAAAAAAAAXNJiAWzDHvqvCx/4ruk/8czDP/J8g7/0fNVv9Iy1T/Kr82/wnFEf8D6wX/CdIA/xiIAO8YiAAgAAAAAAAAAAAAAAAAB8cjIAjBH89Z1GT/p/Sp/z/3Qv8C7wf/A+4H/wH2A/8G4wH/EqYA/xiIAM8YiAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrocYAy0GL8NshP/DLwM/w62Cf8Ulwn/FpAFvxiKAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%22%3B%20%20%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

// Block Site Button от 13.02.2016.

// Настройка функций кликов мыши для кнопки ..........
this._handleClick =()=> { BlockSite.AddPage(window.content.location.href); showTooltip(); };


// Добавить адрес ссылки в список BlockSite при перетаскивании ссылки на кнопку ..........
this.ondrop =e=> {
    var url = e.dataTransfer.mozGetDataAt("text/x-moz-url-data", 0);
    if ( !url ) {
     var text = e.dataTransfer.mozGetDataAt("text/plain", 0).trim();
      
         if ( /^(?:https?):/i.test(text) ) { try { url = makeURI(text) } catch (e) {} }
         else 
              if ( /^(?:[a-z\d-]+\.)+[a-z]+$/i.test(text) ) {
                   var uriFixup = Cc["@mozilla.org/docshell/urifixup;1"].getService(Ci.nsIURIFixup);
                   try { url = uriFixup.createFixupURI(text, uriFixup.FIXUP_FLAG_NONE) } catch (e) {}
                   }
         if ( url && url.host ) url = url.spec;
     }
    url = url && url.substring(0, 4) == "http" ? url : null;

    BlockSite.AddPage( url ); 
    showTooltip();   
};
this.ondragover =e=> { e.preventDefault() };


// Показать подсказку у кнопки при добавлении адреса в список BlockSite ..........        
function showTooltip() {
   var tooltip = self.lastChild;
   if ( !tooltip ) {
        tooltip = self.appendChild(document.createElement("tooltip"));
        tooltip.style.cssText = "font-weight: bold !important; color: red !important; font-size: 14px !important;";
        }
   self.tooltipText = ""     
   tooltip.label = "Добавил в " + (custombuttons.getPrefs("extensions.BlockSite.listtype")[0] == "b" ? "чёрн" : "бел") + "ый список";
   tooltip.showPopup( self, -1, -1, "popup", "topleft", "topright");
   self.onmouseleave =()=> { tooltip.hidePopup( self.onmouseleave = null ); self.tooltipText = self.label };
};


// Установить нужную иконку кнопки при старте браузера или при изменениях настроек BlockSite ..........
var s = "extensions.BlockSite.listtype";
function toggleImage() {
   var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon");
   icon.src = custombuttons.getPrefs(s)[0] == "b"
   ? self.image
   : "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLQYYA6uFb8QpxH/O7c3/z6yNv8WkQX/GIoBvxiIAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwiAgCrwczyTILv9m62j/mv+a/4fti/+U8Zb/of+h/27iaP8vph3/GIgAzxiIACAAAAAAAAAAAAAAAAAGySQgCMQh7zTnPP9R81X/LdI7/wq6HP9IyVP/ScZR/w2vFf85yjz/XvRe/z7SNf8YiADvGIgAIAAAAAAAAAAABsslzx7qKf9B/0H/FM4o/zfLSP8AAAD/AAAA/wAAAP8AAAD/AH8A/yOyJf8y3TL/KdIg/xiIAM8AAAAABNEoYAfZIP8X8h//J9Y8/2D5Yv8dyy7/ZtVy/wAAAP8AAAD/AAAA/wAAAP8AAAD/IrAh/yLzIf8XpgX/GIgAYAPSKb8C8wv/B9gf/zXSTP871U3/g/mF/yDIL/9m03D/AAAA/wAAAP8AAAD/AAAA/wB/AP8RxQ//CeED/xiIAL8D1yf/AfkF/yTTQf8AAAD/ZNp0/zrTS/98+X7/HsYr/2fRb/8AAAD/AAAA/wAAAP8AAAD/EaIO/wD/AP8YiAD/DeAr/xLzG/9E2lz/AAAA/wAAAP9l2HP/OdBI/3L5c/8oxzL/Z89u/wAAAP8AAAD/AAAA/025Sv8D7QL/EqYA/xrgOP8480H/U91q/wAAAP8AAAD/AAAA/2XWcv84zkT/afpq/ybELv9ozW3/AAAA/wAAAP9MuUv/BOcD/xKmAP8d2kH/bPlw/yTUQv8AAAD/AAAA/wAAAP8AAAD/ZtRx/zfMQv9m+Wf/J8Et/2jLbP8AAAD/EKMP/wD/AP8XjwD/A9Uqv536of8X1DX/AH8A/wAAAP8AAAD/AAAA/wAAAP9n0nD/OMlB/2b5Z/8VvBn/PLg+/wvBC/8G4QD/GIgAvwPUKmBp5nz/gfCL/yXSQP8AAAD/AAAA/wAAAP8AAAD/AAAA/2fQb/85xz//AvUD/wy5Dv8D7gP/EqYA/xiIAGAAAAAABc8nz7T1uv9764f/Jc8//wB/AP8AAAD/AAAA/wAAAP8AAAD/Or9C/wu8Ef8A/wD/CdIA/xiIAM8AAAAAAAAAAAXNJiAWzDHvqvCx/4ruk/8czDP/J8g7/0fNVv9Iy1T/Kr82/wnFEf8D6wX/CdIA/xiIAO8YiAAgAAAAAAAAAAAAAAAAB8cjIAjBH89Z1GT/p/Sp/z/3Qv8C7wf/A+4H/wH2A/8G4wH/EqYA/xiIAM8YiAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrocYAy0GL8NshP/DLwM/w62Cf8Ulwn/FpAFvxiKAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==";  
};
toggleImage();
gPrefService.addObserver(s, toggleImage, false);
addDestructor(()=> gPrefService.removeObserver(s, toggleImage) );


Большое спасибо Dumby за помощь с кнопкой.

Отредактировано bunda1 (07-03-2014 19:41:44)

Отсутствует

 

№12021-08-2013 21:26:56

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Создать кнопку ярлык для сайта( Firefox17+ ) от 11.01.2015.
Создаёт рядом с собой новую кнопку ярлык для текущего сайта которая будет открывать сайт в новой активной вкладке. Если у страницы нет значка веб-сайта можно создавать кнопки ярлыки с иконкой по умолчанию, которую легко заменить в начале кода в вкладке Код.

ЛКМ => Создать кнопку ярлык для текущего сайта.

Код кнопки и вкладки Код:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u044F%u0440%u043B%u044B%u043A%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u0430%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAAvIhAAMSQSASYZBgBWRTU7hndqdEo3JCccDwAAKx8OASofDQEdDwAATDkmKoZ3anRSQzI3JhkHADEkEgEvIhAAMSQSAicbCQBVRTU5xefw96Hx//+63ujvl4uAjT4rGBpALRocmY+Ekbrf6vCh8f//xeTs81FAMDMoHAkAMSQSAjIlFAQgEwAAgXNlcJbu//9p1Pn6cN7+/pPx///C2uHqwdzi65Hx//9x3f7+aNT5+prv//98bV5oIBQBADIlFAQxJRMDIhYEAGxZSFCj7P//WNP8/WzX/P5c0vr8Vdf+/1TX//9c0vr8bNf8/ljT/P6l6v//Z1NCSSMXBQAxJBMDMCMRAigdCwBRPCgqq+Hy+UXQ//9X0vz+SND9/4DZ+P6C0O3+R836/1bT/f5G0f//rd/u9kw3JCUpHgwAMCMRAjEkEgIrIQ8ANB8LE7nW3ehB0v//N8r7/n/f//+MrHD/g6Fb/4HQ8f81x/j9R9b//7nR1+MvHAcOLSIQADAjEQIuIhAAIxQBAaaZjpub6f//Ncn8/XDV+f+NtG7/Mn0A/y59AP+KrmL/fczu/yPD+v2W6f//pZSHlSATAAAvIxEBJxgFAqSbkp+k9f//WtP7/VnV//+n3+b/XI8M/4u7b/+bxIP/MoUA/4y2YP90yOP/HML5/Zvy//+nl4uZJBcEAIuCdoK19v//etr6+4Te/f9s2P3/adr//6zg3/9n1fL/a9z//5zGe/8/jQD/r8yd/0rP//4awff7ne///4t8b3qmp6Kun/L//5fj/PyF3v39d9n7+27X/P5e1///Rc77/yXG/P9m2Pz/p9Gv/lnM6/sbw/79F8D7/F/i//+tpZunVUc3PcPU2OK67f7/s/H//p7x//913f3+c9n8/2rY/v9e1P3/Pcr8/1DX//515///len//qjo/v/B0dTfUUMyNycaCAA2JRISWEUzN2tcTVSOfG58vODo73Xe//952/3+atf9/ljW//++3uPtlHtrenFeTFNcRTI2NiQRECcaCAAxJBIBLSEPACYaCAAkGQcDEgQAAJSKf4yf8f//htz6+2/W+vuT7f//koV4hRADAAAjGQcDJRoIAC0hDwExJBIBLyIQAC8iEAExJBICMyYUBSwhDwBDMB4iwOPp8Yfj//964f//vt/l7UAsGh0tIhAAMiYUBTAkEgIvIhABLyIQAC8iEAAvIhAALyIQAC8iEAAyJRQDIhQBAId9cn+/9P//wPP//4J3a3giFQIAMiUUAy8iEAAvIhAALyIQAC8iEAAvIhAALyIQAC8iEAAvIhAALyIQADAjEQAoGwgDZVNDS2NRQUgnGggCMCMRAC8iEAAvIhAALyIQAC8iEAAvIhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u044F%u0440%u043B%u044B%u043A%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u0430%2C%20%u043E%u0442%2011.01.2015.%0A%0A%0A//%20%u0418%u043A%u043E%u043D%u043A%u0430%20%u0434%u043B%u044F%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u044F%u0440%u043B%u044B%u043A%u0430%20%u0431%u0435%u0437%20%u0437%u043D%u0430%u0447%u043A%u0430%20%u0432%u0435%u0431-%u0441%u0430%u0439%u0442%u0430%20.................%0Avar%20defaultFavicon%20%3D%20%22chrome%3A//custombuttons/skin/stdicons/gbutton.png%22%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0441%u0430%u0439%u0442%u0430%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%u0441%u043E%u0437%u0434%u0430%u043D%u0438%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u044F%u0440%u043B%u044B%u043A%u0430%20.................%0APlacesUtils.favicons.getFaviconDataForPage%28%0A%20%20%20%20%20%20gBrowser.currentURI%2C%0A%20%20%20%20%20%20function%28%20uri%2C%20len%2C%20arr%2C%20mmt%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20if%20%28%20%21len%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20createButton%28defaultFavicon%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20//%20%u0441%u043E%u0437%u0434%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u044F%u0440%u043B%u044B%u043A%20%u0441%20%u0437%u043D%u0430%u0447%u043A%u043E%u043C%20%u0432%u0435%u0431-%u0441%u0430%u0439%u0442%u0430%28%20%u0432%20base64%20%29%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20var%20base64%20%3D%20%22data%3A%22%20+%20mmt%20+%20%22%3Bbase64%2C%22%20+%20btoa%28String.fromCharCode.apply%28null%2C%20arr%29%29%3B%0A%20%20%20%20%20%20%20%20%20createButton%28base64%29%3B%0A%20%20%20%20%20%20%7D%20%20%20%0A%29%3B%0A%0A%0A%0A//%20%u0414%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0434%u043B%u044F%20%u043D%u043E%u0432%u044B%u0439%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%u043A%u043E%u043D%u043A%u0443%2C%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0438%20%u043A%u043E%u0434%20.................%0Afunction%20createButton%28favicon%29%20%7B%20%20%0A%20%20%20custombuttons.cloneButton%28self%29%3B%0A%20%20%20%0A%20%20%20var%20newButtonLink%20%3D%20custombuttons.makeButtonLink%28%22update%22%2C%20self.nextSibling.id%20%7C%7C%20_id%29%3B%0A%20%20%20var%20params%20%3D%20custombuttons.cbService.getButtonParameters%28newButtonLink%29.wrappedJSObject%3B%0A%20%20%20%0A%20%20%20params.image%20%3D%20favicon%3B%0A%20%20%20params.name%20%3D%20%28content.document.title%29.substring%280%2C%2075%29%3B%0A%20%20%20params.code%20%3D%20%22gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%27%22%20+%20content.location%20+%20%22%27%29%3B%22%3B%0A%20%20%20%0A%20%20%20params.wrappedJSObject%20%3D%20params%3B%0A%20%20%20custombuttons.cbService.installButton%28params%29%3B%0A%7D%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

вкладка Код:

Выделить код

Код:

// Создать кнопку ярлык для сайта, от 11.01.2015.


// Иконка для создания кнопки ярлыка без значка веб-сайта .................
var defaultFavicon = "chrome://custombuttons/skin/stdicons/gbutton.png";


// Получить иконку сайта и запустить создание кнопки ярлыка .................
PlacesUtils.favicons.getFaviconDataForPage(
      gBrowser.currentURI,
      function( uri, len, arr, mmt ) {
         if ( !len ) {
              createButton(defaultFavicon);
              return;
              }        
             
         // создать кнопку ярлык с значком веб-сайта( в base64 )     
         var base64 = "data:" + mmt + ";base64," + btoa(String.fromCharCode.apply(null, arr));
         createButton(base64);
      }   
);



// Дублировать кнопку и установить для новый кнопки иконку, название и код .................
function createButton(favicon) {  
   custombuttons.cloneButton(self);
   
   var newButtonLink = custombuttons.makeButtonLink("update", self.nextSibling.id || _id);
   var params = custombuttons.cbService.getButtonParameters(newButtonLink).wrappedJSObject;
   
   params.image = favicon;
   params.name = (content.document.title).substring(0, 75);
   params.code = "gBrowser.selectedTab = gBrowser.addTab('" + content.location + "');";
   
   params.wrappedJSObject = params;
   custombuttons.cbService.installButton(params);
};

Отредактировано bunda1 (15-09-2013 01:33:37)

Отсутствует

 

№12130-08-2013 23:27:49

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Переключить JavaScript( Firefox17+ ) от 12.06.2016.
Выключает или включает JavaScript для браузера и обновляет текущую страницу, изменения вступают в силу в новых страницах или после обновления уже открытых страниц. После переключения JavaScript соответственно меняется иконка кнопки.

ЛКМ => Выключить или включить JavaScript.

Код кнопки и инициализации:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20JavaScript%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAACQWzEUkFsxhJBbMaOQWzG2kFsxyZBbMdqQWzHrkFsx+pVhOf+aaUH/o3RP/62CX/+QWzHZkFsxNP///wD///8AlF8zaLiQbf/WuqP/38az/+fUw//u39P/9eri//v07//9+vb///79//vr3//77+b/wZ2A/5RfM2////8A////AJlkNonHpIX////////////////////////+/P/++/f//vfx//728f/krob/+ujb/86vlf+ZZDaL////AP///wCeaTlXnmk59rSFWf/ZpXv/2J5v/9ebav/YlmP/1pJd/9SPWf/Tjlf/4p1p//rj0f/Yu6L/nmk5nv///wD///8ApG88FKRvPKvVroz//fDl//fHov/3z63/+dW1//javf/43sL/+uHG//rkzP/99ez/4s66/6RvPLP///8A////AP///wCqdUAot4ZW//7+/f/63sL/+ty///nbwP/528D/+d3B//rbwP/63MP//eve/+zczf+qdUDK////AP///wD///8AsXtDHrmGUv/+/Pn/+dy///jbv//43MD/+dvC//ncwf/53cL/+t3D//vn1P/17eL/sXtD5P///wD///8A////ALeCRwm5hUv//vv3//ncwf/43L//+Ny///jbwP/53cD/+d3A//ndw//74sv//Pn1/7eCR/u3gkcB////AP///wD///8AvYhL+fz28P/538f/+dy9//rcv//628H/+t3D//rdwv/53cT/++DJ///8+v/BjVP/vYhLD////wD///8A////AMSOTtr159j/+uXS//navP/527z/+tu///rdwf/63cH/+d3E//vhyP///fv/yJRX/8SOThL///8A////AP///wDKlFK78NnB//vt4f/52sD/+dzC//nexf/64Mf/+uLK//rizf/65dD///79/8uPWv/KlFLxypRSRf///wD///8A0JpVpO3Qsv//9vD/+uHK//vjzP/749D/++bT//vp1f/86dj//Orb/////f/SnXH/7tnB/9CaVeX///8A////ANWfWJLryqX///37//3p1f/969j//erb//3t3//98OL//fHk//zw5P//////4KBw///7+f/fuIf/////AP///wDapFuE68aa///////87+L//fDn//3x6//99e7//fjx//369////Pr///////779//02sD/2qRb6v///wD///8A3qhdberAjP///////////////////////fn0//vz6v/469n/+ObT//Xfxv/py6b/3qhd7d6oXV3///8A////AOKsXzbirF/G6ryB/+i3d//msm3/5LBo/+KsX/DirF/j4qxfz+KsX8zirF+74qxfqOKsX0virF8FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20BrowserReload%28cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%20%29%3B%0A%20%20%0Avar%20s%20%3D%20%27javascript.enabled%27%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20document.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20cbu.getPrefs%28s%29%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQUAABUhAAAVKMAAFS2AABUyQAAVNoAAFTrAABU+gAAWv8AAGL/AABu/wAAfP8AAFTZAABUNP///wD///8AAABXaAAAif8AALb/AADD/wAA0P8AAN3/AADo/wAA8/8AAPn/AAD9/wAA6f8AAO3/AACY/wAAV2////8A////AAAAXIkAAJ7/AAD//wAA//8AAP//AAD//wAA/f8AAPr/AAD1/wAA9f8AAKf/AADm/wAAqv8AAFyL////AP///wAAAGBXAABg9gAAfP8AAJ7/AACW/wAAkv8AAI3/AACJ/wAAhv8AAIX/AACU/wAA4P8AALb/AABgnv///wD///8AAABlFAAAZasAAKj/AADu/wAAwf8AAMn/AADP/wAA1P8AANj/AADb/wAA3/8AAPP/AADK/wAAZbP///8A////AP///wAAAGooAAB8/wAA/f8AANj/AADW/wAA1v8AANb/AADX/wAA1v8AANf/AADp/wAA2f8AAGrK////AP///wD///8AAABwHgAAfP8AAPv/AADW/wAA1f8AANb/AADW/wAA1/8AANf/AADY/wAA4/8AAOr/AABw5P///wD///8A////AAAAdgkAAHn/AAD6/wAA1/8AANb/AADW/wAA1v8AANf/AADX/wAA2P8AAN3/AAD4/wAAdvsAAHYB////AP///wD///8AAAB7+QAA9P8AANr/AADV/wAA1v8AANb/AADY/wAA2P8AANj/AADc/wAA+/8AAIH/AAB7D////wD///8A////AAAAgNoAAOT/AADh/wAA1P8AANX/AADW/wAA1/8AANf/AADY/wAA3P8AAPz/AACH/wAAgBL///8A////AP///wAAAIa7AADU/wAA6v8AANX/AADX/wAA2f8AANv/AADd/wAA3v8AAOH/AAD9/wAAhf8AAIbxAACGRf///wD///8AAACLpAAAyv8AAPX/AADc/wAA3v8AAN//AADi/wAA5P8AAOX/AADn/wAA/v8AAJX/AADU/wAAi+X///8A////AAAAj5IAAML/AAD8/wAA5f8AAOf/AADn/wAA6v8AAO3/AADu/wAA7f8AAP//AACY/wAA+v8AAK3/////AP///wAAAJSEAAC8/wAA//8AAOz/AADu/wAA8P8AAPP/AAD2/wAA+f8AAPv/AAD//wAA+v8AANX/AACU6v///wD///8AAACXbQAAtf8AAP//AAD//wAA//8AAP//AAD3/wAA8f8AAOf/AADi/wAA2f8AAMP/AACX7QAAl13///8A////AAAAmjYAAJrGAACv/wAAqf8AAKP/AACg/wAAmvAAAJrjAACazwAAmswAAJq7AACaqAAAmksAAJoFAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQYABrEHAAaxBwAGsQcAArEHAAKxBwACsQcAArEHAAKxBwACsQQ%3D%3D%22%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

this._handleClick =()=> BrowserReload(cbu.setPrefs(s, !cbu.getPrefs(s)) );
  
var s = 'javascript.enabled';
function toggleImage() {
   document.getAnonymousNodes(self)[0].src = cbu.getPrefs(s)
   ? self.image
   : "data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFQUAABUhAAAVKMAAFS2AABUyQAAVNoAAFTrAABU+gAAWv8AAGL/AABu/wAAfP8AAFTZAABUNP///wD///8AAABXaAAAif8AALb/AADD/wAA0P8AAN3/AADo/wAA8/8AAPn/AAD9/wAA6f8AAO3/AACY/wAAV2////8A////AAAAXIkAAJ7/AAD//wAA//8AAP//AAD//wAA/f8AAPr/AAD1/wAA9f8AAKf/AADm/wAAqv8AAFyL////AP///wAAAGBXAABg9gAAfP8AAJ7/AACW/wAAkv8AAI3/AACJ/wAAhv8AAIX/AACU/wAA4P8AALb/AABgnv///wD///8AAABlFAAAZasAAKj/AADu/wAAwf8AAMn/AADP/wAA1P8AANj/AADb/wAA3/8AAPP/AADK/wAAZbP///8A////AP///wAAAGooAAB8/wAA/f8AANj/AADW/wAA1v8AANb/AADX/wAA1v8AANf/AADp/wAA2f8AAGrK////AP///wD///8AAABwHgAAfP8AAPv/AADW/wAA1f8AANb/AADW/wAA1/8AANf/AADY/wAA4/8AAOr/AABw5P///wD///8A////AAAAdgkAAHn/AAD6/wAA1/8AANb/AADW/wAA1v8AANf/AADX/wAA2P8AAN3/AAD4/wAAdvsAAHYB////AP///wD///8AAAB7+QAA9P8AANr/AADV/wAA1v8AANb/AADY/wAA2P8AANj/AADc/wAA+/8AAIH/AAB7D////wD///8A////AAAAgNoAAOT/AADh/wAA1P8AANX/AADW/wAA1/8AANf/AADY/wAA3P8AAPz/AACH/wAAgBL///8A////AP///wAAAIa7AADU/wAA6v8AANX/AADX/wAA2f8AANv/AADd/wAA3v8AAOH/AAD9/wAAhf8AAIbxAACGRf///wD///8AAACLpAAAyv8AAPX/AADc/wAA3v8AAN//AADi/wAA5P8AAOX/AADn/wAA/v8AAJX/AADU/wAAi+X///8A////AAAAj5IAAML/AAD8/wAA5f8AAOf/AADn/wAA6v8AAO3/AADu/wAA7f8AAP//AACY/wAA+v8AAK3/////AP///wAAAJSEAAC8/wAA//8AAOz/AADu/wAA8P8AAPP/AAD2/wAA+f8AAPv/AAD//wAA+v8AANX/AACU6v///wD///8AAACXbQAAtf8AAP//AAD//wAA//8AAP//AAD3/wAA8f8AAOf/AADi/wAA2f8AAMP/AACX7QAAl13///8A////AAAAmjYAAJrGAACv/wAAqf8AAKP/AACg/wAAmvAAAJrjAACazwAAmswAAJq7AACaqAAAmksAAJoFAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQYABrEHAAaxBwAGsQcAArEHAAKxBwACsQcAArEHAAKxBwACsQQ==";
};
toggleImage();
gPrefService.addObserver(s, toggleImage, false);
addDestructor(()=> gPrefService.removeObserver(s, toggleImage));

Отредактировано bunda1 (15-09-2013 01:35:25)

Отсутствует

 

№12202-09-2013 19:44:37

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Загружать изображения на страницах( Firefox17+ )  от 11.01.2015.
Выключает или включает показ изображений на страницах и обновляет текущую страницу, изменения вступают в силу в новых страницах или после обновления уже открытых страниц. После переключения кнопки соответственно меняется иконка кнопки.

ЛКМ => Выключить или включить показ изображений на страницах.

Код кнопки и инициализации:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0417%u0430%u0433%u0440%u0443%u0436%u0430%u0442%u044C%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0430%u0445%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAFo9M/3AAAACXBIWXMAAAsSAAALEgHS3X78AAAABGdBTUEAALGOfPtRkwAAACBjSFJNAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAACp0lEQVR42mL4//8/g3zm6f8AAcQAYvz4uuc/QACBeSAOQAAx/P75/X/ukY//AQIILHXhz///lZe//wfJAgQQWOBui9D/P78t/6ftffcfIIAYYKbA9AIEEIjDWnPtx3+YIEAAMXz7/P7/75+v/mcADQQJAAQQ0HTt/y9nqv73W/caLAAQQDAzWC8CbWq89et//fWf/5HNBAgguIJzIKdc+v6/7Py3/8Wnv/wvPPkZrAgggMAKfv+c8P/f+8r//x+mAZ03/X/g5nf/sw68BysACCCIH78p///zSeb/n4ci/39d4P+/4+f//0d//QcrAAggFH8gY5A4CAMEEFxB0+1f/xtu/vxfc+X7f5CDYYoAAgiuoP7Gz//VV378r7j4HdkkVoAAgisA6Sy/8O1/ydmvYB+c+g02hRUggBgaw6T+g4Iegq//B/Fzj376fwLiSFaAAAIr+HI17f//l4X//9+JAyvIPPjh/3GoAoAAAit4MEns/71Gof+f1hmCFaQCownqTVaAAAIr+PNb4f+fFxL//9wUACsAScIUAAQQA8y/IA7IsSAvgvAFKD4PxdjCCIQBAgjDgAvQSK0DRmrtNWDQXAUFzTewxjNAn5/8/R/FIIAAwjAAZFsdMEFVAcMUFPkgzaAEUAoKvlOfkYMQ7AWAAAJrBvmLEC4Aasw/DsTHPiG7ghUggOAG/PkFTCG/p/3//6P///+PLf//vwamrsc5///+WQc2IHLX+//Zhz/+zz4EjwKwAQABBDfg90/d/w+mSvx/DEztPy+G//9/K/r//6vBwBhoBhvgv/HN//T97/9n7Hv//xiSAQABhDDgl8b/B33C/++3C/6/38T//34d7//7Vdz//0Kjzm/dq/9pe979T939Fp6UQQYABBDRYSAZdghrkgcIMAD5xMj+kGsEXgAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20BrowserReload%28%20custombuttons.setPrefs%28s%2C%20custombuttons.getPrefs%28s%29%20%3D%3D%201%20%3F%202%20%3A%201%29%20%29%3B%0A%0Avar%20s%20%3D%20%27permissions.default.image%27%3B%0Afunction%20toggleImage%28%29%20%7B%20%0A%20%20%20var%20icon%20%3D%20self.ownerDocument.getAnonymousElementByAttribute%28self%2C%20%22class%22%2C%20%22toolbarbutton-icon%22%29%3B%0A%20%20%20icon.src%20%3D%20custombuttons.getPrefs%28s%29%20%3D%3D%201%20%20%0A%20%20%20%3F%20self.image%20%0A%20%20%20%3A%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC%27%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

this._handleClick =()=> BrowserReload( custombuttons.setPrefs(s, custombuttons.getPrefs(s) == 1 ? 2 : 1) );

var s = 'permissions.default.image';
function toggleImage() { 
   var icon = self.ownerDocument.getAnonymousElementByAttribute(self, "class", "toolbarbutton-icon");
   icon.src = custombuttons.getPrefs(s) == 1  
   ? self.image 
   : 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAA3NCSVQICAjb4U/gAAAAD1BMVEUfact50/fF+v/M//////8mt18DAAAABXRSTlP/////APu2DlMAAAAJcEhZcwAACvAAAArwAUKsNJgAAAAgdEVYdFNvZnR3YXJlAE1hY3JvbWVkaWEgRmlyZXdvcmtzIE1Yu5EqJAAAADhJREFUeJxjcHFgAAIXFwYXB2NjYwYWEMNQUJCZAcYwYIEwGBigDEFhDIYQ+QygpUZKIAbIGQwsANX+EGaBLn8yAAAAAElFTkSuQmCC';
};
toggleImage();
gPrefService.addObserver(s, toggleImage, false);
addDestructor(()=> gPrefService.removeObserver(s, toggleImage) );

Отсутствует

 

№12314-09-2013 23:41:39

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Виртуальная клавиатура на translit.ru( Firefox ) от 28.01.2016.
Открывает виртуальную клавиатуру на сайте translit.ru с текстом из буфера или выделенным текстом. Блокирует сообщение: Вы уверены, что хотите уйти с этой страницы? которое появляется на translit.ru если закрывать виртуальную клавиатуру с текстом.

ЛКМ => Открыть translit.ru,
СКМ => Открыть translit.ru с текстом из буфера или выделенным текстом.

Код кнопки и инициализации:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0412%u0438%u0440%u0442%u0443%u0430%u043B%u044C%u043D%u0430%u044F%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%20%u043D%u0430%20translit.ru%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAAAAAAAAAAAAAAAAAAAAAAAACAgIDAAAAAC0tLU5FRESrMzMykUFBQYlJSUmFT09Ph09PT4dKSkqFQUJCiTMzM5FGRUWrLS0tTgAAAAACAgIDAgICBAAAAAAkJCRMODg3llxcW8Z9e3v/V1ZW/TExMf8vLy//V1ZV/YKAf/9fXl3GOzs7liQkJEwAAAAAAgICBAAAAAAAAAAAAAAAAAAAAAAFBgcDCwsMAUNCQ7MYGBn/FBUW/0FAQbMMCwwBBgYHAwAAAAAAAAAAAAAAAAAAAAANDQwODQwGDg4NBxAQDgkTDgwHEwAAAABGRUGAOjcx/y4sJv9EQj+AAAAAAA0LBhMPDQgTDQsGEA0KBg4NDQwOWVtg8Tc/WfE9RWDxPERf8TxEX/I+R2LyNT5Z+hcgO/8UHTj/Nj5Z+mFrhPJmcInyZm+J8Wp1jvFKVm3xVVdd8TVBYf8AIM7/ASXh/wAk3P8AJN3/ACTd/wEl3f8GK+L/Byzj/wIn3v8ILeP/CS7l/wku5f8ILun/ACXS/zVBYv85RWb+ACDU/gEk5v4AI+H+ACPi/gAk4v4AIOT+ABji/wAY4P8AHOX+ABni/gAY3/4AGeD+ASHl/gAf0/46Rmj+OERl/wAdx/8BINf/AB/T/wEg0/8AG9f/HDTB/1RgpP9VYaj/PU2m/0lXp/9WYqf/TVql/wckzP8AHMr/OkVm/zhEZP8AHcD/ASDP/wAfy/8DIcv/ABTO/0xdvP/h3cr/4d7X/6Wmp//Fw73/4uDV/8zKw/8VL7//ABnD/ztGZf84RGT/AB27/wEgyf8AH8b/AyLG/wAVyf9LXcH/1dLP/9nc5P+iqLj/uLzF/9rb4P/JydP/FS+//wAZv/87RmX/OEVk/wAfv/8FIs3/BCHK/wUjyv8AFcj/Pk+1/7OxrP+/t7v/k4qc/6WaoP+8trv/qKu0/xEsu/8AG77/OkZl/zhFZf8ALcf/ATTW/wAx1P8LOMn/b3mg/4CHnf+FgY3/lmZx/6aDh/+qfoD/kmh4/4GGlf+CiKH/U2KX/zhEY/84RmX/AD/T/wJI5P8AROP/Ek7Q/9HR0//q7O3/zsPH/7mYnf/j7/T/3Nvf/72YnP/Z19z/8e/r/52kuv82QV7/Okhn/wBT5v8DYPn/AFv4/xZj5P+/v8H/1dXT/87Bwf+4lZb/y9XU/9bT1P++lpn/ysXF/+Th3f+ZoLf/OERh/zRCYP8AUNr/Al7u/wBa6/8LXd//fIyr/46asP+Di6n/iWWC/6GFkv+ngpD/hGiJ/4CQrP+Wn7P/XnWk/zI/Xv9cX2b/NEJg/zpIaP85R2b/OEdm/zdGZP84RmP/NkVj/zxCYP9CP1f/QT5V/zpCXv84RWH/OkVg/zI/W/9dXmb/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0412%u0438%u0440%u0442%u0443%u0430%u043B%u044C%u043D%u0430%u044F%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%20%u043D%u0430%20translit.ru%2C%20%u043E%u0442%2007.06.2014.%0A%0A%0A//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22http%3A//translit.ru/keyboard/%22%29%3B%20%20%20%20%0A%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%20%0A%20%20%20%20%20%20%20%20//%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0438%20%u0437%u0430%u043F%u043E%u043C%u043D%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20%20%20%20%20%20var%20clip%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20window.content.focus%28%29%3B%0A%20%20%20%20%20%20%20%20goDoCommand%28%22cmd_copy%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20var%20translit%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22http%3A//translit.ru/keyboard/%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22translit.ru%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u0432%u0441%u0442%u0430%u0432%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%20%0A%20%20%20%20%20%20%20%20translit.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28e.type%2C%20c%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20content.document.getElementsByTagName%28%22textarea%22%29%5B0%5D.value%20%3D%20gClipboard.read%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20clip%20%26%26%20gClipboard.write%28clip%29%3B%20//%20%u0432%u0435%u0440%u043D%u0443%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%20%0A%20%20%20%20%20%20%20%20%20%20%20%7D%2C%2050%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.tooltipText%20%3D%20%22%u0412%u0438%u0440%u0442%u0443%u0430%u043B%u044C%u043D%u0430%u044F%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%20%u043D%u0430%20translit.ru%3B%20%5Cn%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20translit%20%5Cn%u0421%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20translit%20%u0441%20%u0442%u0435%u043A%u0441%u0442%u043E%u043C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u043C%20%u0438%u043B%u0438%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%5Cn%u041F%3A%20CB%20%u043C%u0435%u043D%u044E%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

// Виртуальная клавиатура на translit.ru, от 07.06.2014.


// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {
   if ( e.button == 0 ) gBrowser.selectedTab = gBrowser.addTab("http://translit.ru/keyboard/");    
     
   if ( e.button == 1 ) {  
        // скопировать текст на странице и запомнить текст из буфера обмена
        var clip = gClipboard.read();
        window.content.focus();
        goDoCommand("cmd_copy");            

        var translit = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("http://translit.ru/keyboard/") ); 
          
        // oбработчик ждет пока откроется "translit.ru", удаляет себя и вставяет текст из буфера обмена 
        translit.addEventListener("pageshow", function c(e) {      
           this.removeEventListener(e.type, c);           

           setTimeout(()=> {              
              content.document.getElementsByTagName("textarea")[0].value = gClipboard.read();
              clip && gClipboard.write(clip); // вернуть текст в буфер обмена 
           }, 50);      
        });
        }
};


// Подсказка у кнопки ................................
this.tooltipText = "Виртуальная клавиатура на translit.ru; \nЛ: Открыть translit \nС: Открыть translit с текстом выделенным или из буфера \nП: CB меню";

Отредактировано bunda1 (24-10-2013 18:50:26)

Отсутствует

 

№12426-09-2013 20:38:11

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 3.6

Re: Готовые кнопки для Custom Buttons

Консоль браузера в вкладке / боковой панели( Firefox24+ ) от 04.01.2017.
Открывает Консоль браузера в вкладке или в боковой панели.
Тут более новые версии: Custom Buttons • View topic - Browser Console in Sidebar/Tab

ЛКМ => Открыть или закрыть Консоль браузера в боковой панели,
СКМ => Открыть Консоль браузера в вкладке или переключится на её если такая вкладка уже открыта,
ПКМ => Открыть контекстно меню кнопки.

Код кнопки для Firefox24-38:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EOpen%20Browser%20Console%20in%20Sidebar/Tab%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAicKQXAAAAABWK2v8DjOn/A4vp/xSK2/8AAAAAAAAAAAAAAAAAAAAAMTDL/y0t0v8tLdP/MTDM/wAAAAAAAAAAAAAAAAGL6v8DkfP/BZb5/wWW+f8DkfP/AYvq/wAAAAAAAAAAMjLU/1NT6f9wcPv/cHD7/1NT6f8yMtT/AAAAAAqG3P8IlPP/EJz7/xCc+/8QnPv/EJz7/wiT8/8Lhtv/OzrL/01N6f9paf//aWn//2lp//9paf//TEzp/zw7zP8Bi+n/GJ75/xug+/8boPv/G6D7/xug+/8Ynvn/Aorp/y4u0/9XV/v/XFz//1xc//9cXP//XFz//1dX+v8vL9P/Aovp/yKi+f8mpfv/JqX7/yal+/8mpfv/IqP5/wKL6f8uLtL/S0v6/09P//9PT///T0///09P//9MTPr/Li7T/xKJ2v8am/P/Mar7/zGq+/8xqvv/Mar7/xqa8/8Tidn/NDPL/zg46f9DQ///Q0P//0ND//9DQ///ODjp/zU0yv8AAAAABo3p/yCd8/81qvj/Nar4/yCd8/8Gjen/AAAAAAAAAAAtLdT/MjLp/zQ0+f80NPn/MjLp/y0t1P8AAAAAAAAAAAAAAAAIhdr/AYrp/wGK6f8Jhdv/AAAAAAAAAAAAAAAAAAAAAD8+y/8yMtT/MjLU/z8+zP8AAAAAAAAAAAAAAAAAAAAAkpGQ/5SUlP+UlJT/k5KR/wAAAAAAAAAAAAAAAAAAAADGnyD/zqMc/86jHP/HnyD/AAAAAAAAAAAAAAAAk5OT/6CgoP+pqan/qamp/6CgoP+Tk5P/AAAAAAAAAADOoxr/360P/+21Bf/ttQX/360P/86jGv8AAAAAkZCP/6Ghof+tra3/ra2t/62trf+tra3/oKCg/5GQj//Inhv/364T//C5C//wuQv/8LkL//C5C//frhP/xp0a/5OTk/+tra3/sLCw/7CwsP+wsLD/sLCw/62trf+Tk5P/zaMb/+24E//xuxL/8bsS//G7Ev/xuxL/7bkT/86jG/+UlJT/r6+v/7Kysv+ysrL/srKy/7Kysv+urq7/k5OT/86jG//tuxr/8b0a//G9Gv/xvRr/8b0a/+26Gv/Ooxv/kpGQ/6Wlpf+1tbX/tbW1/7W1tf+1tbX/pKSk/5KQj//Gnh//4LEe//K/If/yvyH/8r8h//K/If/gsR7/xp4f/wAAAACVlZX/pqam/7Ozs/+zs7P/pqam/5WVlf8AAAAAAAAAAM+kHf/gsiP/7r4n/+6+J//gsiP/z6Qd/wAAAAAAAAAAAAAAAJCPjv+UlJT/lJSU/5GQj/8AAAAAAAAAAAAAAAAAAAAAxpwY/86jGv/Ooxr/x50Y/wAAAAAAAAAAQ8OsQYGBrEEAAKxBAACsQQAArEEAAKxBgYGsQcPDrEHDw6xBgYGsQQAArEEAAKxBAACsQQAArEGBgaxBw8OsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onload%20%3D%20function%28%29%20%7B%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20%28%20var%20tab%20of%20gBrowser.visibleTabs%20%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%20tab.linkedBrowser.currentURI.spec%20%3D%3D%20url%20%29%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20tab%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20tab%20%7C%7C%20gBrowser.addTab%28%20url%20%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20%7B%20%0A%20%20%20%20%20%20gShowPopup%28this%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20%20%20toggleSidebar%28id%29%3B%0A%20%20%20%20%20%20%20%20%20%20sbt.value%20%3D%20title%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0Aconst%0A%20%20%20%7B%20devtools%20%7D%20%3D%20Cu.import%28%22resource%3A//gre/modules/devtools/Loader.jsm%22%2C%20%7B%7D%29%2C%0A%20%20%20%7B%20DebuggerServer%20%7D%20%3D%20Cu.import%28%22resource%3A//gre/modules/devtools/dbg-server.jsm%22%2C%20%7B%7D%29%2C%0A%20%20%20%7B%20DebuggerClient%20%7D%20%3D%20Cu.import%28%22resource%3A//gre/modules/devtools/dbg-client.jsm%22%2C%20%7B%7D%29%2C%0A%20%20%20HUDService%20%3D%20window.HUDService%20%7C%7C%20Cu.import%28%22resource%3A///modules/HUDService.jsm%22%2C%20%7B%7D%29.HUDService%2C%0A%0A%20%20%20sb%20%3D%20document.getElementById%28%22sidebar%22%29%2C%0A%20%20%20sbt%20%3D%20document.getElementById%28%22sidebar-title%22%29%2C%0A%20%20%20title%20%3D%20%22Browser%20Console%22%2C%0A%20%20%20id%20%3D%20%22cbViewBrowserConsoleInSidebar%22%2C%0A%20%20%20url%20%3D%20devtools.Tools.webConsole.url%3B%0A%0A%0Afunction%20onLoad%28e%29%20%7B%0A%20%20%20var%20doc%20%3D%20e.target%3B%0A%20%20%20if%20%28%20doc.location%20%21%3D%20url%20%29%20return%3B%0A%20%20%20doc.title%20%3D%20title%3B%0A%20%20%20var%20win%20%3D%20doc.defaultView%3B%0A%0A%20%20%20if%20%28%20%21DebuggerServer.initialized%20%29%20%7B%0A%20%20%20%20DebuggerServer.init%28%29%3B%0A%20%20%20%20DebuggerServer.addBrowserActors%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20var%20client%20%3D%20new%20DebuggerClient%28DebuggerServer.connectPipe%28%29%29%3B%0A%20%20%20client.connect%28function%28%29%20%7B%0A%20%20%20%20%20%20client.listTabs%28function%28response%29%20%7B%0A%20%20%20%20%20%20%20%20%20var%20globals%20%3D%20JSON.parse%28JSON.stringify%28response%29%29%3B%0A%20%20%20%20%20%20%20%20%20delete%20globals.tabs%3B%0A%20%20%20%20%20%20%20%20%20delete%20globals.selected%3B%0A%20%20%20%20%20%20%20%20%20var%20options%20%3D%20%7B%20form%3A%20globals%2C%20client%3A%20client%2C%20chrome%3A%20true%20%7D%3B%0A%20%20%20%20%20%20%20%20%20var%20promise%20%3D%20devtools.TargetFactory.forRemoteTab%28options%29%3B%0A%20%20%20%20%20%20%20%20%20promise.then%28function%28target%29%20HUDService.openBrowserConsole%28target%2C%20win%2C%20win%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.then%28function%28hud%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20win.onbeforeunload%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20e.returnValue%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20hud.chromeWindow%20%3D%20%7B%20close%3A%20Function%28%29%2C%20document%3A%20doc%20%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%7D%29%3B%0A%7D%0A%5BgBrowser%2C%20sb%5D.forEach%28function%28node%29%20addEventListener%28%22load%22%2C%20onLoad%2C%20true%2C%20node%29%29%3B%0A%0Avar%20bc%20%3D%20document.getElementById%28%20id%20%29%3B%0Aif%20%28%20%21bc%20%29%20%7B%0A%20%20%20%20%20bc%20%3D%20document.getElementById%28%22mainBroadcasterSet%22%29.appendChild%28document.createElement%28%22broadcaster%22%29%29%3B%0A%20%20%20%20%20bc.setAttribute%28%22id%22%2C%20id%29%3B%0A%20%20%20%20%20bc.setAttribute%28%22sidebarurl%22%2C%20url%29%3B%0A%20%20%20%20%20bc.setAttribute%28%22group%22%2C%20%22sidebar%22%29%3B%0A%7D%0AaddDestructor%28function%28reason%29%20reason%20%3D%3D%20%22delete%22%20%26%26%20bc.parentNode.removeChild%28bc%29%20%29%3B%0A%7D%0A%0Avar%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A.tabbrowser-tab%5Blabel%3D%22Browser%20Console%22%5D%20.tab-icon-image%20%7B%5C%0Alist-style-image%3Aurl%28%22chrome%3A//global/skin/icons/error-16.png%22%29%21important%3B%20-moz-image-region%3A%20auto%20%21important%3B%5C%0A%7D%27%29%29%3B%0Aconst%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Asss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0AaddDestructor%28function%28%29%20%7B%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%20%7D%29%3B%20%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


Код кнопки для Firefox48+:
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EBrowser%20Console%20in%20Sidebar-Tab%20-%20For%20Firefox%2048%20or%20higher%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACZklEQVQ4jWXRv08aYRgH8EOCsXWwkTYlhz9Qkzod6hUTUhsdHMU4MLD4DziVf0IToS0c7+FQBc8ekGByqBCSWlO7YVPtmQhLtQmsrwmm9hbPG74dMDRveZLP9H3yDM+X4x7mfSwOWZYhyzJicQncf+PaqoBXdfCqDlfqhM2TySRyuRxKpRJKpRJyuRySyWR7aTBzjrFiA+PHNxg/vsFYsYHBzHkrj0sJZLNZlMtlRiaTQSyewHC6gqGDBka+/mEMHTQwnK6Ak2UZe3t7KBaLjEKhAEII3KoO/qgJ/sst63MTblUHRwiBpmnY399naJr2cOAHnJ+a6D+6ZTgPHw7E4hJ2dnagaRpDURTE4hLc6W9wFuroPfzNcBbq4FOV1h8IIVAUBfl8Hvl8HoqigBDSfiKv6ujT6nCUm3CUm+jT6uBVnW0iLiXaNUoJ0lGjZ7uCAVXHgKrDs33SkXOXqz2gERtoxIar1UcdC6ezc6iJImqiiLPZOTan77phpDy4253G3e40jJQH9F13e6kmCKCiCNPng+nzgYoiaoLQyi/X+2Fs8rB2pxjGBx4/1504fekD9fuB+XkG9fvx3TcNjka7YH4chZV9wTDVUdBoFy68XtwvLABLS4z7QABVrxccjdpgpl2wFDfDTLtAI12oer2wQiFgeZlxHwqhOjEB7tfaYxhyD6ytJwyD9OBqrRenr2ZAFxeBlRUGDQRwNvO69YfrqA2GZIe54YC54YAh2XEdtf17oiiCBoOwwmFY4TBoMIiaKLbyzTcjzzmO4y4jz0Df2kGjdlxFnnbWODmFC0FAVRBwNjnVzv8Cnb4oOBnoKkcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bif%20%28%21%28%22Services%22%20in%20window%29%29%0A%09Cu.import%28%22resource%3A//gre/modules/Services.jsm%22%29%3B%0A%0Avar%20_UID%20%3D%20%22__browser_console_sidebar_tab%22%20+%20self.id.slice%2820%29%3B%0Avar%20PREF_BRANCH%20%3D%20%22CB.BrowserConsoleOnSidebarTabBar.ID%22%20+%20self.id.slice%2820%29%20+%20%22.%22%3B%0Avar%20USE_CSS_PREF%20%3D%20PREF_BRANCH%20+%20%22StyleSheetEnabled%22%3B%0Avar%20STATE_PREF%20%3D%20PREF_BRANCH%20+%20%22State%22%3B%0Avar%20CHECKED_STATE_PREF%20%3D%20PREF_BRANCH%20+%20%22UseCheckedState%22%3B%0Avar%20URL%20%3D%20%22chrome%3A//devtools/content/webconsole/webconsole.xul%22%3B%0Avar%20broadcasterID%20%3D%20%22viewBrowserConsoleSidebar%22%20+%20_UID%3B%0Avar%20isOSX%20%3D%20Services.appinfo.OS.toLowerCase%28%29.startsWith%28%22darwin%22%29%3B%0A%0A//%20Preferences%20initialization%0Acustombuttons.isPref%28USE_CSS_PREF%2C%20true%29%3B%0Acustombuttons.isPref%28STATE_PREF%2C%20false%29%3B%0Acustombuttons.isPref%28CHECKED_STATE_PREF%2C%20false%29%3B%0A%0Aif%20%28%21%28_UID%20in%20window%29%29%20%7B%0A%09window%5B_UID%5D%20%3D%20%7B%0A%09%09%22MainListener%22%3A%20false%2C%0A%09%09%22BroadcasterCreated%22%3A%20false%2C%0A%09%09%22StyleSheet%22%3A%20false%0A%09%7D%3B%0A%7D%0A%0A%28tmp%20%3D%3E%20%7B%0A%09var%20modules%20%3D%20%22resource%3A//gre/modules/%22%3B%0A%09var%20%7B%0A%09%09Promise%0A%09%7D%20%3D%20Cu.import%28modules%20+%20%22Promise.jsm%22%2C%20tmp%29%3B%0A%09var%20%7B%0A%09%09devtools%0A%09%7D%20%3D%20Cu.import%28%22resource%3A//devtools/shared/Loader.jsm%22%2C%20tmp%29%3B%0A%09var%20%7B%0A%09%09DebuggerServer%0A%09%7D%20%3D%20devtools.require%28%22devtools/server/main%22%2C%20tmp%29%3B%0A%09var%20%7B%0A%09%09DebuggerClient%0A%09%7D%20%3D%20devtools.require%28%22devtools/shared/client/main%22%2C%20tmp%29%3B%0A%0A%09var%20hud%20%3D%20devtools.require%28%22devtools/client/webconsole/hudservice%22%29%3B%0A%0A%09var%20link%20%3D%20document.createElementNS%28xhtmlns%2C%20%22link%22%29%3B%0A%09link.setAttribute%28%22rel%22%2C%20%22shortcut%20icon%22%29%3B%0A%09link.setAttribute%28%22href%22%2C%20self.image%29%3B%0A%0A%09function%20connect%28%29%20%7B%0A%09%09var%20deferred%20%3D%20Promise.defer%28%29%3B%0A%09%09if%20%28%21DebuggerServer.initialized%29%20%7B%0A%09%09%09DebuggerServer.init%28%29%3B%0A%09%09%09DebuggerServer.addBrowserActors%28%29%3B%0A%09%09%7D%0A%09%09DebuggerServer.allowChromeProcess%20%3D%20true%3B%0A%0A%09%09var%20client%20%3D%20new%20DebuggerClient%28DebuggerServer.connectPipe%28%29%29%3B%0A%09%09client.connect%28%28%29%20%3D%3E%20%7B%0A%09%09%09client.getProcess%28%29.then%28response%20%3D%3E%20%7B%0A%09%09%09%09deferred.resolve%28%7B%0A%09%09%09%09%09form%3A%20response.form%2C%0A%09%09%09%09%09client%3A%20client%2C%0A%09%09%09%09%09chrome%3A%20false%0A%09%09%09%09%7D%29%3B%0A%09%09%09%7D%2C%20deferred.reject%29%3B%0A%09%09%7D%29%3B%0A%09%09return%20deferred.promise%3B%0A%09%7D%0A%0A%09if%20%28%21window%5B_UID%5D%5B%22MainListener%22%5D%29%20%7B%0A%09%09window%5B_UID%5D%5B%22MainListener%22%5D%20%3D%20true%3B%0A%09%09document.getElementById%28%22browser%22%29.addEventListener%28%22DOMContentLoaded%22%2C%20e%20%3D%3E%20%7B%0A%09%09%09var%20win%20%3D%20e.target.defaultView%2C%0A%09%09%09%09loc%20%3D%20win.location%3B%0A%09%09%09if%20%28%21loc%20%7C%7C%20loc.href%20%21%3D%3D%20URL%29%0A%09%09%09%09return%3B%0A%09%09%09connect%28%29%0A%09%09%09%09.then%28connection%20%3D%3E%20devtools.TargetFactory.forRemoteTab%28connection%29%29%0A%09%09%09%09.then%28target%20%3D%3E%20%7B%0A%09%09%09%09%09hud.openBrowserConsole%28target%2C%20win%2C%20win%29.then%28browserConsole%20%3D%3E%20%7B%0A%09%09%09%09%09%09win.onbeforeunload%20%3D%20e%20%3D%3E%20%7B%0A%09%09%09%09%09%09%09e.returnValue%20%3D%20%22%22%3B%0A%09%09%09%09%09%09%09browserConsole.chromeWindow%20%3D%20%7B%0A%09%09%09%09%09%09%09%09close%3A%20%28%29%20%3D%3E%20%7B%7D%2C%0A%09%09%09%09%09%09%09%09document%3A%20win.document%0A%09%09%09%09%09%09%09%7D%3B%0A%09%09%09%09%09%09%7D%3B%0A%09%09%09%09%09%09var%20root%20%3D%20win.document.documentElement%3B%0A%09%09%09%09%09%09root.setAttribute%28%22title%22%2C%20%22Browser%20Console%22%29%3B%0A%09%09%09%09%09%09root.appendChild%28link.cloneNode%28false%29%29%3B%0A%09%09%09%09%09%7D%2C%20Cu.reportError%29%3B%0A%09%09%09%09%7D%2C%20Cu.reportError%29%3B%0A%09%09%7D%2C%20false%29%3B%0A%09%7D%0A%0A%09self.onclick%20%3D%20function%28aE%29%20%7B%0A%09%09if%20%28aE.button%20%21%3D%3D%202%29%0A%09%09%09aE.preventDefault%28%29%3B%0A%09%09if%20%28aE.button%20%3D%3D%3D%200%20%26%26%20%21aE.shiftKey%20%26%26%20%21accel%28aE%29%20%26%26%20%21aE.altKey%29%20%7B%0A%09%09%09try%20%7B%0A%09%09%09%09toggleSidebar%28broadcasterID%29%3B%0A%09%09%09%7D%20catch%20%28aErr%29%20%7B%0A%09%09%09%09SidebarUI.toggle%28broadcasterID%29%3B%0A%09%09%09%7D%0A%09%09%7D%20else%20if%20%28aE.button%20%3D%3D%3D%201%20%26%26%20%21aE.shiftKey%20%26%26%20%21accel%28aE%29%20%26%26%20%21aE.altKey%29%20%7B%0A%09%09%09var%20tab%20%3D%20gBrowser.visibleTabs.find%28tab%20%3D%3E%20tab.linkedBrowser.currentURI.spec%20%3D%3D%3D%20URL%29%3B%0A%09%09%09gBrowser.selectedTab%20%3D%20tab%20%7C%7C%20gBrowser.addTab%28URL%29%3B%0A%09%09%7D%20else%20if%20%28aE.button%20%3D%3D%3D%200%20%26%26%20%21aE.shiftKey%20%26%26%20accel%28aE%29%20%26%26%20%21aE.altKey%29%20%7B%0A%09%09%09custombuttons.setPrefs%28USE_CSS_PREF%2C%20%21custombuttons.getPrefs%28USE_CSS_PREF%29%29%3B%0A%09%09%09setTimeout%28function%28%29%20%7B%0A%09%09%09%09handleCSS%28%29%3B%0A%09%09%09%7D%2C%20100%29%3B%0A%09%09%7D%20else%20if%20%28aE.button%20%3D%3D%3D%200%20%26%26%20aE.shiftKey%20%26%26%20%21accel%28aE%29%20%26%26%20%21aE.altKey%29%20%7B%0A%09%09%09custombuttons.setPrefs%28CHECKED_STATE_PREF%2C%20%21custombuttons.getPrefs%28CHECKED_STATE_PREF%29%29%3B%0A%09%09%09setTimeout%28function%28%29%20%7B%0A%09%09%09%09self.init%28%29%3B%0A%09%09%09%7D%2C%20100%29%3B%0A%09%09%7D%0A%09%09aE.stopPropagation%28%29%3B%0A%09%7D%3B%0A%7D%29%28%7B%7D%29%3B%0A%0Aif%20%28%21window%5B_UID%5D%5B%22BroadcasterCreated%22%5D%29%20%7B%0A%09window%5B_UID%5D%5B%22BroadcasterCreated%22%5D%20%3D%20true%3B%0A%09var%20mainB%20%3D%20document.getElementById%28%22mainBroadcasterSet%22%29%3B%0A%09var%20thisB%20%3D%20document.getElementById%28broadcasterID%29%3B%0A%09if%20%28mainB%20%26%26%20%21thisB%29%20%7B%0A%09%09thisB%20%3D%20document.createElementNS%28xulns%2C%20%22broadcaster%22%29%3B%0A%09%09thisB.setAttribute%28%22id%22%2C%20broadcasterID%29%3B%0A%09%09thisB.setAttribute%28%22cb_id%22%2C%20_UID%29%3B%0A%09%09thisB.setAttribute%28%22autoCheck%22%2C%20false%29%3B%0A%09%09thisB.setAttribute%28%22label%22%2C%20%22Browser%20Console%20in%20Sidebar%22%29%3B%0A%09%09thisB.setAttribute%28%22type%22%2C%20%22checkbox%22%29%3B%0A%09%09thisB.setAttribute%28%22group%22%2C%20%22sidebar%22%29%3B%0A%09%09thisB.setAttribute%28%22sidebarurl%22%2C%20URL%29%3B%0A%09%09thisB.setAttribute%28%22oncommand%22%2C%20%22SidebarUI.toggle%28this.id%29%3B%22%29%3B%0A%09%09mainB.appendChild%28thisB%29%3B%0A%09%7D%0A%7D%0A%0Aif%20%28custombuttons.getPrefs%28CHECKED_STATE_PREF%29%29%20%7B%0A%09var%20obsEl%20%3D%20document.createElementNS%28xulns%2C%20%22observes%22%29%3B%0A%09obsEl.setAttribute%28%22element%22%2C%20broadcasterID%29%3B%0A%09obsEl.setAttribute%28%22attribute%22%2C%20%22checked%22%29%3B%0A%09self.appendChild%28obsEl%29%3B%0A%7D%20else%20%7B%0A%09let%20obs%20%3D%20self.getElementsByTagName%28%22observes%22%29%5B0%5D%3B%0A%09obs%20%26%26%20obs.parentNode.removeChild%28obs%29%3B%0A%09self.removeAttribute%28%22checked%22%29%3B%0A%7D%0A%0Afunction%20getHelp%28aPlaceholder%29%20%7B%20//%20Get%20specific%20data%2C%20surrounded%20by%20%22placeholders%22%2C%20from%20the%20Help%20tab.%0A%09return%20document.getElementById%28self.id%29.getAttribute%28%22Help%22%29.split%28%22%3C%21--%22%20+%20aPlaceholder%20+%20%22--%3E%22%29%5B1%5D%3B%0A%7D%0A%0A//START//%20Load%20style%20sheets%0Avar%20css%20%3D%20getHelp%28%22StyleSheet%22%29%3B%0A%0Afunction%20styleSheet%28aCSS%2C%20aRemFlag%29%20%7B%0A%09var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D%0A%09%09.getService%28Ci.nsIStyleSheetService%29%3B%0A%09var%20ios%20%3D%20Cc%5B%22@mozilla.org/network/io-service%3B1%22%5D%0A%09%09.getService%28Ci.nsIIOService%29%3B%0A%09var%20uri%20%3D%20ios.newURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28aCSS%29%2C%20null%2C%20null%29%3B%0A%09if%20%28sss.sheetRegistered%28uri%2C%20sss.USER_SHEET%29%29%0A%09%09sss.unregisterSheet%28uri%2C%20sss.USER_SHEET%29%3B%0A%09if%20%28aRemFlag%29%0A%09%09return%3B%0A%09sss.loadAndRegisterSheet%28uri%2C%20sss.USER_SHEET%29%3B%0A%09window%5B_UID%5D%5B%22StyleSheet%22%5D%20%3D%20aCSS%3B%0A%7D%0A%0Afunction%20deleteCSS%28%29%20%7B%0A%09if%20%28window%5B_UID%5D%5B%22StyleSheet%22%5D%29%20%7B%0A%09%09styleSheet%28window%5B_UID%5D%5B%22StyleSheet%22%5D%2C%20true%29%3B%0A%09%09delete%20window%5B_UID%5D%5B%22StyleSheet%22%5D%3B%0A%09%7D%0A%7D%0A%0Afunction%20handleCSS%28%29%20%7B%0A%09if%20%28custombuttons.getPrefs%28USE_CSS_PREF%29%29%20%7B%0A%09%09if%20%28%21%28window%5B_UID%5D%5B%22StyleSheet%22%5D%29%29%0A%09%09%09styleSheet%28css%29%3B%0A%09%09else%20if%20%28window%5B_UID%5D%5B%22StyleSheet%22%5D%20%21%3D%3D%20css%29%20%7B%0A%09%09%09styleSheet%28window%5B_UID%5D%5B%22StyleSheet%22%5D%2C%20true%29%3B%0A%09%09%09setTimeout%28function%28%29%20%7B%0A%09%09%09%09styleSheet%28css%29%3B%0A%09%09%09%7D%2C%20500%29%3B%0A%09%09%7D%0A%09%7D%20else%20%7B%0A%09%09deleteCSS%28%29%3B%0A%09%7D%0A%7D%0A//END//%20Load%20style%20sheets%0A%0AaddDestructor%28function%28aReason%29%20%7B%0A%09if%20%28aReason%20%3D%3D%3D%20%22delete%22%20%7C%7C%20aReason%20%3D%3D%3D%20%22update%22%29%20%7B%0A%09%09deleteCSS%28%29%3B%0A%09%7D%0A%09if%20%28aReason%20%3D%3D%3D%20%22delete%22%29%20%7B%0A%09%09%28Services.prefs.getBranch%28PREF_BRANCH%29%29.deleteBranch%28%22%22%29%3B%0A%09%09let%20selfEls%20%3D%20document.getElementsByAttribute%28%22cb_id%22%2C%20_UID%29%3B%0A%09%09Array.prototype.slice.call%28selfEls%29.forEach%28function%28aEl%29%20%7B%20//%20Delete%20all%20elements%20created%20by%20this%20button.%0A%09%09%09aEl%20%26%26%20aEl.parentNode.removeChild%28aEl%29%3B%0A%09%09%7D%29%3B%0A%09%7D%0A%7D%29%3B%0A%0Afunction%20accel%28aE%29%20%7B%0A%09if%20%28aE%29%0A%09%09return%20isOSX%20%3F%20aE.metaKey%20%3A%20aE.ctrlKey%3B%0A%09return%20isOSX%20%3F%20%22%uD835%uDDD6%uD835%uDDFC%uD835%uDDFA%uD835%uDDFA%uD835%uDDEE%uD835%uDDFB%uD835%uDDF1%22%20%3A%20%22%uD835%uDDD6%uD835%uDDFC%uD835%uDDFB%uD835%uDE01%uD835%uDDFF%uD835%uDDFC%uD835%uDDF9%22%3B%0A%7D%0A%0Athis.tooltipText%20%3D%20self.name%20+%20%22%5Cn%5Ct%uD835%uDDDF%uD835%uDDF2%uD835%uDDF3%uD835%uDE01%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDF6%uD835%uDDF0%uD835%uDDF8%3A%20Browser%20Console%20On%20Sidebar%20%5Cn%22%20+%0A%09%22%5Ct%uD835%uDDE0%uD835%uDDF6%uD835%uDDF1%uD835%uDDF1%uD835%uDDF9%uD835%uDDF2%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDF6%uD835%uDDF0%uD835%uDDF8%3A%20Browser%20Console%20On%20New%20Tab%5Cn%22%20+%0A%09%22%5Ct%22%20+%20accel%28%29%20+%20%22%20+%20%uD835%uDDDF%uD835%uDDF2%uD835%uDDF3%uD835%uDE01%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDF6%uD835%uDDF0%uD835%uDDF8%3A%20Toggle%20Style%20Sheet%5Cn%22%20+%0A%09%22%5Ct%uD835%uDDE6%uD835%uDDF5%uD835%uDDF6%uD835%uDDF3%uD835%uDE01%20+%20%uD835%uDDDF%uD835%uDDF2%uD835%uDDF3%uD835%uDE01%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDF6%uD835%uDDF0%uD835%uDDF8%3A%20Toggle%20the%20use%20of%20checked%20state%22%3B%0A%0AhandleCSS%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%uD835%uDDDC%uD835%uDDFA%uD835%uDDFD%uD835%uDDFC%uD835%uDDFF%uD835%uDE01%uD835%uDDEE%uD835%uDDFB%uD835%uDE01%20%uD835%uDDFB%uD835%uDDFC%uD835%uDE01%uD835%uDDF2%uD835%uDE00%0A%u26AB%20%uD835%uDDD7%uD835%uDDE2%20%uD835%uDDE1%uD835%uDDE2%uD835%uDDE7%20%uD835%uDDF6%uD835%uDDFB%uD835%uDE00%uD835%uDE01%uD835%uDDEE%uD835%uDDF9%uD835%uDDF9%20%uD835%uDDFA%uD835%uDDFC%uD835%uDDFF%uD835%uDDF2%20%uD835%uDE01%uD835%uDDF5%uD835%uDDEE%uD835%uDDFB%20%uD835%uDDFC%uD835%uDDFB%uD835%uDDF2%20%uD835%uDE03%uD835%uDDF2%uD835%uDDFF%uD835%uDE00%uD835%uDDF6%uD835%uDDFC%uD835%uDDFB%20%uD835%uDDFC%uD835%uDDF3%20%uD835%uDE01%uD835%uDDF5%uD835%uDDF6%uD835%uDE00%20%uD835%uDDEF%uD835%uDE02%uD835%uDE01%uD835%uDE01%uD835%uDDFC%uD835%uDDFB%20%uD835%uDDEE%uD835%uDE01%20%uD835%uDE01%uD835%uDDF5%uD835%uDDF2%20%uD835%uDE00%uD835%uDDEE%uD835%uDDFA%uD835%uDDF2%20%uD835%uDE01%uD835%uDDF6%uD835%uDDFA%uD835%uDDF2%u2757%u2757%u2757%0A%u26AB%20%uD835%uDDD7%uD835%uDDE2%20%uD835%uDDE1%uD835%uDDE2%uD835%uDDE7%20%uD835%uDDF0%uD835%uDDF9%uD835%uDDFC%uD835%uDDFB%uD835%uDDF2%20%uD835%uDE01%uD835%uDDF5%uD835%uDDF6%uD835%uDE00%20%uD835%uDDEF%uD835%uDE02%uD835%uDE01%uD835%uDE01%uD835%uDDFC%uD835%uDDFB%u2757%u2757%u2757%0A%u26AB%20If%20you%20did%20any%20of%20the%20previous%20actions%2C%20delete%20all%20extra%20buttons%20leaving%20only%20one%20version%20of%20%uD835%uDDE0%uD835%uDE02%uD835%uDDF9%uD835%uDE01%uD835%uDDF6%20%uD835%uDDE7%uD835%uDDFF%uD835%uDDEE%uD835%uDDFB%uD835%uDE00%uD835%uDDF9%uD835%uDDEE%uD835%uDE01%uD835%uDDFC%uD835%uDDFF%20and%20restart%20your%20application.%0A%0AInside%20the%20Help%20tab%20of%20this%20button%20you%20will%20find%20the%20style%20sheet%20to%20customize%20the%20console.%0A%0A%5B%2C%5D%0A%3C%21--StyleSheet--%3E%0A@-moz-document%20%20url%28chrome%3A//devtools/content/shared/widgets/VariablesView.xul%29%7B%0A%09%23variables%20%7B%0A%09%09font-family%3A%20%22Noto%20Sans%22%2C%22Open%20Sans%22%2CHelvetica%2CArial%2Csans-serif%20%21important%3B%0A%09%09font-size%3A%2012px%20%21important%3B%0A%09%09font-weight%3A%20600%20%21important%3B%0A%09%7D%0A%7D%0A@-moz-document%20%20url%28chrome%3A//devtools/content/webconsole/webconsole.xul%29%7B%0A%09/*%20Console%20fonts%20*/%0A%09.devtools-monospace%20%7B%0A%09%09font-family%3A%20%22Noto%20Sans%22%2C%22Open%20Sans%22%2CHelvetica%2CArial%2Csans-serif%20%21important%3B%0A%09%09font-size%3A%2010px%20%21important%3B%0A%09%09font-weight%3A%20bold%20%21important%3B%0A%09%7D%0A%09/*%20Console%20fonts%20*/%0A%0A%09/*%20Text%20colors%20*/%0A%09/*%20Text%20color%20for%20light%20theme%20*/%0A%09.theme-light%20.message-body-wrapper.message-body.devtools-monospace%20%7B%0A%09%09color%3A%20%23000%20%21important%3B%0A%09%7D%0A%09/*%20Text%20color%20for%20dark%20theme%20*/%0A%09.theme-dark%20.message-body-wrapper.message-body.devtools-monospace%20%7B%0A%09%09color%3A%20%23FFF%20%21important%3B%0A%09%7D%0A%09/*%20Text%20colors%20*/%0A%0A%09/*%20Message%20colors%20*/%0A%09.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22jswarn%22%5D%20%7B%0A%09%09background%3A%20rgba%28251%2C%20149%2C%200%2C%20.2%29%20%21important%3B%0A%09%09border-bottom%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%09border-top%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%7D%0A%09.message%5Bcategory%3D%22cssparser%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22cssparser%22%5D%20%7B%0A%09%09background%3A%20rgba%280%2C%20182%2C%20240%2C%20.2%29%20%21important%3B%0A%09%09border-bottom%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%09border-top%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%7D%0A%09.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22error%22%5D%5Bfilter%3D%22exception%22%5D%20%7B%0A%09%09background%3A%20rgba%28255%2C%200%2C%200%2C%20.2%29%20%21important%3B%0A%09%09border-bottom%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%09border-top%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%7D%0A%09.message.cm-s-mozilla%5Bcategory%3D%22console%22%5D%20%7B%0A%09%09background%3A%20rgba%28203%2C%20203%2C%20203%2C%20.2%29%20%21important%3B%0A%09%09border-bottom%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%09border-top%3A%201px%20solid%20rgba%280%2C%200%2C%200%2C%20.5%29%20%21important%3B%0A%09%7D%0A%09/*%20Message%20colors%20*/%0A%0A%09/*%20Message%20colors%20on%20hover%20*/%0A%09.theme-light%20.message%3Ahover%2C%0A%09.theme-light%20.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22jswarn%22%5D%3Ahover%2C%0A%09.theme-light%20.message%5Bcategory%3D%22cssparser%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22cssparser%22%5D%3Ahover%2C%0A%09.theme-light%20.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22error%22%5D%5Bfilter%3D%22exception%22%5D%3Ahover%20%7B%0A%09%09background-color%3A%20rgba%2876%2C%20158%2C%20217%2C%200.23%29%20%21important%3B%0A%09%7D%0A%09.theme-dark%20.message%3Ahover%2C%0A%09.theme-dark%20.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22jswarn%22%5D%3Ahover%2C%0A%09.theme-dark%20.message%5Bcategory%3D%22cssparser%22%5D%5Bseverity%3D%22warn%22%5D%5Bfilter%3D%22cssparser%22%5D%3Ahover%2C%0A%09.theme-dark%20.message%5Bcategory%3D%22exception%22%5D%5Bseverity%3D%22error%22%5D%5Bfilter%3D%22exception%22%5D%3Ahover%20%7B%0A%09%09background-color%3A%20rgba%2829%2C%2079%2C%20115%2C%200.5%29%20%21important%3B%0A%09%7D%0A%09/*%20Message%20colors%20on%20hover%20*/%0A%0A%09/*%20Hide%20original%20icons%20*/%0A%09.message%20%3E%20.icon%3A%3Abefore%20%7B%0A%09%09background-image%3A%20none%20%21important%3B%0A%09%7D%0A%09/*%20Hide%20original%20icons%20*/%0A%0A%09/*%20Assign%20new%20icons%20*/%0A%09.message%5Bseverity%3Derror%5D%20%3E%20.icon%20%7B%0A%09%09background-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAB00lEQVQokX3DTUhTAQDA8Xd9uMNruIeryWQsNgidiL1DCJ0Glk4YeQyhkzpo4E5qt4EQWRKIh6FEhAWaeDBBnB2ch2hzG4rS2kD21Qdvz33Ipm87/Tt2KX/wE048Dv93b5+WGe0nM3r3P/tJe/u0E4/DLxx7XNr5+CC1yQfXPh8f5Njj0oSY24nq7UUd6aY0MYS2tkw1dkA1doC2tkxpYgh1pBvV20vM7UTYH7BTHHahLs2h1+tUUikuy2Uuy2UqqRR6vY66NEdx2MX+gB1hR+kiNzVGq6zRurgg7vOR9PtJ+v3EfT6atRqtskZuaowdpQths8dCfiHIVaNBU9dRo1G2rVa2rVbUaJSmrnPVaJBfCLLZY0FYdZpJTD5GKxaolkocBgLsKgq7isJhIEC1VEL7+YPk0yesOs0IKzaZiOLgy6vn/M7lOA2FKMTjFBIJTkMhfp2d8XXpNRHFyYpNRli0GInYO/jsuk0+myWbTpM5OuJbLErk7Rs2HnkI37ERsXewaDEizMsS4c529h662Xv5gg/37/HObOT9TSNbt9oJd/49L0sIQclQWTdJbMgSH00SW/INPv3jukkiKBkqwowoTs+2idVnBpHrzraJ1RlRnP4DeQFoOf9yusQAAAAASUVORK5CYII%3D%22%29%20%21important%3B%0A%09%09background-repeat%3A%20no-repeat%20%21important%3B%0A%09%7D%0A%09.message%5Bseverity%3Dwarn%5D%20%3E%20.icon%20%7B%0A%09%09background-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABz0lEQVQokX3JT0hTcQDA8XfVLl6WULmLeBA65EkPFrtKB5VCoZPSRUKmIYgXL5FgoU3EuZi4GnrRdXAFy2geGpNcD4Q20bnc5rZnOl/bfPvz/O0x+HYQugQePocvXym21m1NbPSrxx+fcJ3ERr8aW+u2StH1XrW0PcJl6Pm1StsjHK73qtLeShflrT7K/keUg8NcRD+gKTKaInNx4KEcHL56W33srXQh7S5ZKG32UAw7EELHqFYpZmSKGRnDMBBCpxh2UNrsYXfJgrSz0EEhMIZRyVGr1agZVeLuTuLuB1ddq2FUchQCY+wsdCAFZtooyDZ0vYwQgku9zNH7TuLu+wghEEKg6xUK8hyBmTYk/1QryU/P+HOWQdM0NE0jr0TIK5F/ncuekPJZ8U+1Ivkmm0m62gl/nuU8m0VVz0kH50kH51FVlezZbyJfF0m62vFNNiN5x5s4dbaQdN4jnUpynIhxdPCTWOQHoS9uAo7HxN/e5dTZgne8Cckz2ohiNxNzPyTkneXbGwvfX9xCfnmbX7Y7KHYzJ3Yzit2MZ7QRaXWoIb8/beLwtYnoKxMp203Sc//bnzaxOtSQl5YH6iZcg/WFd09vcB3XYH1heaBu4i9fuaqY22u7CwAAAABJRU5ErkJggg%3D%3D%22%29%20%21important%3B%0A%09%09background-repeat%3A%20no-repeat%20%21important%3B%0A%09%7D%0A%09.message%5Bseverity%3Dinfo%5D%20%3E%20.icon%20%7B%0A%09%09background-image%3A%20url%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAABxUlEQVQokX3HzUuacQDA8ed/KOjQwdYiIghGg7r0hmyHeWknD9U8xJgYSwITHUIbLIjNdKBQB3HE415C2YvKCiMQbDZyF0dM0LmaU1b2i+Khcg8Pwnc3LwMPn8NHcu8MWX17erHy9TbN+Pb0wr0zZJW8qRERPpjk3e97TZgIH0ziTY0IaWl7kGBeTyA/ynpxgkxFpih2KYpdMhWZ9eIEgfwowbyepe1BpIV4P6v7YyRLXlS1hqZplEWBsiigaRqqWiNZ8rK6P8ZCvB/JEekjnJvh4u8p9Xqder3OVvYliWyw8Qv1lHBuBkekD2ku1Eui8Jyr2iWqqqKqKp6YCU/M1PhV7ZKtH27mQr1IlkA3wbSZo5MyiqKgKAp2eRi7PNz4saiw9uUhlkA30rS/k8ebA0RSHqonVYQQfEj7eZ/2IYTgqPqHj59XeLI5wLS/E2lqWYdzowdX/Ca/Sof8PCyQy38j+z1DLBni6Rsjj6I3cG70MLWsQzIutmOLdvHs013eJl7gWLvF/UAHD4LXsIavY4t2NRgX25HGXW1nZlmH5bUOyysds+EOZiP/M8s6xl1tZ5LB1uK8M996brC30tR867nB1uL8B0UajjUem+zaAAAAAElFTkSuQmCC%22%29%20%21important%3B%0A%09%09background-repeat%3A%20no-repeat%20%21important%3B%0A%09%7D%0A%09/*%20Assign%20new%20icons%20*/%0A%0A%09/*%20Reposition%20new%20icons%20*/%0A%09.message%20%3E%20.icon%20%7B%0A%09%09margin%3A%204px%200%200%204px%20%21important%3B%0A%09%7D%0A%09/*%20Reposition%20new%20icons%20*/%0A%7D%0A%0A/*%20Style%20for%20Browser%20Console%20On%20Tab%20*/%0A.tabbrowser-tab%5Btitle%3D%22Browser%20Console%22%5D%20.tab-icon-image%20%7B%0A%09list-style-image%3Aurl%28%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACkElEQVQ4jZXKT0iTcRzH8d8tM8VtOttWj7OpTGcsJBBBCCwU/9IfOkR1EA0ED1GHDsaEIjx4ETsJghaElGaDnP0RO0QmmVo+h8fU2CR0a3smLXsYjMEz3h2kwS6hhxd8v3zeQmlx1q22ur6utlRyIK2ur0qLs07Iza6V7c56tN4O4vdu7IvW28F2Zz1ys2tFLDWUE+tq4tflKn5dOrU/l6uIdTWx1FCOmKsrI3LeTaTtJJG2k0TbzxIdH2bnyyd2wyF2wyF2vnwiOj5MtP1suoucdzNXV4aYrS1hu9HFdqOL8MP7JOJxkskkcVUlmUxm3Il4nPDD++l+trYE4asuZvOck6Cnm5Suk0ql2BgYYNpuRwsE0AIBpu12NgYGSKVSpHSdoKebzXNOfNXFiMkqiY0zpfxcmEPXdXRd54/fz7TdnuGP35/efy7MsXGmlMkqCTFWaUOpcfA7EiaRSKQFZ2aYEIIJIQjOzGRsu2oEpcbBWKUNMeK0sHLajuydQNM0NE1DVRSmJCmDqijpXXk7zcppOyNOC2LIUciiW+LVlTZ2IhFisRhyXx9TkkRIlgnJMlOShNzXRywWYyeq4rt6gUW3xJCjEDFYlM98hY0P5TbGLjYT2tpCVVVC37+jqmrGveX3M95xnQ/lNuYrbAwW5SP6rUbel1j2VBbzIxAgGAzybWmRteVlVj8v8HHiGV5PD6MVJ3jnsKT7fqsR8cCcx2yRmdkiM+/brzHvfcHT2zd5dNzMqNXEY5uJ58fyeSOZ090/D8x5CI8xB5/VxGuribGjBp4UGpiy7P3/47Oa8BhzEHdzj6wNGnLxFhh4uU/eAgODhlzu5h5ZEz3Zh1rvHM5av5WdxUHcOZy13pN9qPUv/viAZlYRB0kAAAAASUVORK5CYII%3D%22%29%21important%3B%0A%09-moz-image-region%3A%20auto%20%21important%3B%0A%7D%0A/*%20Style%20for%20Browser%20Console%20On%20Tab%20*/%0A%0A/*%20Remove%20maximum/minimum%20%20width%20restriction%20of%20sidebar%20*/%0A%23sidebar%20%7B%0A%09max-width%3A%20none%20%21important%3B%0A%09min-width%3A%200px%20%21important%3B%0A%7D%0A/*%20Remove%20maximum/minimum%20%20width%20restriction%20of%20sidebar%20*/%0A%3C%21--StyleSheet--%3E%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано bunda1 (07-03-2014 19:41:07)

Отсутствует

 

№12518-10-2013 15:12:53

Lex1
Участник
 
Группа: Members
Зарегистрирован: 07-07-2007
Сообщений: 260
UA: Firefox 24.0

Re: Готовые кнопки для Custom Buttons

Save screenshot - Сохраняет скриншот видимой/всей страницы по нажатию/зажатию.

Код кнопки

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ESave%20screenshot%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAADZklEQVR42u2Ua0hTYRjH/+c4NV1RrnkdKtHFrRwu3aarbFhQLbVh5kzTLJGiouhC4ZciIqxMysyIJKkPanSzO0WWklpRUK2srCgKy8ry0kalc9s5ved4jBFH8Et96oE/55znfZ7f87znvVD4S0b9B/9b8H1raxZ51Awn8fmzFlAUDdXkKYOubL1GdUIUXH2ujq05fgTq6CnQaeOQZk4ZCKIoMAwDt9sNl8sNLy8a/U4nHI5++Pr48DFPXr7FdK2aEgVfbbjnbrx5ldbrtAgKlEOlUsLR7+LH+hwO9Pb1QREajMKtRTh9/goqy3dBFjAGoSEheP/F1pNkmCoTBd9ofsBGTwzHSKkUXzs7ceueFZ877QBNw0ciQaJeDUVIIJIs65CYtRHzgtqhVEaRJgLx7PV7EPCQHbOGWBWZMoOzF68hIUGHiLBgfqytvQMnL9RhenwMRvnS6OruQmR4OJLN6fyv2n/wMCwps8TBtdcaWZNRh4ctrRjhJ8Wr5y0oLj2Ezx/eYVdRESLHK3G5rhHp842w93RBo1EjVj8D2hg10nIKsDzDJA6uqr3OLjbPxoPHLxA1IRLzzJkYrcmFs/cTWq+UoampCTv2lGFZjgU/7d2ImxqDuIREHmxatBSrcs3i4IqaS2y+xYSGu1ZEKoKxekMhNOZ1CIiORXn6JLSSLbZ2y3YsXpRGitmg18ZCa5jJg+cuzMGavDRxcGnlGbYg04Snr96RBfRHc1MjiveWICgsAutX5SNIMQ6HKo4hNysDrj4bDPFa6AxGHmxMtmDTikxxcFF5FZufMQcMcdfffkQSlJCNHsUv5os3bThw+CjCwsfBGB8NQsYMQzx00wbA2qQF2LY+Txy8taSSzU5NRKBcTrZZD+rvWNH28Qu8JV78QsqDFVCOj0CoXArG7eLjxsoCBha+7j52bi4QB6/Ysptdm2eGk5wqGUn4/sOBrm92tHd0w2azw9eb288MaIrlTyFDZsJtNc6arW9RUVwoDk7NWplNAquHc1f8aSP8/Jecqtz3+57583bjvr2IuAvAl8hPeJcIY4PxrCA3kYOolzv1RE7Bxw4Gcon+gryJaMEnEQpRHoVZj0YYIpcA5Ar8IPrJ+QYTxhJJhQ5pAeYJHMpYDzgjdM3BOz079hPgnl0OB+wJ/93xLyKXMSb9Lwg+AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20btn%20%3D%20this%3B%0A%0Avar%20opt%20%3D%20%7B%0A%09delay%3A%20500%2C%0A%09timerId%3A%200%2C%0A%09isPressed%3A%20false%2C%0A%09longClick%3A%20function%28%29%7B%0A%09%09saveScreenshot%28true%29%3B%0A%09%7D%2C%0A%09stdClick%3A%20function%28%29%7B%0A%09%09saveScreenshot%28false%29%3B%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseDown%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09opt.isPressed%20%3D%20true%3B%0A%09%09opt.timerId%20%3D%20setTimeout%28function%28%29%7B%0A%09%09%09if%28opt.isPressed%29%7B%0A%09%09%09%09opt.isPressed%20%3D%20false%3B%0A%09%09%09%09var%20k%20%3D%20%22_transitionTimer%22%3B%0A%09%09%09%09if%28k%20in%20btn%29clearInterval%28btn%5Bk%5D%29%3B%0A%09%09%09%09var%20stl%20%3D%20btn.style%3B%0A%09%09%09%09stl.setProperty%28%22transition%22%2C%20%22opacity%20150ms%20ease-in-out%22%2C%20%22important%22%29%3B%0A%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09stl.setProperty%28%22opacity%22%2C%20%220.5%22%2C%20%22important%22%29%3B%0A%09%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09%09stl.opacity%20%3D%20%22%22%3B%0A%09%09%09%09%09%09btn%5Bk%5D%20%3D%20setTimeout%28function%28%29%20%7B%0A%09%09%09%09%09%09%09stl.transition%20%3D%20%22%22%3B%0A%09%09%09%09%09%09%09delete%20btn%5Bk%5D%3B%0A%09%09%09%09%09%09%7D%2C%20150%29%3B%0A%09%09%09%09%09%7D%2C%20150%29%3B%0A%09%09%09%09%7D%2C%200%29%3B%0A%09%09%09%09opt.longClick%28%29%3B%0A%09%09%09%7D%0A%09%09%7D%2C%20opt.delay%29%3B%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseUp%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09clearTimeout%28opt.timerId%29%3B%0A%09%09if%28opt.isPressed%29%7B%0A%09%09%09opt.isPressed%20%3D%20false%3B%0A%09%09%09opt.stdClick%28%29%3B%0A%09%09%7D%0A%09%7D%0A%7D%3B%0A%0Afunction%20mouseOut%28e%29%7B%0A%09if%28e.button%20%3D%3D%200%29%7B%0A%09%09opt.isPressed%20%3D%20false%3B%0A%09%7D%0A%7D%3B%0A%0Abtn.addEventListener%28%27mousedown%27%2C%20mouseDown%2C%20false%29%3B%0Abtn.addEventListener%28%27mouseup%27%2C%20mouseUp%2C%20false%29%3B%0Abtn.addEventListener%28%27mouseout%27%2C%20mouseOut%2C%20false%29%3B%0A%0Abtn.onDestroy%20%3D%20function%28%29%7B%0A%20%20%20%20btn.removeEventListener%28%27mousedown%27%2C%20mouseDown%2C%20false%29%3B%0A%09btn.removeEventListener%28%27mouseup%27%2C%20mouseUp%2C%20false%29%3B%0A%09btn.removeEventListener%28%27mouseout%27%2C%20mouseOut%2C%20false%29%3B%0A%7D%3B%0A%0A%0Afunction%20saveScreenshot%28all%29%7B%0A%09var%20win%20%3D%20content%2C%20doc%20%3D%20win.document%2C%20docEle%20%3D%20%28doc.compatMode%20%3D%3D%20%22CSS1Compat%22%29%20%3F%20doc.documentElement%20%3A%20doc.body%3B%0A%09var%20canvas%20%3D%20document.createElementNS%28%22http%3A//www.w3.org/1999/xhtml%22%2C%20%22canvas%22%29%3B%0A%09canvas.width%20%3D%20Math.min%28%28all%20%26%26%20docEle.scrollWidth%20%3E%20docEle.clientWidth%29%20%3F%20docEle.scrollWidth%20%3A%20docEle.clientWidth%2C%2016383%29%3B%0A%09canvas.height%20%3D%20Math.min%28%28all%20%26%26%20docEle.scrollHeight%20%3E%20docEle.clientHeight%29%20%3F%20docEle.scrollHeight%20%3A%20docEle.clientHeight%2C%2016383%29%3B%0A%09var%20context%20%3D%20canvas.getContext%28%222d%22%29%3B%0A%09context.drawWindow%28win%2C%200%2C%200%2C%20canvas.width%2C%20canvas.height%2C%20%22white%22%29%3B%0A%09var%20uri%20%3D%20makeURI%28canvas.toDataURL%28%22image/png%22%29%29%3B%0A%0A%09var%20fileName%20%3D%20doc.title%20%3F%20doc.title%20%3A%20win.location.pathname.split%28%27/%27%29.pop%28%29%3B%0A%09fileName%20%3D%20fileName.replace%28/%5B%3A%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%27_%27%29.replace%28/%5Cs+/g%2C%20%27%20%27%29.slice%280%2C%20100%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%27%27%29%3B%0A%09fileName%20+%3D%20%28function%20%28%29%20%7B%0A%09%09var%20d%20%3D%20new%20Date%28%29%2C%20z%20%3D%20function%20%28n%29%20%7B%0A%09%09%09return%20%27_%27%20+%20%28n%20%3C%2010%20%3F%20%270%27%20%3A%20%27%27%29%20+%20n%0A%09%09%7D%3B%0A%09%09return%20z%28d.getHours%28%29%29%20+%20z%28d.getMinutes%28%29%29%20+%20z%28d.getSeconds%28%29%29%3B%0A%09%7D%29%28%29%3B%0A%0A%09var%20fp%20%3D%20Cc%5B%27@mozilla.org/filepicker%3B1%27%5D.createInstance%28Ci.nsIFilePicker%29%3B%0A%09fp.init%28window%2C%20%22Save%20Screenshot%20As%22%2C%20fp.modeSave%29%3B%0A%09fp.appendFilter%28%22%22%2C%20%22*.png%22%29%3B%0A%09fp.appendFilters%28fp.filterImages%20%7C%20fp.filterAll%29%3B%0A%09fp.defaultExtension%20%3D%20%22png%22%3B%0A%09fp.defaultString%20%3D%20fileName%20+%20%22.png%22%3B%0A%09if%20%28fp.show%28%29%20%3D%3D%20fp.returnCancel%20%7C%7C%20%21fp.file%29%20return%3B%0A%0A%09var%20persist%20%3D%20Cc%5B%27@mozilla.org/embedding/browser/nsWebBrowserPersist%3B1%27%5D.createInstance%28Ci.nsIWebBrowserPersist%29%3B%0A%20%20%20%20%20%20%20%20parseInt%28Application.version%29%20%3C%2036%0A%20%20%20%20%20%20%20%20%3F%20persist.saveURI%28uri%2C%20null%2C%20null%2C%20null%2C%20null%2C%20fp.file%2C%20null%29%0A%20%20%20%20%20%20%20%20%3A%20persist.saveURI%28uri%2C%20null%2C%20null%2C%20null%2C%20null%2C%20null%2C%20fp.file%2C%20null%29%3B%20//%20%u0435%u0441%u043B%u0438%20FF36+%0A%7D%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано Lex1 (18-10-2013 16:13:17)

Отсутствует

 

№12621-11-2013 19:56:17

wolwerine
╒╤╬╧╣╠═╝
 
Группа: Members
Зарегистрирован: 15-04-2009
Сообщений: 159
UA: Firefox 27.0

Re: Готовые кнопки для Custom Buttons

Go and paste (Firefox)- трёхфункционная кнопка для перехода по адресу в адресбаре - из буфера или уже в поле.
По наведению курсора показывает содержимое буфера во всплывающей подсказке.

ЛКМ - перейти по адресу в адресбаре
СКМ - перейти по адресу из буфера обмена в новой вкладке
ПКМ - перейти по адресу из буфера в этой вкладке


скрытый текст
Код кнопки:

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EGo%20and%20paste%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/gif%3Bbase64%2CR0lGODlhEAAQALMJAMzMmZmZmWZmZmZmmZmZzDMzM//M/////8zM/////wAAAAAAAAAAAAAAAAAAAAAAACH5BAHoAwkALAAAAAAQABAAAARRMMlJq60gCHGlFkEiDOH0AQIRFCAwbSHbXlvBBnieS2k4GLhE4BDiCEHCnc4oPDif0ANzGI1OqwjoFMHteqUmREIslpCnFe4Ewdy43+5S5xIBADs%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.pasteURL%20%3D%20function%28aEvent%2C%20go%29%20%7B%0A%20%20var%20paste%20%3D%20readFromClipboard%28%29%3B%0A%20%20if%28%21paste%29%20return%3B%0A%20%20if%28%21go%29%20%7B%0A%20%20%20%20gURLBar.value%20%3D%20paste%3B%0A%20%20%7D%20else%20%7B%0A%20%20%20%20openUILink%28paste%2C%20aEvent%2C%20false%2C%20true%29%3B%0A%20%20%7D%0A%7D%0Athis.midclick%20%3D%20function%28%29%20%7B%0Avar%20paste%20%3D%20readFromClipboard%28%29%3B%0A%09getBrowser%20%28%29.%20selectedTab%20%3D%20getBrowser%20%28%29.%20addTab%20%28%20paste%20%29%3B%0A%7D%3B%0Athis.rightclick%20%3D%20function%20%28event%29%20%7B%0A%20%20gURLBar.select%28%29%3B%0A%20%20goDoCommand%28%22cmd_paste%22%29%3B%0A%20%20gURLBar.handleCommand%28%29%3B%0A%7D%0Athis.leftclick%20%3D%20function%20%28event%29%20%7B%0A%20%20gURLBar.select%28%29%3B%0A%20%20gURLBar.handleCommand%28%29%3B%0A%7D%0A%0Athis.setAttribute%28%22onclick%22%2C%20%22custombuttons.gQuot.mHandler%28event%2C%20this%29%22%29%3B%0Athis.setAttribute%28%22onmouseover%22%2C%20%22this.tooltipText%20%3D%20readFromClipboard%28%29%20%3F%20readFromClipboard%28%29%20%3A%20this.label%3B%22%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Инициализация:

Выделить код

Код:

this.pasteURL = function(aEvent, go) {
  var paste = readFromClipboard();
  if(!paste) return;
  if(!go) {
    gURLBar.value = paste;
  } else {
    openUILink(paste, aEvent, false, true);
  }
}
this.midclick = function() {
var paste = readFromClipboard();
    getBrowser (). selectedTab = getBrowser (). addTab ( paste );
};
this.rightclick = function (event) {
  gURLBar.select();
  goDoCommand("cmd_paste");
  gURLBar.handleCommand();
}
this.leftclick = function (event) {
  gURLBar.select();
  gURLBar.handleCommand();
}

this.setAttribute("onclick", "custombuttons.gQuot.mHandler(event, this)");
this.setAttribute("onmouseover", "this.tooltipText = readFromClipboard() ? readFromClipboard() : this.label;");

Отсутствует

 

Board footer

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