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

На IRC-канале #mozilla-ru можно получить техническую консультацию онлайн и, конечно же, порцию общения.

№122-11-2009 13:29:00

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

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

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



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

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

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


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

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

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



Важно!
На Firefox51 и выше последняя версия Custom Buttons :: Add-ons for Firefox не работает, но можно сделать это Как отключить проверку цифровых подписей в дополнениях Firefox и установить исправлений https://yadi.sk/d/ospDu9Wp3KKoBA
Или можно удалить или отключить установленый Custom Buttons и установить от сюда подписаную версию Custom Buttons: Custom Buttons • View topic - [Signed fixed extension attached] CB broken on Firefox 48+ или от сюда: custom_buttons-0.0.5.8.9-fixed5-signed.xpi или от сюда: 19-09-2017 13:46:15

Выделить код

Код:

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

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

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

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

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

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

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

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

Отсутствует

 

№12707-03-2014 00:39:31

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

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

Переключить JavaScript для сайтов( Firefox17+ ) от 12.06.2016.
Выключает или включает JavaScript для сайтов и чтобы изменения вступили в силу обновляет текущую страницу или все вкладки текущего сайта если кликнуть на всплывающей подсказке с запросом, подсказка появляется после нажатия кнопки. Список сайтов для которых JavaScript отключены хранится в вкладке 'Справка' кнопки и его можно редактировать в ручную. На страницах с отключенным JavaScript соответственно меняется иконка кнопки. По не известным причинам кнопка не работает с всеми исправленными версиями Custom Buttons 0.0.5.8.9, но можно попробовать эту Яндекс.Диск

ЛКМ => Переключить JavaScript для сайта.

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


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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20JavaScript%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u043E%u0432%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRfQAU0X0AhNF9AKPRfQC20X0AydF9ANrRfQDr0X0A+tF6AP/UfwD/1n0A/9uMFv/RfQDZ0X0ANP///wD///8A1oEAaOCaKP/twHv/8sqR//fZqP/34sH//OvU///05v//+/D///36///ox///7tb/46VJ/9aBAG////8A////ANuHAInorU/////////////////////////++v//+/D///Xm///z5v//qC7//+TC/+u2Z//bhwCL////AP///wDejQBX3o0A9uiTAP//pyT//5sF//+ZAP//lQD//5UA//+VAP//mQD//5UA///drf/yxHn/3o0Anv///wD///8A45AAFOOQAKv3t0///+3R//+3Uv//xGb//8p1///Shf//2o///9uU///go///9Nv/9dad/+OQALP///8A////AP///wDolwAo7ZoA////////2I///9KF///Siv//0or//9iP///Siv//0o///+TC//riuf/olwDK////AP///wD///8A7Z4AHvKdAP///PX//9aK///Uiv//1or//9KP///Wj///1o///9SP///hrf/88tT/7Z4A5P///wD///8A////APWnAAn1pwD///vw///Wj///2Ir//9iK///Uiv//2Ir//9iK///Wj///257///vw//WnAPv1pwAB////AP///wD///8A+qsA+f/25v//2pn//9aF///Shf//0Ir//9SP///Wj///1pT//9iZ///69f/6qwD/+qsAD////wD///8A////AP+yANr/68L//+Ct///Uhf//1IX//9CF///Uiv//1Ir//9aU///amf//+/X//64A//+yABL///8A////AP///wD/sgC7/92Z///rzP//0Ir//9SP///YlP//2pn//92e///co///4aj///36//+dAP//sgDx/7IARf///wD///8A/7cApP/UgP//8eD//9ue///bnv//3Kj//+Ct///nsv//5Lj//+S9//7/+v//oRT//+Ce//+3AOX///8A////AP+3AJL/z2b///v1///irf//5bL//+O9///owv//7Mf//+7M///tzP///////5UA///69f//wzj/////AP///wD/twCE/8tS////////7cz//+vR///t2///8+D///jm//z58v//+vX////////78P//2pT//7cA6v///wD///8A/7sAbf/CM/////////////////////////nr///02///78L//+Wy///gnv//02v//7sA7f+7AF3///8A////AP+7ADb/uwDG/74a//+4Bf//twD//7sA//+7APD/uwDj/7sAz/+7AMz/uwC7/7sAqP+7AEv/uwAFAAOsQQADrEEAA6xBAAOsQQADrEGAA6xBgAOsQYABrEHAAaxBwAGsQcAArEHAAKxBwACsQcAArEHAAKxBwACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20var%20scriptEnabled%20%3D%20gBrowser.docShell.allowJavascript%3B%20//%20%u0442%u0435%u043A%u0443%u0449%u0435%u0435%20%u0441%u043E%u0441%u0442%u043E%u044F%u043D%u0438%u0435%20JavaScript%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%0A%20%20%20var%20currHost%20%3D%20content.document.domain%3B%0A%20%20%20if%20%28%20%21currHost%20%29%20return%3B%0A%0A%20%20%20saveTextToHelp%28currHost%2C%20scriptEnabled%29%3B%0A%20%20%20tabsReload%28false%2C%20currHost%2C%20%21scriptEnabled%29%3B%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043B%u0443%u0447%u0430%u0435%u043C%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%27%u0421%u043F%u0440%u0430%u0432%u043A%u0430%27%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u0441%20%u0434%u043E%u043C%u0435%u043D%u0430%u043C%u0438%20..............%0Avar%20hosts%20%3D%20self.getAttribute%28%27Help%27%29.split%28%27%5Cn%27%29.filter%28%28host%29%3D%3E%20/%5CS/.test%28host%29%29.map%28%28host%29%3D%3E%20host.trim%28%29%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%u0438%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20JavaScript%20%u0434%u043B%u044F%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0438%u043B%u0438%20%u0432%u043A%u043B%u0430%u0434%u043E%u043A%20%u0441%u0430%u0439%u0442%u0430%20%u0438%u043B%u0438%20%u0432%u0441%u0435%u0445%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0438%u0437%20%u043C%u0430%u0441%u0441%u0438%u0432%u0430%20..............%20%0Afunction%20tabsReload%28%20reason%2C%20currHost%2C%20scriptEnabled%20%29%20%7B%0A%20%20%20if%20%28%20reason%20%3D%3D%20%27destructor%27%20%29%20return%3B%0A%20%20%20if%20%28%20reason%20%29%20scriptEnabled%20%3D%20reason%20%21%3D%20%27update%27%3B%0A%0A%20%20%20//%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0435%u0441%u043B%u0438%20%u043B%u0435%u0432%u044B%u0439%20%u043A%u043B%u0438%u043A%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0435%0A%20%20%20if%20%28%20%21reason%20%29%20%7B%0A%20%20%20%20%20%20%20%20gBrowser.docShell.allowJavascript%20%3D%20scriptEnabled%3B%20%0A%20%20%20%20%20%20%20%20BrowserReload%28%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%0A%20%20%20//%20%u0421%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20....%0A%20%20%20var%20notification%20%20%3D%20reason%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20%27%u041F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%27%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20%27%u041F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0441%u0430%u0439%u0442%u0430%27%3B%20%0A%20%20%20var%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%0A%20%20%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%20notification%2C%20true%2C%20%22%22%2C%20listener%2C%20%22%22%29%3B%0A%20%20%20%0A%20%20%20//%20%u0441%u0442%u0438%u043B%u044C%20%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0439%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0438%0A%20%20%20var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%20%20%20%23alertImage%20%7B%20height%3A%2035px%20%21important%3B%20width%3A%2035px%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%23alertNotification%3Ahover%20%7B%20cursor%3A%20pointer%20%21important%3B%20%7D%5C%0A%20%20%20%20%20%20%23alertTextLabel%20%7B%20color%3A%20%230000FF%20%21important%3B%20text-decoration%3A%20underline%3B%20%7D%5C%0A%20%20%20%27%29%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%20%20%20%0A%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0441%u0442%u0438%u043B%u044C%20%u0438%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0443%20%u0447%u0435%u0440%u0435%u0437%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u043E%u0435%20%u0432%u0440%u0435%u043C%u044F%0A%20%20%20setTimeout%28%28%29%3D%3E%20%7B%20sss.unregisterSheet%28uri%2C%200%29%3B%20alertsService.closeAlert%28%29%3B%20%7D%2C%204000%29%3B%20%0A%20%20%20%20%0A%20%20%20//%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0441%u0430%u0439%u0442%u0430%20%u0438%u043B%u0438%20%u0432%u0441%u0435%u0445%20%u0441%u0430%u0439%u0442%u043E%u0432%20%u0438%u0437%20%u043C%u0430%u0441%u0441%u0438%u0432%u0430%20%u0435%u0441%u043B%u0438%20%u043A%u043B%u0438%u043A%u043D%u0443%u0442%u044C%20%u043D%u0430%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0435%0A%20%20%20function%20listener%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20if%20%28%20topic%20%21%3D%3D%20%27alertclickcallback%27%20%29%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20currTab%20%3D%20gBrowser.mCurrentTab%3B%0A%20%20%20%20%20%20for%28%20var%20tab%20of%20gBrowser.tabs%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20uri%20%3D%20tab.linkedBrowser.currentURI%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20%21uri.scheme.startsWith%28%22http%22%29%20%29%20continue%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20var%20tabHost%20%3D%20tab.linkedBrowser.contentDocument.location.host%3B%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20tabHost%20%3D%3D%20%27%27%20%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20var%20tabReload%20%3D%20reason%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20hosts.indexOf%28tabHost%29%20%21%3D%3D%20-1%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20tab%20%21%3D%3D%20currTab%20%26%26%20tabHost%20%3D%3D%20currHost%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20tabReload%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tab.linkedBrowser.docShell.allowJavascript%20%3D%20scriptEnabled%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20gBrowser.reloadTab%28tab%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%0A%7D%3B%0AaddDestructor%28tabsReload%29%3B%0A%0A%0A//%20%u0417%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%27%u0421%u043F%u0440%u0430%u0432%u043A%u0430%27%20..............%0Afunction%20saveTextToHelp%28currHost%2C%20addHost%29%20%7B%0A%20%20%20//%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20%u0438%u043B%u0438%20%u0434%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u0441%u0430%u0439%u0442%20%u0432%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u0441%20%u0434%u043E%u043C%u0435%u043D%u0430%u043C%u0438%0A%20%20%20addHost%0A%20%20%20%3F%20hosts.push%28currHost%29%20%20%20%20%20%0A%20%20%20%3A%20hosts%20%3D%20hosts.filter%28%28host%29%3D%3E%20%7B%20return%20%28host%20%21%3D%3D%20currHost%29%20%7D%29%20%20%20%0A%20%20%20var%20value%20%3D%20hosts.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20//%20%u0437%u0430%u043F%u0438%u0441%u0430%u0442%u044C%20%u043C%u0430%u0441%u0441%u0438%u0432%0A%20%20%20var%20dir%20%3D%20Services.dirsvc.get%28%22ProfD%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20dir.initWithPath%28dir.path%20+%20%22%5C%5Cextensions%5C%5Ccustombuttons@xsms.org%5C%5Ccomponents%5C%5CCustomButtonsService.js%22%29%3B%0A%20%20%20var%20url%20%3D%20Services.io.newFileURI%28dir%29.spec%2C%20cbs%20%3D%20%7B%7D%3B%0A%20%20%20Services.scriptloader.loadSubScript%28url%2C%20cbs%29%3B%0A%20%20%20var%20AO%20%3D%20new%20cbs.AppObject%28%29%2C%20btn%20%3D%20AO.getButton%28_id%29%3B%0A%0A%20%20%20self.setAttribute%28%22Help%22%2C%20value%29%3B%0A%20%20%20btn.setAttribute%28%22Help%22%2C%20value%29%3B%0A%20%20%20AO.overlay.saveOverlayToProfile%28%29%3B%20%20%20%0A%7D%3B%0A%0A%0A//%20%u041E%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0441%u043B%u0435%u0434%u0438%u0442%20%u0437%u0430%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u043C%u0438%20%u0442%u0430%u0431%u043E%u0432%20%u0438%20%u0437%u0430%u043F%u0443%u0441%u043A%u0430%u044E%u0442%20%u043D%u0443%u0436%u043D%u044B%u0435%20%u043A%u043E%u0434%u044B%20%u0438%20%u0444%u0443%u043D%u043A%u0446%u0438%u0438%20..............%0AaddEventListener%28%22TabAttrModified%22%2C%20e%3D%3E%20%7B%0A%20%20%20var%20browser%20%3D%20e.target.linkedBrowser%3B%20%20%20%0A%0A%20%20%20//%20%u043E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20JavaScript%20%u0434%u043B%u044F%20%u0441%u0430%u0439%u0442%u0430%20%u0435%u0441%u043B%u0438%20%u0434%u043E%u043C%u0435%u043D%20%u0441%u0430%u0439%u0442%u0430%20%u0441%u043E%u0432%u043F%u0430%u0434%u0430%u0435%u0442%20%u0441%20%u043C%u0430%u0441%u0441%u0438%u0432%u043E%u043C%20%27hosts%27%0A%20%20%20var%20specifiedSite%20%3D%20hosts.indexOf%28%20browser.contentDocument.location.host%20%29%20%21%3D%3D%20-1%3B%20%0A%20%20%20browser.docShell.allowJavascript%20%3D%20%21specifiedSite%3B%0A%0A%20%20%20//%20%u0435%u0441%u043B%u0438%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u043E%u0442%u043A%u043B%u044E%u0447%u0435%u043D%20JavaScript%20%u043C%u0435%u043D%u044F%u0435%u043C%20%u0438%u043A%u043E%u043D%u043A%u0443%0A%20%20%20if%20%28%20browser%20%3D%3D%20gBrowser.selectedBrowser%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20self.style.filter%20%3D%20specifiedSite%20%7C%7C%20%21cbu.getPrefs%28%22javascript.enabled%22%29%20%3F%20grayscale%20%3A%20%27%27%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%0A%7D%2C%20true%2C%20gBrowser.tabContainer%29%3B%0Avar%20grayscale%20%3D%20parseInt%28Services.appinfo.version%29%20%3C%2036%20%3F%20%27url%28%22chrome%3A//mozapps/skin/extensions/extensions.svg%23greyscale%22%29%27%20%3A%20%27grayscale%281%29%27%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bru.wikipedia.org%0Awww.pinterest.com%0Awebcache.googleusercontent.com%0Aweb.archive.org%0Adeveloper.mozilla.org%0Agithub.com%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано bunda1 (08-03-2014 13:51:22)

Отсутствует

 

№12803-04-2014 02:17:04

lex0kz
Сделал модель для генерации сборки
 
Группа: Members
Зарегистрирован: 01-07-2011
Сообщений: 18
UA: Palemoon 24.0

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

Xdebug  ( Firefox ) rev 1
Переключатель отладки в Xdebug.
Для смены идентификатора, нужно нажать СКМ по иконке.

скрытый текст
Код кнопки:
Инициализация:


Добавлено 03-04-2014 02:26:11
Короткая ссылка goo.gl  ( Firefox )
Копирует в буфер, короткую ссылку на текущую страницу.

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ExDebug%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjA4RjhBNDRCOEYyMTFFM0EyQkZGMUI5QTM4MUNEQTgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjA4RjhBNDVCOEYyMTFFM0EyQkZGMUI5QTM4MUNEQTgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCMDhGOEE0MkI4RjIxMUUzQTJCRkYxQjlBMzgxQ0RBOCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCMDhGOEE0M0I4RjIxMUUzQTJCRkYxQjlBMzgxQ0RBOCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PifrerwAAANsSURBVHjadFNdSBtZFD4z+anRoFGpjMEtbv1trTHRTgpu7cYtzUOQtQ0IBUntSxFkfVhsZBdctkofWmwfLII+LGUtFtmAPqQuW5ZsVazB1ZjWEhWMWP8inXSC5j8zyWR6Z1pd2O6ey5mBe+855/u+cy7wPA//5YlEAjObzQ9KSkpmJyYmzv/fPfETjUZhY2PjeJNlWbBarZaqqipGq9Xy9fX1zrm5ueyj80gkAuvr6/8k6OnpuWE0Gh8IBz6fT9bS0tJXWVkZq6ur4wXXaDS8Tqd7NTw8XCPct9ls1eXl5eNerzcbB2QUReWtrq5e393dheXlZZ3L5fopKytLAZ9MJpMJlLSTk5N3BbQOh+MCKmY4ODhIiwmam5vdGIad9Pv9eU6nExcC/m0KhQJ8u77sra0tCIVCF8hacr3mbE1ETIC4vlapVPtDQ0MPTSaTmyCIIY7jDtPpNLBxFpg4w8RiMY+h2fADgl05Pzffpj6nfkLJKMBEIZD19vZeHhkZ+V2tVi8g5Qf0en0iV5VbUFBacCfJJ52j9tHRtdk1HRtgv1NkKRYv3r94NfNUJnecQLDW1tZ+t9t9OyMjAxiG2bvSeCV66f6lcipIQaGvEJt6PAXTL6bDGqvmy9JvSwOpaAqkFovlMYqtlkgksL+//4XAFcdFZkV8modAOACL/kXIU+UB+TMJmsuaEwt/L9gdHQ4WNTUqRQicSEAKCceg/2kUaDlChAH2PpqKnoykIsCGWXgWegaElpDrz+jra1/W0lMzU78eU0DQJZ2dnf3hcPh7uVwOSDQwGox7udbcomnfNCgkH7vK8Rwk0CIJEsyE+Z6IFbWuqK2tzZVKpa7l5OTMJpPJYxChZAhohoYAEwB/wg87sR3Il+dDWbAs5tnxvJYuLS1Jurq6HiHe2ODgoFYo0t7e/jwYDH6FAy4VE7C0OLEqmQo6yjpCBEX8NXZ7zLBSuuLFaZouQxPViMb3R5Ikg8gjAwMDVysqKn6Jx+NhP+MHKkGBiTDBU/LpnwjB190r3Wbve++OPCi/IUUVpejxzDc1Na0d4W5oaKDtdvut7bfb39hw2x+N1Y0bSomy76br5m8e2gNQAFBcVDzJhTkOQ9Vhc3PzBHocjFKp/GyEx33j594cvtmbCcwc4hguisljPGS+y5SiNsIHAQYAli7a8dHB0UkAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20trim%20%3D%20function%28text%29%7B%0A%09if%20%28typeof%20text%20%21%3D%20%27string%27%29%20%7B%0A%09%09return%20text%3B%0A%09%7D%0A%09return%20text.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%27%27%29%3B%0A%7D%3B%0A%0Avar%20xdebug%20%3D%20%7B%0A%09init%3A%20function%28button%29%20%7B%0A%09%09xdebug.button%20%20%20%3D%20button%3B%0A%09%09xdebug.start%20%20%20%20%3D%20xdebug.button.image%3B%0A%09%09xdebug.stop%20%20%20%20%20%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjcyQ0RFRDBCOEYyMTFFMzg0Nzk4OTc2QUI3RkQ1MEQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjcyQ0RFRDFCOEYyMTFFMzg0Nzk4OTc2QUI3RkQ1MEQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCNzJDREVDRUI4RjIxMUUzODQ3OTg5NzZBQjdGRDUwRCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCNzJDREVDRkI4RjIxMUUzODQ3OTg5NzZBQjdGRDUwRCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqR9GwoAAALrSURBVHjajFNfSFNRGP/u3d10bagsBFlKzJFORNtSEVdCEfgggiVsCroGQfgQPplgtB4Me9IeFsJ8kMjwRSMfhlEP+lDLkTlXE7IxZRuKi9lgjs25e/Xe23dWOimDfvBt95zznd/3+/4cEEURTrNMJkN1dHSMarVa1+zsbP2//LI/e3t7sLGxcbzJcRwMDAxYqqurWb1eLxqNRvfi4mLB0XkqlYJAIJAjsNlst1paWkbJwfb2ttRkMj3S6XTpuro6kVhtba1oMBg+j4+PXyT+MzMzNRUVFa/W19cLaEBEo1HV2tpa19bWFvh8PoPH43moUCjk8BtSqZSkpJ+bmxsmaufn5xsx2NV4PC5kCdrb270URRXv7Oyo3G43TS78CblcDpubmwXhcBiSyWQjKgpUVVWlsgSY65eioqKIw+F40tra6i0pKXHwPB8/cV9gWfar2WweRNk6l8tlbWhoeKFUKoHKFgIxNDR0fXJy8rVarf6Elbc3NTVxGE34sLREmzo7z0QikcTy8nJ9KBS6q1Kp3r2cnu4qLyvLERB0d3ePeL3ee/n5+SAIQuS8RvN9sKdHyOO4YqDp0oODA4amKDirUi1p9foYqNW3GYvF8gzv1kgkEsAoZSRXmqYBJavPaTRq4+4ugNsNgKTHSKcbsY/wmOOcDCpwYwGjWDgW/8vx2HKcOM//QOdiIZMh/c4R4JwQJQgPMzU1NUG+ULqkr69v5PDwEGQy2S9HimIB1yLLku8cAa6FZBIe2GzPs13A1pVarVYPXr5ZWFjowlyPXCkSTUQFfxnuI/KYlZUVSX9//1PMmxobG9PjJt/b2/s2kUhcxqgMINlpCsj+m4UFBR2LxS7gRF3D8b2PvU2gpex2+43KysqJ9P5+Ch8KiPE4iIlEznDN8DxEotErDPIx+Hg+trW1fTsK0NzcHHM6nXeC4fAlLMgwYzaT1pwYKwHe+3zKkN+/T2F0CAaDefg4WDJZ/4tVvx9koij9KcAAdtiwKOd2K98AAAAASUVORK5CYII%3D%27%3B%0A%09%09xdebug.disabled%20%3D%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDoxMDc1OUYwQUYwQjhFMzExQkQ0N0U0RURENEE2OUZFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDOUM2RDMwMUI5MjQxMUUzOEIwNUYwMzNDNjhENjMxMyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDOUM2RDMwMEI5MjQxMUUzOEIwNUYwMzNDNjhENjMxMyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdFQTFFMEQzMjNCOUUzMTFCODlFQUIwODMyNzQ0MzY1IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjEwNzU5RjBBRjBCOEUzMTFCRDQ3RTRFREQ0QTY5RkVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+3SsfLQAAAwBJREFUeNqMU11ImmEUfr9PP3+yUphNZ4PKoBYGGSMQuojJ5jYJHFF5kVswiFgUXXQXdNFNEXSxIJAug8C66aZoDbxa4C5KzRvBlVqpuVozTC3Nvz2vzAaxwQ4c3vN95z0/z3POS4rFIvmbptNp0tPTY2hsbBxaX19X/eseSyDX19fE7/eTsmSzWTI1NdXm8/k6q6qq6ufn5187HA5h2Z9KpcjBwUHJLiWYnZ1tGxkZMVDH6ekpOzAw8GxjY+ONSCRieDxeNplM1o+Ojr5fWlpS0vtbW1sPu7u7zYeHh8JSgrOzM7HX620NhULE4/E82tvbey6RSPhwFaif47g8IDVsbm7qaRG73f6YJr28vCyWEphMpijDMJLz83MxWmUQQIOL5I8wYrGYnJycCI+Ojkgikahtb2//2dLScltKoNFovstksoTVan1pNBqjSqXySz6fT8PFg5Y6yWQyof7+fjuwy3d2drQdHR2eyspKwlAmqUxPT6uXl5ffqlSqMJj/qtPpcuFwmOzu7jK9vb1cNBpNw64NBoOdFRUVR2tra6tqtbpwl4AKyDO4XC4DyMuAvBhgpaCkUCiI4K7GdCTQ+OLi4ke9Xn9dwmaxWEw4FQggx8fH0ng8XsmybBGBAhAXAVleuVz+AoWyNADJ8k1NTT/AE62cYuEIwQjgxzcE+cujpYuk1WrDgOaGffu7SepLoJgXSu8G+SsrKy7qQevM2NjYq1wuxwkEgjxOAjLzXV1dLPakIBQKKaEslo5fV1fnn5mZCd8tEkZXPTg4+AFBT6RSqQ84OYod3wzdUmrTiWASyYaGhgiKDo2Pj+tol3yn08lMTEwYgZsFOVZczA8PD78DF63lAsDNxWIxBvvyaXJych8dPbXZbKaampoIe3Fx8QAbVd/X1/cZs01DswsLC7bm5mbHzc1NBt2wwBsB2atzc3P7CCKo7lQoFFFsroZsb28r0JbF7XbL7r9GPCbR1dUVh5O7/wrNZrOevhkG1UkgEOBjNDm6Wf8rSMpSbn4JMAD2UrKpGLdeUwAAAABJRU5ErkJggg%3D%3D%27%3B%0A%0A%09%09xdebug.set_id%28%29%3B%0A%09%09xdebug.update_icon%28%29%3B%0A%09%7D%2C%0A%09check_status%3A%20function%28%29%20%7B%0A%09%09return%20%21%21%28cookie_exists%20%3D%20new%20RegExp%28%27%28%5E%7C%3B%29%5C%5Cs*XDEBUG_SESSION%5C%5Cs*%3D%5C%5Cs*%28%5B%5E%5C%5Cs%3B%5D+%29%27%2C%20%27g%27%29.exec%28content.document.cookie%29%29%3B%0A%09%7D%2C%0A%09update_icon%3A%20function%28hide_notify%29%7B%0A%09%09var%20icon_image%20%3D%20xdebug.start%3B%0A%09%09var%20icon_title%20%3D%20%27Start%20Debug%27%3B%0A%09%09var%20notify_msg%20%3D%20%27Debug%20stopped%27%3B%0A%0A%09%09if%20%28%20%21content.window.location.protocol.startsWith%28%22http%22%29%20%29%20%7B%0A%09%09%09icon_image%20%3D%20xdebug.disabled%3B%0A%09%09%09icon_title%20%3D%20%27%27%3B%0A%09%09%7D%0A%09%09else%20if%20%28xdebug.check_status%28%29%29%20%7B%0A%09%09%09icon_image%20%3D%20xdebug.stop%3B%0A%09%09%09icon_title%20%3D%20%27Stop%20Debug%27%3B%0A%09%09%09notify_msg%20%3D%20%27Debug%20started%27%3B%0A%09%09%7D%0A%0A%09%09xdebug.button.image%20%20%20%20%20%20%20%3D%20icon_image%3B%0A%09%09xdebug.button.tooltipText%20%3D%20icon_title%3B%0A%0A%09%09if%20%28%21hide_notify%29%20%7B%0A%09%09%09try%20%7B%0A%09%09%09%09Components.classes%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Components.interfaces.nsIAlertsService%29%0A%09%09%09%09%09.showAlertNotification%28%22chrome%3A//global/skin/icons/information-16.png%22%2C%20%22Xdebug%22%2C%20notify_msg%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%09%09%09%7D%20catch%20%28e%29%20%7B%7D%0A%09%09%7D%0A%09%7D%2C%0A%09change_status%3A%20function%28%29%20%7B%0A%09%09var%20status%20%3D%20%21xdebug.check_status%28%29%3B%0A%0A%09%09if%20%28status%29%20%7B%0A%09%09%09content.document.cookie%20%3D%20%5B%0A%09%09%09%09%27XDEBUG_SESSION%3D%27%20+%20escape%28custombuttons.getPrefs%28%27xdebug.session_id%27%29%29%2C%0A%09%09%09%09%27path%3D/%27%2C%0A%09%09%09%09%27domain%3D.%27+%20content.window.location.hostname%20+%27%3B%27%0A%09%09%09%5D.join%28%27%3B%20%27%29%3B%0A%09%09%7D%0A%09%09else%20%7B%0A%09%09%09content.document.cookie%20%3D%20%5B%0A%09%09%09%09%27XDEBUG_SESSION%3D%27%20+%20escape%28custombuttons.getPrefs%28%27xdebug.session_id%27%29%29%2C%0A%09%09%09%09%27expires%3DMon%2C%2005%20Jul%202000%2000%3A00%3A00%20GMT%27%2C%0A%09%09%09%09%27path%3D/%27%2C%0A%09%09%09%09%27domain%3D.%27+%20content.window.location.hostname%20+%27%3B%27%0A%09%09%09%5D.join%28%27%3B%20%27%29%3B%0A%09%09%7D%0A%0A%09%09xdebug.update_icon%28%29%3B%0A%09%7D%2C%0A%09set_id%3A%20function%28id%29%20%7B%0A%09%09id%20%3D%20trim%28id%29%3B%0A%09%09%0A%09%09if%20%28typeof%20id%20%21%3D%20%27string%27%20%7C%7C%20%21id%29%20%7B%0A%09%09%09id%20%3D%20%27PHPSTORM%27%3B%0A%09%09%7D%0A%09%09custombuttons.setPrefs%28%27xdebug.session_id%27%2C%20id%29%3B%0A%09%7D%0A%7D%0A%0Axdebug.init%28this%29%3B%0A%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%09if%20%28e.button%20%3D%3D%200%29%20%7B%0A%09%09if%20%28%20content.window.location.protocol.startsWith%28%22http%22%29%20%29%20%7B%0A%09%09%09xdebug.change_status%28%29%3B%0A%09%09%7D%0A%09%7D%0A%09else%20if%20%28e.button%20%3D%3D%201%29%20%7B%0A%09%09var%20prompt_val%20%3D%20custombuttons.promptBox%28%27%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%27%2C%20%27%u041D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20IDE%20key%20%28session%20id%29%3A%27%2C%20custombuttons.getPrefs%28%27xdebug.session_id%27%29%29%3B%0A%0A%09%09xdebug.set_id%28prompt_val%5B1%5D%29%3B%0A%0A%09%09if%20%28%20content.window.location.protocol.startsWith%28%22http%22%29%20%29%20%7B%0A%09%09%09if%20%28%20xdebug.check_status%28%29%20%29%20%7B%0A%09%09%09%09content.document.cookie%20%3D%20%27XDEBUG_SESSION%3D%27%20+%20custombuttons.getPrefs%28%27xdebug.session_id%27%29%20+%20%27%3B%27%3B%0A%09%09%09%7D%0A%09%09%7D%0A%0A%09%09xdebug.update_icon%28true%29%3B%0A%09%7D%0A%7D%0A%0Avar%20main%20%3D%20%7B%0A%09onStateChange%3A%20function%28aWebProgress%2C%20aRequest%2C%20aFlag%29%20%7B%0A%09%09if%20%28%20aFlag%20%26%26%20Ci.nsIWebProgressListener.STATE_STOP%20%29%20%7B%0A%09%09%09xdebug.update_icon%28true%29%3B%0A%09%09%7D%0A%09%7D%2C%0A%09onLocationChange%3A%20function%28aWebProgress%2C%20aRequest%29%20%7B%0A%09%09if%20%28%20aRequest%20%29%20return%3B%0A%09%09if%20%28%20aWebProgress.DOMWindow.document.readyState%20%21%3D%3D%20%27complete%27%20%29%20return%3B%0A%0A%09%09xdebug.update_icon%28true%29%3B%0A%09%7D%0A%7D%3B%0A%0AgBrowser.addProgressListener%28%20main%20%29%3B%0AaddDestructor%28function%28%29%20%7B%20gBrowser.removeProgressListener%28%20main%20%29%20%7D%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u0417%u0430%u043F%u0443%u0441%u043A%u0430%u0435%u043C%20%u043E%u0442%u043B%u0430%u0434%u043A%u0443%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано lex0kz (03-04-2014 02:27:05)

Отсутствует

 

№12909-05-2014 09:32:36

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

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

Удалено         —  Вставка символа или Запуск таблицы символов Windows (Firefox)  от 10.05.2014
Заменено на   —  Insert special symbol(Firefox) All the versions

Left             — Вставка символа из списка
Middle         —  NONE
Right           — Запуск таблицы символов Windows
Shift+Right  — Редактировать кнопку

Отредактировано Indomito (11-06-2014 11:43:07)


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

Отсутствует

 

№13018-05-2014 17:42:37

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

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

Page Navigation(Firefox) Работает в FF29 и выше  - это замена кнопки UpDownCenterPage

Left/Right                   ―   Вниз/Вверх по странице
DLeft                          ―   В начало/конец страницы
DRight                        ―   Центрирование страницы
Модификатор+Right ―   Меню настройки кнопки

скрытый текст
Код кнопкиИнициализация

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EPage%20Navigation%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAADAAAAAYCAYAAAC8/X7cAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAOwwAADsMBx2+oZAAAAB90RVh0U29mdHdhcmUAUGFpbnQuTkVUID8/Pz8/PyAzLjUuNefKA2EAAAXQSURBVFhHxZhnjBRlGMc5Nd7Olttd6sHRy90iJXwAlCqoiRLvRCkiLYiAHgiolFNEsGABNRDhQEQFNJbQDCC2QJTDAlyFgDEhYoklwkc/0eLr77/Me5mse7ez+8VN/pmZd2ae9/k/fTavRRa/GwOBPB7vDf4Gfx6/cOGfLF7/fx+V8mDECMf5HuzmPJGrRrwbAL0G5+cPGpQBPNOPZ2Pgmlz3a2GVH+o4NWtbtzZL4vGLwwKBTyQ4F6G8VzzacXaMD4fPTwmHz6XDZNYncX9MMFg9MhC4U6Rz2Sup/E2BQNkdodCZyvbtzamBA011375mJUREAguVZGMd1xh97guHD61Dxhtt2phNqWjb1mwCr4NHY7GfyoLBCezjZE3AWn4Mym/o0MHU9OtnToCT/fub2t69TQWeIJz2INx3OFkCWPfg6latzEtglYvnOFpoTfcXRKNnx4ZCE3gvOwJW+WGEzWYsX43CDSUljTiRSJive/Uyj2cZTpbAvRB4HgWfbdnSPAWWe6DrFWAVeDgXAtpkCGFTiuW3tGtnGoqLTX23bmlR06NH0oLDfYaTJTABAitRcFk8bpbGYmaJC50LFWAF98oLCs7elY0HrOV56cxmYvDbrl3NsY4dzXEX1RyrO3UyOmr9aOfO5jjXT+KJm6+GU0lzsWoJjAuFDkr5RSi6AMz3QNcLXRJzIFDml4BV/hbC5m2UP4yCXxUVJXEYVLk44l5rzd7/knPcfnGk4zRbnSyBeyAgKy+MRs28NJjLmsjN9ktAgoc7ThmuPbMF5T8lafcR+/s56rwpHODexwLPHoTEK1SWW6+SSOsJLwGFynwULXchpb14jPuz/BBQGVSTkvKvocCHhYXmPWJfxx1gN9jjBcrqWuu7wF6udb4T7Od8cSwmT+xJF0qpHpCVFf8KJ4HKZqS4vEIJNQ/4JDAKwXWUKzHWS0lI2LsQ2YZH3uGocy+2c61QUz2fGomYqeGwoSmZiYDyerGpXGCvG2hiXzxDEquMCmuQ8TJY414/7Sb4rEjkx9JgcNzg5sqo2jqYDu53MYMXKqjVv6ylyawHlSnYwLWwEaiakLxVnvclZyboCopUw93rpHyeXTY2GDz1AspKrpXl3UN7rgNzCwrOEZLr0WeOK0NypatmsqZ/iuEpkUjdE3hBdflFWQnISklLAVlOzUY1m+ffUiimStQa3igc5TiX5Bl5SJ5SiGxAxlY8KE96PStvy+vbgXrBQ56oIPkNJf4kcsdkIpCYHIk0LFUtZrNHFKtunNp4VawqfkUSgVvBtekIkA/x24PBz1bG45f2urmiHPrIzaH/5JibX8opm48fQGojhKdHIj9TrsvY63pfBJQHqgyymLdC2MqhRGuOgDZhs+todEPHh0JHFHKfu1VL1UtVrKkKp/uqhAeAvEFe/ko4zWQGyzxWsGmCEGpgVGgkkK5eywvySFMesFZSKLFxfwrFN0y0l9U3vD3G22e8/UXPyPqE3g+8P0n55GuoswSWo5y6opDaMZPdUjnig4A2JXnzhwYCt9GFqyjXl4/RwY8CdfRkh/d0fK19R5d/H+tTGX+nuaoAhH0p77o9MQ0PaNhSxxTsnKK4t+dKYJXDTB6wG0MiOCQ/v5RhruZNYry2e/f0c1bPnmY3JB6MRv9A+UWM9C19K28JkDANqjRSUkidGrWmUqip0i8BmxN4YjQ5UVtZWHj5GMOid9KtZdLd1aWLmcEkSsUpR3Y8K+W9BF4l873zuj23R40OKqXZEHDDKQyJifSa6i1FRVfq+/RJfmvUgZ14pTwe/wvLL0Zuq6yVdzdI0F1PaCLV11EjUr6e1InVE9hoW7oy2kw3ziOcooTT9GkFBae3E+/1AwaYfXxjzIvHz6P8KjXBnJR3PdADIYf0XdrUd6vWIXnubp5hs7XpGlkmBVTP5Qm+gU+Tb1cYn38jbJaxXpjp3Ux9IF/t2s8/Bzw3CHTOdUPFOCVyNh27iqMs38GvrH8BacmTJWPuc6oAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20code*/%0A%0A//this.tooltipText%20%3D%20%22Left%20%20%20%20%3D%3E%20%u0412%u0432%u0435%u0440%u0445/%u0412%u043D%u0438%u0437%20%u043F%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%5CnDLeft%20%3D%3E%20%u0426%u0435%u043D%u0442%u0440%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%22%3B%0Athis.tooltipText%20%3D%20%0A%22Left/Right%20%20%20%20%u2015%20%20%20%u0412%u043D%u0438%u0437/%u0412%u0432%u0435%u0440%u0445%20%u043F%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%5Cn%22%20+%20%0A%22DLeft%20%20%20%20%20%20%20%20%20%20%20%20%u2015%20%20%20%u0412%20%u043D%u0430%u0447%u0430%u043B%u043E/%u043A%u043E%u043D%u0435%u0446%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%5Cn%22%20+%0A%22DRight%20%20%20%20%20%20%20%20%20%u2015%20%20%20%u0426%u0435%u043D%u0442%u0440%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%22%3B%0A%0A%0Athis.__defineGetter__%28%22scroller%22%2C%20function%28%29%20%7B%0A%20%20%20%20var%20doc%20%3D%20content.document%3B%0A%20%20%20%20var%20root%20%3D%20doc.documentElement%3B%0A%20%20%20%20var%20body%20%3D%20doc.body%20%7C%7C%20root%3B%0A%20%20%20%20return%20body.scrollHeight%20%3E%20root.scrollHeight%20%3F%20body%20%3A%20root%3B%0A%7D%29%3B%0A%0A//%u0412%u043D%u0438%u0437%20%u043F%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0Athis.leftclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20var%20scroller%20%3D%20this.scroller%3B%0A%20%20%20%20content.scrollByPages%281%29%20%20%20%0A%7D%3B%0A%0A%0A//%u0412%u0432%u0435%u0440%u0445%20%u043F%u043E%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0Athis.rightclick%20%3D%20function%28event%29%20%7B%0A%20%20var%20scroller%20%3D%20this.scroller%3B%0A%20%20if%28%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%09event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%20%20content.scrollByPages%28-1%29%3B%0A%20%20%20%20%09%7D%0A%7D%3B%0A%0A//%u0426%u0435%u043D%u0442%u0440%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0Athis.rightDclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20var%20scroller%20%3D%20this.scroller%3B%0A%20%20%20%20content.scrollTo%280%2C%20%28scroller.scrollHeight%20-%20scroller.clientHeight%29/2%29%3B%0A%7D%3B%0A%0A//%u0412%20%u043D%u0430%u0447%u0430%u043B%u043E/%u043A%u043E%u043D%u0435%u0446%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%0Athis.leftDclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20var%20scroller%20%3D%20this.scroller%3B%0A%20%20%20%20if%28scroller.scrollTop%20%3E%20%28scroller.scrollHeight%20-%20scroller.clientHeight%29/2%29%0A%09%20%20content.scrollTo%28scroller.scrollHeight%2C%20%200%29%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20%20%20content.scrollTo%280%2C%20scroller.scrollHeight%29%3B%0A%7D%3B%0A%0Athis.setAttribute%28%27onclick%27%2C%20%27custombuttons.gQuot.mHandler%28event%2C%20this%29%27%29%3B%0Athis.setAttribute%28%27ondblclick%27%2C%20%27custombuttons.gQuot.mHandler%28event%2C%20this%29%27%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано Indomito (20-05-2014 12:52:14)


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

Отсутствует

 

№13127-05-2014 07:09:45

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

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

Insert special symbol(Firefox) All the versions

Indomito  &  difabor - версия от 27.05.2014
За основу взят код  bunda1 - Вставка символа в текстовое поле(Firefox) от 11.05.2013

Left Short                               — Вставка символа из списка
Left Long Or Left+Shift          —  Редактирование списка символов
Middle or Left+Ctrl                 — Возврат к исходному списку символов
(Middle or Left+Ctrl)+Shift     — Мерять длительность клика
Right Short                            — Запуск таблицы символов Windows
Right Long or Right+Shift      — Стандартное Меню Кнопки

Short(быстрый клик ЛКМ‖ПКМ) и Long(Удержание ЛКМ‖ПКМ) определяются значением переменной delay в ms (по умолчанию delay=600)

скрытый текст
Код кнопки:
Код:
Инициализация:


Выделить код

Код:

var delay = 600, array = [], symbList, myID = _id, symbName = myID + ".symbols",mynum=0;

Отредактировано Indomito (27-05-2014 12:25:23)


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

Отсутствует

 

№13211-06-2014 12:07:11

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

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

HideShowTunePanels(Firefox) All the versions

Left              ―   Панель дополнений
DLeft            ―   Панель Status Bar
Left Long      —  Вход в "Настроить..."
Right            ―   Панель меню (папки)
DRight          ―   Вертикальная панель
Right Long    —  Редактировать кнопку

Что бы всё корректно работало надо настроить ID-панелей

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


Две переменные для настройки под себя 
скрытый текст
Код кнопки:
Код:
Инициализация:


P.S. Надоело нажимать на панель...  кнопка написана из за лени, как и всё в этом мире ;)

Выделить код

Код:

//----------Описание индификаторов панелей------------
/*
Что найти ID-панели истользуйте готовую кнопку Attributes Inspector
Автор Infocatcher
https://github.com/Infocatcher/Custom_Buttons/tree/master/Attributes_Inspector
*/

//ID панелей связаных с действиями кликов мыши для корректной работы функции - HideShowPanel(ptId)
var idLeft = "GiT-addon-bar"; //ID для Left
var idDLeft = "status4evar-status-bar"; //ID для DLeft
//ID для Left Long - описание не требуется, без явной замены на другую функцию
var idRight = "toolbar-menubar"; //ID для Right - описание не требуется, без явной замены на другую функцию
var idDRight = "vertical-toolbar"; //ID для DRight
//ID для Right Long - описание не требуется, без явной замены на другую функцию
//----------------------------------------------------

Отредактировано Indomito (11-06-2014 17:04:04)


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

Отсутствует

 

№13303-12-2015 20:36:54

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

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

Ночной режим( Firefox 24+ ) от 11.06.16.
кнопка меняет фон страниц на чёрный, своеобразный ночной режим. Css стиль создающий чёрный стиль находится в вкладке Справка, его можно легко редактировать или полностью поменять. Кнопку можно использовать для быстрого запуска любых других Css стилей. В отличие от похожей кнопки Global dark style использует другой Css стиль и запоминает состояние включенности, можно создать много дубликатов кнопки с разными стилями. Цвета иконки кнопки легко можно изменить в инициализации кнопки строке: img.style.backgroundColor = run.value ? "#131d24" : "#ffeeaa";

ЛКМ => Переключить черный фон страниц.

Код кнопки и инициализации и справки:
Код кнопки:
Инициализация:


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041D%u043E%u0447%u043D%u043E%u0439%20%u0440%u0435%u0436%u0438%u043C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADTXgDt014A7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA014A7dNeAO0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDt014A7dNeAO3TXgDtAACsQX/+rEF//qxBf/6sQX/+rEF//qxBf/6sQX/+rEF//qxBf/6sQX/+rEF//qxBf/6sQX/+rEF//qxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041B%u041A%u041C%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0438%20%u0441%u0442%u0438%u043B%u044C%20..........%0Athis._handleClick%20%3D%28%29%3D%3E%20setStyleForPages%28%20void%28custombuttons.setPrefs%28s%2C%20%21custombuttons.getPrefs%28s%29%29%29%20%29%3B%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0432%20about%3Aconfig%20%u0435%u0441%u043B%u0438%20%u043E%u043D%u0438%20%u043D%u0435%20%u0441%u0443%u0449%u0435%u0441%u0442%u0432%u0443%u0435%u0442%20%u0438%20%u043F%u043E%u043B%u0443%u0447%u0442%u044C%20..........%0Avar%20s%20%3D%20%22CB.%22%20+%20_id.slice%2820%29%20+%20%22.setStyleForPage%22%3B%0Acustombuttons.isPref%28s%2C%20false%29%3B%0A%20%20%20%20%0A%0A//%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043D%u0443%u0436%u043D%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0440%u0438%20%u0441%u0442%u0430%u0440%u0442%u0435%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%20%u0438%u043B%u0438%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%u0445%20%u043D%u0430%u0441%u0442%u0440%u043E%u0435%u043A%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%0Afunction%20toggleImage%28%29%20%7B%0A%20%20%20var%20%5Bimg%5D%20%3D%20document.getAnonymousNodes%28self%29%3B%0A%20%20%20img.style.backgroundColor%20%3D%20custombuttons.getPrefs%28s%29%20%3F%20%22%23131d24%22%20%3A%20%22%23ffeeaa%22%3B%20%20%0A%7D%3B%0AtoggleImage%28%29%3B%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%0A%0A//%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20..........%0Afunction%20setStyleForPages%28reason%29%20%7B%0A%20%20%20if%20%28%20reason%20%3D%3D%20%22destructor%22%20%29%20return%3B%20%0A%0A%20%20%20var%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%20%0A%20%20%20var%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28self.Help%29%29%3B%20%0A%20%20%20%0A%20%20%20try%20%7B%20sss.unregisterSheet%28Services%5B_id%20+%20%22previousUri%22%5D%20%7C%7C%20uri%2C%200%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20Services%5B_id%20+%20%22-previousUri%22%5D%20%3D%20uri%3B%0A%20%20%20%0A%20%20%20custombuttons.getPrefs%28s%29%20%26%26%20%21reason%20%26%26%20sss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%7D%3B%0AaddDestructor%28setStyleForPages%29%3B%0Acustombuttons.getPrefs%28s%29%20%26%26%20setStyleForPages%28%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..........%20%0Athis.tooltipText%20%3D%20self.label%20+%20%22%5Cn%u041B%3A%20%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0447%u0435%u0440%u043D%u044B%u0439%20%u0444%u043E%u043D%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B@-moz-document%20url-prefix%28http%3A//%29%2C%20url-prefix%28https%3A//%29%2C%20url-prefix%28ftp%3A//%29%2C%20url-prefix%28file%3A//%29%2C%20url%28about%3Ablank%29%2C%20url-prefix%28%22about%3Aneterror%22%29%7B%0A%0A/*%20Firefox%20Scrollbars%20*/%0Ascrollbar%20%7Bopacity%3A%20.75%20%21important%3B%7D%0A%0A/*%20Base%20*/%0A*%2C%20%3A%3Abefore%2C%20%3A%3Aafter%20%7B%0A%20%20color%3A%20%23CCC%20%21important%3B%20%0A%20%20border-color%3A%20%23444%20%21important%3B%0A%20%20outline-color%3A%20%23444%20%21important%3B%0A%20%20text-shadow%3A%20none%20%21important%3B%0A%20%20box-shadow%3A%20none%20%21important%3B%0A%20%20box-shadow%3A%20none%20%21important%3B%0A%20%20background-color%3A%20transparent%20%21important%3B%0A%7D%0A%0Ahtml%20*%20%7B%0A%20%20color%3A%20%23CCC%20%21important%3B%0A%7D%0A%0Ap%3A%3Afirst-letter%2C%0Ah1%3A%3Afirst-letter%2C%0Ah2%3A%3Afirst-letter%2C%0Ap%3A%3Afirst-line%20%7B%0A%20%20color%3A%20inherit%20%21important%3B%20%0A%20%20background%3A%20none%20%21important%3B%0A%7D%0A%0A/*%20%3A%3A%20Give%20solid%20BG%20%3A%3A%20*/%0A/*%20element%20*/%0Ahtml%2Cbody%2C%0Ali%20ul%2C%20ul%20li%2C%0Atable%2C%20header%2C%0Aarticle%2C%20section%2C%0Anav%2C%20menu%2C%0Aaside%2C%0A%0A/*%20common%20*/%0A%5Bclass*%3D%22nav%22%5D%2C%0A%5Bclass*%3D%22open%22%5D%2C%0A%5Bid*%3D%22ropdown%22%5D%2C%20/*dropdown*/%0A%5Bclass*%3D%22ropdown%22%5D%2C%20%0Adiv%5Bclass*%3D%22menu%22%5D%2C%0A%5Bclass*%3D%22tooltip%22%5D%2C%0Adiv%5Bclass*%3D%22popup%22%5D%2C%20%0Adiv%5Bid*%3D%22popup%22%5D%2C%0A%0A/*%20Notes%2C%20details%2C%20etc.%20%20Maybe%20useful%20*/%0Adiv%5Bclass*%3D%22note%22%5D%2C%20span%5Bclass*%3D%22note%22%5D%2C%0Adiv%5Bid*%3D%22detail%22%5D%2Cdiv%5Bclass*%3D%22detail%22%5D%2C%0Adiv%5Bclass*%3D%22description%22%5D%2C%0A%0A/*%20Also%20common%20*/%0Adiv%5Bclass*%3D%22content%22%5D%2C%20div%5Bclass*%3D%22container%22%5D%2C%0A%0A/*%20Popup%20divs%20that%20use%20visibility%3A%20hidden%20and%20display%3A%20none%20*/%0Adiv%5Bstyle*%3D%22display%3A%20block%22%5D%2C%20%0Adiv%5Bstyle*%3D%22visibility%3A%20visible%22%5D%20%7B%0A%20%20background-color%3A%20%231a1a1a%20%21important%3B%0A%7D%0A%0A/*%3A%20No%20BG%20%3A*/%0A*%3Anot%28%3Aempty%29%3Anot%28span%29%3Anot%28%5Bclass%3D%22html5-volume-slider%20html5-draggable%22%5D%29%3Anot%28%5Bclass%3D%22html5-player-chrome%20html5-stop-propagation%22%5D%29%2C%20*%3A%3Abefore%2C%20*%3A%3Aafter%2C%0Atd%3Aempty%2C%20p%3Aempty%2C%20div%3Aempty%3Anot%28%5Brole%5D%29%3Anot%28%5Bstyle*%3D%22flashblock%22%5D%29%3Anot%28%5Bclass%5E%3D%22html5%22%5D%29%3Anot%28%5Bclass*%3D%22noscriptPlaceholder%22%5D%29%20%7B%0A%20%20background-image%3A%20none%20%21important%3B%0A%7D%0A%0A/*%3A%20Filter%20non-icons%20%3A*/%0Aspan%3Anot%28%3Aempty%29%3Anot%28%5Bclass*%3D%22icon%22%5D%29%3Anot%28%5Bid*%3D%22icon%22%5D%29%3Anot%28%5Bclass*%3D%22star%22%5D%29%3Anot%28%5Bid*%3D%22star%22%5D%29%3Anot%28%5Bid*%3D%22rating%22%5D%29%3Anot%28%5Bclass*%3D%22rating%22%5D%29%3Anot%28%5Bclass*%3D%22prite%22%5D%29%20%7B%0A%20%20background-image%3A%20none%20%21important%3B%0A%20%20text-indent%3A%200%20%21important%3B%0A%7D%0A%0A/*%3A%20Image%20opacity%20%3A*/%0Aimg%3Anot%28%5Bid%3D%22mpiv-preview%22%5D%29%2C%20svg%20%7B%20opacity%3A%20.75%20%21important%3B%20%7D%0Aimg%3Ahover%2C%20svg%3Ahover%20%7B%20opacity%3A%201%20%21important%3B%20%7D%0A%0A/*%20Highlight%20*/%0A%3A%3A-moz-selection%20%7B%0A%20%20background-color%3A%20%23626F61%20%21important%3B%0A%20%20color%3A%20%23F6F7B9%20%21important%3B%0A%7D%0A%0A/*%20%3A%3A%3A%20anchor/links%20%3A%3A%3A%20*/%0Aa%20%7B%0A%20%20color%3A%20%2371BAA5%20%21important%3B%20%0A%20%20background-color%3A%20%231a1a1a%20%21important%3B%0A%20%20opacity%3A%201%20%21important%3B%20%0A%20%20text-indent%3A%200%20%21important%3B%0A%7D%0A%0Aa%3Alink%20%7B%20color%3A%20%23ACC7F6%20%21important%3B%20%7D%20/*%20hyperlink%20*/%0Aa%3Avisited%20%7B%20color%3A%20%23CDB4E7%20%21important%3B%20%7D%0Aa%3Ahover%20%7B%20color%3A%20%23FFE900%20%21important%3B%20background-color%3A%20%23363037%20%21important%3B%20%7D%0Aa%3Aactive%20%7B%20color%3A%20%23FFAE00%20%21important%3B%20%7D%0A%0A/*%20%22Top%20level%22%20div%20*/%0Abody%20%3E%20div%20%7B%20background-color%3A%20inherit%20%21important%3B%20%7D%0A%0A/*%20%3A%3A%3A%3A%3A%3A%20Text%20Presentation%20%3A%3A%3A%3A%3A%3A%20*/%0Asummary%2C%20details%20%7B%20background-color%3A%20inherit%20%21important%3B%20%7D%0Akbd%2C%20time%2C%20label%2C%20.date%20%7B%20color%3A%20%23B6D2AC%20%21important%3B%20%7D%0Aacronym%2C%20abbr%20%7B%20border-bottom%3A%201px%20dotted%20%21important%3B%20cursor%3A%20help%20%21important%3B%20%7D%0Amark%2Ccode%2Cpre%2Csamp%2Cblockquote%20%7B%20background-color%3A%20%23282826%20%21important%20%7D%0A%0A/*%20%3A%3A%3A%3A%3A%3A%20Headings%20%3A%3A%3A%3A%3A%3A%20*/%0Ah1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%20%20%7B%20%0A%20%20background-image%3A%20none%20%21important%3B%0A%20%20border-radius%3A%205px%20%21important%3B%0A%20%20text-indent%3A%200%20%21important%3B%0A%7D%0A%0Ah1%2Ch2%20%7B%20background-color%3A%20%2328313E%20%21important%3B%20%7D%0Ah3%2Ch4%20%7B%20background-color%3A%20%232A3731%20%21important%3B%20%7D%0Ah5%2Ch6%20%7B%20background-color%3A%20%23372A2A%20%21important%3B%20%7D%0A%0A/*%20%3A%3A%3A%3A%3A%3A%20Tables%2C%20cells%20%3A%3A%3A%3A%3A%3A%20*/%0Atable%20table%20%7B%20background%3A%20%23212121%20%21important%3B%20%7D%0Ath%2C%20caption%20%7B%20background%3A%20%23313131%20%21important%3B%20%7D%0A%0A/*%20%3A%3A%3A%20Inputs%2C%20textareas%20%3A%3A%3A%20*/%0Ainput%2C%20textarea%2C%20button%2C%0Aselect%2C%20option%2C%20optgroup%20%7B%0A%20%20color%3A%20%23DDD%20%21important%3B%0A%20%20background%3A%20none%20%23404046%20%21important%3B%0A%20%20-moz-appearance%3A%20none%20%21important%3B%20%0A%7D%0A%0Ainput%2C%0Atextarea%2C%20%0Abutton%20%7B%0A%20%20border-color%3A%20%23000%20%21important%3B%20%0A%20%20border-width%3A%201px%20%21important%3B%0A%7D%0A%0A/*%20%3A%3A%3A%3A%3A%3A%20Button%20styling%20%3A%3A%3A%3A%3A%3A%20*/%0Ainput%5Btype%3D%22button%22%5D%2C%0Ainput%5Btype%3D%22submit%22%5D%2C%0Ainput%5Btype%3D%22reset%22%5D%2C%0Abutton%20%7B%0A%20%20background%3A%20%23343855%20%21important%3B%0A%7D%0A%0Ainput%5Btype%3D%22button%22%5D%3Ahover%2C%0Ainput%5Btype%3D%22submit%22%5D%3Ahover%2C%0Ainput%5Btype%3D%22reset%22%5D%3Ahover%2C%0Abutton%3Ahover%20%7B%0A%20%20color%3A%20%23FFF%20%21important%3B%0A%20%20background%3A%20%23435B6B%20%21important%3B%0A%7D%0A%0Ainput%5Btype%3D%22image%22%5D%20%7B%20opacity%3A%20.85%20%21important%3B%20%7D%0Ainput%5Btype%3D%22image%22%5D%3Ahover%20%7B%20opacity%3A%20.95%20%21important%3B%20%7D%0A%0A/*%20Lightbox%20fix%20*/%0Ahtml%20%5Bid*%3D%22lightbox%22%5D%20*%20%7B%20background-color%3A%20transparent%20%21important%3B%20%7D%0Ahtml%20%5Bid*%3D%22lightbox%22%5D%20img%20%7B%20opacity%3A%201%20%21important%3B%20%7D%0A%0A/*%20Youtube%20Annotation%20*/%0A%23movie_player-html5%20.annotation%20%7B%20background%3A%20%23333%20%21important%3B%20%7D%0A%0A/*%20Mozilla%20addons%20shrink/expand%20sections%20*/%0A.expando%20a%20%7B%20background%3A%20none%20transparent%20%21important%3B%20%7D%0A%7D%0A%0A@-moz-document%20url%28about%3Anewtab%29%20%7B%0Awindow%20%7B%0A%20%20background%3A%20%231a1a1a%20%21important%3B%0A%7D%0A%0A%23newtab-scrollbox%20%7B%0A%20%20background%3A%20transparent%20none%20%21important%3B%0A%7D%0A%0A.newtab-title%20%7B%0A%20%20background-color%3A%20rgba%280%2C0%2C0%2C.75%29%20%21important%3B%20%0A%20%20color%3A%20%23eee%20%21important%3B%0A%7D%0A%7D%0A%0A@-moz-document%20url%28chrome%3A//browser/content/browser.xul%29%20%7B%0A/*%20Browser%20Background%20*/%0Abrowser%5Btype%3D%22content-primary%22%5D%20%7B%0A%20%20background-color%3A%20%231a1a1a%20%21important%3B%0A%7D%20%0A%7D%0A%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№13403-12-2015 22:18:22

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

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

Остановить - Перезагрузить( Firefox24+ ) от 17.01.2015.
кнопка даёт возможность остановить загрузку текущей страницы или всех страниц и перезагрузить текущую страницу и удалияет стандартные кнопки перегрузки и остановки из адресной строки. Иконка кнопки меняется в зависимости от состояния страницы по аналогии с стандартной кнопкой перегрузки в адресной строке.

ЛКМ => Остановить - Перезагрузить,
Длинный ЛКМ => Остановить все вкладки,
ПКМ => CB Меню.

Код кнопки для FF24-54:


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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20-%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAABFklEQVQ4jdWToW7DQBBEI4WUBJbnC8rLAssjc9OAssqZzWx9Q/0J+QHTULOQfEBwsLFRUEkK6ki2ZTsuqjrSktPuu73ZvdnsXypJkkX3LIqiuTFkD4uxUwyGI6gvc91AXY0q4HqLomgOKgdVjd5uVGGu21DAda7hwyDzcGgUXODS1tONMWSgqhZwCASm60ZSHsd6anoCKp8ICkdz3YwqH0EegHT9AbWncX9WN4wq+02ub9p6uhk0cYqGOvq17mMHVb2bPfflJEmy6FvQdkeuVcPMUxcGaGkMGVyCazUOY9g3pnIFlRtDZh4OcF2MKsCwN/t8HQXd/1DvRlMVXGcwXY9CmvrY6QUM+7qL0lwnY8gALSdD/lTfBU/9GCESstoAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u0438%20%u0434%u043B%u0438%u043D%u043D%u044B%u0445%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onmousedown%20%3De%3D%3E%20%7B%0A%20%20%20%20self.onclick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%2C%20clearTimeout%28self.timer%29%3B%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%21e.button%20%26%26%20stopButt.disabled%20%3F%20BrowserReload%28%29%20%3A%20BrowserStop%28%29%3B%0A%20%20%20%20%7D%3B%0A%20%20%20%20%20%0A%20%20%20%20self.timer%20%3D%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20self.onclick%20%3D%20%22%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20if%20%28%21e.button%29%20for%20%28var%20br%20of%20gBrowser.browsers%29%20br.stop%28%29%3B%20%20%20%20%0A%20%20%20%20%7D%2C%20500%20%29%3B%0A%7D%3B%0A%0A%0A//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u044B%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u043A%u0438%20%u0438%20%u043E%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u0438%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%20..............%0Avar%20stopButt%20%3D%20document.getElementById%28%27urlbar-stop-button%27%29%3B%20%0Avar%20reloadButt%20%3D%20document.getElementById%28%27urlbar-reload-button%27%29%3B%20%0AstopButt.style.display%20%3D%20%27none%27%3B%20reloadButt.style.display%20%3D%20%27none%27%3B%0AaddDestructor%28%28%29%3D%3E%20%7B%20stopButt.style.display%20%3D%20%27%27%3B%20reloadButt.style.display%20%3D%20%27%27%3B%20%7D%29%3B%0A%0A%0A//%20%u0421%u043B%u0435%u0434%u0438%u043C%20%u0437%u0430%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u0435%u043C%20%u0441%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u043E%u0439%20%u043F%u0435%u0440%u0435%u0433%u0440%u0443%u0437%u043A%u0438%20%u0432%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0435%20%u0438%20%u0430%u043D%u0430%u043B%u043E%u0433%u0438%u0447%u043D%u043E%20%u043C%u0435%u043D%u044F%u0435%u043C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Avar%20stopButtHandler%20%3D%20new%20MutationObserver%28%28%29%3D%3E%20%7B%0A%20%20%20document.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20stopButt.disabled%20%0A%20%20%20%3F%20self.image%0A%20%20%20%3A%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAAoklEQVQ4jc2TMQ7DIAxFkXJGHyJ7pICMYp8ma1Y2lt4rHapUkBpjptSSJ74eH3/s3N9XQF56mjVusyrwyHuIfHqk3NZQ/mh4bzoJkc9vIydBk0qN6AwApruwhN3PPFIGgEl01YINQVTYKKSCRTp+QMjJDLnqSrBuOoYg2tPMrqTBSgGoMC0dM2yN29xLx/QhnasG/GpZ765IcevSG6ZlsZ+vN6qE/1DgPtqbAAAAAElFTkSuQmCC%22%3B%0A%7D%29%3B%0AstopButtHandler.observe%28%20stopButt%2C%20%7Battributes%3A%20true%7D%20%29%3B%0AaddDestructor%28%28%29%3D%3E%20stopButtHandler.disconnect%28%29%20%29%3B%0A%0A%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20-%20%u041F%u0435%u0440%u0435%u0437%u0430%u0433%u0440%u0443%u0437%u0438%u0442%u044C%20%5Cn%u041B%u0434%3A%20%u041E%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0432%u0441%u0435%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%5Cn%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*Code*/%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№13507-12-2015 19:47:22

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

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

Переключить стиль на странице( Firefox24+ ) от 07.12.2015.
кнопка выключает/включает стиль на текущей странице.

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0441%u0442%u0438%u043B%u044C%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAyhJREFUOMtdk11oW3UYh59zzj8nyUnz2TSmaWfT2lY3nWvRi7KBX3gxxBsHguKY84OyG9ErL7yQgdfFKYKI4gQvnKDI5kVRkNWqGyg6R9utpraNXWzztTRZ0pPk5Jz/8aJbaf3Be/e+Dw8v76twO2ff63uj0ejMBHziRZ9P/VEX6uvArCYCj0i5VbXcePr5yT/G+V80gOnpqx9n5+tv9QYap2rWSxNJY/G5n+ZPpwe6jUfrzvF0NNR/n99uJOPpl080LJlNpcfq3eGDzVLpmhQA5ZvtsSdPvIOz/Db37nsFf3sUbd8ghycmKOVWGThwjFuVAlkuhX6+EjsiPCKTCOmVhQVsASClVHtSAazUGVzHReNp9g+DL+xhqHsYAFuEmZuf8wmhJhXXjhCwjMmHJrcBruuqEoiHPQhgy7RxJSgKWLnz5ItVPp0u4JjrXe+/sHz0yoqSPXfZX92M5231zjIcYL3WIVux2GxJGpZEupD/5Qzh1iz3jw4imxuEjXwiHmoe99B5rGLKxA7gjkFvTCcV00lFFNT5N4mnoijqdlvHktRKdYYTq0NTp5iqNZ0hsdvg6pqJZUl8msLdMZ3fP/mMo8cO47SzjChfwoEStgVW1WXpekV37OCzewyWNlrMrZk0O5KFf5scfGYKUDC32vQaOcZHW3SnwnhDI3z9vafasTB2DGxgsNeHZUk0VSER0tjsPMyv776GHhzniadUfrvUplG0IWHLa6aRi6jOithtkIh6QIK0JfmyRfKuISInZ3ngwf18dbKfizdj9loleqtLc6qGRgbUi3sALQk4Ll26ynCfn6ihcU/yEB7g1QtF2h+ctRc//Gheuu5MROssK5Dds0QJuIBhCHyasgN2AAXQhGYHE31FT6d52WM3Mk67XtwDiNw+JHYN7S7TbJtC91Z0n1EM+nvKhzbXTAGQ+eufC4+3RsYMj8NW3WTp71U7v1G084WyvZhZaeVubDT+nLteFkKsj46kl1Upqj09mnX6m5ntZ/r2uy8+P//DuVq+UDjiujLk9epqOBS0DMNver16VVWV9fRA/416w1xstzp51+etpFIpC+A/x3JsuL3cxBcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5BgetMarkupDocumentViewer%28%29.authorStyleDisabled%20%3F%20gPageStyleMenu.switchStyleSheet%28%27%27%29%20%3A%20gPageStyleMenu.disableStyle%28%29%3B%0A%0A%0A%0A%0A%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№13612-12-2015 02:08:14

jars
Забанен
 
Группа: Members
Зарегистрирован: 28-07-2015
Сообщений: 235
UA: Palemoon 25.0

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

Открыть как ссылку
Постоянный пункт в меню при выделении. Если выделенна ссылка, то откроется ссылка. Если выделение не ссылка - будет поиск фразы.

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


Автоскрытие панели поиска
Взято отсюда, продублирую шобы было и тут.
скрытый текст


зы. Эти функции можно ложить в одну кнопку в Init и работают.

Выделить код

Код:

// Открыть как ссылку.
(function() {
   if ( document.getElementById("go2link") ) return;
   var menuItem = document.createElement("menuitem");
   
   menuItem.id = "go2link";
   menuItem.setAttribute("label", "Перейти по ссылке");
   menuItem.setAttribute("class", "menuitem-iconic");
   menuItem.setAttribute("image", "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACIUlEQVQ4jZ2STUtUYRSAn3vfj3tnnBybUdEKTZ2gJjDQ/AHt3PWhTNAmadsq2tUPadG2JGWwRZugRbSKSAqHmkUpVMagoo7a1Rnv3Pu+LdJQYYQ6u8N5znM4nOPQJPLj079c1/1ijLlTLhbmmnFuswKQwuGSK9xn+fHpgf8RcHGoVyTbTpx3hfsuPz6d+2fBZhDRf66TdEc6K5QsDd6aGT3KOJncXatbMqiWNNJPIbSP0AqhFReGB4hjQ+dJn6XlLb4vrBiL86r09NroIUH+6k2kcJBSoJWL1gJrQQqXza06rnDItHrUd0KWK1W2g93Z0uT1EQC5b6qUPuOl2tBJHy/p4adTaP2nLIVLUI/ozCTpP93Kh0+Vy8MTL9biRjQmwQKwXd0gjhWNyBBGlkgo/IRFKwGAVoLQwHotoqennW8Ly5lGLF66e/0AWCwH86NRq0dIx2GpUiXYDqOu3o6Bvyv0DA3iJRIIJdFKoH2JtRAE4b6dbKti/usKqytbi6dy3bnnD0ZCCZafs+/RyRTKb0F5HspTKE/R3deF6zokfUkqIZn7uEjYiGdKkzfGSnuDJXClVl0nCg3Ktwgd7Z1Rvs6eiWnPJnGsZfbtvMVx3pgonjj0B832zY9N2b7BszSCHSo/1izw2MTmYblYWD3IySb9AKxUqtQ2AmOMfYK198vFQnCUOVZQ2wh2TWzulYuFR82Y5gLHMSY2t8vFwtRxQ34DLk/NkLifJmMAAAAASUVORK5CYII=");
//   menuItem.setAttribute("oncommand", "gBrowser.addTab(document.commandDispatcher.focusedWindow.getSelection().toString())");
   menuItem.setAttribute("oncommand", "gBrowser.addTab(document.commandDispatcher.focusedWindow.getSelection().toString());gURLBar.handleCommand();");
   document.getElementById("context-copy").parentNode.insertBefore( menuItem, document.getElementById("context-sep-open") );
   document.getElementById("contentAreaContextMenu").addEventListener("popupshowing", function() {
     menuItem.hidden = !gContextMenu.isTextSelected;
     }, false);
})();

Отредактировано jars (12-12-2015 15:35:23)

Отсутствует

 

№13713-12-2015 00:32:33

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

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

Free Download Manager(Firefox24 +), от 12.12.2015.
Кнопка для запуска портативного Free Download Manager из портативного Firefox, для этого создайте в папке в которой находится профиль вашего Firefox папку Soft и туда поместите папку портативного Free Download Manager, также можно просто в коде инициализации кнопки в строке file.initWithPath(file.path + "\\..\\Soft\\FreeDownloadManager\\fdm.exe"); указать путь к Free Download Manager, например: file.initWithPath("C:\\Program Files\\FreeDownloadManager\\fdm.exe"); путь должен быть с двумя \\.

Клики на кнопке:
ЛКМ => Запустить FDM,
СКМ => Запустить FDM с передачей адреса из буфера обмена,
Можно запустить FDM с передачей ссылки при перетаскивании ссылки на кнопку.

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

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EFree%20Download%20Manager%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAkAEhIAAAEAIACABQAAlgAAAAwMAAABACAAmAIAABYGAAAGBgAAAQAgANAAAACuCAAAEhIAAAEAIACABQAAfgkAAAwMAAABACAAmAIAAP4OAAAGBgAAAQAgANAAAACWEQAAEhIAAAEAIACABQAAZhIAAAwMAAABACAAmAIAAOYXAAAGBgAAAQAgANAAAAB+GgAAKAAAABIAAAAkAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGRkQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADfgpQZotolIyPi0oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkZGRAAAAAAD///8BupS1NKOOnUFYglSEWoJWgFB+S4cYkSrsFp0t/0iMUv97hHVXAAAAAJGRkQAAAAAAAAAAAAAAAACRkZEAAAAAAI+NjD45gjvNFocj8Q2RJPMPmSv/E5su/x6jOv8kq0L/K7xM/wLOIf8plzr/fol8RwAAAAAAAAAAAAAAAAAAAAAAAAAAgo6BRiCJLf8Alhv/AJkh/wGaIf8PpC//MrxR/zO+Uv8tv0z/Adch/wDYIP8Hzyn+KJ4+/4KIbP+jiH3/mYyGcAAAAABRhlJHG40t/wCZHv4Kpiv/F7o2/1fOb/9n3nv/b+mC/23qgP9Z5m7/J91D/wDYHv8A0xz/Trdf/87Nvv/TuK/+o4p//2eCYAsiii++AJUc/yCyQP8q2Ur/O8td/1HEZP8vvVH/MbxS/zC7UP9h0Xb/UuJo/wDVHf9YtWb/3d7X//v4+f/o3Nr/pI6D/zmKQRgYki7xI69D/xGxMP9LeBn/xF09/+jX2//mztD/7Njc/+jg4P+I2Zf/R9xf/06pXv/v2+T/8u3t//Pv7//k19X/pI6D/yOPMR8ppED/Fq48/19zJ//pXjH/yGJA/+DW1P/dzcr/39DN/+Pd2v+l16v/hLuO/+3b5P/p4eH/59/f/+/p6f/l2Nb/pI6D/xqdMR8nrkT/HJIx//OAP//qbTb/y29F/9/U0//UwLr/3tDM/+Ta2v/o4eH/6uLi/+nh4f/p4eH/6eHh/+jh4f/i1dL/pI6D/yGWLx8VoTT/eYMt//iWSP/xhT7/yWhC/9/V0//Tv7n/0722/9jGwP/czMj/3MzH/9zMx//czMf/28vH/+DU0v/j1dL/pI6D/xacLh8OnzD/yoVJ//aoTv/2nkn/0YFL/9/U0//GtrH/zb64/8e5s//HubP/x7mz/8e5s//HuLL/z7+5/8itov/k2Nb/pI6D/wCZIBgCnSrz2ZpG//q/Zv/6tlr/0YFL/9/U0//Bsaz/1dHR/8rLy//Ly8z/y8vM/8vLzP/Ky8v/2tjY/8yyqP/k19X/pI6D/xxLAAQAlCCY1LVQ//3KfP/+ynf/1JNX/9/T0v/Ds67/v7q6/5KSkv+UlJT/lJSU/5SUlP+Sk5P/sKmn/861qv/k19X/pI6D/wAAAAAAkQ8hhKM69P/Mfv//5bH/16h1/+LW1v+/r6r/1dDQ/8jJyf/Jysr/ycrK/8nKyv/Iycn/2dfX/8uxp//k19b/pY2D/wCYIAAAAAAA04c7fvm2Xv//7cX/6sib/9fFwv/Xzs3/39bV/+fh4f/o4uL/6OPj/+jk4//o4d//6+Ph/9fCuv/l19L/opGJ2AAAAADwiEAAAAAAAPCJQLj4uWf//+/M/+rNpv/Zr4P/2q+B/9aiav/Rhkz/zHFF/8ViQO+tak6BoG5VaaRyWmmbd2VxiWJOAwAAAAAAAAAA8IhAAQAAAADwizyC9qld4fvGhv/+1aL//sqJ//u6bv/vhEH/7XU4sOtmMEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADmTTEA7no0EfCLQGLocjyT5Gc4j+t7O4nreDo07oM+BwAAAADlaDUAAAAAAAAAAAAAAAAAAAAAAP/HwADwA8AA4AHAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAOAAAADQB8AA+A/AACgAAAAMAAAAGAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqfGYAAAAAAAAAAADDkbIHy3hzDv90mwoueiJodH9L+a96aCwAAAAAAAAAAAAAAAAAAAAA/5D/A1R0MU9LgkCsR4I2ykiPQsYkkTDsG7A4/0qKN/aJf3BPiZ+uOgAAAAD/AP8AX3U5jQ+JHfkFlCD/AK0f/wS5Jf8QwzH/AtIj/wDVHP8hix74uGI99aCEeq5hjWNpFY4j/xaoOP8Iyif/bOWA/4nnmf+J55n/cOaC/zTTUP9avG7/7tvf/6WPhf8sijfqC6g0/1OPL/96h0v/ndmr/6PYq/9WwGv/atl//5XLnv/14Oj/6N7d/6aQhv8gmjP/WJA3/+OAOf/Jdl7/7Ojr/+3j5f/U1sv/y97I/+vj4//q4uL/6N3c/6aQhv8klzD/q6VE//ifSv/Hdl3/5+Hi/8K8vP+/u7v/wLq7/7+6uv/Cvbz/5NfV/6aQhv8nmi/qw71i//3BX//Gc1z/zcbE/9nPzf/RuK//0rqx/9G4r//Vx8T/z7my/6aQh/8nnChowMFs//7Fa//OiWT/z8vM/9XR0f++m4z/wJ6Q/7+cjf/Nwr//07qx/6aQh/8AiggRkLtn4v/ot//SjGP/2c/O/9LGxP+9l4j/v5qL/76YiP/LuLP/1LSq/6aQhvv/SEoB/5lGWfrJk//wwpL/666G/9qYYv/XjFX/1YJQ/751W4y6bVaA4YdugqSLgmAAAAAA0QAAAfahTBXznFej9aNU//alUP/0nEm3+axQMQAAAAAAAAAAAAAAAAAAAADgcAAAgBAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDwAAAoAAAABgAAAAwAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOWHA4ArAARKJkv+ESJNTGndV8XAqEeKAG8H84Tviz/Itc8/0auR/+vkXrvALEfty6tKf9upmL/RrVQ/5K9i//Hqp3/HZ0g/9mlef+4r7X/mcGZ/8C+xf/Bppr/NIQfsOG4dP/OwaD/z7mg/8iqk/7Ano6sk34rDumaS5Dsu1v67qNV89uAOU2aZE8GgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABIAAAAkAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKCgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAZQZ4tnlJSUlEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAAAAAAAD///8Bp36jNJF/jEFQgFCEUHZNgEpzRocSkR7sAKER/0OFRf+FiIJXAAAAAKCgoAAAAAAAAAAAAAAAAACAgIAAAAAAAH18fD4xgjXNFI0f8Q2RIfMNnCL/DaIh/w2pIf8FsR7/AMEg/wK/GP8omyr/k5WPRwAAAAAAAAAAAAAAAAAAAAAAAAAAcYFzRhyLKv8Alxz/AJ0l/wOrI/8ErCX/Bbkl/wW9Jf8DwyP/Ackh/wDRGv8A2BX+HKUj/395Yv+af3T/joF6cAAAAABJfEdHFo8r/wCcIf4UqDf/M7pS/07IZf9c0nX/Y9p4/2Lad/9N22X/JdlA/wzdKv8A3BH/Lc0z/8jOt//Tua7+mYBz/1t1VQsfiSu+AZ0m/yiyRv83wFf/OsBX/0e6VP9iuV//ZL9m/1vOb/9t1Hb/buh+/wzeKf9cwlr/3uXV//nx8f/m3dT/l4B0/zaHORgbljHxLLRJ/w+qK/9mfiP/sVk6/+fa2f/ezcr/5dPP/+HWz/+KzYz/ad96/3K/Z//w5eT/8enp//Dw6P/l3NP/l4B0/ySVMB83q0n/E7Y2/2+DJP/sWjH/yFw6/9zSy//Xx7//2M7G/9zRyP+nzJz/rMmg//Li5P/r4+H/8Ojl//Dp6f/k2dP/l4B0/zmsQh85u0//N5ki/+2EQ//rdTv/yWI9/9nRyv/Tw7v/2cnB/9rQyf/f1Mz/4tnT/+jd2f/p4t7/7+fi//Hq6f/k2dD/l4B0/0KvRh8qtT//lIky//WfTv/wi0P/zG5B/9TLxv/Pv7f/zLmt/8m2qv/Mu7H/0MC0/9DBtP/Uw7r/08O+/9/Tyv/i18//l4B0/yqqOB8esTD/xKFG//qzV//1n03/y3hG/9THwv/FsKX/29PN/9jVzv/X083/1tPN/9bTzf/W08z/29bR/8a0qf/f1M7/ln9z/xemORgUrzDzzLZN//3Fa//7t2D/zIRM/9PHwf/Aq6P/z8jH/7W2tv+3t7f/t7e3/7e3t/+2trb/w8TF/8m5rf/e08n/ln9z/yqAAAQGqBaYtLZT///Tf///0oP/0pNW/9LBu//BrKD/u7Sz/4WFhf+IiIj/iIiI/4iIiP+Ghob/m5yc/8u7r//dzcX/ln5y/wAAAAAApg0hjLM39P/Ref//4qf/05xp/9zSz//DraP/1M7N/8HCw//Cw8T/wsPE/8LDxP/CwsP/zc/Q/8m5rf/czMP/ln5x/xurHQAAAAAAvoo5fvvAYP//46b/8tCb/8qol//PurL/0MO+/9bOyv/Wz8v/1tHM/9fRzP/Xz8j/29LM/8ewo//QtKj/moZ82AAAAADUiEAAAAAAAOGSSLj4wmr//+Sw///jrf/rv4j/6bd//+apav/fhkn/1nA7/8xjPe+qZESBl2JIaZtnTWmadmRxtpaFAwAAAAAAAAAA4JBIAQAAAADdkkSC7q9X4fTDe///14///c+F//S0av/pkE7/331FsNZ3SUsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvTk4A04g8EeGUSWLXikiT0YVGj9qLRonfhkg03Y5IBwAAAADVdUgAAAAAAAAAAAAAAAAAAAAAAP/HwADwA8AA4AHAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAOAAAADQB8AA+A/AACgAAAAMAAAAGAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGgAAAAAAAAAAACjdp4Hel15DqhIowogfyBoR25I+WpjaiwAAAAAAAAAAAAAAAAAAAAA/xv/AzdsL084gj6sLYQwyi2ROMYVoyLsA70b/zmIOPZ4c3JPfouZOgAAAAD/AP8APHY7jQ2QHfkEox3/ALca/wC6Hf8AwBz/AMQe/wHQH/8gnx74kFUz9Yx4a65UgllpEpIo/xmwPP84yk//XNRs/z3gTv9d5Wf/MN9G/wvbH/9gwFv/49DS/5eDdP81lD/qJrlH/02jNP9/j1T/p8yg/6zKoP9uuGP/atdu/6TPnP/y3uj/3tPN/5eDdP8vqDv/Qqkz/9R+OP+2eV3/5N/a/+Pa1P/Q1MH/xte//+ni4//q4uP/3tLM/5eDdP84sj//iqk4//mgTf+2f2H/4dzX/86/tP/NvLH/zb61/87AuP/Qwrr/2MzF/5eDdP88sj/qp79S//+7Wv+6h2X/0cW//9jPyv+5sa3/u7Ov/7mxrv/LwLr/wqqd/5eDdP8ssCZorsls///Qbv+6j2j/1cnD/9XRzv+cmJT/n5uX/52Zlf/Kv7r/wqmc/5eDc/8AngARm8Fg4v/lrv++k27/3NDJ/9HIwv+flY7/opmR/6CWjv/LvbX/xq2g/5eEdfv/DE0B7IVQWfPClP/jxqf/47iF/9egW//WjlH/0INR/7x/VoyzeVKAyZJtgpSAc2AAAAAAVQAAAeibWhXkl16j55xc/+mZWf/gj1K39JhdMQAAAAAAAAAAAAAAAAAAAADgcAAAgBAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIDwAAAoAAAABgAAAAwAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACTCw4ArAARCI0I+CF4IDF1cXQXAJwNKAOzJM4QwCb/Hdo4/ySwIv+Fi4TvAKgTtwu2Hf9Zr1//QLJI/4O+if+lpaX/G6UJ/9StZ//FuLr/lLaU/9LL0P+ioqL/M5QUsNrJgv/Hy6b/yrif/8Sslv6fnJusk4w5DvmdUpDbsz/69ZIq8+R0QE1mcHcGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABIAAAAkAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAQKeBFcBTgHeAAAAC4AAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAHgEAAD0GJQNaCDAFaQkzBXEIjBbTBqYY/whcDL0DAABMAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAACYHUwubB30T4AaNGfEElhr1BJ8b9wSlG/gDsR38AMAe/wK/Gf8LhQ/hAQAAawAAABUAAAAAAAAAAAAAAAAAAAAABk8KSQaEFvUBmyD/AaEi/wSnJP8FriX/BrUl/wS8JP8DwyP/Acog/wDQHf8B2hr/C6AP+UdEJrVVOC2CEQsIGQAAAAAKYgouBY4c7gCdJP8UqTb/M7pQ/07JaP9c0nT/ZNl6/2Xde/9O3Gb/J9lB/w3dKv8A3BL/LtA2/8jQt//LsaP/cE89Xw4NAAIHiBiPA50m/yayRv84wFf/QcBX/022U/9gumD/Zb5k/2fEaP+A2YX/but+/xPiK/9Yx1f/3+bX//fx8P/k2dL/kGZQfA2BDhELmCLVLLZL/xKqK/9ieRz/rFsv/+jY2f/gzcv/5NLR/+HVz/+W0ZD/a+N1/3LAZ//x5ub/8uvp//Pu6//k2dL/kGZQfhWVIRwxr0X/E7Y2/2qDI//sXTH/w105/9vTzv/Wx8D/2s3G/9zQyf+ozJv/rcqd//Hi5P/s5OH/7+jk//Ls6f/k2dL/kmhRgTGkOCc5vE//N5sl/+qFQv/rczn/w2U9/9nPyv/Tw7z/2MrD/9zOyf/f083/5NjU/+fd2f/q4t7/7ebj//Dq5v/h1s7/kGZQfT+xRCAruUD/j5U3//eeTv/wiUP/xm9A/9bMxv/Qv7b/y7iu/8q4rv/MurD/z720/9HAt//Sw7r/1MW9/97Syv/g1Mz/j2VPfTevORkiszH2vqVJ//qzWP/2nkz/yXlF/9TIwv/Er6T/3NPN/9nV0f/Z1dH/2dTQ/9nU0P/Z1ND/29fT/8a0qf/f08v/j2VPfSGaEw4YryHIybJP//vGbf/7t2H/zIRL/9LFv//CrKD/0MnH/7W1tv+2trf/tra3/7a2t/+1trf/w8PE/8q4rP/d0Mf/j2ROfQAAAAAMrBWGsrZE//7Sf///0oP/z5Ja/9DBvP/Bq5//u7ay/4SEhf+Hh4j/h4eI/4eHiP+FhYb/m5yd/8u5rv/bzMT/jmROfQAAAAAAogAai7I08//Rev7/5Kf/z5to/9zTz//DrqP/1c/M/8DBwv/BwsP/wcLD/8HCw//AwcL/zc7P/8m4rf/Zy8T/mWxUdAD/AAAAAAAArIQyZve+X///4qf/8M+c/8yqmP/QurH/0cS//9XNyv/Wzsv/1s/M/9bQy//XzMb/2s/K/8Wvov/MrZz/q3leLQAAAADGgDkAAAAAANGMQIj3w2n//+Sv//7jr//uxpD/6bZ+/+OhaP/fiE//1287/8tiOuCnXDtLkFIxMJVPKih0EwANAAAAAAAAAAAAAAAAzog/AAAAAADWjj9n6q9Y1/PDev/81I3//M6E//S0a//pkU/04HhDk9JpSiEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy4A7EduRRDDXiUds14hIc9iERk/af0cYw2dJAwAAAADSa0cAAAAAAAAAAAAAAAAAAAAAAPwDwADwAcAAwADAAMAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAwAAAAOAAQADwB8AA+A/AACgAAAAMAAAAGAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLQUAAAAAAAAAAAAAAAAEAAAACgAAAAwMdA9fCEYJggAAAB0AAAAAAAAAAAAAAAAAAAAAAAAAAgY3BU8IXA2TDHAPswxwEL8RmBbsErwe/wpiC8EAAABJAAAAEQAAAAQJUAYGBmsSlQGQHfUCohz/AKsc/wC2Gv8AwRr/ANAd/xLZIv8TjhDuWDYk0yYWDzsEVw89BpUj/xqwPP9Hw1//btR+/3/fjf+J5pX/K+JE/wvdIv9fxFj/3Ma//1E9MmUNeRq1LrlM/1igPv9+kFL/p8ug/6zJoP9ovmH/Z9ts/6bQm//z5+j/2Mi+/1A8MmMnozb5Qqg0/9J9N/+2el//5uDd/+Ta1v/R18P/y9i//+ri3v/s5uH/18W8/1A8MWM3sED9h6k7//ieTv+2f2H/4drW/829s//NvbT/z7+2/9DAt//Sw7v/0sC1/1A8MWMuly3XprtV//68Xf+4h2X/1MjB/9TOyP+/urb/wLu3/7+7tv/Ivrb/v6aY/1E8MmMrjxtzr8pw///Qcf+6i2f/18rD/9HNyv+ioaD/pKSj/6Oiof/BurT/wKeY/1A8MWQAiQASkbtg3v/lrf++lXD/2MnC/9LKxv+jnpv/pJ6a/6KcmP++san/vqOU/1RCN1MAAAAAjkAaNs2rht7lxKD/27mP/9Okbv/Ih1j/nVY26JdkS4eXZ06AnHRef19FOBcAAAAAAAAAAJdbJxCLYj9ptX9PvK51RMGmUSF9aCIJGwAAAAAAAAAAAAAAAAAAAADgcAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMDwAAAoAAAABgAAAAwAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE7AA0AagsOG5wg/hxdFkiRY0UWAGUIOA6ZJMkgsjT/Ido3/x2uJP+dhGfuG38py1evV/98rnT/UMJS/5S+kf+/o5P/P6s++6aea//DnpP/or2f/861rv+5mYj/PIs2lc66i//InHz/zqaJ/6+Idf+lgGusKlsaD6J5U6Haml7+q1844jsdDz6HSywHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20e.button%20%3D%3D%200%20%26%26%20runFDM%28%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u041B%u041A%u041C%20%20%20%20%0A%20%20%20e.button%20%3D%3D%201%20%26%26%20runFDM%28%20gClipboard.read%28%29%20%29%3B%20%20//%20%u0421%u041A%u041C%20%0A%7D%3B%0A%0A%0A//%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20Free%20Download%20Manager%20%u0441%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0435%u0439%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u0441%u0441%u044B%u043B%u043A%u0438%20..............%0Afunction%20runFDM%28url%29%20%7B%0A%20%20%20var%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0A%20%20%20file.initWithPath%28file.path%20+%20%22%5C%5C..%5C%5CSoft%5C%5CFreeDownloadManager%5C%5Cfdm.exe%22%29%3B%0A%20%20%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5Burl%5D%2C%201%29%3B%0A%7D%3B%0A%0A%0A//%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20Free%20Download%20Manager%20%u0441%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0435%u0439%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u043F%u0440%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0438%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20..............%0Athis.ondrop%20%3De%3D%3E%20%7B%0A%20%20%20var%20url%20%3D%20e.dataTransfer.mozGetDataAt%28%22text/x-moz-url-data%22%2C%200%29%3B%0A%20%20%20if%20%28%20%21url%20%29%20%7B%0A%09var%20text%20%3D%20e.dataTransfer.mozGetDataAt%28%22text/plain%22%2C%200%29.trim%28%29%3B%0A%09%20%20%0A%20%20%20%20%20%20%20%20if%20%28%20/%5E%28%3F%3Ahttps%3F%29%3A/i.test%28text%29%20%29%20%7B%20try%20%7B%20url%20%3D%20makeURI%28text%29%20%7D%20catch%20%28e%29%20%7B%7D%20%7D%0A%20%20%20%20%20%20%20%20else%20%0A%20%20%20%20%20%20%20%20%20%20%20if%20%28%20/%5E%28%3F%3A%5Ba-z%5Cd-%5D+%5C.%29+%5Ba-z%5D+%24/i.test%28text%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20uriFixup%20%3D%20Cc%5B%22@mozilla.org/docshell/urifixup%3B1%22%5D.getService%28Ci.nsIURIFixup%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20url%20%3D%20uriFixup.createFixupURI%28text%2C%20uriFixup.FIXUP_FLAG_NONE%29%20%7D%20catch%20%28e%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28%20url%20%26%26%20url.host%20%29%20url%20%3D%20url.spec%3B%0A%09%7D%0A%20%20%20url%20%3D%20url%20%26%26%20url.substring%280%2C%204%29%20%3D%3D%20%22http%22%20%3F%20url%20%3A%20null%3B%0A%0A%20%20%20runFDM%28url%29%3B%20%0A%7D%3B%0Athis.ondragover%20%3De%3D%3E%20e.preventDefault%28%29%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u043A%u043D%u043E%u043F%u043A%u0438%20..............%0Athis.tooltipText%20%3D%20%22Free%20Download%20Manager%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u041B%3A%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20FDM%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u0421%3A%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20FDM%20%u0441%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0435%u0439%20%u0430%u0434%u0440%u0435%u0441%u0430%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%5C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Cn%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20FDM%20%u0441%20%u043F%u0435%u0440%u0435%u0434%u0430%u0447%u0435%u0439%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043F%u0440%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0438%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%22%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№13817-12-2015 21:10:51

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

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

Открыть видео в PotPlayerMini( Firefox24+ ), от 05.10.2018.
Кнопка открывает видео из текущей страницы в PotPlayerMini или добавляет его в плейлист PotPlayerMini. Также кнопка добавляет в контекстное меню ссылок на странице пункт меню Открыть в PotPlayerMini который открывает ссылку ведущею на видео или добавляет такую ссылку в плейлист PotPlayerMini. В начале кода инициализации кнопки в строке: var path = "C:\\Program Files\\DAUM\\PotPlayer\\PotPlayerMini.exe"; нужно указать путь к вашему PotPlayerMini с двумя \\, не обязательно использовать именно PotPlayerMini, можно указать путь и к другому плееру, например: MPC-BE
Кнопка берёт от плеера иконку и имя плеера в подсказке у кнопки и иконку и имя плеера для выше упомянутого пункта меню, если в коде инициализации правильно указан путь к плееру.

Клики на кнопке:
ЛКМ => Открыть видео из текущей страницы в PotPlayerMini,
СКМ => CB Меню,
ПКМ => Добавить видео из текущей страницы в плейлист PotPlayerMini.

Клики на пункте контекстного меню:
ЛКМ => Открыть видео на которое ведёт ссылка в PotPlayerMini,
ПКМ => Добавить видео на которое ведёт ссылка в плейлист PotPlayerMini.

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

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20PotPlayerMini%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bmoz-icon%3A//file%3A//C%3A%5CProgram%20Files%5CDAUM%5CPotPlayer%5CPotPlayerMini.exe%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20path%20%3D%20%22C%3A%5C%5CProgram%20Files%5C%5CDAUM%5C%5CPotPlayer%5C%5CPotPlayerMini.exe%22%3B%0A%0A%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%0A%20%20%20%20%20%20%20%20play%28gBrowser.currentURI.spec%2C%20%22%22%29%3B%0A%0A%20%20%20if%20%28%20e.button%20%3D%3D%201%20%29%20gShowPopup%28self%29%3B%20%0A%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20play%28gBrowser.currentURI.spec%2C%20%22/add%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%0Aself.image%20%3D%20%22moz-icon%3A//file%3A//%22%20+%20path%3B%0Avar%20playerName%20%3D%20path.split%28%22%5C%5C%22%29.pop%28%29.replace%28%22.exe%22%2C%22%22%29%3B%0Aself.label%20%3D%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20%22%20+%20playerName%3B%0A%0A%0Avar%20contextMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%3B%20%0Avar%20menuitem%20%3D%20contextMenu.insertBefore%28document.createElement%28%22menuitem%22%29%2C%20document.getElementById%28%22context-sep-open%22%29%29%3B%0Amenuitem.setAttribute%28%22label%22%2C%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%22%20+%20playerName%29%3B%20%20%20%20%20%20%0Amenuitem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0Amenuitem.setAttribute%28%22image%22%2C%20%22moz-icon%3A//file%3A//%22%20+%20path%29%3B%20%0Amenuitem.onclick%20%3De%3D%3E%20play%28%28%27getLinkURL%27%20in%20gContextMenu%20%3F%20gContextMenu.getLinkURL%28%29%20%3A%20gContextMenu.linkURL%29%2C%20e.button%20%3F%20%22/add%22%20%3A%20%22%22%29%3B%0AaddEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20menuitem.hidden%20%3D%20%21gContextMenu.onLink%2C%20false%2C%20contextMenu%29%3B%0AaddDestructor%28%28%29%3D%3E%20menuitem.remove%28%29%20%29%3B%0A%0A%20%20%20%20%0Afunction%20play%28link%2C%20param%29%20%7B%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsIFile%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20%5Blink%2C%20param%5D%2C%202%29%3B%0A%7D%3B%0A%0A%0Aself.tooltipText%20%3D%20%22%u041B%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20%22%20+%20playerName%20+%20%22%5Cn%u0421%3A%20CB%20%u041C%u0435%u043D%u044E%20%5Cn%u041F%3A%20%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0432%u0438%u0434%u0435%u043E%20%u0432%20%u043F%u043B%u0435%u0439%u043B%u0438%u0441%u0442%20%22%20+%20playerName%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№13910-01-2016 19:27:13

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

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

Добавлять новые СВ кнопки справа от этой кнопки( Firefox24+ ) от 13.02.2016.
кнопка заставляет новые кнопки добавляться рядом с собой на панели на котором сама находится и их уже не надо вытаскивать на панели вручную из настройки панелей инструментов(Customize). Также на Firefox43 и выше кнопка блокирует баг с дублированием кнопки при добавлении новой кнопки.

ЛКМ => Включить кнопку,
ПКМ => CB Меню.

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ENew%20Button%20at%20Right%20from%20current%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACDUlEQVR42nWT30sUURTHz91Zd9FkVBRrX0oScTMI8weSIYSU/QMFbb5oGAn+AQo9B/UH9BAF+lIr+OLrSETQQ4GhEVRrUFkP/SLRNcvUnXv8nrmz7XVcB86cy7nn+5kz556ryHrueKxIYcFkPMmbxXHgzA6NDyguatQewBzHkKMMQDnWPgDsIwYh8/hATP8HQCRJEFIc5iA1DpljZIGogJU/9WXp39DR1pj99QBwe45dZb6UhCXE2Hx6m4xtQZQ/8SDni+DdSNopVYtysUiFpVbDqp4vPL4uCWc6zt+H+wvbAOBrCBCRFgh0AtIA6BboBVADc6eeZLMCGOq/kkF8Hcs8AO8tgDwav5M0AI/bw87Xw9dml+bvSUamtfsGYmuIrQDwKgIoQirkF3pR9uCbz28vx+tTMWo6VRdsL79eLax80yePtc3MTlwYKwMIT8HTvYufFkc+bq4NOjWN9Kf6cIVsHNr4sePnf9LxytqH06Od1w6oICGA9uZGOnvEpb7tgkrefLl8UXZvdTV5CYe3vv9Wzy6dVnfL9KAKfkcALeihaSKT+yj3Imji1XRPBvFyTTSn4LHMi5Y5SCnrGFc3c5MCqKtMD5c5RnsOisfILlmD1NxA5yThwy96GhkkRtlxrP3oIO0d5ZKXfSSbUYaJ1/tGef9lovAyUeQyAaKCO4nLpPRBABWJlwCWt6vYBccZ9A793wmLAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20self.checked%20%3D%20%21self.checked%3B%0A%20%20%20document.persist%28self.id%2C%20%22checked%22%29%3B%0A%7D%3B%0A%0Avar%20observer%20%3D%20%7B%0A%20%20%20observe%3A%20button%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%20%21self.checked%20%29%20return%3B%0A%20%20%20%20%20%20var%20toolbar%20%3D%20self.parentNode%3B%0A%20%20%20%20%20%20toolbar.insertBefore%28button%2C%20self.nextSibling%29%3B%0A%20%20%20%20%20%20custombuttons.persistCurrentSets%28toolbar.id%2C%20_id%2C%20button.id%29%3B%0A%0A%20%20%20%20%20%20if%20%28%20parseInt%28Services.appinfo.version%29%20%3C%2043%20%29%20return%3B%0A%0A%20%20%20%20%20%20function%20observer%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20Services.ww.unregisterNotification%28observer%29%2C%20500%29%3B%0A%20%20%20%20%20%20%20%20%20subject.close%28%29%3B%0A%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20Services.ww.registerNotification%28observer%29%3B%20%20%20%20%20%20%0A%20%20%20%20%7D%0A%7D%3B%0Avar%20notificationPrefix%20%3D%20custombuttons.notificationPrefix%20+%20%22installButton%22%3B%0AServices.obs.addObserver%28observer%2C%20notificationPrefix%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.obs.removeObserver%28observer%2C%20notificationPrefix%29%20%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14012-01-2016 19:53:44

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

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

Объекты: перебор свойств( Firefox24+ ) от 29.01.2017.
Кнопка для разработчиков CB кнопок, открывает меню с полезными для создании CB кнопок объектами и при клике на нужный объект в меню даёт возможность просмотреть его свойства, в кнопку легко добавить другие объекты. Для работы кнопки нужно расширение DOM Inspector :: Add-ons for Firefox

Скриншот меню с объектами:
8302536.png

ЛКМ => Открыть меню с объектами.

Код кнопки:
Код кнопки:


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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041E%u0431%u044A%u0435%u043A%u0442%u044B%3A%20%u043F%u0435%u0440%u0435%u0431%u043E%u0440%20%u0441%u0432%u043E%u0439%u0441%u0442%u0432%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2WQD/dlkA/3ZZAP92WQD/dlkA/3ZZAP92WQD/dlkA/3BTAN92WQCfdlkAQAAAAAAAAAAAAAAAAAAAAAAAAAAAdlkA/4VxAP+FjgD/hY4A/4WOAP+FjgD/hXkA/5FwAP+IZwD/gmUA/4VoAP+FaACvhWgAEAAAAAAAAAAAAAAAAHZZAP+FjgD/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/4WrAP+ObQD/hWgA/4VoAM+FaAAQAAAAAAAAAAB2WQD/hYoA/6j/HP+o/xz/qP8c/6j/HP+FcQD/qP8c/6j/HP+o/xz/qP8c/4WGAP+FaAD/hWgAzwAAAAAAAAAAdlkA/4WGAP+o/xz/qP8c/6j/HP+FcQD/hXEA/4VxAP+o/xz/qP8c/6j/HP+o/xz/hXEA/4VoAP+FaABgAAAAAHlcAP+FigD/qP8c/6j/HP+FcQD/hXEA/4VxAP+FcQD/hXEA/6j/HP+o/xz/qP8c/6j/HP+FaAD/hWgAvwAAAAB2WQD/hY4A/6j/HP+FcQD/hXEA/4VxAP+FcQD/hXEA/4VxAP+FcQD/qP8c/6j/HP+o/xz/hWQA/4VoAP8AAAAAdlkA/4WOAP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/4VxAP+FaAD/AAAAAHZZAP+FjgD/qP8c/6j/HP+o/xz/qP8c/4VxAP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+FeQD/hWgA/wAAAAB2WQD/hY4A/6j/HP+o/xz/qP8c/4VxAP+FcQD/hXEA/6j/HP+o/xz/qP8c/6j/HP+o/xz/hWQA/4VoAP8AAAAAdlkA/4WOAP+o/xz/qP8c/4VxAP+FcQD/hXEA/4VxAP+FcQD/qP8c/6j/HP+o/xz/qP8c/4VoAP+FaADPAAAAAHZZAP+FjgD/qP8c/4VxAP+FcQD/hXEA/4VxAP+FcQD/hXEA/4VxAP+o/xz/qP8c/451AP+FaAD/hWgAYAAAAAB2WQD/hY4A/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/qP8c/4V9AP+FaAD/hWgAzwAAAAAAAAAAdlkA/4WOAP+o/xz/qP8c/6j/HP+o/xz/qP8c/6j/HP+o/xz/hasA/45tAP+FaAD/hWgAz4VoABAAAAAAAAAAAHZZAP+FcQD/hY4A/4WOAP+FjgD/hY4A/5GFAP+LfwD/l3oA/4tuAP+FaAD/hWgAv4VoABAAAAAAAAAAAAAAAAB2WQD/dlkA/3ZZAP92WQD/dlkA/3ZZAP92WQD/dlkA/3ZZAN92WQCfdlkAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+sQQAHrEEAA6xBAAOsQQABrEEAAaxBAAGsQQABrEEAAaxBAAGsQQABrEEAAaxBAAOsQQADrEEAB6xBAB+sQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20data%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%22Cc%22%2C%20Cc%2C%0A%20%20%20%20%20%20%20%20%22Ci%22%2C%20Ci%2C%0A%20%20%20%20%20%20%20%20%22Components.Constructor%22%2C%20Components.Constructor%2C%0A%20%20%20%20%20%20%20%20%22XPCOMUtils%22%2C%20XPCOMUtils%2C%0A%09%22window%22%2C%20window%2C%0A%09%22document%22%2C%20document%2C%0A%09%22documentElement%22%2C%20document.documentElement%2C%0A%09%22Services%22%2C%20Services%2C%0A%09%22gPrefService%22%2C%20gPrefService%2C%0A%09%22makeFilePicker%28%29%22%2C%20window.makeFilePicker%28%29%2C%0A%09%22XULBrowserWindow%22%2C%20XULBrowserWindow%2C%0A%09%22Components%22%2C%20Components%2C%0A%09%2C%2C%0A%09%22content%22%2C%20content%2C%0A%09%22content.document%22%2C%20content.document%2C%0A%09%22focusedWindow%22%2C%20document.commandDispatcher.focusedWindow%2C%0A%09%22focusedElement%22%2C%20document.commandDispatcher.focusedElement%2C%0A%20%20%20%20%20%20%20%20%22Services.focus.focusedElement%22%2C%20Services.focus.focusedElement%2C%0A%09%22selection%22%2C%20document.commandDispatcher.focusedWindow.getSelection%28%29%2C%0A%09%22selection%20in%20defaultView%22%2C%20gBrowser.contentDocument.defaultView.getSelection%28%29%2C%0A%09%22window.content%22%2C%20window.content%2C%0A%09%22location%22%2C%20content.document.location%2C%0A%09%2C%2C%0A%09%22new%20Date%28%29%22%2C%20new%20Date%28%29%2C%0A%09%22gURLBar%22%2C%20gURLBar%2C%0A%09%22gBrowser%22%2C%20gBrowser%2C%0A%09%22gCustomizeMode%22%2C%20gCustomizeMode%2C%0A%09%22gFindBar%22%2C%20gFindBar%2C%0A%09%22gClipboard%22%2C%20gClipboard%2C%0A%09%22gPageStyleMenu%22%2C%20gPageStyleMenu%2C%0A%09%22gBrowser.docShell%22%2C%20gBrowser.docShell%2C%0A%09%22nsIWebBrowserPersist%22%2C%20Cc%5B%27@mozilla.org/embedding/browser/nsWebBrowserPersist%3B1%27%5D.createInstance%28Ci.nsIWebBrowserPersist%29%2C%0A%20%20%20%20%20%20%20%20%22nsIStyleSheetService%22%2C%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%2C%0A%20%20%20%20%20%20%20%20%22nsIDownloadManager%22%2C%20Cc%5B%22@mozilla.org/download-manager%3B1%22%5D.getService%28Ci.nsIDownloadManager%29%2C%0A%09%22gNavigatorBundle%22%2C%20gNavigatorBundle%2C%0A%09%22PopupNotifications%22%2C%20PopupNotifications%2C%0A%09%22gBrowser.mCurrentTab%22%2C%20gBrowser.mCurrentTab%2C%0A%09%22gBrowser.tabContainer%22%2C%20gBrowser.tabContainer%2C%0A%09%22deck%22%2C%20document.getElementById%28%22content-deck%22%29%2C%0A%09%22browser%22%2C%20gBrowser.selectedBrowser%2C%0A%09%22gNavToolbox%22%2C%20gNavToolbox%2C%0A%09%22nav-bar%22%2C%20document.getElementById%28%22nav-bar%22%29%2C%0A%09%22searchBar%22%2C%20BrowserSearch.searchBar%2C%0A%09%22Scratchpad%22%2C%20Scratchpad%2C%0A%09%2C%2C%0A%09%22gFindBar%22%2C%20gFindBar%2C%0A%09%22gFindBar._findField%22%2C%20gFindBar._findField%2C%0A%09%22BrowserUtils%22%2C%20BrowserUtils%2C%0A%09%22BrowserUtils.getSelectionDetails%22%2C%20BrowserUtils.getSelectionDetails%28window%29%2C%20%0A%09%22BrowserSearch%22%2C%20BrowserSearch%2C%20%0A%09%2C%2C%0A%09%22cbu%22%2C%20cbu%2C%0A%09%22CB2const%22%2C%20CB2const%2C%0A%09%22custombutton%22%2C%20custombutton%2C%0A%09%22custombuttons%22%2C%20custombuttons%2C%0A%09%22custombuttonsUtils%22%2C%20custombuttonsUtils%2C%0A%09%2C%2C%0A%09%2C%2C%0A%09%22StarUI%22%2C%20StarUI%2C%0A%09%22PlacesUIUtils%22%2C%20PlacesUIUtils%2C%0A%09%22PlacesUtils%22%2C%20PlacesUtils%2C%0A%09%22placesContext%22%2C%20document.getElementById%28%22placesContext%22%29%2C%0A%09%22BookmarksService%22%2C%20Cc%5B%22@mozilla.org/browser/nav-bookmarks-service%3B1%22%5D.getService%28Ci.nsINavBookmarksService%29%2C%0A%09%22BookmarkingUI%22%2C%20BookmarkingUI%2C%0A%09%22PlacesCommandHook%22%2C%20PlacesCommandHook%2C%0A%09%22BookmarksEventHandler%22%2C%20BookmarksEventHandler%2C%0A%09%22window.content.SidebarUtils%22%2C%20document.getElementById%28%22sidebar%22%29.contentWindow.SidebarUtils%2C%0A%09%2C%2C%0A%09%2C%2C%0A%09%22new%20MouseEvent%22%2C%20new%20MouseEvent%28%22click%22%29%0A%5D%3B%0Athis.textContent%20%3D%20%22%22%3B%0A%0Avar%20popup%20%3D%20this.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0Apopup.setAttribute%28%22oncommand%22%2C%20%22event.stopPropagation%28%29%3B%20this.open%28event%29%3B%22%29%3B%0Apopup.setAttribute%28%22oncontextmenu%22%2C%20%22return%20false%22%29%3B%0Apopup.position%20%3D%20%22after_start%22%3B%0A%0Afor%28var%20ind%20%3D%200%3B%20ind%20%3C%20data.length%3B%20ind%20+%3D%202%29%20%7B%0A%09var%20lab%20%3D%20data%5Bind%5D%2C%20obj%20%3D%20data%5Bind%20+%201%5D%3B%0A%09if%20%28%21lab%20%26%26%20%21obj%29%20%7B%0A%09%09popup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%0A%09%09continue%3B%0A%09%7D%0A%09var%20menuitem%20%3D%20popup.appendChild%28document.createElement%28%22menuitem%22%29%29%3B%0A%09menuitem.setAttribute%28%22label%22%2C%20lab%29%3B%0A%09menuitem.obj%20%3D%20obj%3B%0A%7D%0A%0A%0A//%20Compact%20Style%0Avar%20style%20%3D%20self.getAttribute%28%27Help%27%29.replace%28/%25id%25/g%2C%20%22%23%22%20+%20_id%29.replace%28/%3B/g%2C%20%22%20%21important%3B%22%29%3B%0Avar%20pi%20%3D%20document.createProcessingInstruction%28%22xml-stylesheet%22%2C%27type%3D%22text/css%22%20href%3D%22data%3Atext/css%2C%27%20+%20encodeURIComponent%28style%29%20+%20%27%22%27%29%3B%0Apopup.pi%20%3D%20document.insertBefore%28pi%2C%20document.firstChild%29%3B%0AparseInt%28Services.appinfo.version%29%20%3C%2029%0A%3F%20popup.setAttribute%28%22onpopuphidden%22%2C%20%22document.removeChild%28this.pi%29%22%29%0A%3A%20popup.setAttribute%28%22onpopuphidden%22%2C%20%22this.pi.remove%28%29%22%29%3B%0A%0A%20%0Apopup.open%20%3D%20function%28e%29%20%7B%0A%09var%20node%20%3D%20e.target%3B%0A%09if%20%28%21node.hasOwnProperty%28%22obj%22%29%29%20return%3B%0A%09var%20obj%20%3D%20node.obj%3B%0A%09if%20%28obj%20instanceof%20Node%20%26%26%20%28e.ctrlKey%20%7C%7C%20e.shiftKey%29%29%20%7B%20inspectDOMNode%28obj%29%3B%20return%3B%20%7D%0A%09var%20win%20%3D%20openDialog%28%0A%09%09%22chrome%3A//inspector/content/object.xul%22%2C%0A%09%09%22_blank%22%2C%20%22chrome%2Call%2Cdialog%3Dno%22%2C%20obj%0A%09%29%3B%0A%09win.addEventListener%28%22pageshow%22%2C%20function%20onPS%28e%29%20%7B%0A%09%09var%20vDoc%20%3D%20e.target%2C%20vHref%20%3D%20vDoc.location.href%3B%0A%09%09if%20%28vHref.indexOf%28%22viewers%22%29%20%3D%3D%20-1%29%20return%3B%0A%0A%09%09var%20doc%20%3D%20win.document%3B%0A%09%09if%20%28%21win.dFlag%29%20%7B%0A%09%09%09doc.querySelector%28%22domi-panel%22%29.switchViewer%288%29%3B%20//%20%22JavaScript%20Object%22%0A%09%09%09win.addEventListener%28%22unload%22%2C%20function%20onUnload%28e%29%20%7B%0A%09%09%09%09win.removeEventListener%28%22unload%22%2C%20onUnload%2C%20false%29%3B%0A%09%09%09%09win.removeEventListener%28%22pageshow%22%2C%20onPS%2C%20false%29%3B%0A%09%09%09%7D%29%3B%0A%09%09%09win.dFlag%20%3D%20true%3B%0A%09%09%7D%0A%09%09if%20%28vHref.indexOf%28%22jsObject%22%29%20%3D%3D%20-1%29%20return%3B%0A%0A%09%09var%20popup%20%3D%20vDoc.getElementById%28%22popupContext%22%29%3B%0A%09%09var%20point%20%3D%20popup.querySelector%28%27menuitem%5Bcommand%3D%22cmdCopyValue%22%5D%27%29%3B%0A%09%09var%20menuitem%20%3D%20popup.insertBefore%28document.createElement%28%22menuitem%22%29%2C%20point.nextSibling%29%3B%0A%09%09menuitem.setAttribute%28%22label%22%2C%20%22%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0441%u0432%u043E%u0439%u0441%u0442%u0432%u043E%22%29%3B%0A%09%09menuitem.setAttribute%28%22oncommand%22%2C%20%22this.run%28%29%22%29%3B%0A%09%09menuitem.run%20%3D%20function%28%29%20%7B%0A%09%09%09var%20view%20%3D%20vDoc.defaultView.viewer.mView%3B%0A%09%09%09var%20inds%20%3D%20view.getSelectedIndices%28%29%3B%0A%09%09%09var%20keys%20%3D%20%5B%5D%3B%0A%09%09%09inds.forEach%28function%28ind%29%20keys.push%28view.mKeys%5Bind%5D%29%29%3B%0A%09%09%09gClipboard.write%28keys.join%28%22%5Cr%5Cn%22%29%29%3B%0A%09%09%7D%0A%09%7D%2C%20false%29%3B%0A%7D%0Apopup.openPopup%28this%29%3B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%25id%25%20*%20%7B%0A%09-moz-appearance%3A%20none%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%7B%0A%09border%3A%201px%20solid%20rgb%28151%2C151%2C151%29%3B%0A%09padding%3A%20.25em%200%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuitem%20%7B%0A%09height%3A%201.3em%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuitem%5B_moz-menuactive%3D%22true%22%5D%20%7B%0A%09background-color%3A%20rgb%28191%2C223%2C255%29%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuseparator%20%7B%0A%09padding%3A%200%3B%0A%09border-top%3A%201px%20solid%20rgb%28224%2C224%2C224%29%3B%0A%09margin%3A%202px%200%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuitem%20%3E%20.menu-text%20%7B%0A%09padding%3A%200%20.5em%3B%0A%7D%0A%25id%25%20%3E%20menupopup%20%3E%20menuitem%20%3E%20.menu-accel-container%20%7B%0A%09display%3A%20none%3B%0A%7D%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14114-01-2016 13:09:23

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

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

Callers( Firefox24+ ) от 14.01.2015.
Кнопка для разработчиков CB кнопок, даёт возможность узнать и просмотреть цепочку внутренних функций Firefox которые вызвали внутреннюю функцию Firefox которую вы укажете в вначале кода инициализации кнопки. Для работы кнопки нужно расширение DOM Inspector :: Add-ons for Firefox

ЛКМ => Включить кнопку,
ПКМ => CB Меню.

Код кнопки:
Код кнопки:


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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3Ecallers%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA////////////////////////////////////////////////////////////////////////////mTMA/5kzAP//////////////////////+PPv//jy7v/58/D/+fPw//jy7v/48+///////////////////////5kzAP+ZMwD/////////////////8eDZ/6ZOIv+dOwr/nTsK/5w6CP+cOQf/pUwg//Dg2f////////////////+ZMwD/mTMA////////////8eDZ/6ZPIv+TJgD/kyYA/505Cf+dPAv/nDcH/5ImAP+lSx7/8ODZ////////////mTMA/5kzAP//////+PPv/6ZOIv+TKAD/lSoA/6hTJ//y5N3/+/f1//Lk3P+mTSH/kCIA/6NIG//38ez//////5kzAP+ZMwD///////jy7v+ePQz/kygA/6A/EP/y5N3/////////////////8eDZ/6NIG/+lSBz/9/Dr//////+ZMwD/mTMA///////58/D/nz8P/5MnAP+gQBH/+vXz///////////////////////59PH/+PPv////////////mTMA/5kzAP//////+fPw/58/D/+TJwD/oEAR//r18///////////////////////+fTx//jz7////////////5kzAP+ZMwD///////jy7v+ePQz/kygA/6A/EP/y5N3/////////////////8eDZ/6NIG/+lSBz/9/Dr//////+ZMwD/mTMA///////48+//pk4i/5MoAP+VKgD/qFMn//Lk3f/79/X/8uTc/6ZNIf+QIgD/o0gb//fx7P//////mTMA/5kzAP////////////Hg2f+mTyL/kyYA/5MmAP+dOQn/nTwL/5w3B/+SJgD/pUse//Dg2f///////////5kzAP+ZMwD/////////////////8eDZ/6ZOIv+dOwr/nTsK/5w6CP+cOQf/pUwg//Dg2f////////////////+ZMwD/mTMA///////////////////////48+//+PLu//nz8P/58/D/+PLu//jz7///////////////////////mTMA/5kzAP///////////////////////////////////////////////////////////////////////////5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/mTMA/5kzAP+ZMwD/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20obj%20%3D%20gBrowser%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20//%20%u0443%u043A%u0430%u0437%u0430%u0442%u044C%20%u043E%u0431%u044A%u0435%u043A%u0442%20%u0432%20%u0441%u0432%u043E%u0439%u0441%u0442%u0432%u0430%u0445%20%u043A%u043E%u0442%u043E%u0440%u043E%u0433%u043E%20%u0435%u0441%u0442%u044C%20%u0444%u0443%u043D%u043A%u0446%u0438%u044F%20Firefox%20%u043A%u043E%u0442%u043E%u0440%u0443%u044E%20%u043D%u0443%u0436%u043D%u043E%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u0442%u044C%0Avar%20funcName%20%3D%20%22loadURIWithFlags%22%3B%20//%20%u0443%u043A%u0430%u0437%u0430%u0442%u044C%20%u0432%u043D%u0443%u0442%u0440%u0435%u043D%u043D%u044E%u044E%20%u0444%u0443%u043D%u043A%u0446%u0438%u044E%20Firefox%20%u043A%u043E%u0442%u043E%u0440%u0443%u044E%20%u043D%u0443%u0436%u043D%u043E%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u0442%u044C%0A%0Avar%20originalFunc%20%3D%20obj%5BfuncName%5D%3B%0Afunction%20destr%28%29%20%7B%0A%09self.checked%20%3D%20false%3B%0A%09obj%5BfuncName%5D%20%3D%20originalFunc%3B%0A%7D%0AaddDestructor%28destr%29%3B%0A%0Avar%20ms%20%3D%200%3B%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%09if%20%28e.button%29%20return%3B%0A%0A%09this.checked%20%3D%20%21this.checked%3B%0A%09if%20%28%21this.checked%29%20%7B%20destr%28%29%3B%20return%3B%20%7D%0A%0A%09obj%5BfuncName%5D%20%3D%20function%20%28%29%20%7B%0A%09%09originalFunc.apply%28obj%2C%20arguments%29%3B%0A%0A%09%09var%20now%20%3D%20Date.now%28%29%3B%0A%09%09var%20delta%20%3D%20now%20-%20ms%3B%0A%09%09ms%20%3D%20now%3B%0A%09%09if%20%28delta%20%3C%20500%29%20return%3B%0A%09%09%0A%09%09var%20data%20%3D%20%7B%7D%3B%0A%09%09Object.defineProperty%28data%2C%20%22toString%22%2C%20%7B%0A%09%09%09value%3A%20function%28%29%20%22CALLERS%20%3A%22%2C%0A%09%09%09configurable%3A%20true%2C%0A%09%09%09enumerable%3A%20false%0A%09%09%7D%29%3B%0A%09%09var%20count%20%3D%200%3B%0A%09%09for%28var%20f%20%3D%20arguments.callee.caller%3B%20f%3B%20f%20%3D%20f.caller%29%0A%09%09%09data%5B++count%20+%20%22.%20%22%20+%20%28f.name%20%7C%7C%20%22unnamed%22%29%5D%20%3D%20f%3B%0A%09%09inspectObject%28data%29%3B%0A%09%7D%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14201-02-2016 23:29:24

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

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

CustomPaste for CustomButtons( Firefox24+ ) от 11.06.2016.
Очень полезная кнопка для разработчиков CB кнопок, добавляет в редактор всех установленных CB кнопок кнопочку которая открывает меню с кодами которые можно вставить в поле текстового вода редактора нажатием на нужный пункт меню, коды вставляются в позицию курсора или заменяют выделенный текст в поле текстового вода редактора. Можно удалять не нужные коды или добавлять свои коды в вкладке Справка кнопки. Можно создать несколько кнопок CustomPaste for CustomButtons с разными коллекциями кодов, тогда в редакторы всех CB кнопок будут добавлены столько же кнопочек-меню с разными кодами. В начале кода инициализации кнопки можно менять настройки для кнопки.

Скриншот меню с кодами в редакторе CB:
a643acdf0f5ea8b0f95c30b6e86ede17.png

ЛКМ => Включить кнопку,
ПКМ => CB Меню.

Код кнопки:
Код кнопки:


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ECustomPaste%20for%20CustomButtons%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//rq7///////////////////////9eXv////////////9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/////////////////////////////Xl7/////////////Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////+urv//Xl7//15e//9eXv//Xl7/////////////Xl7//15e//9eXv//Xl7/////////////3Nz//9jY/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////9eXv/////////////c3P//2Nj/////////////Xl7//15e//9eXv//Xl7//66u////////////////////////Xl7/////////////////////////////rq7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//-----------------------%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438--------------------------------%0Aconst%20insertButtonBackgroundColor%20%3D%20%22rgb%28205%2C109%2C252%29%22%3B//%20%20%20%20%20%20%20%u0426%u0432%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u0432%20%u043E%u043A%u043D%u0435%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0430%0Aconst%20insertButtonTooltip%20%3D%20%22%u041F%u0440%u0438%u043C%u0435%u0440%22%3B//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u041D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%u0442%u043E%20%u0447%u0442%u043E%20%u0431%u0443%u0434%u0435%u0442%20%u0432%u043E%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0439%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0435.%0Aconst%20cursorIndex%20%3D%20%22%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%22%3B//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u041C%u0435%u0442%u043A%u0430%20%u043A%u0443%u0434%u0430%20%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u043A%u0443%u0440%u0441%u043E%u0440%20%u043F%u043E%u0441%u043B%u0435%20%u0432%u0441%u0442%u0430%u0432%u043A%u0438%0Aconst%20allowSelection%20%3D%20true%3B//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u0440%u0435%u0436%u0438%u043C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u044F%20%u043F%u043E%u0441%u043B%u0435%20%u0432%u0441%u0442%u0430%u0432%u043A%u0438%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u0443%u043A%u0430%u0437%u0430%u043D%u0430%20%u043F%u043E%u0437%u0438%u0446%u0438%u044F%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%0Athis.allowChecked%20%3D%20false%3B//%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u043F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u0432%u043A%u043B%u044E%u0447%u0435%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0430%20%u0438%u043B%u0438%20%u043D%u0435%u0442%20%u043D%u0435%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u0446%u0432%u0435%u0442%u043E%u043C%20%u043D%u043E%20%u0438%20%u043D%u0430%u0436%u0430%u0442%u0438%u0435%u043C%0A//-------------------------------------------------------%0A%0A%0Avar%20theSeparator%20%3D%20%22%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%22%3B//%u0420%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432%20%u043C%u0435%u043D%u044E%0Aconst%20insertButtonImage%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%20%20%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfV1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/8AAABfV1dX/wAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArV1dX/1dXV/8AAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAA/////////////////////wAAAAD//////////wAAAAAAAAAAAAAAAAAAAAAAAAArV1dX/1dXV/8AAAAr//////////////////////////8AAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAK///////////AAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACv//////////wAAAAAAAAAAAAAAAAAAAAD//////////////////////////wAAAAAAAAArV1dX/1dXV/8AAAAr//////////8AAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAP//////////AAAAK1dXV/9XV1f/AAAAK///////////AAAAAAAAAAAAAAAAAAAAAP//////////AAAAAAAAAAD//////////wAAACtXV1f/V1dX/wAAACv//////////////////////////wAAAAD//////////wAAAAAAAAAA//////////8AAAArV1dX/1dXV/8AAAArAAAAAP////////////////////8AAAAA//////////////////////////8AAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAK1dXV/8AAABfV1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/8AAABfAACsQQAArEE//KxBP/ysQSE8rEEBPKxBDzysQQ8ErEEPMKxBDzCsQQEwrEEhBKxBP/ysQT/8rEEAAKxBAACsQQ%3D%3D%22%3B%0Aconst%20insertButtonImageOnSelf%20%20%20%20%20%20%20%20%3D%20%20%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfV1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/8AAABfV1dX/wAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArV1dX/1dXV/8AAAArAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAA//////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAAP///////////////////////////////////////////////wAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAAAAAAAD/////////////////////////////////////AAAAAAAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAAAAAAAP//////////////////////////////////////////AAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAAAAAAAAAAAK1dXV/9XV1f/AAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtXV1f/V1dX/wAAACsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArV1dX/1dXV/8AAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAKwAAACsAAAArAAAAK1dXV/8AAABfV1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/9XV1f/V1dX/1dXV/8AAABfAACsQQAArEE//KxBP/ysQSAcrEEgDKxBP8ysQTgMrEEwHKxBM/ysQTAMrEE4DKxBP/ysQT/8rEEAAKxBAACsQQ%3D%3D%22%3B%0Aconst%20editor%20%3D%20%22chrome%3A//custombuttons/content/editor.xul%22%3B%0Athis.tooltipText%20%3D%20%27%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u043A%u043E%u0434%u043E%u0432%20%22%27+insertButtonTooltip+%27%22%20%u0434%u043B%u044F%20%u0440%u0435%u0434%u0430%u043A%u0442%u043E%u0440%u0430%20%u0421ustom%20buttons%27%3B%0A%0AtheSeparator%20%3D%20%22%5Cn%22%20+%20theSeparator%20+%20%22%5Cn%22%3B%0Avar%20items%20%3D%20self.getAttribute%28%22Help%22%29.split%28theSeparator%29%3B%0Avar%20thisCB%20%3D%20this%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0Athis.imageOn%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//rq7///////////////////////9eXv////////////9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/////////////////////////////Xl7/////////////Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////+urv//Xl7//15e//9eXv//Xl7/////////////Xl7//15e//9eXv//Xl7/////////////3Nz//9jY/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv//Xl7//15e/////////////15e//9eXv////////////9eXv//Xl7//15e//9eXv////////////////////////////9eXv/////////////c3P//2Nj/////////////Xl7//15e//9eXv//Xl7//66u////////////////////////Xl7/////////////////////////////rq7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7//15e//9eXv//Xl7/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0Athis.imageOff%20%3D%20%22data%3Aimage/x-icon%3Bbase64%2CAAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P/JyfD//////////////////////5ub4P///////////5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D///////////////////////////+bm+D///////////+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg////////////m5vg/5ub4P+bm+D/m5vg////////////m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P///////////5ub4P+bm+D/m5vg/5ub4P///////////////////////////8nJ8P+bm+D/m5vg/5ub4P+bm+D///////////+bm+D/m5vg/5ub4P+bm+D////////////o6Pr/5ub6////////////m5vg/5ub4P+bm+D/m5vg////////////m5vg/5ub4P+bm+D/m5vg////////////m5vg/5ub4P///////////5ub4P+bm+D/m5vg/5ub4P///////////////////////////5ub4P///////////+jo+v/m5vr///////////+bm+D/m5vg/5ub4P+bm+D/ycnw//////////////////////+bm+D////////////////////////////JyfD/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/m5vg/5ub4P+bm+D/AACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQAArEEAAKxBAACsQQ%3D%3D%22%3B%0Athis.image%20%3D%20this.imageOn%3B%20if%20%28this.allowChecked%29%20this.checked%20%3D%20true%3B%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20cbIdNumber%20%3D%20this.id.replace%28%22custombuttons-button%22%2C%20%22%22%29%3B%0Avar%20insertButtonId%20%3D%20%22custom-paste-by-cb%22%20+%20cbIdNumber%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0Avar%20prefs%20%3D%20Cc%5B%22@mozilla.org/preferences-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20.getService%28Ci.nsIPrefService%29%0A%20%20%20%20%20%20%20%20%20%20%20%20.getBranch%28%22custombutton.CustomPasteForCBEditor%5B%22%20+%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cbIdNumber%20+%20%22%5D.%22%29%3B%0Atry%20%20%20%20%20%20%7B%20var%20pref%20%3D%20prefs.getBoolPref%28%22off%22%29%3B%20%7D%0Acatch%28e%29%20%7B%20prefs.setBoolPref%28%22off%22%2C%20false%29%3B%20%7D%3B%0A%0Athis.off%20%3D%20prefs.getBoolPref%28%22off%22%29%3B%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Afunction%20setButtonDesign%28aDoc%29%20%7B%0A%0A%20%20var%20button%20%3D%20aDoc.getElementById%28%22custom-paste-by-cb%22%20+%20cbIdNumber%29%3B%0A%20%20%20%20%20%20button.tooltipText%20%3D%20insertButtonTooltip%3B%0A%20%20%20%20%0A%20%20var%20image%20%3D%20aDoc.getAnonymousNodes%28button%29%5B1%5D%3B%0A%20%20%20%20%20%20image.style.backgroundColor%20%3D%20insertButtonBackgroundColor%3B%0A%20%20%20%20%20%20image.style.MozMarginEnd%20%3D%20%220px%22%3B%0A%20%20%20%20%0A%20%20var%20dropmarker%20%3D%20aDoc.getAnonymousNodes%28button%29%5B3%5D%3B%0A%20%20%20%20%20%20dropmarker.hidden%20%3D%20true%3B%20%20%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Aconst%20%20kXULNS%20%3D%20%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%3B%0A%0A%20%20var%20place%20%3D%20null%3B%0A%20%20var%20focusedElement%20%3D%20null%3B%0A%0A//%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%0A%0Afunction%20createButton%28aDoc%29%20%7B%0A%0Avar%20%20button%20%3D%20document.createElementNS%28kXULNS%2C%20%22toolbarbutton%22%29%3B%0A%20%20%20%20%20button.setAttribute%28%22image%22%2C%20insertButtonImage%29%3B%0A%20%20%20%20%20button.setAttribute%28%22id%22%2C%20insertButtonId%29%3B%0A%20%20%20%20%20button.setAttribute%28%22type%22%2C%20%22menu%22%29%3B%0A//-------------------------------------------------------------%0A%0A%20%20%20%20%20button.onmouseover%20%3D%20function%28%29%20%7B%20place%20%3D%20aDoc.commandDispatcher.focusedElement%3B%20%7D%0A%20%20%20%20%20%0A//--------------------------------------------------------------%0Avar%20%20menupopup%20%3D%20document.createElementNS%28kXULNS%2C%20%22menupopup%22%29%3B%0A%20%20%20%20%20button.appendChild%28menupopup%29%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20onSelf%20%3D%20false%3B%0A%0Aif%20%28aDoc.location.href.split%28%22custombuttons-button%22%29%5B1%5D%20%3D%3D%20cbIdNumber%29%20%7B%0A%0A%20%20%20%20onSelf%20%3D%20true%3B%0A%20%20%20%20button.setAttribute%28%22image%22%2C%20insertButtonImageOnSelf%29%3B%0A%0A%20%20%20%20%20%20if%20%28items%5B0%5D%20%21%3D%20%22%u0421%u0435%u043F%u0430%u0440%u0430%u0442%u043E%u0440%22%20+%20theSeparator%20%29%20%7B%0A%0A%20%20%20%20%20%20%20%20%20%20items.unshift%28%22%u0421%u0435%u043F%u0430%u0440%u0430%u0442%u043E%u0440%22%20+%20theSeparator%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u0423%u043A%u0430%u0437%u0430%u0442%u0435%u043B%u044C%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%22%20+%20%22%5Cn%22%20+%20cursorIndex%20+%20cursorIndex%29%3B%20%7D%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20items.length%3B%20i++%29%20%7B%0A%20%20%20%20%20%0A%20%20var%20label%20%3D%20items%5Bi%5D.split%28%22%5Cn%22%2C1%29%3B%0A%20%20var%20insertText%20%3D%20items%5Bi%5D.replace%28label%20+%20%22%5Cn%22%2C%20%22%22%29%3B%0A%20%20%0A%20%20var%20%20menuitem%20%3D%20document.createElementNS%28kXULNS%2C%20%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20menuitem.setAttribute%28%22label%22%2C%20label%29%3B%0A%20%20%20%20%20%20%20menuitem.insertText%20%3D%20insertText%3B%0A%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20if%20%28insertText%20%3D%3D%20theSeparator.substring%281%2C%20theSeparator.length%29%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20insertText%20%3D%3D%20cursorIndex%20+%20cursorIndex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menuitem.style.fontWeight%20%3D%20%20%20%22bold%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20menuitem.style.color%20%20%20%20%20%20%3D%20%20%20%22rgb%28183%2C53%2C47%29%22%3B%20%20%7D%0A%20%20%20%20%20%20%20%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0A%20%20%20menuitem.inserter%20%3D%20function%20inserter%28aText%29%20%7B%0A%0A%20%20%20%20%20var%20firstPart%20%3D%20aText.split%28cursorIndex%29%5B0%5D%3B%0A%20%20%20%20%20var%20cursorPosition%20%3D%20place.selectionStart%20+%20firstPart.length%3B%0A%20%20%20%20%20var%20cursorIndexPresent%20%3D%20aText.length%20%21%3D%20firstPart.length%3B%0A%20%20%20%20%20aText%20%3D%20aText.replace%28cursorIndex%2C%20%22%22%29%3B%0A%20%20%20%20%20if%20%28aText%20%3D%3D%20cursorIndex%29%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cursorPosition%20%3D%20place.selectionStart%20+%20cursorIndex.length%3B%0A%0A//-----------------------------------------------------------------------------------%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//http%3A//forum.mozilla-russia.org/viewtopic.php%3Fpid%3D450336%23p450336%0A%0A%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20var%20controller%20%3D%20aDoc.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%0A%20if%28controller%20%26%26%20controller.isCommandEnabled%28cmd%29%29%20%7B%0A%0A%20%20%20%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20params.setStringValue%28%22state_data%22%2C%20aText%29%3B%0A%20%20%20%20%0A%20%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%20%7D%0A//------------------------------------------------------------------------------------%20%20%20%20%0A%0Aif%20%28allowSelection%20%26%26%20%21cursorIndexPresent%29%0A%20%20place.setSelectionRange%28place.selectionStart-aText.length%2C%20place.selectionStart%29%3B//%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u0438%u0435%20%u0432%u0441%u0442%u0430%u0432%u043B%u0435%u043D%u043D%u043E%u0433%u043E%0A%0Aelse%20place.selectionStart%20%3D%20place.selectionEnd%20%3D%20cursorPosition%3B%0A%0A%20%20%20%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0A%20%20var%20%20commandString%20%3D%20%22inserter%28event.target.insertText%29%22%3B%0A%20%20%20%20%20%20%20menuitem.setAttribute%28%22oncommand%22%2C%20commandString%29%3B%0A%20%20%20%20%20%20%20menupopup.appendChild%28menuitem%29%3B%0A%20%7D%0A%20%0A%20if%20%28onSelf%29%20items%20%3D%20self.getAttribute%28%22Help%22%29.split%28theSeparator%29%3B%0A%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20button%3B%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A//%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%u263C%0A%0Afunction%20isButtonAlredyPresent%28aDoc%29%20%7B%20//%20advice%20by%20Inforcatcher%0A%20%20%20%20%20%20%20%20%20%20%20%20%20return%20%21%21aDoc.getElementById%28insertButtonId%29%3B%20%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0Avar%20oSvc%20%3D%20Components.classes%5B%22@mozilla.org/observer-service%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIObserverService%29%3B%0A%0Avar%20observer%20%3D%20%7B%20//%20thanks%20for%20Infocatcher%0A%0Aobserve%3A%20function%28subject%2C%20topic%2C%20data%29%20%7B%0A%20%20%20%20%20%20%20%20%20subject.addEventListener%28%22load%22%2C%20this%2C%20false%29%3B%20%7D%2C%0A%20%20%20%20%20%20%0AhandleEvent%3A%20function%28e%29%20%7B%0A%20%20%20%20var%20doc%20%3D%20e.target%3B%0A%20%20%20%20var%20win%20%3D%20doc.defaultView%3B%0A%20%20%20%20%20%20%20%20win.removeEventListener%28%22load%22%2C%20this%2C%20false%29%3B%0A%0A%20%20%20%20if%20%28doc.location.href.substring%280%2C%2041%29%20%21%3D%20editor%29%20return%3B%0A%0A%20%20%20%20if%20%28%21isButtonAlredyPresent%28doc%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tabs%20%3D%20doc.getElementsByTagName%28%22tabs%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tabs%5B0%5D.appendChild%28createButton%28doc%29%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setButtonDesign%28doc%29%20%20%20%20%20%20%7D%7D%7D%3B%0A%20%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Avar%20ww%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/window-watcher%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20.getService%28Components.interfaces.nsIWindowWatcher%29%3B%0A%0Avar%20activeWin%20%3D%20null%3B%20%20%20%20%20%20%20%20%20%0Athis.onmouseover%20%3D%20function%28%29%20%7B%20activeWin%20%3D%20ww.activeWindow%3B%20%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Afunction%20alsoForTab%28evt%29%20%7B%20var%20doc%20%3D%20evt.target%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28doc.location.href.substring%280%2C%2041%29%20%21%3D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22chrome%3A//custombuttons/content/editor.xul%22%29%20return%3B%0A%0A%20%20%20%20%20if%20%28%21isButtonAlredyPresent%28doc%29%29%20%7B%20var%20tabs%20%3D%20doc.getElementsByTagName%28%22tabs%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tabs%5B0%5D.appendChild%28createButton%28doc%29%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setButtonDesign%28doc%29%3B%20%7D%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Athis.run%20%3D%20function%28%29%20%7B%0A%0A%20%20if%20%28%21this.off%29%20%20%7B%20oSvc.addObserver%28observer%2C%20%22domwindowopened%22%2C%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.addEventListener%28%22DOMContentLoaded%22%2C%20alsoForTab%2C%20false%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prefs.setBoolPref%28%22off%22%2C%20false%29%3B%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20if%20%28this.off%20%29%20%20%7B%20oSvc.removeObserver%28observer%2C%20%22domwindowopened%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20window.removeEventListener%28%22DOMContentLoaded%22%2C%20alsoForTab%2C%20false%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20prefs.setBoolPref%28%22off%22%2C%20true%29%3B%20%7D%0A%0A//------------------------------------------------------------------------------%0A%0A%20%20var%20tabContainer%20%3D%20gBrowser.mTabContainer%3B%0A%20%20var%20tabs%20%3D%20tabContainer.childNodes%3B%0A%0A%20%20for%20%28var%20t%20%3D%200%3B%20t%20%3C%20tabContainer.itemCount%3B%20t++%29%20%7B%20%0A%0A%20%20var%20pageDoc%20%3D%20tabs%5Bt%5D.linkedBrowser.contentDocument%3B%0A%20%20%0A%20%20if%20%28pageDoc.location.href.substring%280%2C%2041%29%20%21%3D%20editor%29%20continue%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%21this.off%29%20%7B%20if%20%28isButtonAlredyPresent%28pageDoc%29%29%20%20continue%3B%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tbs%20%3D%20pageDoc.getElementsByTagName%28%22tabs%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tbs%5B0%5D.appendChild%28createButton%28pageDoc%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setButtonDesign%28pageDoc%29%3B%20%7D%0A%0A%0A%20%20%20%20%20%20%20%20if%20%28this.off%29%20%7B%20var%20b%20%3D%20pageDoc.getElementById%28insertButtonId%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20while%20%28b%29%20%7B%20b%20%3D%20pageDoc.getElementById%28insertButtonId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28b%29%20%7B%20b.parentNode.removeChild%28b%29%3B%20%7D%7D%7D%0A%20%20%7D%0A%0A//------------------------------------------------------------------------------%0A%0A%20%20var%20enumerator%20%3D%20ww.getWindowEnumerator%28%29%3B%0A%20%20var%20win%20%3D%20true%3B%0A%20%20while%20%28win%29%20%7B%20win%20%3D%20enumerator.getNext%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21win%29%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20doc%20%3D%20win.document%3B%0A%0A%20%20%20%20%20%20%20if%20%28doc.location.href.substring%280%2C%2041%29%20%21%3D%20editor%29%20continue%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28%21this.off%29%20%7B%20if%20%28isButtonAlredyPresent%28doc%29%29%20%20continue%3B%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20tbs%20%3D%20doc.getElementsByTagName%28%22tabs%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tbs%5B0%5D.appendChild%28createButton%28doc%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setButtonDesign%28doc%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28win%20%3D%3D%20activeWin%29%20win.focus%28%29%3B%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28this.off%29%20%7B%20var%20b%20%3D%20doc.getElementById%28insertButtonId%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20while%20%28b%29%20%7B%20b%20%3D%20doc.getElementById%28insertButtonId%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28b%29%20%7B%20b.parentNode.removeChild%28b%29%3B%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28win%20%3D%3D%20activeWin%29%20win.focus%28%29%3B%20%20%7D%7D%0A%20%20%20%20%7D%7D%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0Aif%20%28this.off%29%20%7B%20this.image%20%3D%20this.imageOff%3B%20this.checked%20%3D%20false%3B%20return%3B%20%7D%0A%0Athis.run%28%29%3B%0A%0A//%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%3D%0A%0AaddDestructor%28function%28%29%20%7B%0A%20%20%20var%20on%20%3D%20%21self.off%3B%0A%20%20%20%20if%28on%29%20self.off%20%3D%20true%3B%0A%20%20%20%20self.run%28%29%3B%0A%20%20%20%20if%28on%29%20%7B%20self.off%20%3D%20false%3B%20prefs.setBoolPref%28%22off%22%2C%20false%29%3B%20%7D%3B%0A%7D%29%3B%0A%0A%0A%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bthis.off%20%3D%20%21this.off%3B%0A%0Aif%20%20%28this.off%29%20%7B%20this.image%20%3D%20this.imageOff%3B%20this.checked%20%3D%20false%3B%20%7D%0A%0Aif%20%28%21this.off%29%20%7B%20this.image%20%3D%20this.imageOn%3B%20if%20%28this.allowChecked%29%20this.checked%20%3D%20true%3B%20%7D%0A%0Athis.run%28%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%22%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%22%22%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%20+%20%22%20%22%20+%20%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%20+%20%22%5Cn%22%20+%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%26%26%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%7C%7C%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aif%20%28%20%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.length%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Areturn%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aarguments.callee%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.toString%28%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%28%28%29%3D%3E%20%7B%20%7D%29%28%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%28function%20%28%29%20%7B%20%7D%29%28%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Atry%20%7B%20%7D%20catch%28e%29%20%7B%20%20%7D%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AsetTimeout%28%28%29%3D%3E%20%7B%20%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%20%7D%2C%20500%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.getAttribute%28%27%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%27%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Adocument.getElementById%28%27%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%27%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Adocument.getAnonymousElementByAttribute%28tab%2C%20%22class%22%2C%20%22tab-icon-image%22%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aalert%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aalert%28%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aalert%28%221%22%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0ALOG%28%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0ALOG%28%221%22%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Afor%20%28var%20key%20in%20o%29%20%7B%20LOG%28%20key%20+%27%3A%27+%20o%5Bkey%5D%20%29%20%7D%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A%5B%27%27%2C%27%27%5D.indexOf%28str%29%20%21%3D%3D%20-1%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0ALOG%28content.location.href%20+%20%22%20%22%20+%20e.target.localName%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0ACu.reportError%28%27%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%27%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AServices.console.logStringMessage%28%27CBtab%20%3D%20%27%20+%20e.target.linkedBrowser.currentURI.spec%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgBrowser.selectedTab%20%3D%20gBrowser.addTab%28%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgBrowser.loadOneTab%28URL%2C%20null%2C%20null%2C%20null%2C%20background%2C%20false%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Acustombuttons.alertSlide%28%22alert%22%2C%20%22%22%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Athis.tooltipText%3D%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgBrowser.currentURI%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Acontent.document.domain%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Acontent.window.location%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgBrowser.mCurrentTab%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgClipboard.read%28%29%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AgClipboard.write%28%20content.location.href%20%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.localName%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AappendChild%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0A.parentNode%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aself._handlers.length%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.target%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.originalTarget%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0AaddDestructor%28%28%29%3D%3E%20menu.remove%28%29%20%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Aelement.appendChild%28%u0437%u0434%u0435%u0441%u044C%3D%3E%3C%3D%u0437%u0434%u0435%u0441%u044C%29%3B%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.originalTarget.nodeName%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Adocument.popupNode%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.target.triggerNode%0A%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%u25BA%0Ae.originalTarget.triggerNode%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14310-02-2016 23:28:36

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

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

Запуск VBScript( Firefox17+ ) от 29.01.2017.
простая кнопка для запуска VBScriptов в Windows, которые следует помещать в вкладку Справка. Данная кнопка запускает VBScript который сворачивает все открытие окна.

ЛКМ => Запуск VBScript.

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0417%u0430%u043F%u0443%u0441%u043A%20VBScript%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALZSURBVBgZBcFLiFVlAADg7zzuPLzjzDjOMINMitIie5gF+UAkIZSgRQuXLZIWrY021dYIggJdJURElJsoqlWRYA9GshGFCNQeOjoTk6bjeOd5zzn/f07flzRNA459ObcHJ3cM9+1fq2prVa2qa+uh7mAZ9xCxiAV8iu9zgDqEvU9ODOx//dkxALBa1kNrZT202I2TZcVyEd28t+Lb66uHcTwHqEMYH+xJwNyDqJUk8oQsp7eV2tqbytJUK+OpyX5bhtojH07Pv58CxKoabOeEmuUy0al4UNDp0umysM5/KxG8eWbW/u1tj4+2xnKAWFUjG3tSqwWr3ShNEzmyjDQjk8gSaiRxyYUbiy7PduZzgFiW40P9mc56sFY00rSRpaQxkaVkGlmGJnNnqXDq7N9LOJYDhLLcNj7Y0uk2AjRkMZE2iGQaeZOqG2IrCmXY/s1rB+6nALEstk0M9VotG0lKliRSpEjw+YUjPjq3RxkKoSjEsoiQwvMnvusXQ09vK1VGUg1qjVrUqDWKUJoc3emVj3dbWeuEUJZLkEMoyrF2u0+aUEPD19OHNXVQ1kEZgy2bHrZzYq/l7qr766/m3VC0ub+SQyyLDXm7R56SpYlYJ0JdOvzYy2JTi3VUa8x35jwxecBKue7S7E+dXW+nI/nB42dGcWLPI1vdXmrcvBO1++iGUmxqtxb+UtVBqCtVrCwVy3Y/dNBKtZb+OjO1kMeyfA4vXLo6Y3E9t1I0qtjo6goxGB/cKtRRbGr/dmaNDEy4PHfe+etTd8vgSB6r6ukXD+3qf+ulfQDg6OnCJ7+8p6xL3VDaMfqofTuOuHhryrk/fl4tokPz7zRX8lhVM7fvdXx29qrhgX7Dg32G271OHv3dxg09entSvXnqmXcHJGm/6Ru/ad89dmrm9AdXIK9D+GLq4rXJqYvXtmEzNmMTNmGor6fV6utr6YxWfvjzR0P/vDGTh7GvAP4H2uh1wse2x/0AAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0417%u0430%u043F%u0443%u0441%u043A%20VBScript%20%u0438%u0437%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%20%u0421%u043F%u0440%u0430%u0432%u043A%u0430%20................%0Avar%20file%20%3D%20Services.dirsvc.get%28%27ProfD%27%2C%20Ci.nsIFile%29%3B%0Afile.append%28%22runVBScript.vbs%22%29%3B%0AcustombuttonsUtils.writeFile%28%20file.path%2C%20convertFromUnicode%28%22UTF-16%22%2C%20self.getAttribute%28%27Help%27%29%29%20%29%3B%0Afile.launch%28%29%3B%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20................%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5BOption%20Explicit%0ADim%20objShell%0ASet%20objShell%20%3D%20CreateObject%28%22Shell.Application%22%29%0AobjShell.ToggleDesktop%0ASet%20objShell%20%3D%20Nothing%0A%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14421-02-2016 12:07:30

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

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

Автоматически добавлять выделенный текст в SearchBar( Firefox24+ ) от 21.02.2016.
кнопка автоматически добавляет выделенный текст на странице в поле ввода панели поиска.

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

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


Дополнительно можно в инициализацию кнопки положить:
Код:


тогда при удержании курсора на панели поиска будет автоматически открываться меню с поисковиками. Время удержания курсора на панели поиска => 800 можно менять как вам удобней.

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%20%u0410%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0438%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0442%u044C%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0439%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20SearchBar%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABcAAAAVCAYAAACt4nWrAAADQklEQVQ4ja3V/08adxzHcf+t/bT90HTLtmT7F5Ym/XUsy4Uu7mdKYiawudaq04DWjVoFxWgRrU5txDL5clKkIDVBVpE77j5wgPW45LkfTMgOf1gb98Pjt/fr+fntbkAIgdfrxel04nA4bszpdOL1ehFCMHDf7cbn81GtVrEs68aq1So+n4/7bjcDkiRRq9UwTZNms3ljpmlSq9WQJIkBh8OBZVnXjlRVJZFIMB9eZPr3IMG5efb399E07T8fsCwLh8NxFe92uzQajZ5qtcrCUoRYKkv8TGfzbZtQ7oyxyBaBQIBarWa779ftdu1xIQRCCBRFYSES4ZWic37Z5fTCJK29Y+20RfC14NHzQ6ZnHqPrem/T71pc13V0XSeZTLL0UqbSucToWpxemCS1dzwrGwRfCyZljeHAArlcrrfpZ4ubpkm9XqderxNaWiZaUik0LjluXpLSLtg+axE5aTKT05jMaDxYP2RlZaW36Weapj2uqiqqqvI4OEe4JNh+a7B71mLz7xbLJ02CeZ3fMnUmUnUebBUIh0K9Tb9rcUVRUBSFpwth/AenPC00WDhuMF8QzB5pTMp1Rv5S8Wc0RqJpVldXe5t+tnin06FUKlEqldjc3MQ7/5zxpMJEWmU8pTB6oOCNnzPyUuFRQmVoNEAymext+nU6HXu8WCxSLBbJ5/OMjY8zHM0wvHeOJ36OZ++chwmFX+M1PE/WGRwcZGpqio1YrLf7t2vxQqHQc3h4yMPRMYb8YX56JjO8cczPUZmhsRnu3XOSTqdZW5wl+90tTrbXbNtCoWCPt9tt8vm8zdHREbFYjIDfz9TkJIGAn52dHaanp4nMz/Bm6Q7WzJdc/vAJb/6M2rbtdtsez+Vy7yUWi7H/7ReYE59C/A4Ev8J0fkRpY7l3Y4u3Wi2y2ex7y+9s0HbegqnP4MU3MPc16o+3iS4tks1mabVa9rgsyx8k92KLzvcfw8RtrL27HKw/4Y9gEFmW7XHDMMhkMh/s1e4Wdefn7AZ/IRQKMTs7SyaTwTCMq7gkSZTLZVRVJZVK3ZiqqpTL5avvudvtxuPxUKlUMAzjxiqVCh6PB7fbzYAQApfLhSRJ/8s/VJIkXC4XQgj+AW9cSYbbZ7hEAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20cbu.setPrefs%28s%2C%20%21cbu.getPrefs%28s%29%29%3B%0A%0Avar%20s%20%3D%20%27CB.pasteIntoSearchBar%27%3B%0Acbu.isPref%28s%2C%20true%29%3B%0A%0AtoggleImage%28%29%3B%0Afunction%20toggleImage%28%29%20self.checked%20%3D%20cbu.getPrefs%28s%29%3B%20%20%20%20%20%20%20%20%20%20%20%0AgPrefService.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleImage%29%20%29%3B%0A%0Afunction%20pasteIntoSearchBar%28e%29%20%7B%0A%20%20%20if%20%28%20e.button%20%7C%7C%20%21cbu.getPrefs%28s%29%20%29%20return%3B%0A%20%20%20%20%20%20%0A%20%20%20var%20sel%20%3D%20document.commandDispatcher.focusedWindow.getSelection%28%29%3B%20%20%20%20%0A%20%20%20if%20%28%20%21sel.isCollapsed%20%29%20BrowserSearch.searchBar._textbox.value%20%3D%20sel%3B%0A%7D%3B%0AaddEventListener%28%27mouseup%27%2C%20pasteIntoSearchBar%2C%20false%2C%20gBrowser%29%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14521-02-2016 16:21:34

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

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

Запуск программы( Firefox24+ ) от 28.01.2017.
Кнопка запускает указанную программу(приложение), иконка кнопки будет как у запускаемой программы(.exe файла), в сплывающей подсказке у кнопке будет отображаться название запускаемой программы. Если для запуска программы нужны аргументы то их следует указать в строке var arg = [];. Можно быстро изменить запускаемую программу для кнопки или создать много кнопок для запуска разных программ.

ЛКМ => Запуск программы,
СКМ => Установить путь к программе.

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0417%u0430%u043F%u0443%u0441%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u044B%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20e.button%20%3D%3D%200%20%26%26%20runApp%28%29%3B%20%20%20//%20%u041B%u041A%u041C%20%20%20%20%0A%20%20%20e.button%20%3D%3D%201%20%26%26%20setPath%28%29%3B%20%20//%20%u0421%u041A%u041C%20%0A%7D%3B%0A%0Avar%20s%20%3D%20%22CB%22%20+%20_id.slice%2820%29%20+%20%22.pathForApp%22%3B%0A%0AtoggleButtonData%28%29%3B%0Afunction%20toggleButtonData%28%29%20%7B%0A%20%20%20var%20path%20%3D%20getPath%28%29%3B%0A%20%20%20document.getAnonymousNodes%28self%29%5B0%5D.src%20%3D%20%22moz-icon%3A//file%3A//%22%20+%20path%3B%0A%20%20%20self.tooltipText%20%3D%20%22%u041B%3A%20%u0417%u0430%u043F%u0443%u0441%u0442%u0438%u0442%u044C%20%22%20+%20path.split%28%22%5C%5C%22%29.pop%28%29%20+%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%5Cn%u0421%3A%20%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%20%5Cn%u041F%3A%20CB%20%u041C%u0435%u043D%u044E%22%3B%0A%7D%3B%20%20%20%20%20%20%20%20%20%0AgPrefService.addObserver%28s%2C%20toggleButtonData%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20gPrefService.removeObserver%28s%2C%20toggleButtonData%29%20%29%3B%0A%0Afunction%20runApp%28%29%20%7B%0A%20%20%20var%20arg%20%3D%20%5B%5D%3B%20//%20gClipboard.read%28%29%20%20content.location.href%20%20document.commandDispatcher.focusedWindow.getSelection%28%29%0A%20%20%20var%20file%20%3D%20Cc%5B%22@mozilla.org/file/local%3B1%22%5D.createInstance%28Ci.nsILocalFile%29%3B%0A%20%20%20file.initWithPath%28%20getPath%28%29%20%29%3B%0A%20%20%20var%20process%20%3D%20Cc%5B%22@mozilla.org/process/util%3B1%22%5D.createInstance%28Ci.nsIProcess%29%3B%0A%20%20%20process.init%28file%29%3B%0A%20%20%20process.run%28false%2C%20arg%2C%20%28arg.length%29%29%3B%0A%7D%3B%0A%0Afunction%20setPath%28%29%20%7B%20%0A%20%20%20var%20fp%20%3D%20window.makeFilePicker%28%29%3B%0A%20%20%20fp.appendFilters%28%20fp.filterApps%20%29%3B%0A%20%20%20fp.init%28%20window%2C%20%22%u0423%u043A%u0430%u0436%u0438%u0442%u0435%20%u043F%u0443%u0442%u044C%20%u043A%20%u043F%u0440%u043E%u0433%u0440%u0430%u043C%u043C%u0435%22%2C%20fp.modeOpen%20%29%3B%0A%20%20%20fp.open%28%20result%20%3D%3E%20result%20%3D%3D%20fp.returnOK%20%26%26%20cbu.setPrefs%28s%2C%20convertFromUnicode%28%22UTF-8%22%2C%20fp.file.path%29%29%20%29%3B%20%0A%7D%3B%0A%0Afunction%20getPath%28%29%20%7B%20%0A%20%20%20try%20%7B%20return%20gPrefService.getComplexValue%28s%2C%20Ci.nsISupportsString%29.data%3B%20%7D%20%0A%20%20%20catch%28e%29%20%7B%20return%20%22%3F%3F%3F%3F%3F%3F%22%3B%20%7D%3B%0A%7D%3B%0A%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14613-03-2016 20:39:19

thrower
Участник
 
Группа: Members
Зарегистрирован: 28-11-2013
Сообщений: 186
UA: Firefox 45.0

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

NewTabFromUrlBar (Firefox38+), от 07.03.2017.

Автор кнопки: bunda1 >>> №9850.

Кнопочка позволяет всё, вводимое в адресной строке, открывать по умолчанию в новой вкладке: закладки, ссылки, поисковые запросы...
Т.е. можно всячески использовать UrlBar, не уходя с текущей вкладки.
Кнопка заменяет расширение New Tab from Location Bar.

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

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ENewTabFromUrlBar%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAR0lEQVQ4jWNgGDkgdrP/f4oNIGgITBE27L/G/r/3Kiv8hsRu9v8fvM4ZqwHB65z/+622JWwALgUkeQGXHF7NRNsyzA0YmgAA4kdZQXK1CCcAAAAASUVORK5CYII%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%2C%20%u043E%u0442%2007.03.2017.%20.................%0A%28%28%29%3D%3E%20%7B%0A%20%20%20var%20src%20%3D%20%22gURLBar.handleCommand%20%3D%20%22%20+%20gURLBar.handleCommand.toString%28%29%2C%0A%20%20%20%20%20%20%20res%20%3D%20src.replace%28%27altEnter%29%27%2C%20%27true%29%27%29.replace%28%27if%20%28isMouseEvent%29%27%2C%20%27if%20%28false%29%27%29.replace%28%27altEnter%20%3F%20%22tab%22%20%3A%20%22current%22%27%2C%20%27%22tab%22%27%29%3B%0A%20%20%20eval%28res%29%3B%0A%20%20%20addDestructor%28%28%29%3D%3E%20eval%28src%29%20%29%3B%0A%7D%29%28%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14719-03-2016 15:26:12

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

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

Переключить панель навигации( Firefox45+ ) от 19.03.2016.
Кнопка переключает панель навигации.

ЛКМ => переключить панель навигации,

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


Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u041F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0430%u043D%u0435%u043B%u044C%20%u043D%u0430%u0432%u0438%u0433%u0430%u0446%u0438%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/x-icon%3Bbase64%2CAAABAAEAEhIAAAEAIACABQAAFgAAACgAAAASAAAAJAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTMvBTUxKwozLicMKCMcDBoUDQwXEQoMFxEKDBcSCgwXEgsMGBILDBgSCwwcFg8MLykhDDcyKgw3Mi0JNTQyBAAAAAA2My0GNjIsMDgwJVs2LSFqLSQZaiAXDGseFQprHRUJax4WCmseFgtqHxYLaiAWC2okGg9qNSwgajkwI2k4MShYNjMwKzU0MgU6MSYQOzAhdD4sE8Q6Jw7cNCIM3C8eCdwuHQjcLh4I3C8fCNwwHwncMh8I3DMgCNw0IQncOiYN3D4qD9s+LhjAOTIoajcyLQ0+MiIUPzAckT4nC+g3IAb/NiQP/zorGP86Khn/OioZ/zsrGf83JA//Mh0G/zMdBv81Hgb/Nx8G/z0kBv9BLBDkOzIlhTkzKxJAMyMVQDEelD8oDek5Iw3/dGle/7izrv++urb/vrq1/767tv9yZ1v/OSYU/zEbBv80HAf/OB8H/z8kCP9ELRLmPDIliDkzKxJBNCMVQzIelEQrD+k/KBH/kYd///Hw7//5+fn/+fn5//n5+f+Sh3z/Ri8b/zshCP8+Iwj/QSQJ/0grDP9KMhXmPjQmiDo0KxJDNSMVRTQelEkvEOlELRT/lYuC//b19P///////v7+//7+/v+Wi3//TDQd/0ImC/9HKQz/SisN/1ExD/9ONRbmQDUmiDs0KxJENSMVSDUelE4yEelMMhb/mY6E//b19P///////v7+//7+/v+ajID/Uzkg/0wtD/9RMBH/VDIS/1k2Ef9TNxfmQjYniDw1LBJGNiMVSjcflFU2EulXOBn/oJOG//b29P///////v7+//7+/v+ekIP/Wz4l/1UyE/9aNhX/XjkV/2E6Ev9YOhfmRDcniD02LBJJOSMVTzoflGE9FOlkPRT/bk4v/3phSP91YEr/d2VT/5SIfP+UhHb/fGRN/2lHJv9mPhf/a0AW/2xAE/9fPhfmRjgniD42LBJKOSMVUjsflGlBFOlxQxT/bkIa/2lCHf9fPh7/aVA3/7asov/i3tr/vrCj/4NjRf9uQxr/ckMW/3REFP9kQBfmSDkniD83LRJMOiMVVT0flHFFFOl9SRX/ekcX/3NDFv9pPhf/clEz/8Cypf/v6+j/yr2w/4ppS/9zRhz/eUcX/3tIFP9oQhjmSjooiEA3LRJNOyMVVz4flHdIFOmIThb/iE4Y/4JLGP96Rxj/fVMs/66Vfv/Lu6z/spuG/4toSP+CWDH/hlMl/4JMFf9sRBjmSzsoiEA4LRJOOyIVWT8elH1LFOmTVBb/llYa/5FTGf+MUBn/hk4a/4RQIP9+TiH/g1gx/66Te//h1sz/vp6A/41VHP9wRhjmSzsoiEA4LRJKOSIUVTwekXhHE+iPURP/lVUW/5BUF/+NUhf/ilEY/4dQGP+ATBf/g1Qk/6OCYf/ItaD/sIpl/4hRGP9rQxbkSTknhT83LRJDNyYQSjgjdGE/GMRxRRbbdEcW3G9DE9xuQhTcbUIU3GxDFdtoQBTcZkAX3W5NKN15XDvdd1Ms3GtDF9tZPRvAQTcqajo1Lw06NS0GPDUsMEQ3KFtJOCVqQzIeajYkEGozIg5qMiIOajMjD2oxIQ9rLR4NayweDmwvIhFsPC0da0M0I2lBNihYODQwKzY0MgUAAAAAODUvBTw1LQo9NSoMMiofDCMaDwwhGA0MIBgNDCAYDQweFgwMGxQKDBoTCgwbFQwMKyQbDDgwJww6NC0JNjQyBAAAAACAAEBBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQYAAQEE%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20setToolbarVisibility%28bar%2C%20bar.collapsed%29%3B%0A%20%20%20cbu.setPrefs%28%27CB.navBar.hidden%27%2C%20bar.collapsed%29%3B%0A%7D%3B%0Avar%20bar%20%3D%20document.getElementById%28%22nav-bar%22%29%3B%0Abar.collapsed%20%3D%20cbu.getPrefs%28%27CB.navBar.hidden%27%29%3B%0A%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№14822-04-2016 06:21:18

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 48.0

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

Быстрое переключение параметров about:config (Проверялось на Firefox 24, 45, 48 и SeaMonkey 2.38 (спасибо negodnik)), от 07.03.2017.

Позволяет быстро переключать параметры about:config через меню кнопки из заданного набора (для строковых(string) и целых(integer) параметров значение выбирается в подменю).
скриншот

С отображением текущих значений параметров.
Параметры, имеющие значения установленные пользователем, выделяются жирным текстом.
Для строковых и целых - устанавливается отображаемое название значения. При этом, текущее значение/заданные значения - выводятся во всплывающих подсказках у названия параметра и пунктов его подменю.
(Названия значений, отсутствующих в заданных, выводятся как "Default" - если параметр имеет значение по умолчанию или не существует и "Other" - для отличных от дефолтных, но существующих. Полные значения, в этом случае, также выводятся во всплывающих подсказках.)

Прим.: В строковых параметрах необходимо экранировать обратный слеш ("\"), т.е, вместо одного \ - записывать два \\.

Возможности:
В кнопку легко добавить новые параметры! В комментариях в коде имеется подробное описание.
Задать предпочитаемое пользователем значение параметра и, при отличии от текущего, пункт меню и иконка самой кнопки будут выделены красным цветом. Также имеется возможность установить таким пунктам предупреждающую иконку (см. стиль под спойлером с кнопкой). скриншот
Задать, для отдельных параметров, появление диалогового окна с подтверждением о перезапуске браузера (рестарт требуется для применения изменений некоторых параметров).
Задать, опционально, accesskey для каждого пункта меню/подменю/пунктов подменю (клавиши быстрой навигации).

ЛКМ / Enter по пункту меню с логическим(boolean) параметром - переключает его значение с true на false и наоборот.
Для строковых(string) и целых(integer) параметров - значения переключаются кликом любой кнопкой мыши (клавишей ввода) по пунктам в его подменю.
ПКМ / Спецклавиша вызова контекстного меню / Shift+Enter по пунктам меню/названию подменю - сбрасывает значение параметра в дефолтное значение.
Alt + M - вызов меню кнопки (без зависимости от текущей раскладки клавиатуры).

Изменения (24.07.2016):

24.07.2016
Исправлено: Проблема с обратным слешем в строковых параметрах. Параметр вида C:\Downloads\TEST1 необходимо прописывать как C:\\Downloads\\TEST1 (т.е., два слеша вместо одного).
Добавлено: Возможность задать accesskey - клавиши для быстрой навигации по меню.

05.05.2016
Исправлено: неработоспособность меню integer(целых) параметров (спасибо negodnik за нахождение проблемы).

02.05.2016
Исправлено: Вызов меню по сочетанию клавиш (спасибо Dumby за замечания).

01.05.2016
Добавлено: Сброс параметров меню с субменю по Shift + Enter (спасибо Dumby)
+ Вызов меню кнопки по сочетанию Alt + M (без зависимости от раскладки клавиатуры)
+ Индикация несоответствия пользовательскому предпочтению сменой иконки кнопки

28.04.2016
Добавлено: Поддержка работы с клавиатуры. (спасибо Dumby за помощь)

25.04.2016
Добавлено: Названия параметров, имеющих значения установленные пользователем, выделяются жирным стилем текста.
Изменено: Параметры со значениями не совпадающими с заданными пользовательскими предпочтениями - выделяются теперь только цветом.
+ Небольшое изменение: стили для текста пунктов меню устанавливаются с флагом important чтобы не перекрывались другими.
+ Мелкие исправления в коде.

24.04.2016
Исправлены ошибки при отсутствии параметра в about:config (спасибо bunda1 за нахождение ошибки).
+ Исправлена работа на SeaMonkey (спасибо Dumby и bunda1 за указание на ошибку и решение) и неточности в выводимых названиях для параметров (спасибо за указание на ошибку Dumby).
Добавлена поддержка Unicode для строковых параметров (спасибо bunda1 за помощь и Dumby за указание на проблему).

23.04.2016
Исправлены некоторые ошибки указанные Dumby: размер иконки кнопки при нахождении не на панели навигации и с листенерами.
+ Удалена/заменена излишняя часть кода (спасибо bunda1).
Добавлена возможность задать предпочитаемое пользователем значение параметра и при отличии от текущего, пункт будет выделен красным цветом. Также имеется возможность установить таким пунктам предупреждающую иконку (см. стиль под спойлером с кнопкой). (За идею спасибо negodnik)
+ мелкие правки стиля

22.04.2016
Добавлена возможность задать, для отдельных параметров, появление диалогового окна с подтверждением о перезапуске браузера (рестарт требуется для применения измений некоторых параметров).
Исправлена незначительная ошибка засоряющая консоль (спасибо negodnik за найденную причину ошибки).


Код кнопки, инициализации, иконка и стиль:


Код кнопки:
Инициализация:
Иконка (www.flaticon.com):
Стиль для Stylish или userChrome.css, устанавливающий предупреждающую иконку параметрам, чьи значения отличаются от предпочитаемых:



Код мой, с активным подглядыванием в кнопки (и помощью) bunda1, Dumby и okkamas_knife, которым большое от меня спасибо.

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EQuick%20toggle%20for%20about%3Aconfig%20preferences%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0411%u044B%u0441%u0442%u0440%u043E%u0435%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20about%3Aconfig%20%u043E%u0442%2024.07.2016%0Athis._handleClick%20%3D%28%29%3D%3E%20menuPopup.openPopup%28this%2C%20%22after_start%22%29%3B%0A%0Avar%20menuPopup%20%3D%20self.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%0AmenuPopup.id%20%3D%20%27quick-aboutconfig-menupopup%27%3B%0A%0A//%20%u0418%u0437%u043C%u0435%u043D%u0438%u0442%u044C%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u043F%u0440%u0438%20%u043D%u0435%u0441%u043E%u043E%u0442%u0432%u0435%u0442%u0441%u0442%u0432%u0438%u0435%20%u043B%u044E%u0431%u043E%u0433%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u0442%u0435%u043B%u044C%u0441%u043A%u043E%u043C%u0443%20%u043F%u0440%u0435%u0434%u043F%u043E%u0447%u0442%u0435%u043D%u0438%u044E%20%28%u0441%u043C.%20%u043D%u0438%u0436%u0435%29.%0A//%20%u0418%u043A%u043E%u043D%u043A%u0430%20%u043C%u0435%u043D%u044F%u0435%u0442%u0441%u044F%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u043F%u0440%u0438%20%u0438%u0437%u043C%u0435%u043D%u0435%u0438%u0438%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%2C%20%u043B%u0438%u0431%u043E%20%u043F%u043E%u0441%u043B%u0435%20%u0435%u0433%u043E%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u044F.%0Avar%20s%20%3D%20%27CB.hasNotUserChoice%27%3B%0Afunction%20toggleImage%28%29%20%7B%0A%20%20var%20val%20%3D%20custombuttons.getPrefs%28s%29%3B%0A%20%20self.image%20%3D%20val%0A%20%20%20%20%3F%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAB6klEQVQ4jZWTv2tUQRDHv8ntd28GLLQQfwS5VkuDSgRF/wlRiIiCQQQhhZ1VII1/wDUWkkLTBAsbC0FJYZGQ3NuZRcHYW6UQEQzoeXkW791xXh5CptodZr8z85kd4BBWRJwDgB5wyoCjh3mLbfK8C/ddW11XJlduNgYaeTFpvJWA0+P+BBx3Cf2sLEy5m4WrS8A0AGANaBUSrgKAKzdcY5k0PF4HJGm47NK6nSUMXOIXAEgSrrnG0oU/AGDKNb6qHe9c+Ms1lqbxqws/uoTfWVp3ksRll/DTJM6bcMWEn1KbDysBCW+zsnSNpWssTbg3PNf3uw7MuHDgym8uoW8aX496SxKXs7J0iTsFObcGRBfey8rShP1EXthSnDHhShJ0vM0H1uYiAKBSHWZqLYyDc+H7sSpeNlMX9l1jWWebEAgjgSxcbRRYB46YhCcVxH9bqDP3nbyUBB0XPk+Cjgnvj1qoqohvJqDtTUBdcGAmSzgIEQBM2R0fY/U41GPkwNpcTBKfmnDPNN4w4TOX+NnbfAQAWAKmXcMVAMgaNqrM1UfqkbMmrXkT/nGJO1XF4Xod8/0Ak4KcKzTe3AROjPs/AMdM2M8atk25a8IXAKYawTZZj5jNEvZN2TVldg3Ny/RfkYizALAFnByu819tzvCRWXKqTwAAAABJRU5ErkJggg%3D%3D%27%0A%20%20%20%20%3A%20%27data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAACXBIWXMAAABnAAAAZwHVKNQmAAADGGlDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjaY2BgnuDo4uTKJMDAUFBUUuQe5BgZERmlwH6egY2BmYGBgYGBITG5uMAxIMCHgYGBIS8/L5UBA3y7xsDIwMDAcFnX0cXJlYE0wJpcUFTCwMBwgIGBwSgltTiZgYHhCwMDQ3p5SUEJAwNjDAMDg0hSdkEJAwNjAQMDg0h2SJAzAwNjCwMDE09JakUJAwMDg3N+QWVRZnpGiYKhpaWlgmNKflKqQnBlcUlqbrGCZ15yflFBflFiSWoKAwMD1A4GBgYGXpf8EgX3xMw8BUMDVQYqg4jIKAX08EGIIUByaVEZhMXIwMDAoM2Qw7CDkY8xi/EskynTYmYR5i4WFpZGVibWNjYetmnsyuybOVw5bnIWcHFyLeV24n7E08KrwXuOr4xfnv+0QIWguuANoS5hO+EvIqtFU8TkxW6Jz5AIlxSXvCE1RzpBRk3mrexWuXp5LwUxhSeKm5SalENU1FR+qp5TW6JerRGsqaPFpvVIe5/ObN0qvSh9KwMZg3+Gj4yOG68xmWxaZZZs7mNhbqlkxWf12/qlzQ3bE3Y77Vc7zHWc6NTqXOVS4JruFuce7hHg6eXl6u3oY+dr7WfpbxFgEWgRZBlsHWIX6hTmFu4dERgZHhUfnR5TEFsZ1xzflzArcVnS5uSDKedT76W9S/+XKZClmG2S454bnZef31owq3Bj0YniByU/ygTLtStcKxOqaqpn1GytvVT3oYG/Ua/Jrzm/ZULrprYr7d87pbvsu5N7OnvX9V3t/zNRZZLP5JIp86aemPZphuxMz1mlsxfOOT/3z3ztBVELOxftXPxqqfQyn+V1KzaufLJaYo3P2sZ129a/2ai0KXLzxC0ntjFut9pRvHPtrhd7lPbG7Zu1/9pB4UOBh/uPnD3Gc9z7RPfJM6d5zvidnXDu0gXRixGX5lx+cFXlWtb19Te+3rK53Xzn1D2h+9EPljx8+9j8SePTM8/FXyS9XPfq9xuPt1PfPf5g+LHh0/kv8l/zv+3/IfAz6deWP2x/I/6t/v8fAATCIM0IpJTRAAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAEOSURBVHjabJGtS0MBFMXPJojBMMPwC1nV6FCZoGj/ZVGYiIJDBOEFm3XFP2DFIAu6ZrAYBM0OREEUnN20ICI40OfbsTzYB48b7oF74J4PWUnDjMU4GSv5PEubCo/UuwjMs8FEjLOEPNCkRloWAyxb3GEOGWKRTSLeLFYwXyLFBeaGH8w7z/yyRZlvilR5YV+kuMYY04r3NpNEfBByaYksZUyDAoPsYELmmKJKjj0CS0QYU4rl3WLMeceRCBMItW7CMEd9LxbIcUqOXQJLFld9Iks9Ii0qPTYjAo5pscYJrxzIIs1SV1B5ivzRsFjFfHaiLrDOaIxHCLmnyRmp5LLytKnw1FNWH2XaYoyM9T8AOvnw3YUOg90AAAAASUVORK5CYII%3D%27%3B%0A%7D%3B%0AtoggleImage%28%29%3B%0AServices.prefs.addObserver%28s%2C%20toggleImage%2C%20false%29%3B%0AaddDestructor%28%28%29%3D%3E%20Services.prefs.removeObserver%28s%2C%20toggleImage%29%29%3B%0A%0A//%20nodeName%3A%20menuitem%20-%20%u0434%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%2C%20menu%20-%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29.%20menuseparator%20-%20%u0434%u043B%u044F%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044F.%0A//%20pref%20-%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%20about%3Aconfig.%0A//%20%u041F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u044B%20%u0438%u043C%u0435%u044E%u0449%u0438%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u043E%u0442%u043B%u0438%u0447%u043D%u044B%u0435%20%u043E%u0442%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u044B%u0445%20-%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u044B%20%u0436%u0438%u0440%u043D%u044B%u043C%20%u0441%u0442%u0438%u043B%u0435%u043C%20%u0442%u0435%u043A%u0441%u0442%u0430.%0A//%20restart%20%28%u0437%u0430%u0434%u0430%u0432%u0430%u0442%u044C%20%u0441%20%u043F%u0443%u0441%u0442%u044B%u043C%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%u043C.%20%u0442.%u0435.%2C%20restart%3A%20%22%22%29%20-%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0432%u043E%u0437%u043C%u043E%u0436%u043D%u043E%u0441%u0442%u044C%20%u043F%u0435%u0440%u0435%u0437%u0430%u043F%u0443%u0441%u043A%u0430%20%u0431%u0440%u0430%u0443%u0437%u0435%u0440%u0430%0A//%20%28%u0441%20%u043F%u043E%u0434%u0442%u0432%u0435%u0440%u0436%u0434%u0435%u043D%u0438%u0435%u043C%20%u0432%20%u0434%u0438%u0430%u043B%u043E%u0433%u043E%u0432%u043E%u043C%20%u043E%u043A%u043D%u0435%29%20%u043F%u043E%u0441%u043B%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430.%0A//%20key%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20accesskey%20-%20%u043A%u043B%u0430%u0432%u0438%u0448%u0438%20%u0434%u043B%u044F%20%u0431%u044B%u0441%u0442%u0440%u043E%u0439%20%u043D%u0430%u0432%u0438%u0433%u0430%u0446%u0438%u0438%20%u043F%u043E%20%u043C%u0435%u043D%u044E.%0A//%20userChoice%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20%u043F%u0440%u0435%u0434%u043F%u043E%u0447%u0438%u0442%u0430%u0435%u043C%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0438%20%u0435%u0441%u043B%u0438%20%u0442%u0435%u043A%u0443%u0449%u0435%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0441%20%u043D%u0438%u043C%20%u043D%u0435%20%u0441%u043E%u0432%u043F%u0430%u0434%u0430%u0435%u0442%2C%20%u043F%u0443%u043D%u043A%u0442%20%u043C%u0435%u043D%u044E/%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u043E%u043C%u0435%u0447%u0430%u044E%u0442%u0441%u044F%20%u043A%u0440%u0430%u0441%u043D%u044B%u043C%20%u0446%u0432%u0435%u0442%u043E%u043C.%0A//%20%u0422%u0430%u043A%u0436%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u043F%u0440%u0435%u0434%u0443%u043F%u0440%u0435%u0436%u0434%u0430%u044E%u0449%u0443%u044E%20%u0438%u043A%u043E%u043D%u043A%u0443%20%u0434%u043B%u044F%20%u0442%u0430%u043A%u0438%u0445%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432.%20%u0421%u043C.%20%u0441%u0442%u0438%u043B%u044C%20%u0432%20%u043F%u043E%u0441%u0442%u0435%20%u043A%u043A%u043D%u043E%u043F%u043A%u0438.%0A//%20%u0410%20%u0442%u0430%u043A%u0436%u0435%20%u043C%u0435%u043D%u044F%u0435%u0442%u0441%u044F%20%u0438%u043A%u043E%u043D%u043A%u0430%20%u0441%u0430%u043C%u043E%u0439%20%u043A%u043D%u043E%u043F%u043A%u0438%20%28%u0441%u043C.%20%u0432%u044B%u0448%u0435%29.%0A//%20strValues%20-%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u0438%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u043C%u043E%u0435%20%u0432%20%u043C%u0435%u043D%u044E%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F.%20%u0417%u0430%u0434%u0430%u0432%u0430%u0442%u044C%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432.%0A//%20%u0417%u0430%u0434%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u0432%u0438%u0434%u0435%3A%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%2C%2C%2Caccesskey%7C%7C%7C%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u04352%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u04352%2C%2C%2Caccesskey2%7C%7C%7C%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u04353%2C%2C%2C%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u04353%20%u0438%20%u0442.%u0434.%20%28accesskey%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%u0441%u044F%20%u043E%u043F%u0446%u0438%u043E%u043D%u0430%u043B%u044C%u043D%u043E%29%0A//%20%u041F%u043E%u043B%u043D%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0432%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%u0445%2C%20%u043F%u0440%u0438%20%u043D%u0430%u0432%u0435%u0434%u0435%u043D%u0438%u0438%20%u043D%u0430%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u0435%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E/%u043F%u0443%u043D%u043A%u0442%20%u043F%u043E%u0434%u043C%u0435%u043D%u044E.%0A//%20%u0414%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20-%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0441%u0440%u0430%u0437%u0443%20%u043F%u043E%u0441%u043B%u0435%20%u0441%u0430%u043C%u043E%u0433%u043E%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%28%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20true%20-%20%u0442%u0430%u043A%u0436%u0435%20%u0441%u0442%u0430%u0432%u0438%u0442%20%u0433%u0430%u043B%u043E%u0447%u043A%u0443%20%u0434%u043B%u044F%20%u043D%u0435%u0433%u043E%29.%0A//%20%u041B%u041A%u041C%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20-%20%u043F%u0435%u0440%u043A%u043B%u044E%u0447%u0430%u0435%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u044F%20%u0434%u043B%u044F%20%u043B%u043E%u0433%u0438%u0447%u0435%u0441%u043A%u0438%u0445%28boolean%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%2C%0A//%20%u043B%u044E%u0431%u0430%u044F%20%u043A%u043D%u043E%u043F%u043A%u0430%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u0432%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20-%20%u0437%u0430%u0434%u0430%u0435%u0442%20%u044D%u0442%u043E%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u0434%u043B%u044F%20%u0446%u0435%u043B%u044B%u0445%28integer%29%20%u0438%20%u0441%u0442%u0440%u043E%u043A%u043E%u0432%u044B%u0445%28string%29%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432.%0A//%20%u041F%u041A%u041C%20%u043F%u043E%20%u043F%u0443%u043D%u043A%u0442%u0430%u043C%20%u043C%u0435%u043D%u044E%20%u0438%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044E%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20-%20%u0441%u0431%u0440%u0430%u0441%u044B%u0432%u0430%u0435%u0442%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430%20%u0432%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u043E%u0435.%0A//%20%u041A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u0430%3A%20Enter%20-%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u0430.%0A//%20%u0421%u043F%u0435%u0446%u043A%u043B%u0430%u0432%u0438%u0448%u0430%20%u0432%u044B%u0437%u043E%u0432%u0430%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%20/%20Shift+Enter%20-%20%u0441%u0431%u0440%u043E%u0441%20%u0432%20%u0434%u0435%u0444%u043E%u043B%u0442%u043D%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435.%0A//%20Alt%20+%20M%20-%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438.%20%28%u0421%u043E%u0447%u0435%u0442%u0430%u043D%u0438%u0435%20%u043C%u043E%u0436%u043D%u043E%20%u0441%u043C%u0435%u043D%u0438%u0442%u044C%20%u043D%u0430%20%u0441%u0432%u043E%u0435.%20%u0421%u043C.%20%u0432%20%u043A%u043E%u043D%u0446%u0435%20%u043A%u043E%u0434%u0430%29%0A%5B%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.workers.enabled%22%2C%20key%3A%20%27w%27%2C%20userChoice%3A%20%22false%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.indexedDB.enabled%22%2C%20key%3A%20%27d%27%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22dom.storage.enabled%22%2C%20key%3A%20%27s%27%7D%2C%0A%20%20%7BnodeName%3A%20%22menuitem%22%2C%20pref%3A%20%22javascript.enabled%22%2C%20key%3A%20%27j%27%2C%20userChoice%3A%20%22true%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menuseparator%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22general.useragent.override%22%2C%20key%3A%20%27u%27%2C%20userChoice%3A%20%22Mozilla/5.0%20%28X11%3B%20U%3B%20Linux%20x86_64%3B%20rv%3A48.0%29%20Gecko/20100101%20Firefox/48.0%22%2C%20strValues%3A%20%22Mozilla/5.0%20%28X11%3B%20U%3B%20Linux%20x86_64%3B%20rv%3A48.0%29%20Gecko/20100101%20Firefox/48.0%2C%2C%2CFirefox48/Linux%7C%7C%7CMozilla/5.0%20%28Windows%20NT%206.1%3B%20WOW64%3B%20rv%3A45.0%29%20Gecko/20100101%20Firefox/45.0%2C%2C%2CFirefox45/Windows%7C%7C%7C%2C%2C%2C%u041F%u0443%u0441%u0442%u043E%u0435%20%u0437%u043D%u0430%u0447%u0435%u043D%u0438%u0435%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22general.useragent.locale%22%2C%20key%3A%20%27l%27%2C%20restart%3A%20%22%22%2C%20strValues%3A%20%22en-US%2C%2C%2CEnglish%2C%2C%2Ce%7C%7C%7Cru%2C%2C%2C%u0420%u0443%u0441%u0441%u043A%u0438%u0439%2C%2C%2Cr%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22browser.display.document_color_use%22%2C%20key%3A%20%27c%27%2C%20userChoice%3A%20%220%22%2C%20strValues%3A%20%220%2C%2C%2CAutomatic%2C%2C%2C0%7C%7C%7C1%2C%2C%2CAlways%2C%2C%2C1%7C%7C%7C2%2C%2C%2CNever%2C%2C%2C2%22%7D%2C%0A%20%20%7BnodeName%3A%20%22menu%22%2C%20pref%3A%20%22CB.TEST%22%2C%20key%3A%20%27t%27%2C%20userChoice%3A%20%22C%3A%5C%5CDownloads%5C%5CTEST1%22%2C%20strValues%3A%20%22C%3A%5C%5CDownloads%5C%5CTEST1%2C%2C%2CTEST1%2C%2C%2C1%7C%7C%7CC%3A%5C%5CDownloads%5C%5CTEST2%2C%2C%2CTEST2%2C%2C%2C2%22%7D%0A%5D.forEach%28function%28m%29%20%7B%0A%20%20var%20mItem%20%3D%20document.createElement%28m.nodeName%29%3B%0A%20%20var%20browserRestart%20%3D%20%27%27%3B%0A%0A%20%20if%20%28%22restart%22%20in%20m%29%20browserRestart%20%3D%20%27%20if%20%28custombuttons.confirmBox%28null%2C%20%22Restart%3F%22%2C%20%22Yes%22%2C%20%22Cancel%22%29%29%20Services.startup.quit%28Services.startup.eAttemptQuit%20%7C%20Services.startup.eRestart%29%3B%27%3B%0A%0A%20%20if%20%28%22pref%22%20in%20m%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27closemenu%27%2C%20%27none%27%29%3B%0A%20%20%20%20mItem.setAttribute%28%27oncontextmenu%27%2C%20%27event.preventDefault%28%29%3B%20custombuttons.clearPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%3B%27%20+%20browserRestart%29%3B%0A%20%20%7D%0A%0A%20%20if%20%28%22key%22%20in%20m%29%20mItem.setAttribute%28%27accesskey%27%2C%20m.key%29%3B%0A%0A%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menuitem%22%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0A%20%20%20%20mItem.setAttribute%28%27oncommand%27%2C%20%27custombuttons.setPrefs%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%21custombuttons.getPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%29%3B%20if%20%28event.shiftKey%20%26%26%20event.keyCode%20%3D%3D%20event.DOM_VK_RETURN%29%20%7Bevent.preventDefault%28%29%3B%20custombuttons.clearPrefs%28%22%27%20+%20m.pref%20+%20%27%22%29%7D%3B%27%20+%20browserRestart%29%3B%0A%20%20%7D%0A%0A%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menu%22%29%20%7B%0A%20%20%20%20mItem.setAttribute%28%27class%27%2C%20%27menu-iconic%27%29%3B%0A%0A%20%20%20%20var%20subMenu%20%3D%20mItem.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%0A%20%20%20%20for%20%28var%20value%20of%20m.strValues.split%28%27%7C%7C%7C%27%29%29%20%7B%0A%20%20%20%20%20%20var%20submItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20var%20smVal%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B0%5D%3B%0A%20%20%20%20%20%20var%20smValConv%20%3D%20convertFromUnicode%28%22UTF-8%22%2C%20smVal%29%3B%0A%20%20%20%20%20%20var%20smName%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B1%5D%3B%0A%20%20%20%20%20%20var%20key%20%3D%20value.split%28%27%2C%2C%2C%27%29%5B2%5D%3B%0A%0A%20%20%20%20%20%20key%20%26%26%20submItem.setAttribute%28%27accesskey%27%2C%20key%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27type%27%2C%20%27radio%27%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27label%27%2C%20smName%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27tooltiptext%27%2C%20smVal%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27closemenu%27%2C%20%27none%27%29%3B%0A%20%20%20%20%20%20submItem.setAttribute%28%27oncommand%27%2C%20%27try%7Bcustombuttons.setPrefs%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%22%27%20+%20smValConv.replace%28/%5C%5C/g%2C%20%27%5C%5C%5C%5C%27%29%20+%20%27%22%29%7D%20catch%28e%29%20%7BServices.prefs.setIntPref%28%22%27%20+%20m.pref%20+%20%27%22%2C%20%22%27%20+%20smValConv%20+%20%27%22%29%7D%3B%27%20+%20browserRestart%29%3B%0A%0A%20%20%20%20%20%20subMenu.appendChild%28submItem%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%0A%0A%20%20menuPopup.appendChild%28mItem%29%3B%0A%0A%20%20//%20%u041B%u0438%u0441%u0442%u0435%u043D%u0435%u0440%u044B%20%u043E%u0442%u0441%u043B%u0435%u0436%u0438%u0432%u0430%u044E%u0449%u0438%u0435%20%u043F%u0435%u0440%u0435%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%0A%20%20//%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u0430%u0432%u043B%u0438%u0432%u0430%u044E%u0449%u0438%u0435%20%u0441%u043E%u043E%u0442%u0432%u0435%u0442%u0441%u0442%u0432%u0443%u044E%u0449%u0438%u0435%20%u043D%u0430%u0437%u0432%u0430%u043D%u0438%u044F%20%u0438%20%u0447%u0435%u043A%u0431%u043E%u043A%u0441%u044B%20%u0434%u043B%u044F%20%u043F%u0443%u043D%u043A%u0442%u043E%u0432%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u0438%u0438%20%u043C%u0435%u043D%u044E%20%u0438%20%u043A%u043B%u0438%u043A%u0430%u0445%0A%20%20for%20%28var%20type%20of%20%5B%27command%27%2C%20%27popupshowing%27%2C%20%27contextmenu%27%5D%29%20%7B%0A%20%20%20%20addEventListener%28type%2C%20%28e%29%3D%3E%20%7B%0A%20%20%20%20%20%20setTimeout%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%22pref%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20val%2C%20def%3B%0A%0A%20%20%20%20%20%20%20%20%20%20def%20%3D%20Services.prefs.prefHasUserValue%28m.pref%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20val%20%3D%20Services.prefs.getComplexValue%28m.pref%2C%20Ci.nsISupportsString%29.data%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28Services.prefs.getPrefType%28m.pref%29%20%3D%3D%2064%29%20val%20%3D%20custombuttons.getPrefs%28m.pref%29.toString%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20val%20%3D%20custombuttons.getPrefs%28m.pref%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20def%20%3F%20mItem.style.setProperty%28%27font-weight%27%2C%20%27bold%27%2C%20%27important%27%29%20%3A%20mItem.style.removeProperty%28%27font-weight%27%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28m.nodeName%20%3D%3D%3D%20%27menuitem%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27checked%27%2C%20val%29%3B%0A%20%20%20%20%20%20%20%20%20%20mItem.label%20%3D%20m.pref%20+%20%27%3B%27%20+%20val%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7Bvar%20usrChc%20%3D%20%28val.toString%28%29%20%3D%3D%3D%20m.userChoice%29%7D%20catch%28e%29%20%7BusrChc%20%3D%20false%7D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27user-choice%27%2C%20usrChc%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20usrChc%20%3F%20mItem.style.removeProperty%28%27color%27%29%20%3A%20mItem.style.setProperty%28%27color%27%2C%20%27orangered%27%2C%20%27important%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28subMenu%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20for%20%28var%20smitem%20of%20subMenu.getElementsByTagName%28%27menuitem%27%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20smval%20%3D%20smitem.getAttribute%28%27tooltiptext%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20smitem.setAttribute%28%27checked%27%2C%20%28val%20%3D%3D%3D%20smval%29%20%3F%20true%20%3A%20false%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28m.nodeName%20%3D%3D%3D%20%22menu%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20vname%3B%0A%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20vname%20%3D%20subMenu.getElementsByAttribute%28%27checked%27%2C%20%27true%27%29%5B0%5D.getAttribute%28%27label%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%21Services.prefs.prefHasUserValue%28m.pref%29%29%20vname%20%3D%20%27Default%27%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20else%20vname%20%3D%20%27Other%27%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27label%27%2C%20m.pref%20+%20%27%20-%20%27%20+%20vname%29%3B%0A%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27tooltiptext%27%2C%20val%20%7C%7C%20%27This%20preferences%20has%20null%20value%20or%20does%20not%20exist.%27%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20smUsrChc%20%3D%20%28val%20%3D%3D%3D%20m.userChoice.toString%28%29%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20mItem.setAttribute%28%27user-choice%27%2C%20smUsrChc%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20smUsrChc%20%3F%20mItem.style.removeProperty%28%27color%27%29%20%3A%20mItem.style.setProperty%28%27color%27%2C%20%27orangered%27%2C%20%27important%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%20%28%22userChoice%22%20in%20m%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20hasNotUserChoice%20%3D%20menuPopup.getElementsByAttribute%28%27user-choice%27%2C%20%27false%27%29%5B0%5D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20custombuttons.setPrefs%28s%2C%20hasNotUserChoice%20%3F%20true%20%3A%20false%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%2C%200%29%0A%20%20%20%20%7D%2C%20false%2C%20menuPopup%29%0A%20%20%7D%0A%7D%29%3B%0A%0A//%20%u041B%u0438%u0441%u0442%u0435%u043D%u0435%u0440%20%u043F%u043E%u0437%u0432%u043E%u043B%u044F%u044E%u0449%u0438%u0439%20%u0441%u0431%u0440%u043E%u0441%20%u043F%u0430%u0440%u0430%u043C%u0435%u0442%u0440%u043E%u0432%20%u0441%20%u0441%u0443%u0431%u043C%u0435%u043D%u044E%20%u043F%u043E%20Shift%20+%20Enter%0A//%20%u0417%u0430%20%u043A%u043E%u0434%20%u0441%u043F%u0430%u0441%u0438%u0431%u043E%20Dumby%0AaddEventListener%28%22popupshown%22%2C%20%7B%0A%20%20handleEvent%3A%20function%28e%29%20%7B%0A%20%20%20%20this%5Be.type%5D%28e%29%3B%0A%20%20%7D%2C%0A%20%20popupshown%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.target%20%21%3D%20menuPopup%29%20return%3B%0A%20%20%20%20menuPopup.addEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20window.addEventListener%28%22keydown%22%2C%20this%2C%20true%29%3B%0A%20%20%7D%2C%0A%20%20popuphidden%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.target%20%21%3D%20menuPopup%29%20return%3B%0A%20%20%20%20menuPopup.removeEventListener%28%22popuphidden%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20window.removeEventListener%28%22keydown%22%2C%20this%2C%20true%29%3B%0A%20%20%7D%2C%0A%20%20popupshowing%3A%20function%28e%29%20%7B%0A%20%20%20%20e.target.parentNode.removeEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%3B%0A%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%7D%2C%0A%20%20get%20old%28%29%20%7B%0A%20%20%20%20delete%20this.old%3B%0A%20%20%20%20this.e%20%3D%20new%20MouseEvent%28%22contextmenu%22%2C%20%7B%7D%29%3B%0A%20%20%20%20return%20this.old%20%3D%20parseInt%28Services.appinfo.platformVersion%29%20%3C%2025%3B%0A%20%20%7D%2C%0A%20%20get%20prop%28%29%20%7B%0A%20%20%20%20delete%20this.prop%3B%0A%20%20%20%20if%20%28%22key%22%20in%20KeyboardEvent.prototype%29%20this.prop%20%3D%20%22key%22%2C%20this.val%20%3D%20%22Enter%22%3B%0A%20%20%20%20else%20this.prop%20%3D%20%22keyCode%22%2C%20this.val%20%3D%20KeyboardEvent.DOM_VK_RETURN%3B%0A%20%20%20%20return%20this.prop%3B%0A%20%20%7D%2C%0A%20%20keydown%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28%21e.shiftKey%20%7C%7C%20e.ctrlKey%20%7C%7C%20e.altKey%20%7C%7C%20e%5Bthis.prop%5D%20%21%3D%20this.val%29%20return%3B%0A%20%20%20%20var%20target%20%3D%20menuPopup.querySelector%28%22menu%5B_moz-menuactive%5D%3Anot%28%5Bopen%5D%29%22%29%3B%0A%20%20%20%20if%20%28%21target%29%20return%3B%0A%0A%20%20%20%20this.old%20%3F%20target.addEventListener%28%22popupshowing%22%2C%20this%2C%20false%29%20%3A%20e.stopPropagation%28%29%3B%0A%20%20%20%20target.dispatchEvent%28this.e%29%3B%0A%20%20%20%20menuPopup.dispatchEvent%28this.e%29%3B%0A%20%20%7D%0A%7D%2C%20false%2C%20menuPopup%29%3B%0A%0A//%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%20%u043F%u043E%20%u0441%u043E%u0447%u0435%u0442%u0430%u043D%u0438%u044E%20%u043A%u043B%u0430%u0432%u0438%u0448%20Alt%20+%20M%20%28%u043D%u0435%20%u0437%u0430%u0432%u0438%u0441%u0438%u0442%20%u043E%u0442%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u0440%u0430%u0441%u043A%u043B%u0430%u0434%u043A%u0438%20%u043A%u043B%u0430%u0432%u0438%u0430%u0442%u0443%u0440%u044B%29%0A//%20%u041F%u043E%u0441%u043C%u043E%u0442%u0440%u0435%u0442%u044C%20%u043A%u043E%u0434%u044B%20%u043A%u043B%u0430%u0432%u0438%u0448%20%u043C%u043E%u0436%u043D%u043E%20%u0437%u0434%u0435%u0441%u044C%3A%20https%3A//developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode%23Constants_for_keyCode_value%0AaddEventListener%28%27keyup%27%2C%20%28e%29%3D%3E%20%7B%0A%20%20if%20%28e.altKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20e.keyCode%20%3D%3D%2077%29%20%7B%0A%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%7D%0A%7D%2C%20false%2C%20window%29%3B%0A%0A//%20%u041A%u043E%u043D%u0432%u0435%u0440%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u044E%u043D%u0438%u043A%u043E%u0434%20.............%0Afunction%20convertFromUnicode%28charset%2C%20str%29%20%7B%0A%20%20%20var%20converter%20%3D%20Cc%5B%22@mozilla.org/intl/scriptableunicodeconverter%22%5D.createInstance%28Ci.nsIScriptableUnicodeConverter%29%3B%0A%20%20%20converter.charset%20%3D%20charset%3B%0A%20%20%20str%20%3D%20converter.ConvertFromUnicode%28str%29%3B%0A%20%20%20return%20str%20+%20converter.Finish%28%29%3B%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано turbot (24-07-2016 19:21:24)

Отсутствует

 

№14924-04-2016 12:48:02

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

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

GrabScroll( Firefox24+ ) от 24.04.2016.
Кнопка дает возможность перетаскивать(прокручивать) страницу в вертикальном или горизонтальном направлении зажатой кнопкой мыши. В настройках кнопки можно установить кнопку мыши для перетаскивания, скорость и направление перетаскивания, отключить перетаскивание на ссылках и изображениях. Также в настройках можно включить автопрокрутку и тогда если будете быстро перетаскивать страницу то при отжатой кнопке мыши она временно будет прокручиваться сама.

ЛКМ => Включить / выключить перетаскивание страницы.
ПКМ => Открыть меню с настройками кнопки.
Двойной ПКМ => Открыть стандартное меню кнопки.

Скриншот меню с настройками кнопки
678b43928f176c7f5c4a281fa7dc7113.png

Код кнопки:
Код кнопки:


Автор кнопки: Alice0775 - userChrome.js/GrabScroll_Fx29.uc.xul at master · alice0775/userChrome.js · GitHub.

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EGrabScroll%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAABnRSTlMAawBrAGsept3cAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAeElEQVR42pVSWw7AIAwC4209T8/LPmq6xk1T+Wwh0AfHGPjAzAD8tvqXZGaSAJD0Vlb2YC8kRxRD01CGR+hhSlKSpMUkRyBZdfBs0yHGDZOFlME82Y70snOkMzV21TxJUTPXmjUlQQVxu5bvcOdw0Gxfo+Jz8UuOB3pnSTiV10R3AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20GrabScroll.toggle%28%29%3B%0A%20%20%20%20%20%20%20%0A%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%0A%20%20%20%20%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%0A%7D%3B%0Athis.oncontextmenu%20%3De%3D%3E%20%7B%20e.button%20%26%26%20%21e.ctrlKey%20%26%26%20e.preventDefault%28%29%20%7D%3B%0A%0A%0A//%20%u041F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20...............%0Athis.tooltipText%20%3D%20%22%u041B%3A%20%u0412%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20/%20%u0432%u044B%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%5Cn%u041F%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%20%u043D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%u043C%u0438%20%u043A%u043D%u043E%u043F%u043A%u0438%5Cn%u0414%u041F%3A%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043A%u043D%u043E%u043F%u043A%u0438%22%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%0A%0A//%20%u0421%u043E%u0437%u0434%u0430%u0442%u044C%20%u043C%u0435%u043D%u044E%20...............%u0418%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u0442%u044C%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0443%u044E%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0443%0Avar%20array%20%3D%20%5B%0A%20%20%20%20%7B%20label%3A%20%27%u0412%u044B%u0431%u0440%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%27%2C%20func%3A%20%27GrabScroll.button%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0412%u044B%u0431%u0440%u0430%u0442%u044C%20%u043D%u0430%u043F%u0440%u0430%u0432%u043B%u0435%u043D%u0438%u0435%20%u0438%20%u0441%u043A%u043E%u0440%u043E%u0441%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%27%2C%20func%3A%20%27GrabScroll.moverate%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0432%u0440%u0435%u043C%u044F%20%u043E%u0442%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%20%u043F%u0440%u0438%20%u0431%u0435%u0437%u0434%u0435%u0439%u0441%u0442%u0432%u0438%u0438%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%27%2C%20func%3A%20%27GrabScroll.threshold%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20separator%3A%20%27%27%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0418%u0441%u043F%u043E%u043B%u044C%u0437%u043E%u0432%u0430%u0442%u044C%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0443%u044E%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0443%20%u043F%u0440%u0438%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%27%2C%20pref%3A%20%27grabScroll.enableinertia%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0441%u043A%u043E%u0440%u043E%u0441%u0442%u044C%20%u043F%u0440%u0438%20%u043A%u043E%u0442%u043E%u0440%u043E%u0439%20%u043F%u043E%u044F%u0432%u043B%u044F%u0435%u0442%u0441%u044F%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u0430%u044F%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0430%27%2C%20func%3A%20%27GrabScroll.inertiaThreshold%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442%u044C%20%u0434%u043B%u0438%u043D%u0443%20%u0430%u0432%u0442%u043E%u043C%u0430%u0442%u0438%u0447%u0435%u0441%u043A%u043E%u0439%20%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0438%27%2C%20func%3A%20%27GrabScroll.inertiarate%28%29%27%20%7D%2C%0A%20%20%20%20%7B%20separator%3A%20%27%27%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0430%20%u0441%u0441%u044B%u043B%u043A%u0430%u0445%27%2C%20pref%3A%20%27grabScroll.clickable%27%20%7D%2C%0A%20%20%20%20%7B%20label%3A%20%27%u041E%u0442%u043A%u043B%u044E%u0447%u0438%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u0435%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u044B%20%u043D%u0430%20%u0438%u0437%u043E%u0431%u0440%u0430%u0436%u0435%u043D%u0438%u044F%u0445%27%2C%20pref%3A%20%27grabScroll.notimage%27%20%7D%2C%0A%5D%3B%0Avar%20menuPopup%20%3D%20self.appendChild%28%20document.createElement%28%22menupopup%22%29%20%29%3B%0Aarray.forEach%28m%3D%3E%20%7B%0A%20%20%20if%20%28%22separator%22%20in%20m%29%20%7B%20menuPopup.appendChild%28document.createElement%28%22menuseparator%22%29%29%3B%20return%20%7D%3B%0A%20%20%20var%20mItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20mItem.setAttribute%28%22label%22%2C%20m.label%29%3B%0A%20%20%20if%20%28%22pref%22%20in%20m%29%20%7B%20%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%27type%27%2C%20%27checkbox%27%29%3B%0A%20%20%20%20%20%20%20%20mItem.setAttribute%28%27checked%27%2C%20cbu.getPrefs%28m.pref%29%20%29%3B%0A%20%20%20%20%20%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20cbu.setPrefs%28m.pref%2C%20%21cbu.getPrefs%28m.pref%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20else%20mItem.onclick%20%3D%28%29%3D%3E%20eval%28m.func%29%3B%0A%20%20%20menuPopup.appendChild%28mItem%29%3B%0A%7D%29%3B%0AmenuPopup.setAttribute%28%22onclick%22%2C%20%22event.stopPropagation%28%29%22%29%3B%0A%0A%0Avar%20GrabScroll%20%3D%20%7B%0A%20%20TOLERANCE%20%20%20%20%20%20%20%20%20%3A3%2C%0A%20%20TOLERANCE_WHEN_NO_H_SCROLL%20%3A%205%2C%0A%20%20CANCEL_WHEN_SELECTION%3A%20%20%20%20%20%20%20true%2C%0A%20%20CURSOR%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22-moz-grab%22%2C%20//%20none%0A%20%20%0A%20%20MOUSEBUTTON%3A%20%20%20%20%20%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.button%22%29%20%7C%7C%200%2C%0A%20%20MOVERATE%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.moverate%22%29%20%7C%7C%20-1%2C%0A%20%20TIMER%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.timer%22%29%20%7C%7C%20500%2C%0A%20%20INERTIATHRESHOLD%3A%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.inertiathreshold%22%29%20%7C%7C%2080%2C%0A%20%20INERTIARATE%3A%20%20%20%20%20%20%20%20%20%20%20cbu.getPrefs%28%22grabScroll.inertiarate%22%29%20%7C%7C%2050%2C%0A%20%20IGNOREURL%3A%20%20%20%20%20%20%20%20%20%20%20%20%20self.getAttribute%28%27Help%27%29.split%28%27%5Cn%27%29.filter%28%28url%29%3D%3E%20/%5CS/.test%28url%29%29.map%28%28url%29%3D%3E%20url.trim%28%29%29%2C%20%20%20%20%20%20%20%0A%0A%20%20mStatus%3A%200%2C%20%0A%20%20mLastX%3A%200%2C%0A%20%20mLastY%3A%200%2C%0A%20%20mCursor%3A%20null%2C%0A%20%20mCursorElement%3A%20null%2C%0A%20%20_target%3A%20null%2C%0A%20%20_target2%3A%20null%2C%0A%20%20_isImage%3Afalse%2C%0A%20%20_timer%3A0%2C%0A%20%20_ctimer%3A0%2C%0A%20%20_mtimer%3A%20false%2C%0A%20%20cScroll%3Afalse%2C%0A%20%20cSpeedX%3A0%2C%0A%20%20cSpeedY%3A0%2C%0A%20%20_doc%3Anull%2C%0A%20%20_MOVERATEpZoom%3A1%2C%0A%20%20_window%3A%20null%2C%0A%20%20%20%20%20%20%0A%20%20initGrabScroll%3A%20function%28%29%20%7B%0A%20%20%20%20var%20curentBrowserVersion%20%3D%20Services.appinfo.platformVersion%3B%20//%2731.*%27%0A%20%20%20%20var%20compareResult%20%3D%20Services.vc.compare%28curentBrowserVersion%2C%20%2746.*%27%29%3B%0A%20%20%20%20this.Bug1209100%20%3D%20%28compareResult%20%3C%200%29%20%3F%2010%20%3A%201%3B%0A%20%20%20%20%0A%20%20%20%20if%20%28%20GrabScroll.activeBrowser%28%29.mPanelContainer%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20this._window%20%3D%20GrabScroll.activeBrowser%28%29.mPanelContainer%3B%0A%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20else%20this._window%20%3D%20document.getElementById%28%27content%27%29%3B%0A%0A%20%20%20%20for%28%20var%20aURL%20in%20this.IGNOREURL%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20if%20%28%20this.IGNOREURL%5BaURL%5D%20%3D%3D%3D%20%27%27%20%29%20continue%3B%0A%20%20%20%20%20%20%20%20%20this.IGNOREURL%5BaURL%5D%20%3D%20this.convert2RegExp%28this.IGNOREURL%5BaURL%5D%29%3B%0A%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20this._window.setCapture%28%29%3B%0A%20%20%20%20addEventListener%28%22mousedown%22%2C%20this%2C%20true%2C%20this._window%29%3B%0A%20%20%20%20addEventListener%28%22click%22%2C%20this%2C%20true%2C%20this._window%29%3B%0A%20%20%20%20addEventListener%28%22mouseup%22%2C%20this%2C%20true%2C%20this._window%29%3B%0A%20%20%20%20addEventListener%28%27pagehide%27%2C%20this%2C%20false%2C%20gBrowser%29%3B%0A%20%20%20%20%0A%20%20%20%20this.setIcon%28%29%3B%0A%20%20%7D%2C%0A%0A%20%20activeBrowser%3A%20function%28%29%20%7B%0A%20%20%20%20return%20%28%27SplitBrowser%27%20in%20window%20%3F%20SplitBrowser.activeBrowser%20%3A%20null%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%20gBrowser%3B%0A%20%20%7D%2C%0A%0A%20%20handleEvent%3A%20function%28e%29%20%7B%0A%20%20%20%20e%20%3D%20new%20XPCNativeWrapper%28e%29%3B%0A%20%20%20%20switch%28e.type%29%20%7B%0A%20%20%20%20%20%20case%20%22mousedown%22%3A%0A%20%20%20%20%20%20%20%20if%20%28%20this.cScroll%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20clearTimeout%28this.cScroll%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.cSpeedX%20%3D%20this.cSpeedY%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28%20cbu.getPrefs%28%22grabScroll.enable%22%29%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.altKey%20%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20this.grabStart%28e%29%3B%0A%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20case%20%22mousemove%22%3A%0A%20%20%20%20%20%20%20%20this.mousemove%28e%29%3B%20break%3B%0A%20%20%20%20%20%20case%20%22click%22%3A%0A%20%20%20%20%20%20%20%20this.click%28e%29%3B%20break%3B%0A%20%20%20%20%20%20case%20%22mouseup%22%3A%0A%20%20%20%20%20%20%20%20this.mouseup%28e%29%3B%20break%3B%0A%20%20%20%20%20%20case%20%27pagehide%27%3A%0A%20%20%20%20%20%20%20%20this._doc%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this.mCursorElement%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this._target%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this._target2%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this._isImage%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20this.NS%20%3D%20this.EW%20%3D%20this.NSEW%20%3D%20null%3B%0A%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20grabStart%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28this.mStatus%20%3D%3D%203%29%0A%20%20%20%20%20%20this.mStatus%20%3D%200%3B%0A%0A%20%20%20%20if%20%28this.MOUSEBUTTON%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20if%20%28Math.abs%28this.mLastX%20-%20e.screenX%29%20%3C%205%20%26%26%0A%20%20%20%20%20%20%20%20%20%20Math.abs%28this.mLastY%20-%20e.screenY%29%20%3C%205%20%29%0A%20%20%20%20%20%20%20%20return%0A%20%20%20%20%7D%0A%0A%20%20%20%20var%20doc%20%3D%20e.originalTarget.ownerDocument%3B%0A%20%20%20%20if%20%28%21doc%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20if%20%28doc.contentType%20%3D%3D%20%27application/vnd.mozilla.xul+xml%27%29%0A%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20this._doc%20%3D%20doc%3B%0A%0A%20%20%20%20if%20%28e.button%20%3D%3D%20this.MOUSEBUTTON%20%26%26%20this.mStatus%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20if%20%28this.CANCEL_WHEN_SELECTION%20%26%26%20this.MOUSEBUTTON%20%3D%3D%200%20%26%26%20doc.defaultView.getSelection%28%29%20%21%3D%20%22%22%29%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20this._target%20%3D%20e.originalTarget%3B%0A%0A%20%20%20%20%20%20if%20%28/%5E%28html%7Cbody%29%24/.test%28this._target.localName.toLowerCase%28%29%29%20%7C%7C%20this._target.clientHeight%20%3E%2030000%29%0A%20%20%20%20%20%20%20%20this._target2%20%3D%20null%3B%0A%20%20%20%20%20%20else%20if%20%28/div/.test%28this._target.localName.toLowerCase%28%29%29%20%26%26%20this._target.clientHeight%20%3E%201000%29%0A%20%20%20%20%20%20%20%20this._target2%20%3D%20null%3B%0A%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20this._target2%20%3D%20this._target%3B%0A%0A%20%20%20%20%20%20for%20%28aURL%20in%20this.IGNOREURL%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28this.IGNOREURL%5BaURL%5D%20%3D%3D%3D%20%27%27%29continue%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28doc.documentURI.match%28this.IGNOREURL%5BaURL%5D%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20LOG%28this.IGNOREURL%5BaURL%5D+%27%5Cn%27+ex%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28this.isParentEditableNode%28this._target%29%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20if%20%28this.isParentDraggableNode%28this._target%29%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20if%20%28this.isIgnore%28this._target%29%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20if%20%28this.isVideoControl%28e.target%29%29%0A%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20if%20%28this.isParentClickableNode%28this._target%29%29%7B%0A%20%20%20%20%20%20%20%20if%20%28cbu.getPrefs%28%22grabScroll.clickable%22%29%29%0A%09return%3B%0A%20%20%20%20%20%20%20%20if%20%28%21%28%27linkDragSelection%27%20in%20window%29%29%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20this._isImage%20%3D%20this.isImage%28e%29%3B%0A%20%20%20%20%20%20if%20%28this._isImage%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28cbu.getPrefs%28%22grabScroll.notimage%22%29%29%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20var%20target%20%3D%20this._target%3B%0A%20%20%20%20%20%20while%20%28target%29%7B%0A%20%20%20%20%20%20%20%20if%20%28%22getAttribute%22%20in%20target%20%26%26%20target.getAttribute%28%22draggable%22%29%20%3D%3D%20%22true%22%29%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20style%20%3D%20this._doc.defaultView.getComputedStyle%28target%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28/resize%7Cmove%7Call-scroll%7Ccrosshair/.test%28style.getPropertyValue%28%22cursor%22%29%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20else%20if%20%28/resize%7Cmove%7Call-scroll%7Ccrosshair/.test%28style.getPropertyValue%28%22auto%22%29%29%29%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%7D%0A%20%20%20%20%20%20%20%20target%20%3D%20target.parentNode%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28this.MOUSEBUTTON%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20this._timer%20%3D%20new%20Date%28%29.getTime%28%29%3B%0A%20%20%20%20%20%20this.mLastX%20%3D%20e.screenX%3B%0A%20%20%20%20%20%20this.mLastY%20%3D%20e.screenY%3B%0A%20%20%20%20%20%20this.mStatus%20%3D%201%3B%0A%20%20%20%20%20%20this._MOVERATEpZoom%20%3D%20%20this.MOVERATE%20/%20%28ZoomManager.useFullZoom%20%3F%20ZoomManager.zoom%20%3A%201%29%3B%0A%0A%20%20%20%20%20%20%5Bthis.NS%2C%20this.EW%2C%20this.NSEW%5D%20%3D%20this.getScrollView%28e%29%3B%0A%20%20%20%20%20%20this._window.addEventListener%28%22mousemove%22%2C%20this%2C%20true%29%3B%0A%20%20%20%20%20%20this.setCursor%28this._target2%2C%20this.CURSOR%29%3B%0A%20%20%20%20%20%20this.resetCursorWithTimer%28this._target2%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20adjustedTimer%3A%20function%28%29%7B%0A%20%20%20%20var%20magTimer%20%3D%20this.TIMER%3B%0A%20%20%20%20return%20magTimer%3B%0A%20%20%7D%2C%0A%0A%20%20grabFinish%3A%20%20function%28%29%20%7B%0A%20%20%20%20this.resetCursorTimer%28%29%3B%0A%20%20%20%20this.resetCursor%28%29%3B%0A%0A%20%20%20%20this._window.removeEventListener%28%22mousemove%22%2C%20this%2C%20true%29%3B%0A%20%20%20%20var%20selCon%20%3D%20this.getSelconForDoc%28this._doc%29%3B%0A%20%20%20%20if%20%28selCon%29%0A%20%20%20%20%20%20selCon.setDisplaySelection%28selCon.SELECTION_ON%29%3B%0A%20%20%7D%2C%0A%0A%20%20mousemove%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28this.mStatus%20%3D%3D%202%20%7C%7C%20this.mStatus%20%3D%3D%201%20%29%20%7B%0A%20%20%20%20%20%20var%20x%20%3D%20e.screenX%3B%0A%20%20%20%20%20%20var%20y%20%3D%20e.screenY%3B%0A%20%20%20%20%20%20var%20doc%20%3D%20e.originalTarget.ownerDocument%3B%0A%0A%20%20%20%20%20%20if%20%28this.mStatus%20%3D%3D%201%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21this._isImage%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%28new%20Date%28%29.getTime%28%29%20-%20this._timer%29%20%3E%20this.adjustedTimer%28%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20this.mStatus%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20if%20%28Math.abs%28x-this.mLastX%29%20%3C%20this.TOLERANCE_WHEN_NO_H_SCROLL%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20movingh%20%3D%20Math.abs%28x-this.mLastX%29%20%3E%20Math.abs%28y-this.mLastY%29%20*%2050%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21this._isImage%20%26%26%20this.MOUSEBUTTON%20%3D%3D%200%20%20%26%26%20this.isText%28e%29%20%20%26%26%20movingh%20%26%26%20%21this.EW%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20this.mStatus%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20if%28Math.abs%28x%20-%20this.mLastX%29%20+%20Math.abs%28y%20-%20this.mLastY%29%20%3C%20this.TOLERANCE%29%0A%20%20%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20%20%20if%20%28this.MOUSEBUTTON%20%3D%3D%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20selCon%20%3D%20this.getSelconForDoc%28this._doc%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28selCon%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20selection%20%3D%20selCon.getSelection%28selCon.SELECTION_NORMAL%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20selection.removeAllRanges%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20selCon.setDisplaySelection%28selCon.SELECTION_OFF%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%22ucjsMouseGestures%22%20in%20window%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20ucjsMouseGestures._isMouseDownR%20%3D%20false%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20this.mLastX%20%3D%20x%20-%20%28x%20-%20this.mLastX%29%20/%2010%3B%0A%20%20%20%20%20%20%20%20this.mLastY%20%3D%20y%20-%20%28y%20-%20this.mLastY%29%20/%2010%3B%0A%20%20%20%20%20%20%20%20this.mStatus%20%3D%202%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28this._ctimer%29%0A%20%20%20%20%20%20%20%20this.resetCursorTimer%28%29%3B%0A%0A%20%20%20%20%20%20if%20%28this._mtimer%29%0A%20%20%20%20%20%20%20%20return%3B%0A%0A%20%20%20%20%20%20this.cSpeedX%20%3D%20this._MOVERATEpZoom%20*%20%28x%20-%20this.mLastX%29%3B%0A%20%20%20%20%20%20this.cSpeedY%20%3D%20this._MOVERATEpZoom%20*%20%28y%20-%20this.mLastY%29%3B%0A%0A%20%20%20%20%20%20if%20%28this.scroll%28e%29%29%20%7B%0A%20%20%20%20%20%20%20%20this.mLastX%20%3D%20x%3B%0A%20%20%20%20%20%20%20%20this.mLastY%20%3D%20y%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20getSelconForDoc%3A%20function%20getSelconForDoc%28doc%29%7B%0A%20%20%20%20if%20%28%21doc%29%0A%20%20%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20var%20aFrame%20%3D%20doc.defaultView%3B%0A%20%20%20%20if%20%28%21aFrame%29%0A%20%20%20%20%20return%20null%3B%0A%20%20%20%20var%20docShell%20%3D%20this.getDocShellForFrame%28aFrame%29%3B%0A%20%20%20%20var%20selCon%20%3D%20docShell.QueryInterface%28Ci.nsIInterfaceRequestor%29.getInterface%28Ci.nsISelectionDisplay%29.QueryInterface%28Ci.nsISelectionController%29%3B%0A%20%20%20%20return%20selCon%3B%0A%20%20%7D%2C%0A%0A%20%20getDocShellForFrame%3A%20function%20getDocShellForFrame%28aFrame%29%7B%0A%20%20%20%20return%20aFrame.QueryInterface%28Ci.nsIInterfaceRequestor%29.getInterface%28Ci.nsIWebNavigation%29.QueryInterface%28Ci.nsIDocShell%29%3B%0A%20%20%7D%2C%0A%0A%20%20click%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.button%20%3D%3D%20this.MOUSEBUTTON%20%26%26%20this.mStatus%20%3D%3D%202%29%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20if%20%28e.button%20%3D%3D%200%20%26%26%20this.mStatus%20%3E%3D%202%20%26%26%20this._doc%20instanceof%20Ci.nsIImageDocument%29%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%20%20%20%20%20%20e.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20this.mStatus%20%3D%200%3B%0A%20%20%7D%2C%0A%0A%20%20mouseup%3A%20%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.button%20%3D%3D%20this.MOUSEBUTTON%20%26%26%20this.mStatus%20%3E%201%29%20%7B%0A%20%20%20%20%20%20e.preventDefault%28%29%3B%0A%0A%20%20%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20%20%20if%20%28this.mStatus%20%3D%3D%202%29%0A%20%20%20%20%20%20%20%20this.mStatus%20%3D%203%3B%0A%0A%20%20%20%20%20%20if%20%28cbu.getPrefs%28%22grabScroll.enableinertia%22%29%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%28Math.abs%28this.cSpeedX%29%20%3E%20this.INERTIATHRESHOLD%20%7C%7C%20Math.abs%28this.cSpeedY%29%20%3E%20this.INERTIATHRESHOLD%20%29%29%7B%0A%20%20%20%20%20%20%20%20if%20%28this.cScroll%29%0A%20%20%20%20%20%20%20%20%20%20clearTimeout%28this.cScroll%29%3B%0A%20%20%20%20%20%20%20%20var%20v%20%3D%20this.INERTIARATE%3B%0A%20%20%20%20%20%20%20%20if%20%28this.cSpeedX%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20this.cSpeedX%20%3D%20Math.min%28this.cSpeedX%2C%20v%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20this.cSpeedX%20%3D%20Math.max%28this.cSpeedX%2C%20-v%29%3B%0A%20%20%20%20%20%20%20%20if%20%28this.cSpeedY%20%3E%200%29%0A%20%20%20%20%20%20%20%20%20%20this.cSpeedY%20%3D%20Math.min%28this.cSpeedY%2C%20v%29%3B%0A%20%20%20%20%20%20%20%20else%0A%20%20%20%20%20%20%20%20%20%20this.cSpeedY%20%3D%20Math.max%28this.cSpeedY%2C%20-v%29%3B%0A%0A%20%20%20%20%20%20%20%20var%20Start%3B%0A%20%20%20%20%20%20%20%20function%20scrolling%28e%2C%20self%29%7B%0A%20%20%20%20%20%20%20%20%20%20Start%20%3D%20new%20Date%28%29.getTime%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20self.scroll2%28e%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20self.cScroll%20%3D%20setTimeout%28arguments.callee%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Math.max%2825%20-%20%28%28new%20Date%28%29%29.getTime%28%29-Start%29%2C%200%29%2C%20e%2C%20self%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20this.scroll2%28e%29%3B%0A%20%20%20%20%20%20%20%20scrolling%28e%2C%20this%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20if%20%28e.button%20%3D%3D%20this.MOUSEBUTTON%20%26%26%20this.mStatus%20%3D%3D%201%29%7B%0A%20%20%20%20%20%20this.grabFinish%28%29%3B%0A%20%20%20%20%20%20this.mStatus%20%3D%200%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20scroll2%3A%20function%28e%29%7B%0A%20%20%20%20var%20ay%20%3D%20Math.abs%28this.cSpeedY%29%3B%0A%20%20%20%20var%20ax%20%3D%20Math.abs%28this.cSpeedX%29%3B%0A%20%20%20%20if%20%28ay%20%3C%2010%20%26%26%20ax%20%20%3C%2010%29%7B%0A%20%20%20%20%20%20%20clearTimeout%28this.cScroll%29%3B%0A%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%20%20%20%20this.scroll%28e%29%3B%0A%20%20%20%20if%20%20%20%20%20%20%28ax%20%3E%3D%20100%29%20this.cSpeedX%20%3D%20this.cSpeedX%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ax%20%3C%20100%29%20this.cSpeedX%20%3D%20this.cSpeedX%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ax%20%3C%2020%29%20this.cSpeedX%20%3D%20this.cSpeedX%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ax%20%3C%2010%29%20%20this.cSpeedX%20%3D%200%3B%0A%0A%20%20%20%20if%20%20%20%20%20%20%28ay%20%3E%3D%20100%29%20this.cSpeedY%20%3D%20this.cSpeedY%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ay%20%3C%20100%29%20this.cSpeedY%20%3D%20this.cSpeedY%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ay%20%3C%2020%29%20this.cSpeedY%20%3D%20this.cSpeedY%20*%200.95%3B%0A%20%20%20%20else%20if%20%28ay%20%3C%2010%29%20this.cSpeedY%20%3D%200%3B%0A%20%20%7D%2C%0A%0A%20%20scroll%3A%20function%28e%29%7B%0A%20%20%20%20var%20minScroll%20%3D%20this.Bug1209100%3B%20//%20prevent%20Bug%201209100%2C%2010px%20%3Cfx46.%201px%20%3E%3Dfx46%0A%20%20%20%20this._mtimer%20%3D%20true%3B%0A%20%20%20%20var%20flg%20%3D%20false%3B%0A%20%20%20%20if%20%28this.NS%20%26%26%20this.NS%20%3D%3D%20this.EW%20%26%26%0A%20%20%20%20%20%20%20%20%28Math.abs%28this.cSpeedX%29%20%3E%20minScroll%20%7C%7C%20Math.abs%28this.cSpeedY%29%20%3E%20minScroll%29%29%20%7B%0A%20%20%20%20%20%20flg%20%3D%20true%3B%0A%20%20%20%20%20%20if%20%28%22scrollBy%22%20in%20this.NS%29%20%7B%0A%20%20%20%20%20%20%20%20this.NS.scrollBy%28this.cSpeedX%2C%20this.cSpeedY%29%3B%0A%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20this.NS.scrollLeft%20+%3D%20this.cSpeedX%3B%0A%20%20%20%20%20%20%20%20this.NS.scrollTop%20%20+%3D%20this.cSpeedY%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20if%20%28this.NS%20%26%26%20Math.abs%28this.cSpeedY%29%20%3E%20minScroll%29%20%7B%0A%20%20%20%20%20%20%20%20flg%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20if%20%28%22scrollBy%22%20in%20this.NS%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.NS.scrollBy%280%2C%20this.cSpeedY%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.NS.scrollTop%20+%3D%20this.cSpeedY%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20if%20%28this.EW%20%26%26%20Math.abs%28this.cSpeedX%29%20%3E%20minScroll%29%7B%0A%20%20%20%20%20%20%20%20flg%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20if%20%28%22scrollBy%22%20in%20this.EW%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.EW.scrollBy%28this.cSpeedX%2C%200%29%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20this.EW.scrollLeft%20+%3D%20this.cSpeedX%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20setTimeout%28function%28self%29%7B%0A%20%20%20%20%20%20self._mtimer%20%3D%20false%3B%0A%20%20%20%20%7D%2C%2020%2C%20this%29%3B%0A%20%20%20%20return%20flg%3B%0A%20%20%7D%2C%0A%0A%20%20isText%3A%20function%28e%29%20%7B%0A%20%20%20%20return%20e.explicitOriginalTarget.nodeType%20%3D%3D%20document.TEXT_NODE%3B%0A%20%20%7D%2C%0A%0A%20%20isImage%3A%20function%28e%29%20%7B%0A%20%20%20%20if%20%28e.target%20instanceof%20Ci.nsIImageLoadingContent%29%0A%20%20%20%20%20%20return%20e.target%3B%0A%20%20%20%20else%0A%20%20%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20isIgnore%3A%20function%28aNode%29%7B%0A%20%20%20%20%20while%20%28aNode%29%7B%0A%20%20%20%20%20%20var%20name%20%3D%20aNode.nodeName.toLowerCase%28%29%3B%0A%20%20%20%20%20%20if%20%28name%20%3D%3D%20%22html%22%29%0A%20%20%20%20%20%20%20%20return%20false%3B%0A%20%20%20%20%20%20if%20%28/%28scrollbar%7Cselect%7Coption%7Cembed%7Cobject%7Ctree%7Capplet%7Cstatusbar%29/.test%28name%29%29%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20aNode%20%3D%20aNode.parentNode%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20isParentClickableNode%20%3A%20function%28aNode%29%20%7B%0A%20%20%20%20if%20%28%21aNode%29%20return%20null%3B%0A%20%20%20%20var%20d%20%3D%20aNode.ownerDocument%3B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20var%20xpathResult%20%3D%20d.evaluate%28%0A%20%20%20%20%20%20%20%20%20%20%27ancestor-or-self%3A%3A*%5B%28%28local-name%28%29%20%3D%20%22a%22%20or%20local-name%28%29%20%3D%20%22A%22%29%29%20or%20local-name%28%29%20%3D%20%22button%22%20or%20local-name%28%29%20%3D%20%22BUTTON%22%20or%20%28%28local-name%28%29%20%3D%20%22input%22%20or%20local-name%28%29%20%3D%20%22INPUT%22%29%20and%20%28@type%20%3D%20%22SUBMIT%22%20or%20@type%20%3D%20%22submit%22%20or%20@type%20%3D%20%22BUTTON%22%20or%20@type%20%3D%20%22button%22%20or%20@type%20%3D%20%22IMAGE%22%20or%20@type%20%3D%20%22image%22%29%29%5D%27%2C%0A%20%20%20%20%20%20%20%20%20%20aNode%2C%0A%20%20%20%20%20%20%20%20%20%20this.NSResolver%2C%0A%20%20%20%20%20%20%20%20%20%20XPathResult.FIRST_ORDERED_NODE_TYPE%2C%0A%20%20%20%20%20%20%20%20%20%20null%0A%20%20%20%20%20%20%20%20%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20return%20null%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20xpathResult.singleNodeValue%3B%0A%20%20%7D%2C%0A%0A%20%20NSResolver%20%3A%20%7B%0A%20%20%20%20lookupNamespaceURI%20%3A%20function%28aPrefix%29%20%7B%0A%20%20%20%20%20%20switch%20%28aPrefix%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27xul%27%3A%0A%20%20%20%20%20%20%20%20%20%20return%20%27http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%27%3B%0A%20%20%20%20%20%20%20%20case%20%27html%27%3A%0A%20%20%20%20%20%20%20%20case%20%27xhtml%27%3A%0A%20%20%20%20%20%20%20%20%20%20return%20%27http%3A//www.w3.org/1999/xhtml%27%3B%0A%20%20%20%20%20%20%20%20case%20%27xlink%27%3A%0A%20%20%20%20%20%20%20%20%20%20return%20%27http%3A//www.w3.org/1999/xlink%27%3B%0A%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20return%20%27%27%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20isParentEditableNode%20%3A%20function%28node%29%7B%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20if%20%28node.ownerDocument.designMode%20%3D%3D%20%27on%27%29%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%7D%20catch%28e%29%20%7B%7D%0A%20%20%20%20while%20%28node%20%26%26%20node.parentNode%29%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21%28node%20instanceof%20Ci.nsIDOMNSEditableElement%29%29%0A%20%20%20%20%20%20%20%20%20%20throw%200%3B%0A%20%20%20%20%20%20%20%20node.QueryInterface%28Ci.nsIDOMNSEditableElement%29%3B%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20catch%28e%29%20%7B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20node%20%3D%20node.parentNode%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20isParentDraggableNode%20%3A%20function%28node%29%7B%0A%20%20%20%20while%20%28node%20%26%26%20node.parentNode%29%20%7B%0A%20%20%20%20%20%20if%20%28node.getAttribute%28%27draggable%27%29%20%3D%3D%20%27true%27%29%0A%20%20%20%20%20%20%20%20return%20node%3B%0A%20%20%20%20%20%20node%20%3D%20node.parentNode%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20null%3B%0A%20%20%7D%2C%0A%0A%20%20isVideoControl%3A%20function%28node%29%20%7B%0A%20%20%20%20if%20%28/%5E%28audio%7Cvideo%29%24/i.test%28node.localName%29%29%20%7B%0A%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20var%20i%20%3D%200%3B%0A%20%20%20%20%20%20while%20%28i%20%3C%20node.childNodes.length%29%20%7B%0A%20%20%20%20%20%20%20%20var%20child%20%3Dnode.childNodes%5Bi%5D%3B%0A%20%20%20%20%20%20%20%20if%20%28child.hasAttribute%28%27controls%27%29%20%26%26%20child.getAttribute%28%27controls%27%29%20%3D%3D%20%27controls%27%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20i++%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20false%3B%0A%20%20%7D%2C%0A%0A%20%20setCursor%3A%20function%28element%2C%20cursor%29%20%7B%0A%20%20%20%20if%20%28%21%21element%20%26%26%20element.style%29%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20this.mCursor%20%3D%20element.style.cursor%3B%0A%20%20%20%20%20%20%20%20this.mCursorElement%20%20%3D%20element%3B%0A%20%20%20%20%20%20%20%20element.style.cursor%20%3D%20cursor%3B%0A%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%0A%20%20resetCursor%3A%20function%28%29%20%7B%0A%20%20%20%20var%20element%20%3D%20this.mCursorElement%3B%0A%20%20%20%20if%20%28%21%21element%29%20%7B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20element.style.cursor%20%3D%20this.mCursor%3B%0A%20%20%20%20%20%20%20%20%20%20this.mCursor%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%20this.mCursorElement%20%3D%20null%3B%0A%20%20%20%20%20%20%7D%20catch%28e%29%20%7B%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20resetCursorWithTimer%3A%20function%28%29%20%7B%0A%20%20%20%20if%20%28this._ctimer%29%0A%20%20%20%20%20%20clearTimeout%28this._ctimer%29%3B%0A%20%20%20%20this._ctimer%20%3D%20setTimeout%28function%28self%29%7B%0A%20%20%20%20%20%20self.resetCursor%28%29%3B%0A%20%20%20%20%7D%2C%20this.adjustedTimer%28%29%2C%20this%29%3B%0A%20%20%7D%2C%0A%0A%20%20resetCursorTimer%3A%20function%28%29%20%7B%0A%20%20%20%20if%20%28this._ctimer%29%20%7B%0A%20%20%20%20%20%20clearTimeout%28this._ctimer%29%3B%0A%20%20%20%20%20%20this._ctimer%20%3D%20null%3B%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%0A%20%20convert2RegExp%3A%20function%28%20pattern%20%29%20%7B%0A%20%20%20%20var%20s%20%3D%20new%20String%28pattern%29%3B%0A%20%20%20%20var%20res%20%3D%20new%20String%28%22%5E%22%29%3B%0A%0A%20%20%20%20for%20%28var%20k%20%3D%200%20%3B%20k%20%3C%20s.length%20%3B%20k++%29%20%7B%0A%20%20%20%20%20%20switch%28s%5Bk%5D%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27*%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20res%20+%3D%20%22.*%22%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27.%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%3F%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%5E%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%24%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27+%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%7B%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%5B%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%7C%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%28%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%29%27%20%3A%0A%20%20%20%20%20%20%20%20case%20%27%5D%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20res%20+%3D%20%22%5C%5C%22%20+%20s%5Bk%5D%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27%5C%5C%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20res%20+%3D%20%22%5C%5C%5C%5C%22%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20case%20%27%20%27%20%3A%0A%20%20%20%20%20%20%20%20%20%20//%20Remove%20spaces%20from%20URLs.%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20default%20%3A%0A%20%20%20%20%20%20%20%20%20%20res%20+%3D%20s%5Bk%5D%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20return%20new%20RegExp%28res%20+%20%27%24%27%2C%20%22i%22%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20toggle%3A%20function%28%29%7B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.enable%22%2C%20%21cbu.getPrefs%28%22grabScroll.enable%22%29%29%3B%0A%20%20%20%20this.setIcon%28%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20button%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0412%u044B%u0431%u0435%u0440%u0438%u0442%u0435%20%u043A%u043D%u043E%u043F%u043A%u0443%3A%20L-%u043B%u0435%u0432%u0430%u044F%2C%20M-%u0441%u0440%u0435%u0434%u043D%u044F%u044F%2C%20R-%u043F%u0440%u0430%u0432%u0430%u044F%22%2C%20%22LMR%22.substr%28this.MOUSEBUTTON%2C1%29%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20switch%28value.toUpperCase%28%29%29%7B%0A%20%20%20%20%20%20case%20%22M%22%3A%20value%20%3D1%3B%20break%3B%0A%20%20%20%20%20%20case%20%22R%22%3A%20value%20%3D2%3B%20break%3B%0A%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20case%20%22L%22%3A%20value%20%3D0%3B%20break%3B%0A%20%20%20%20%7D%0A%20%20%20%20this.MOUSEBUTTON%20%3D%20value%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.button%22%2C%20value%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20threshold%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442e%20%u0432%u0440%u0435%u043C%u044F%20%u0432%20ms%281000%u043C%u0441%20%3D%201%u0441%u0435%u043A%29%22%2Cthis.TIMER%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20this.TIMER%20%3D%20parseInt%28value%2C10%29%3B%0A%20%20%20%20if%28%20this.TIMER%20%3C%3D0%20%7C%7C%20%21this.TIMER%20%29%20this.TIMER%20%3D%201000%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.timer%22%2C%20this.TIMER%29%3B%0A%20%20%7D%2C%0A%0A%20%20moverate%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442e%20%5B+-%5D%u0432%u0435%u043B%u0438%u0447%u0438%u043D%u0443%5Cn%20%u0415%u0441%u043B%u0438%20%5B+%5D%20c%u0442%u0440%u0430%u043D%u0438%u0446%u0430%20%u0431%u0443%u0434%u0435%u0442%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u0442%u0441%u044F%20%u043F%u0440%u043E%u0442%u0438%u0432%u043E%u043F%u043E%u043B%u043E%u0436%u043D%u043E%20%u0434%u0432%u0438%u0436%u0435%u043D%u0438%u044E%20%u043A%u0443%u0440%u0441%u043E%u0440%u0430%20%20%22%2Cthis.MOVERATE%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20this.MOVERATE%20%3D%20parseInt%28value%2C10%29%3B%0A%20%20%20%20if%28%20%21this.MOVERATE%20%29%20this.MOVERATE%20%3D%20-1%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.moverate%22%2C%20this.MOVERATE%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20inertiaThreshold%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442e%20%u0441%u043A%u043E%u0440%u043E%u0441%u0442%u044C%20%u043F%u0435%u0440%u0435%u0442%u0430%u0441%u043A%u0438%u0432%u0430%u043D%u0438%u044F%20%u043F%u0440%u0438%20%u043A%u043E%u0442%u043E%u0440%u043E%u0439%20%u043F%u043E%u044F%u0432%u043B%u044F%u0435%u0442%u0441%u044F%20%u0430%u0432%u0442%u043E%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0430%22%2Cthis.INERTIATHRESHOLD%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20this.INERTIATHRESHOLD%20%3D%20parseInt%28value%2C10%29%3B%0A%20%20%20%20if%28%20%21this.INERTIATHRESHOLD%20%29%20this.INERTIATHRESHOLD%20%3D%2020%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.inertiathreshold%22%2C%20this.INERTIATHRESHOLD%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20inertiarate%3A%20function%28%29%7B%0A%20%20%20%20var%20value%20%3D%20prompt%28%22%u0423%u0441%u0442%u0430%u043D%u043E%u0432%u0438%u0442e%20%u0434%u043B%u0438%u043D%u0443%20%u0430%u0432%u0442%u043E%u043F%u0440%u043E%u043A%u0440%u0443%u0442%u043A%u0438%22%2Cthis.INERTIARATE%29%3B%0A%20%20%20%20if%20%28%21value%29%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20this.INERTIARATE%20%3D%20parseInt%28value%2C10%29%3B%0A%20%20%20%20if%28%20%21this.INERTIARATE%20%29%20this.INERTIARATE%20%3D%2020%3B%0A%20%20%20%20cbu.setPrefs%28%22grabScroll.inertiarate%22%2C%20this.INERTIARATE%29%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20setIcon%3A%20function%28%29%7B%0A%20%20%20%20document.getAnonymousNodes%28self%29%5B1%5D.src%20%3D%20%21cbu.getPrefs%28%22grabScroll.enable%22%29%0A%20%20%20%20%3F%20self.image%0A%20%20%20%20%3A%20%22data%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH4AQXCg4QbH3A+AAAAZpJREFUOMuNk79qVUEQxn+zf06MCFZ2YnURBMHi+hp5ARtJY7PFhTRiY2ETkNuId5vbhLSmCeQtLAQhhTEpLeILaHL27K7FOXvYe+SiHwwzsMw33zfMinMOAO+9ooJzLnnv81ALWyBAaVRAGGoLhNPLNVose7P9mniDTA1hgHByseLkYkVFRMx9eXZ1xNnVEUVVTWCGIKSWkNrxMaSWLnUbRAWFqBA0wIMXTw646X5xfH4IQJc6Mukv3977XNSUZltUdKklDmvpKjVTO7UFC1wDP4DHr5694zb+Zv31LSG1xBz49O3jaGUKA1yvvrwm5shivvzeT4q08RZBEUUTJSLSL//0cs10icQciTnw/rMbpcYcyaQxT7E328c5Jwp4tJgvx4dC8r9QQAJmB88/YJTBKIMWixaNoMa8DQbogBZAi6XPmkbvoJXpoyIpl1kuspxvCzxczJfsmrvs6F2MarCqQYtFRDDKbP0L96prVMDP4/PDYbLFKIOgRmv19KKgWLgZ4v7Lp29o1J2N5n/tQFW/smcWvdFY9jPFH7MJpWpDanM5AAAAAElFTkSuQmCC%22%3B%0A%20%20%7D%2C%0A%20%20%0A%20%20getScrollView%3A%20function%20%28e%29%20%7B%0A%20%20%20%20var%20NS%2CEW%2CNSEW%3B%0A%20%20%20%20NS%20%3D%20EW%20%3D%20NSEW%20%3D%20null%3B%0A%20%20%20%20var%20_scrollingView%20%3D%20null%3B%0A%20%20%20%20var%20overflowx%2C%20overflowy%2C%20ox%2C%20oy%3B%0A%20%20%20%20var%20scw%2C%20sch%2C%20horz%2C%20vert%3B%0A%20%20%20%20var%20doc%2C%20style%3B%0A%20%20%20%20var%20borderTop%3B%0A%20%20%20%20var%20borderBottom%3B%0A%20%20%20%20var%20borderLeft%3B%0A%20%20%20%20var%20borderRight%3B%0A%0A%20%20%20%20if%20%28e.originalTarget.ownerDocument.contentType%20%3D%3D%20%22application/xml%22%29%20%7B%0A%20%20%20%20%20%20_scrollingView%20%3D%20e.originalTarget.ownerDocument.defaultView%3B%0A%0A%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%21%3D%20_scrollingView.scrollMinX%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxY%20%21%3D%20_scrollingView.scrollMinY%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%20%20%20%20NS%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%20%20%20%20EW%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20EW%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%20else%20if%20%28_scrollingView.scrollMaxY%20%21%3D%20_scrollingView.scrollMinY%29%20%7B%0A%20%20%20%20%20%20%20%20NS%20%3D%20_scrollingView%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxY%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20%21NSEW%20%3F%20_scrollingView%20%3A%20NSEW%3B%0A%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20if%20%28_scrollingView.scrollMaxY%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20return%20%5BNS%2C%20EW%2C%20NSEW%5D%3B%0A%20%20%20%20%20%20%7D%0A%0A%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20for%20%28_scrollingView%20%3D%20e.originalTarget%3B%20_scrollingView%3B%20_scrollingView%20%3D%20_scrollingView.parentNode%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28_scrollingView%20instanceof%20HTMLElement%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.localName.toUpperCase%28%29%20%3D%3D%20%22HTML%22%20%7C%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20_scrollingView.localName.toUpperCase%28%29%20%3D%3D%20%22BODY%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20_scrollingView%20%3D%20_scrollingView.ownerDocument.defaultView%3B%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%21%3D%20_scrollingView.scrollMinX%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxY%20%21%3D%20_scrollingView.scrollMinY%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20%21NSEW%20%3F%20_scrollingView%20%3A%20NSEW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20else%20if%20%28_scrollingView.scrollMaxY%20%21%3D%20_scrollingView.scrollMinY%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%3E%200%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20_scrollingView.scrollMaxY%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20%21NSEW%20%3F%20_scrollingView%20%3A%20NSEW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxX%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.scrollMaxY%20%3E%200%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.frameElement%20%26%26%20%21NS%20%26%26%20%21EW%20%26%26%20%21NSEW%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20return%20this.getScrollView%28%7BoriginalTarget%20%3A%20_scrollingView.frameElement%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20if%20%28_scrollingView.localName.toLowerCase%28%29%20%3D%3D%20%22select%22%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20_scrollingView.parentNode.focus%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%20%5BNS%2C%20EW%2C%20NSEW%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20overflowx%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%20%20overflowy%20%3D%20%22%22%3B%0A%20%20%20%20%20%20%20%20%20%20ox%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20oy%20%3D%20true%3B%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20doc%20%3D%20_scrollingView.ownerDocument%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20style%20%3D%20doc.defaultView.getComputedStyle%28_scrollingView%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20overflowx%20%3D%20style.getPropertyValue%28%22overflow-x%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20ox%20%3D%20overflowx%20%21%3D%20%22hidden%22%20%26%26%20overflowx%20%21%3D%20%22visible%22%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20overflowy%20%3D%20style.getPropertyValue%28%22overflow-y%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20oy%20%3D%20overflowy%20%21%3D%20%22hidden%22%20%26%26%20overflowy%20%21%3D%20%22visible%22%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20borderTop%20%20%20%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20borderBottom%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20borderLeft%20%20%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20borderRight%20%20%3D%200%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28/%5E%28table%7Ctd%7Cth%29%24/i.test%28_scrollingView.localName%29%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20doc%20%3D%20_scrollingView.ownerDocument%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20style%20%3D%20doc.defaultView.getComputedStyle%28_scrollingView%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderTop%20%20%20%20%3D%20style.getPropertyValue%28%22border-top-width%22%29.replace%28%27px%27%2C%20%27%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderBottom%20%3D%20style.getPropertyValue%28%22border-bottom-width%22%29.replace%28%27px%27%2C%20%27%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderLeft%20%20%20%3D%20style.getPropertyValue%28%22border-left-width%22%29.replace%28%27px%27%2C%20%27%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20borderRight%20%20%3D%20style.getPropertyValue%28%22border-right-width%22%29.replace%28%27px%27%2C%20%27%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%20catch%20%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20scw%20%3D%20_scrollingView.clientWidth%3B%0A%20%20%20%20%20%20%20%20%20%20horz%20%3D%20ox%20%26%26%20scw%20%21%3D%3D%200%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scw%20+%20borderLeft%20+%20borderRight%20%3C%20_scrollingView.scrollWidth%3B%0A%20%20%20%20%20%20%20%20%20%20sch%20%3D%20_scrollingView.clientHeight%3B%0A%20%20%20%20%20%20%20%20%20%20vert%20%3D%20oy%20%26%26%20sch%20%21%3D%3D%200%20%26%26%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sch%20+%20borderTop%20+%20borderBottom%20%3C%20_scrollingView.scrollHeight%3B%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28horz%20%26%26%20vert%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20NSEW%20%3D%20%21NSEW%20%3F%20_scrollingView%20%3A%20NSEW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20if%20%28horz%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20EW%20%3D%20%21EW%20%3F%20_scrollingView%20%3A%20EW%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20if%20%28vert%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20NS%20%3D%20%21NS%20%3F%20_scrollingView%20%3A%20NS%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20%5BNS%2C%20EW%2C%20NSEW%5D%3B%0A%20%20%7D%0A%7D%3B%0AgBrowser.currentURI%20%3D%3D%20%22about%3Acustomizing%22%20%7C%7C%20GrabScroll.initGrabScroll%28%29%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5Bhttp%3A//maps.google.*/*%0Ahttp%3A//maps.yahoo.co.jp/pl*%0Ahttp%3A//map.yahoo.co.jp/pl*%0Ahttp%3A//map.goo.ne.jp/*%0Ahttp%3A//www.mapion.co.jp/c/f*%0Ahttp%3A//books.google.co.jp/books%3Fid%3D*%0Ahttp%3A//books.google.co.jp/books%3Fid%3D*%0Ahttps%3A//realtimeboard.com/%3F*%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№15023-07-2016 16:17:47

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 50.0

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

Раскукоживатель коротких ссылок(Firefox 24+), от 28.08.2016.
Добавляет пункт контекстного меню ссылок и текстовых ссылок, сокращенных с помощью сервисов сокращения ссылок, позволяющий получить полный адрес без перехода по ним.
ЛКМ по самой кнопке - "раскукожит" ссылку из буфера обмена.

(Прим.: Выполняется фоновый асинхронный xmlhttprequest к сервису коротких ссылок. Без передачи кукисов, реферера и реального юзерагента)

Возможности:
Добавлять свои сервисы сокращения ссылок
Заменять адрес короткой ссылки на странице "раскукоженной"
Показывать всплывающие уведомления с открытием "раскукоженной" ссылки в новой вкладке по клику
Показывать пункт контекстного меню на выделенных текстовых ссылках
Показывать диалоговое окно с результатом для текстовых ссылок
Копировать "раскукоженную" ссылку в буфер обмена
Индикация цветом ссылки ожидания ответа и результата
Возвращать цвет ссылок к исходному, после паузы
Задать цвет для "раскукоженных" ссылок

Все вышеописанные поведения можно задать с помощью опций (см. комментарии в коде)

Изменения (28.08.2016):

28.08.2016
Незначительные оптимизации

26.07.2016
Исправлена и переделана проверка текстовых ссылок


Код кнопки, вкладки инициализации и иконки в svg и png 16х16 (замените svg-шную, если есть проблемы):

Код кнопки:
Инициализация:
Иконка svg (www.flaticon.com):
Иконка  png 16x16 (www.flaticon.com):



Спасибо за помощь Dumby и всем в чьи кнопки подглядывал при создании.

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0432%u0430%u0442%u0435%u043B%u044C%20%u043A%u043E%u0440%u043E%u0442%u043A%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/svg+xml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0MjUuNDY2cHgiIGhlaWdodD0iNDI1LjQ2N3B4IiB2aWV3Qm94PSIwIDAgNDI1LjQ2NiA0MjUuNDY3Ij4KPGcgaWQ9Imc3IiBzdHlsZT0iZmlsbDojNzk3YzgwO2ZpbGwtb3BhY2l0eToxIj4KPHBhdGggZD0iTTMxOC4xNSwyMzAuMTk1bDc3LjkzNC03Ny45MzdjMzEuODk0LTMxLjg5MiwzMS44OTQtODMuNzgyLTAuMDA0LTExNS42NzRsLTEyLjY2LTEyLjY2ICAgICBjLTMxLjg5My0zMS44OTYtODMuNzgtMzEuODk2LTExNS42NzQtMC4wMDRsLTc3LjkzNyw3Ny45MzRjLTE3LjU4OCwxNy41ODgtMjUuNDU3LDQxLjI2NC0yMy42NDYsNjQuMzExICAgICBjLTIzLjA0NS0xLjgxMy00Ni43MjIsNi4wNTYtNjQuMzA4LDIzLjY0N0wyMy45MiwyNjcuNzQ4Yy0zMS44OTQsMzEuODg5LTMxLjg5NCw4My43NzksMCwxMTUuNjc0bDEyLjY2NCwxMi42NjIgICAgIGMzMS44OTMsMzEuODkzLDgzLjc4MywzMS44OTMsMTE1LjY3NCwwbDc3LjkzNS03Ny45MzZjMTcuNTkyLTE3LjU5LDI1LjQ1OS00MS4yNjYsMjMuNjQ3LTY0LjMwOSAgICAgQzI3Ni44ODQsMjU1LjY1NCwzMDAuNTYsMjQ3Ljc4MywzMTguMTUsMjMwLjE5NXogTTIwMi42NTMsMjkwLjYwNWwtNzcuOTM2LDc3LjkzOGMtMTYuNzA1LDE2LjcwMy00My44ODksMTYuNzAzLTYwLjU5LDAgICAgIGwtMTIuNjY2LTEyLjY2NmMtMTYuNzA1LTE2LjcwMS0xNi43MDMtNDMuODg1LDAtNjAuNTk0bDc3LjkzNi03Ny45MzJjMTQuMTQtMTQuMTQxLDM1Ljc3OS0xNi4zMDYsNTIuMjI2LTYuNTE2bC0zMi4zMDIsMzIuMzA3ICAgICBjLTcuNjA2LDcuNjA0LTcuNjA2LDE5LjkzOCwwLDI3LjU0MWM3LjYwNSw3LjYwNywxOS45MzcsNy42MDcsMjcuNTQxLDBsMzIuMzA2LTMyLjMwMyAgICAgQzIxOC45NTksMjU0LjgyOCwyMTYuNzk1LDI3Ni40NjksMjAyLjY1MywyOTAuNjA1eiBNMjM4LjM4MiwyMDkuMTY5bDMyLjI5OS0zMi4zMDZjNy42MDgtNy42MDIsNy42MDgtMTkuOTM1LDAtMjcuNTM4ICAgICBjLTcuNjA0LTcuNjEtMTkuOTM2LTcuNjEtMjcuNTQxLTAuMDA0bC0zMi4zMDMsMzIuMzAzYy05Ljc5MS0xNi40NDYtNy42MjctMzguMDg3LDYuNTE0LTUyLjIyNmw3Ny45MzUtNzcuOTM1ICAgICBjMTYuNzA3LTE2LjcwNyw0My44OS0xNi43MDcsNjAuNTk0LDBsMTIuNjY0LDEyLjY2NGMxNi43MDUsMTYuNzA1LDE2LjcwNSw0My44ODYsMCw2MC41OTFsLTc3LjkzNiw3Ny45MzcgICAgIEMyNzYuNDY4LDIxNi43OTcsMjU0LjgyOCwyMTguOTU5LDIzOC4zODIsMjA5LjE2OXoiCmlkPSJwYXRoOSIgc3R5bGU9ImZpbGw6Izc5N2M4MCIgLz4KPHBhdGggZD0iTTM0My40NjYsMjYxLjQ2NWMtNDUuMjg3LDAtODIsMzYuNzEzLTgyLDgyczM2LjcxMyw4Miw4Miw4MmM0NS4yODYsMCw4Mi0zNi43MTMsODItODJTMzg4Ljc1MywyNjEuNDY1LDM0My40NjYsMjYxLjQ2NXogICAgICBNMzcyLjUwNSwzMzMuNTY0bC01Ni4wNDYsNTYuMTA0Yy0wLjIzOSwwLjIzOC0wLjUzNiwwLjQxLTAuODYyLDAuNDk2bC0yMi4zMTUsNS44NWMtMC42NDksMC4xNjgtMS4zNDctMC4wMi0xLjgyMi0wLjQ5NCAgICAgYy0wLjQ3Ny0wLjQ3OS0wLjY2Ni0xLjE3Mi0wLjQ5Ni0xLjgyNGw1LjgyNi0yMi4zMThjMC4wODQtMC4zMjYsMC4yNTYtMC42MjcsMC40OTQtMC44NjNsNTYuMDQ3LTU2LjEwNCAgICAgYzAuNzQyLTAuNzQyLDEuOTQ1LTAuNzQ0LDIuNjg4LTAuMDAybDQuNTQ4LDQuNTQxYzAuNzM5LDAuNzQsMC43NDEsMS45NDMsMCwyLjY4OGwtMzcuNDMzLDM3LjQ3MWw0LjcwOSw0LjcwM2wzNy40MzUtMzcuNDcxICAgICBjMC43MzktMC43NDIsMS45NC0wLjc0MiwyLjY4Mi0wLjAwMmw0LjU1LDQuNTQxQzM3My4yNSwzMzEuNjE3LDM3My4yNSwzMzIuODIyLDM3Mi41MDUsMzMzLjU2NHogTTM5NS40NzIsMzEwLjU3NGwtMTcsMTcuMDE4ICAgICBjLTAuNzM5LDAuNzQ0LTEuOTQyLDAuNzQ0LTIuNjg1LDAuMDAybC0xNi40ODktMTYuNDc1Yy0wLjc0NC0wLjc0LTAuNzQ0LTEuOTQzLTAuMDAyLTIuNjg4bDE3LTE3LjAyICAgICBjMC43NDEtMC43NCwxLjk0NC0wLjc0LDIuNjg4LTAuMDAybDE2LjQ4NywxNi40NzdDMzk2LjIxNiwzMDguNjI5LDM5Ni4yMTYsMzA5LjgzMiwzOTUuNDcyLDMxMC41NzR6IgppZD0icGF0aDExIiBzdHlsZT0iZmlsbDojNzk3YzgwIiAvPjwvZz4KPC9zdmc+%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0432%u0430%u0442%u0435%u043B%u044C%20%u043A%u043E%u0440%u043E%u0442%u043A%u0438%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%2C%20%u043E%u0442%2028.08.2016%0A%28%28cntxtMenu%2C%20elm%2C%20mItem%29%20%3D%3E%20%7B%0A%20%20mItem.id%20%3D%20%22cb-unshorten-url%22%3B%0A%20%20mItem.setAttribute%28%22label%22%2C%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%29%3B%0A%20%20mItem.setAttribute%28%22class%22%2C%20%22menuitem-iconic%22%29%3B%0A%20%20mItem.setAttribute%28%22image%22%2C%20self.image%29%3B%0A%20%20elm.parentNode.insertBefore%28mItem%2C%20elm%29%3B%0A%0A%20%20const%20alertsService%20%3D%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29%3B%0A%0A%20%20var%20url%2C%20link%2C%20isUnshortened%2C%0A%20%20%20%20%20%20//%20%u0421%u0435%u0440%u0432%u0438%u0441%u044B%20%u0441%u043E%u043A%u0440%u0430%u0449%u0435%u043D%u0438%u044F%20%u0441%u0441%u044B%u043B%u043E%u043A.%20%u041C%u043E%u0436%u043D%u043E%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0442%u044C%20%u0441%u0432%u043E%u0438.%20%u0420%u0430%u0431%u043E%u0442%u0430%u0442%u044C%2C%20%u0432%20%u0442%u0435%u043E%u0440%u0438%u0438%2C%20%u0434%u043E%u043B%u0436%u043D%u043E%20%u0441%20%u043B%u044E%u0431%u044B%u043C%u0438%0A%20%20%20%20%20%20shortenerServices%20%3D%20%5B%0A%20%20%20%20%20%20%20%20%22tinyurl.com%22%2C%0A%20%20%20%20%20%20%20%20%22po.st%22%2C%0A%20%20%20%20%20%20%20%20%22img.ly%22%2C%0A%20%20%20%20%20%20%20%20%22bit.ly%22%2C%0A%20%20%20%20%20%20%20%20%22goo.gl%22%2C%0A%20%20%20%20%20%20%20%20%22youtu.be%22%2C%0A%20%20%20%20%20%20%20%20%22t.co%22%2C%0A%20%20%20%20%20%20%20%20%22db.tt%22%2C%0A%20%20%20%20%20%20%20%20%22u.to%22%2C%0A%20%20%20%20%20%20%20%20%22shortlinks.de%22%0A%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20//%20%u041E%u043F%u0446%u0438%u0438%3A%0A%20%20%20%20%20%20options%20%3D%20%7B%0A%20%20%20%20%20%20%20%20replaceShortenedLinks%3A%20true%2C%20//%20%u0417%u0430%u043C%u0435%u043D%u044F%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u043E%u0439%0A%20%20%20%20%20%20%20%20showAlert%3A%20true%2C%20//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u0432%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0438%u0435%20%u0443%u0432%u0435%u0434%u043E%u043C%u043B%u0435%u043D%u0438%u044F%0A%20%20%20%20%20%20%20%20clickAlertToOpen%3A%20true%2C%20//%20%u041A%u043B%u0438%u043A%20%u043F%u043E%20%u0443%u0432%u0435%u0434%u043E%u043C%u043B%u0435%u043D%u0438%u044E%20%u0441%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u043E%u0439%20%u0441%u0441%u044B%u043B%u043A%u043E%u0439%20-%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%20%u0435%u0435%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%0A%20%20%20%20%20%20%20%20showOnShortenedTextLinks%3A%20true%2C%20//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u0443%u043D%u043A%u0442%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0433%u043E%20%u043C%u0435%u043D%u044E%20%u043D%u0430%20%u0432%u044B%u0434%u0435%u043B%u0435%u043D%u043D%u044B%u0445%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0445%20%u0441%u0441%u044B%u043B%u043A%u0430%u0445%0A%20%20%20%20%20%20%20%20promptDialogForTextLinks%3A%20true%2C%20//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u0434%u0438%u0430%u043B%u043E%u0433%20%u0441%20%u0440%u0435%u0437%u0443%u043B%u044C%u0442%u0430%u0442%u043E%u043C%20%u0434%u043B%u044F%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u044B%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%0A%20%20%20%20%20%20%20%20copyToClipboard%3A%20true%2C%20//%20%u041A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u0443%u044E%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0432%20%u0431%u0443%u0444%u0435%u0440%20%u043E%u0431%u043C%u0435%u043D%u0430%0A%20%20%20%20%20%20%20%20changeColorForUnshortenedLinks%3A%20true%2C%20//%20%u0418%u043D%u0434%u0438%u043A%u0430%u0446%u0438%u044F%20%u0446%u0432%u0435%u0442%u043E%u043C%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u043E%u0436%u0438%u0434%u0430%u043D%u0438%u044F%20%u043E%u0442%u0432%u0435%u0442%u0430%20%u0438%20%u0440%u0435%u0437%u0443%u043B%u044C%u0442%u0430%u0442%u0430%0A%20%20%20%20%20%20%20%20changeColorBackAfterTimeout%3A%20false%2C%20//%20%u0412%u043E%u0437%u0432%u0440%u0430%u0449%u0430%u0442%u044C%20%u0446%u0432%u0435%u0442%20%u0441%u0441%u044B%u043B%u043E%u043A%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%2C%20%u043F%u043E%u0441%u043B%u0435%20%u043F%u0430%u0443%u0437%u044B%0A%20%20%20%20%20%20%20%20unshortenedLinksColor%3A%20%22lightgreen%22%20//%20%u0426%u0432%u0435%u0442%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u044B%u0445%20%u0441%u0441%u044B%u043B%u043E%u043A%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20isFF32%20%3D%20%28parseFloat%28Services.appinfo.platformVersion%29%20%3E%3D%2032%29%3B%0A%0A%20%20function%20isShortenedURL%28aURL%29%20%7B%0A%20%20%20%20if%20%28aURL%20%26%26%20%28gContextMenu%20%26%26%20%28gContextMenu.onLink%20%26%26%20%21gContextMenu.isTextSelected%20%7C%7C%20gContextMenu.onPlainTextLink%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20%21aURL.match%28/%5Cs/%29%20%26%26%20%21%21aURL.match%28/%5C//%29%29%29%20%7B%0A%0A%20%20%20%20%20%20if%20%28%21aURL.startsWith%28%27http%27%29%29%20aURL%20%3D%20%27http%3A//%27%20+%20aURL.split%28/%5E%28%28%5Cw+%29%3F%3A%5C/%5C/%29%3F%28.+%29/%29%5B3%5D%3B%0A%0A%20%20%20%20%20%20var%20host%20%3D%20aURL.split%28/http%28s%29%3F%3A%5C/%5C/%28%5B%5Cw%5C.-%5D+%29/%29%5B2%5D%3B%0A%0A%20%20%20%20%20%20if%20%28shortenerServices.indexOf%28host%29%20%21%3D%3D%20-1%29%20%7B%0A%20%20%20%20%20%20%20%20url%20%3D%20aURL%3B%0A%20%20%20%20%20%20%20%20return%20true%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20return%20false%3B%0A%20%20%7D%3B%0A%0A%20%20function%20promptDialog%28aURL%29%20%7B%0A%20%20%20%20var%20input%20%3D%20%7Bvalue%3A%20aURL%7D%3B%0A%20%20%20%20var%20prompt%20%3D%20Services.prompt.prompt%28null%2C%20options.copyToClipboard%20%3F%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%20%u0441%u043A%u043E%u043F%u0438%u0440%u043E%u0432%u0430%u043D%u0430%21%22%20%3A%20%22%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%21%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22%u041E%u0442%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0438%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%3F%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20input%2C%20null%2C%20%7Bvalue%3A%20false%7D%29%3B%0A%20%20%20%20if%20%28prompt%29%0A%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28input.value%29%3B%0A%20%20%7D%3B%0A%0A%20%20function%20xhr%28aURL%2C%20cb%29%20%7B%0A%20%20%20%20let%20reURL%20%3D%20null%3B%0A%20%20%20%20let%20xhr%20%3D%20Cc%5B%22@mozilla.org/xmlextras/xmlhttprequest%3B1%22%5D.createInstance%28Ci.nsIXMLHttpRequest%29%3B%0A%20%20%20%20let%20alertListener%20%3D%20%7B%0A%20%20%20%20%20%20observe%3A%20function%28aSubject%2C%20aTopic%2C%20aData%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28aTopic%20%21%3D%20%27alertclickcallback%27%29%20return%3B%0A%20%20%20%20%20%20%20%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28aData%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%0A%20%20%20%20let%20handler%20%3D%20ev%20%3D%3E%20%7B%0A%20%20%20%20%20%20evf%28m%20%3D%3E%20xhr.removeEventListener%28m%2C%20handler%2C%20%211%29%29%3B%0A%20%20%20%20%20%20switch%20%28ev.type%29%20%7B%0A%20%20%20%20%20%20%20%20case%20%27load%27%3A%0A%20%20%20%20%20%20%20%20%20%20if%20%28xhr.status%20%3D%3D%20200%20%7C%7C%20%28isFF32%20%3F%20xhr.responseURL%20%3A%20xhr.channel.URI.spec%29%20%21%3D%20aURL%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20reURL%20%3D%20isFF32%20%3F%20xhr.responseURL%20%3A%20xhr.channel.URI.spec%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20cb%28reURL%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.showAlert%20%26%26%20%28options.clickAlertToOpen%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3F%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%21%5Cn%u041D%u0430%u0436%u043C%u0438%u0442%u0435%2C%20%u0447%u0442%u043E%u0431%u044B%20%u043E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u043D%u043E%u0432%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%3A%5Cn%27%20+%20%28reURL.length%20%3E%20100%20%3F%20%28%5BreURL.slice%280%2C45%29%2C%20reURL.slice%28-45%29%5D%29.join%28%27...%27%29%20%3A%20reURL%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20true%2C%20reURL%2C%20alertListener%2C%20%22%22%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3A%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u0421%u0441%u044B%u043B%u043A%u0430%20%u0440%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0435%u043D%u0430%3A%5Cn%27%20+%20%28reURL.length%20%3E%20100%20%3F%20%28%5BreURL.slice%280%2C45%29%2C%20reURL.slice%28-45%29%5D%29.join%28%27...%27%29%20%3A%20reURL%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20%20%20cb%28reURL%29%3B%0A%20%20%20%20%20%20%20%20%20%20options.showAlert%20%26%26%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u041E%u0448%u0438%u0431%u043A%u0430%20%u043F%u0440%u0438%20%u043F%u043E%u043F%u044B%u0442%u043A%u0435%20%u043F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%3A%20%27%20+%20xhr.statusText%20+%20%27%20%5B%27%20+%20ev.type%20+%20%27%3A%27%20+%20xhr.status%20+%20%27%5D%27%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%0A%20%20%20%20let%20evf%20%3D%20f%20%3D%3E%20%5B%27load%27%2C%20%27error%27%2C%20%27abort%27%5D.forEach%28f%29%3B%0A%20%20%20%20evf%28m%20%3D%3E%20xhr.addEventListener%28m%2C%20handler%2C%20false%29%29%3B%0A%0A%20%20%20%20try%20%7B%0A%20%20%20%20%20%20xhr.mozBackgroundRequest%20%3D%20true%3B%0A%20%20%20%20%20%20xhr.open%28%27HEAD%27%2C%20aURL%2C%20true%29%3B%0A%20%20%20%20%20%20xhr.channel.loadFlags%20%7C%3D%20Ci.nsIRequest.LOAD_ANONYMOUS%20%7C%20Ci.nsIRequest.LOAD_BYPASS_CACHE%20%7C%20Ci.nsIRequest.INHIBIT_CACHING%3B%0A%20%20%20%20%20%20xhr.setRequestHeader%28%22User-Agent%22%2C%20%22Mozilla/5.0%20%28compatible%3B%20Googlebot/2.1%3B%20+http%3A//www.google.com/bot.html%29%22%2C%20false%29%3B%0A%20%20%20%20%20%20xhr.setRequestHeader%28%22Accept%22%2C%20%22text/html%2Ctext/xml%22%2C%20false%29%3B%0A%20%20%20%20%20%20xhr.send%28null%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20catch%20%28ex%29%20%7B%0A%20%20%20%20%20%20cb%28reURL%29%3B%0A%20%20%20%20%20%20options.showAlert%20%26%26%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u041D%u0435%u043F%u0440%u0430%u0432%u0438%u043B%u044C%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%3A%20%27%20+%20%28ex.toString%28%29.length%20%3E%20100%20%3F%20%28%5Bex.toString%28%29.slice%280%2C45%29%2C%20ex.toString%28%29.slice%28-45%29%5D%29.join%28%27...%27%29%20%3A%20ex.toString%28%29%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20function%20shouldDisplay%28%29%20%7B%0A%20%20%20%20mItem.label%20%3D%20%22%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%3B%0A%0A%20%20%20%20if%20%28gContextMenu.onLink%20%26%26%20%21gContextMenu.isTextSelected%29%20%7B%0A%20%20%20%20%20%20url%20%3D%20gContextMenu.getLinkURL%28%29%3B%0A%20%20%20%20%20%20link%20%3D%20gContextMenu.link%3B%0A%20%20%20%20%20%20isUnshortened%20%3D%20link.getAttribute%28%22cb-short-url%22%29%3B%0A%20%20%20%20%20%20if%20%28isUnshortened%29%20mItem.label%20%3D%20%22%u0421%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%22%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28gContextMenu.onPlainTextLink%29%20%7B%0A%20%20%20%20%20%20url%20%3D%20gContextMenu.linkURL%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28%21gContextMenu.onPlainTextLink%20%26%26%20gContextMenu.isTextSelected%29%20%7B%0A%20%20%20%20%20%20url%20%3D%20document.commandDispatcher.focusedWindow.content.document.getSelection%28%29.toString%28%29.trim%28%29%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20mItem.hidden%20%3D%20%21%28%28gContextMenu.onLink%20%7C%7C%20%28gContextMenu.onPlainTextLink%20%7C%7C%20gContextMenu.isTextSelected%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20options.showOnShortenedTextLinks%29%20%26%26%20isShortenedURL%28url%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7C%7C%20gContextMenu.onLink%20%26%26%20isUnshortened%29%3B%0A%20%20%7D%3B%0A%20%20cntxtMenu.addEventListener%28%22popupshowing%22%2C%20shouldDisplay%2C%20false%29%3B%0A%20%20addDestructor%28%28%29%3D%3E%20%7B%0A%20%20%20%20cntxtMenu.removeEventListener%28%22popupshowing%22%2C%20shouldDisplay%2C%20false%29%3B%0A%20%20%20%20cntxtMenu.removeChild%28mItem%29%3B%0A%20%20%7D%29%3B%0A%0A%20%20mItem.onclick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20if%20%28gContextMenu.onLink%20%26%26%20%21gContextMenu.isTextSelected%29%20%7B%0A%20%20%20%20%20%20if%20%28%21isUnshortened%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28options.changeColorForUnshortenedLinks%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20linkClr%20%3D%20link.style.getPropertyValue%28%27color%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20linkClr%20%26%26%20link.style.setProperty%28%27-cb-old-color%27%2C%20linkClr%2C%20link.style.getPropertyPriority%28%27color%27%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20oldClr%20%3D%20link.style.getPropertyValue%28%27-cb-old-color%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20var%20oldClrPrrt%20%3D%20link.style.getPropertyPriority%28%27-cb-old-color%27%29%3B%0A%20%20%20%20%20%20%20%20%20%20link.style.setProperty%28%22color%22%2C%20%22orangered%22%2C%20%22important%22%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20xhr%28url%2C%20reURL%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%21reURL%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.changeColorForUnshortenedLinks%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20%28oldClr%20%3F%20%28link.style.setProperty%28%22color%22%2C%20oldClr%2C%20oldClrPrrt%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20link.removeProperty%28%27-cb-old-color%27%29%29%20%3A%20link.style.removeProperty%28%22color%22%29%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20if%20%28options.changeColorForUnshortenedLinks%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20link.style.setProperty%28%22color%22%2C%20options.unshortenedLinksColor%2C%20%22important%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20options.changeColorBackAfterTimeout%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20setTimeout%28%28%29%3D%3E%20oldClr%20%3F%20%28link.style.setProperty%28%22color%22%2C%20oldClr%2C%20oldClrPrrt%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20link.removeProperty%28%27-cb-old-color%27%29%29%20%3A%20link.style.removeProperty%28%22color%22%29%2C%201000%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20options.copyToClipboard%20%26%26%20gClipboard.write%28reURL%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20options.replaceShortenedLinks%20%26%26%20%28link.setAttribute%28%22cb-short-url%22%2C%20link.href%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20link.setAttribute%28%22href%22%2C%20reURL%29%29%3B%0A%20%20%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20else%20%7B%0A%20%20%20%20%20%20%20%20oldClr%20%3F%20%28link.style.setProperty%28%22color%22%2C%20oldClr%2C%20oldClrPrrt%29%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20link.removeProperty%28%27-cb-old-color%27%29%29%20%3A%20link.style.removeProperty%28%22color%22%29%3B%0A%0A%20%20%20%20%20%20%20%20link.setAttribute%28%22href%22%2C%20isUnshortened%29%3B%0A%20%20%20%20%20%20%20%20link.removeAttribute%28%22cb-short-url%22%29%3B%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%20%20else%20%7B%0A%20%20%20%20%20%20xhr%28url%2C%20reURL%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21reURL%29%20return%3B%0A%0A%20%20%20%20%20%20%20%20options.copyToClipboard%20%26%26%20gClipboard.write%28reURL%29%3B%0A%20%20%20%20%20%20%20%20options.promptDialogForTextLinks%20%26%26%20promptDialog%28reURL%29%3B%0A%20%20%20%20%20%20%7D%29%0A%20%20%20%20%7D%0A%20%20%7D%3B%0A%0A%20%20this._handleClick%20%3D%28%29%3D%3E%20%7B%0A%20%20%20%20url%20%3D%20gClipboard.read%28%29%3B%0A%0A%20%20%20%20if%20%28%21url%20%7C%7C%20%21isShortenedURL%28url%29%29%20%7B%0A%20%20%20%20%20%20options.showAlert%20%26%26%20alertsService.showAlertNotification%28self.image%2C%20self.label%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%27%u041D%u0435%u043F%u0440%u0430%u0432%u0438%u043B%u044C%u043D%u0430%u044F%20%u0441%u0441%u044B%u043B%u043A%u0430%21%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20return%3B%0A%20%20%20%20%7D%0A%0A%20%20%20%20xhr%28url%2C%20reURL%20%3D%3E%20%7B%0A%20%20%20%20%20%20if%20%28%21reURL%29%20return%3B%0A%0A%20%20%20%20%20%20options.copyToClipboard%20%26%26%20gClipboard.write%28reURL%29%3B%0A%20%20%20%20%20%20promptDialog%28reURL%29%3B%0A%20%20%20%20%7D%29%0A%20%20%7D%3B%0A%20%20this.tooltipText%20%3D%20%22%u041F%u041A%u041C%3A%20%u0420%u0430%u0441%u043A%u0443%u043A%u043E%u0436%u0438%u0442%u044C%20%u0441%u0441%u044B%u043B%u043A%u0443%20%u0432%20%u0431%u0443%u0444%u0435%u0440%u0435%20%u043E%u0431%u043C%u0435%u043D%u0430%22%3B%0A%7D%29%28document.getElementById%28%22contentAreaContextMenu%22%29%2C%20document.getElementById%28%22context-sep-open%22%29%2C%20document.createElement%28%22menuitem%22%29%29%3B%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отредактировано turbot (28-08-2016 16:12:04)

Отсутствует

 

№15102-09-2016 00:35:49

turbot
Участник
 
Группа: Members
Зарегистрирован: 09-10-2011
Сообщений: 2529
UA: Firefox 51.0

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

Сайты в боковой панели(Firefox 38+), от 02.09.2016
Позволяет открывать сайты в боковой панели из контекстного меню ссылок, кликами на кнопке и из сохраненного списка добавляемых в меню кнопки сайтов.
Предотвращает открытие ссылок, со страниц в боковой панели, в обычных вкладках (для открытия в обычной вкладке/окне - используйте контекстное меню ссылки/клик СКМ/Ctrl или Shift + клик).
Также частично восстанавливает контекстную навигацию и добавляет кнопки навигации в заголовок боковой панели.
До некоторой степени может служить заменой аддону All-in-One Sidebar.

(Прим.: Пользователям [firefox] 48+ следует обратить внимание на имеющийся баг в Custom Buttons, который делает нерабочими все кнопки берущие код с вкладки "Справка". Подробнее, как можно исправить, тут.)

Клики на кнопке:
ЛКМ:  Открыть меню со списком сохраненных адресов (ЛКМ по которым - откроет их в боковой панели, ПКМ - удалит из списка) и пунктом добавляющим в этот список адрес активной вкладки.
(Название сайта, адрес и иконка сохраняются во вкладке справки кнопки и записываются с новой строки. Сохраненные сайты разделяются пустой строкой. Для сайтов без фавиконки устанавливается дефолтная: chrome://mozapps/skin/places/defaultFavicon.png.)
СКМ: Открыть адрес из буфера
ПКМ (без клавиш модификаторов): Открыть в боковой панели адрес активной вкладки

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

Код кнопки:
Инициализация:
Иконка (www.flaticon.com):



Спасибо Dumby за помощь и код и Stakhovsky - за идею кнопки.

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3E%u0421%u0430%u0439%u0442%u044B%20%u0432%20%u0431%u043E%u043A%u043E%u0432%u043E%u0439%20%u043F%u0430%u043D%u0435%u043B%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAiEAAAIhAENVwL6AAAAIGNIUk0AAHolAACAgwAA+f8AAIDoAABSCAABFVgAADqXAAAXb9daH5AAAAHqSURBVHjarJM9aBVBFIW/s2wkgmDnDxoUgoJWokXERlEbf5pY2AhCCkWUgCaNvs3b2Z335lmZoETRINhKLPxD0CZgI0GtLFQUG8FGmxSBmBRzbSYSJE2IB4b5u/cMc+65MjOWYsT57cAVM9sL7AIi8EnSuxjjWKdV/Vgar0WCRrPqknQDuAB0AR+BsbS+DOwEfku6GWNsdFpV/EvQaFa5pElJ+8xsFlhrZn2dVvUrkW+R9Bb4CWyW9CrGONBpVTEHkDQK9JvZHNADzEv6WpQ16R6gG9gELJjZ2SzLvgNNXRtx2yR9AS5JOmJmfcAQy+Me8Bz4AFw3s95cUi8wHLy7X5T1LPA4ePdkueyirNcDM8G7p0VZr5G0Q41mdTB497oo6/3Bu+mirA+b2beUEwGyLMuTXj0p9kDw7k1R1kfVaFYvgUfA3VSBfqANXAUMyNPsgQ7wEJgAzgOnMuA2MJ4O7gCjwbtpYKOkBUDAuuDd+/TIOHBxMTYzsxfAieDdA+BY8G4qKT8QYxyWNCjpHICZPQOOB+8mgJPBu6lc0iFgNzAFbCjK+nTwbrJdl5//FVHSGWAmbfcUZT2/6jLKzCjK+hYwCMwlw8ynsRTdydYLQLekdrsum3n625CkrSuw8mSM0f2/ZlpNO/8ZAGBFAEu2Gqq+AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u0421%u0430%u0439%u0442%u044B%20%u0432%20%u0431%u043E%u043A%u043E%u0432%u043E%u0439%20%u043F%u0430%u043D%u0435%u043B%u0438%20%u043E%u0442%2002.09.2016%0Athis.onclick%20%3De%3D%3E%20%7B%0A%20%20if%20%28e.target%20%21%3D%20this%29%20return%3B%0A%20%20let%20clipboard%20%3D%20gClipboard.read%28%29%3B%0A%20%20if%20%28e.button%20%3D%3D%200%29%0A%20%20%20%20menuPopup.openPopup%28this%2C%20%27after_start%27%29%3B%0A%20%20if%20%28e.button%20%3D%3D%201%29%0A%20%20%20%20openWebPanel%28clipboard%2C%20clipboard%29%3B%0A%20%20if%20%28e.button%20%3D%3D%202%20%26%26%20%21e.shiftKey%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.altKey%29%20%7B%0A%20%20%20%20e.preventDefault%28%29%3B%20e.stopPropagation%28%29%3B%0A%20%20%20%20openWebPanel%28window.content.document.title%2C%20window.content.document.location%29%0A%20%20%7D%0A%7D%0Athis.tooltipText%20%3D%20%27%u041B%u041A%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u043C%u0435%u043D%u044E%20%u0441%u043E%20%u0441%u043F%u0438%u0441%u043A%u043E%u043C%20%u0441%u043E%u0445%u0440%u0430%u043D%u0435%u043D%u043D%u044B%u0445%20%u0430%u0434%u0440%u0435%u0441%u043E%u0432%5Cn%5C%u0421%u041A%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%5Cn%5C%u041F%u041A%u041C%3A%20%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0430%u043A%u0442%u0438%u0432%u043D%u043E%u0439%20%u0432%u043A%u043B%u0430%u0434%u043A%u0438%27%3B%0A%0Avar%20menuPopup%20%3D%20createNode%28%22menupopup%22%2C%20self%2C%20false%2C%20%7Bcontext%3A%20%22%22%7D%29%2C%0A%20%20%20%20sbBox%20%3D%20SidebarUI._box%2C%0A%20%20%20%20sbClsBtn%20%3D%20sbBox.querySelector%28%22.close-icon.tabbable%22%29%2C%0A%20%20%20%20wps%20%3D%20%22SidebarUI.browser.contentDocument.querySelector%28%27browser%23web-panels-browser%27%29.%22%2C%0A%20%20%20%20sep%20%3D%20%22%5Cn%5Cn%22%2C%0A%20%20%20%20//%20%u0417%u0430%u043C%u0435%u043D%u0438%u0442%u044C%20%u0441%u0442%u0440%u043E%u043A%u0443%20%u043D%u0438%u0436%u0435%20%u043D%u0430%3A%20help%20%3D%20custombutton.buttonGetHelp%28self%29.trim%28%29%2C%0A%20%20%20%20//%20%u0435%u0441%u043B%u0438%20%u043D%u0435%20%u0445%u043E%u0442%u0438%u0442%u0435%20%u0432%u043E%u0437%u0438%u0442%u044C%u0441%u044F%20%u0441%20%u043E%u0442%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u0435%u043C%20%u043F%u0440%u043E%u0432%u0435%u0440%u043A%u0438%20%u0440%u0430%u0441%u0448%u0438%u0440%u0435%u043D%u0438%u0439%0A%20%20%20%20//%20%u0438%20%u0443%u0441%u0442%u0430%u043D%u043E%u0432%u043A%u043E%u0439%20%u043F%u043E%u0444%u0438%u043A%u0448%u0435%u043D%u043D%u043E%u0433%u043E%20CB%20%u0432%20%u0444%u044448+%0A%20%20%20%20help%20%3D%20self.Help.trim%28%29%2C%0A%20%20%20%20items%20%3D%20help%0A%20%20%20%20%20%20%3F%20help.split%28sep%29%0A%20%20%20%20%20%20%3A%20%5B%22About%20Config%5Cnabout%3Aconfig%5Cnchrome%3A//mozapps/skin/places/defaultFavicon.png%22%5D%2C%0A%20%20%20%20menugroup%20%3D%20createNode%28%22menugroup%22%2C%20menuPopup%2C%20false%2C%20%7B%0A%20%20%20%20%20%20orient%3A%20%22vertical%22%2C%0A%20%20%20%20%20%20oncommand%3A%20%22openPage%28event.target%29%3B%22%2C%0A%20%20%20%20%20%20oncontextmenu%3A%20%22removePage%28event.target%29%3B%22%0A%20%20%20%20%7D%29%2C%0A%20%20%20%20cnMenu%20%3D%20document.getElementById%28%22contentAreaContextMenu%22%29%2C%0A%20%20%20%20cnOpen%20%3D%20document.getElementById%28%22context-sep-open%22%29%2C%0A%20%20%20%20cnItem%20%3D%20createNode%28%22menuitem%22%2C%20cnOpen%2C%20true%2C%20%7B%0A%20%20%20%20%20%20id%3A%20%22open-in-sidebar%22%2C%0A%20%20%20%20%20%20label%3A%20%22%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0432%20%u0411%u043E%u043A%u043E%u0432%u043E%u0439%20%u041F%u0430%u043D%u0435%u043B%u0438%22%2C%0A%20%20%20%20%20%20oncommand%3A%20%22openWebPanel%28gContextMenu.getLinkURL%28%29%2C%20gContextMenu.getLinkURL%28%29%29%3B%20document.getElementById%28%27verticaltoolbar-button%27%29.click%28%29%3B%22%0A%20%20%20%20%7D%29%2C%0A%20%20%20%20cnListener%20%3D%20cnMenu.addEventListener%28%22popupshowing%22%2C%20%28%29%3D%3E%20cnItem.hidden%20%3D%20%21gContextMenu.onLink%29%2C%0A%20%20%20%20cnDestructor%20%3D%20addDestructor%28%28%29%3D%3E%20%7B%0A%20%20%20%20%20%20cnMenu.removeEventListener%28%22popupshowing%22%2C%20cnListener%29%3B%0A%20%20%20%20%20%20cnMenu.removeChild%28cnItem%29%0A%20%20%20%20%7D%29%2C%0A%20%20%20%20sbNav%20%3D%20%5B%0A%20%20%20%20%20%20%5B%22back%22%2C%20%22goBack%28%29%3B%22%2C%20%22back-button-tooltip%22%5D%2C%0A%20%20%20%20%20%20%5B%22forward%22%2C%20%22goForward%28%29%3B%22%2C%20%22forward-button-tooltip%22%5D%2C%0A%20%20%20%20%20%20%5B%22reload%22%2C%20%22reload%28%29%3B%22%2C%2C%20%22Reload%20current%20page%22%5D%2C%0A%20%20%20%20%20%20%5B%22stop%22%2C%20%22stop%28%29%3B%22%2C%2C%20%22Stop%20loading%20this%20page%22%5D%0A%20%20%20%20%5D%3B%0A%0Aitems.forEach%28%28item%2C%20index%29%20%3D%3E%20%7B%0A%20%20var%20%5Btitle%2C%20url%2C%20icon%5D%20%3D%20item.split%28%22%5Cn%22%29%3B%0A%20%20icon%20%3D%20%28icon.startsWith%28%27chrome%3A%27%29%20%7C%7C%20icon.startsWith%28%27file%3A%27%29%20%7C%7C%20icon.startsWith%28%27data%3A%27%29%29%20%3F%20icon%20%3A%20%27moz-anno%3Afavicon%3A%27%20+%20icon%3B%0A%20%20createNode%28%22menuitem%22%2C%20menugroup%2C%20false%2C%20%7B%0A%20%20%20%20tooltiptext%3A%20url%2C%0A%20%20%20%20class%3A%20%22menuitem-iconic%22%2C%0A%20%20%20%20label%3A%20title%2C%0A%20%20%20%20image%3A%20icon%0A%20%20%7D%29.index%20%3D%20index%3B%0A%7D%29%3B%0Amenugroup.openPage%20%3D%20%28%7Bindex%7D%29%20%3D%3E%20openWebPanel%28...items%5Bindex%5D.split%28%22%5Cn%22%29%29%3B%0Amenugroup.removePage%20%3D%20%28%7Bindex%7D%29%20%3D%3E%20items.splice%28index%2C%201%29%20%26%26%20installButton%28items.join%28sep%29%29%3B%0A%0A%5B%0A%20%20%5B%27menuseparator%27%5D%2C%0A%20%20%5B%27menuitem%27%2C%20%27%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u043A%u043D%u043E%u043F%u043A%u0443%27%2C%20%27custombuttons.editButton%28this.parentNode.parentNode%29%3B%27%5D%2C%0A%20%20%5B%27menuitem%27%2C%20%27%u041E%u0442%u043A%u0440%u044B%u0442%u044C%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u0431%u0443%u0444%u0435%u0440%u0430%20%u043E%u0431%u043C%u0435%u043D%u0430%27%2C%20%27openWebPanel%28gClipboard.read%28%29%2C%20gClipboard.read%28%29%29%3B%27%5D%2C%0A%20%20%5B%27menuitem%27%2C%20%27%u0414%u043E%u0431%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0443%u0449%u0438%u0439%20%u0441%u0430%u0439%u0442%27%2C%20%27this.parentNode.parentNode.addPage%28window.content.document.title%2C%20window.content.document.location.href%2C%20gBrowser.mCurrentTab.image%29%3B%27%5D%0A%5D.forEach%28%28%5Btype%2C%20lbl%2C%20cmd%5D%29%20%3D%3E%20%0A%20%20%20%20%20%20%20%20%20%20createNode%28type%2C%20menuPopup%2C%20false%2C%20%7Blabel%3A%20lbl%2C%20oncommand%3A%20cmd%7D%29%29%3B%0A%0Aif%20%28%21sbBox.hasAttribute%28%22navbuttons%22%29%29%20%7B%0A%20%20sbNav.forEach%28%28%5Bid%2C%20cmd%2C%20tltp%2C%20ttxt%5D%29%20%3D%3E%20%7B%0A%20%20%20%20var%20icon%20%3D%20%22chrome%3A//browser/skin/content-contextmenu.svg%23%22%20+%20id%3B%0A%20%20%20%20id%20%3D%20%27sb-%27%20+%20id%20+%20%27-button%27%3B%0A%20%20%20%20createNode%28%22toolbarbutton%22%2C%20sbClsBtn%2C%20true%2C%20%7B%0A%20%20%20%20%20%20id%3A%20id%2C%0A%20%20%20%20%20%20oncommand%3A%20wps%20+%20cmd%2C%0A%20%20%20%20%20%20tooltip%3A%20tltp%2C%0A%20%20%20%20%20%20tooltiptext%3A%20ttxt%2C%0A%20%20%20%20%20%20style%3A%20%27list-style-image%3A%20url%28%22%27%20+%20icon%20+%20%27%22%29%3B%20-moz-image-region%3A%20rect%280%2011px%2011px%200%29%3B%27%0A%20%20%20%20%7D%29%0A%20%20%7D%29%0A%20%20sbBox.setAttribute%28%27navbuttons%27%2C%20%27true%27%29%3B%0A%7D%0A%0Afunction%20installButton%28help%29%20%7B%0A%20%20%20%20var%20link%20%3D%20custombuttons.makeButtonLink%28%22edit%22%2C%20_id%29%3B%0A%20%20%20%20var%20param%20%3D%20custombuttons.cbService.getButtonParameters%28link%29%3B%0A%20%20%20%20param%20%3D%20param.wrappedJSObject%20%7C%7C%20param%3B%0A%20%20%20%20param.help%20%3D%20help%3B%0A%20%20%20%20custombuttons.cbService.installButton%28param%29%3B%0A%7D%0A%0Afunction%20createNode%28type%2C%20elm%2C%20before%2C%20attrs%29%20%7B%0A%20%20var%20node%20%3D%20before%0A%20%20%3F%20elm.parentNode.insertBefore%28document.createElement%28type%29%2C%20elm%29%0A%20%20%3A%20elm.appendChild%28document.createElement%28type%29%29%3B%0A%20%20for%28var%20name%20in%20attrs%29%20%7B%0A%20%20%20%20if%20%28attrs%5Bname%5D%29%0A%20%20%20%20%20%20node.setAttribute%28name%2C%20attrs%5Bname%5D%29%3B%0A%20%20%7D%0A%20%20return%20node%3B%0A%7D%0A%0Athis.addPage%20%3D%28title%2C%20url%2C%20icon%29%3D%3E%20%7B%0A%20%20title%20%3D%20%21title%20%3F%20url%20%3A%20title%3B%0A%20%20icon%20%3D%20%21icon%20%3F%20%27chrome%3A//mozapps/skin/places/defaultFavicon.png%27%20%3A%20icon%3B%0A%20%20var%20newItem%20%3D%20%5Btitle%2C%20url%2C%20icon%5D.join%28%27%5Cn%27%29%3B%0A%20%20installButton%28%5Bhelp%2C%20newItem%5D.join%28sep%29%29%3B%0A%7D%0A%0A%28%28browser%2C%20listener%2C%20br%29%20%3D%3E%20%7B%20if%20%28browser%29%20%7B%0A%20%20addEventListener%28%22DOMFrameContentLoaded%22%2C%20listener%2C%20true%2C%20browser%29%3B%0A%20%20var%20getBr%20%3D%20%28%29%20%3D%3E%20browser.contentDocument.querySelector%28listener.selector%29%3B%0A%20%20if%20%28%28br%20%3D%20getBr%28%29%29%29%20br.window%20%3D%20%7Bparent%3A%20listener.parent%7D%3B%0A%20%20addDestructor%28%28%29%20%3D%3E%20%7B%0A%20%20%20%20if%20%28%28br%20%3D%20getBr%28%29%29%29%20delete%20br.window%3B%0A%20%20%7D%29%3B%0A%7D%7D%29%28SidebarUI.browser%2C%20%7B%0A%20%20selector%3A%20%22browser%23web-panels-browser%22%2C%0A%20%20handleEvent%28e%29%20%7B%0A%20%20%20%20if%20%28e.target.matches%28this.selector%29%20%26%26%20%21e.target.hasAttribute%28%22disableglobalhistory%22%29%29%20%7B%0A%20%20%20%20%20%20sbNav.forEach%28%28%5Bid%2C%20cmd%5D%29%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20id%20%3D%20%27%23context-%27%20+%20id%3B%0A%20%20%20%20%20%20%20%20var%20mItem%20%3D%20SidebarUI.browser.contentDocument.querySelector%28id%29%3B%0A%20%20%20%20%20%20%20%20if%20%28id%20%3D%3D%20%22%23context-reload%22%29%0A%20%20%20%20%20%20%20%20%20%20mItem.style.setProperty%28%27display%27%2C%20%27-moz-box%27%2C%20%27important%27%29%3B%0A%20%20%20%20%20%20%20%20mItem.onclick%20%3D%28%29%3D%3E%20eval%28wps%20+%20cmd%29%3B%0A%20%20%20%20%20%20%7D%29%0A%20%20%20%20%20%20e.target.setAttribute%28%22disableglobalhistory%22%2C%20%27false%27%29%0A%20%20%20%20%7D%0A%0A%20%20%20%20if%20%28e.target.matches%28this.selector%29%20%26%26%20%21%28%22window%22%20in%20e.target%29%29%0A%20%20%20%20%20%20e.target.window%20%3D%20%7Bparent%3A%20this.parent%7D%3B%0A%20%20%7D%2C%0A%20%20get%20parent%28%29%20%7B%0A%20%20%20%20delete%20this.parent%3B%0A%20%20%20%20var%20parent%20%3D%20%7B%7D%3B%0A%20%20%20%20parent.contentAreaClick%20%3D%20eval%28%60%28%24%7B%0A%20%20%20%20%20%20contentAreaClick.toString%28%29.replace%28%0A%20%20%20%20%20%20%20%20%27linkNode.getAttribute%28%22onclick%22%29%27%2C%0A%20%20%20%20%20%20%20%20%22%21target%20%26%26%20this.shouldLoadInPanelBrowser%28linkNode%29%20%7C%7C%20%24%26%22%0A%20%20%20%20%20%20%29%0A%20%20%20%20%7D%29%60%29%3B%0A%20%20%20%20parent.shouldLoadInPanelBrowser%20%3D%20link%20%3D%3E%20%7B%0A//%20%u0417%u0434%u0435%u0441%u044C%20%u043C%u043E%u0436%u043D%u043E%20%u0437%u0430%u0434%u0430%u0442%u044C%20%u0438%u0441%u043A%u043B%u044E%u0447%u0435%u043D%u0438%u044F%2C%20%u043A%u0430%u043A%u0438%u0435%20%u0441%u0441%u044B%u043B%u043A%u0438%20%u0441%u043B%u0435%u0434%u0443%u0435%u0442%20%u043E%u0442%u043A%u0440%u044B%u0432%u0430%u0442%u044C%20%u0432%20%u043E%u0431%u044B%u0447%u043D%u044B%u0445%20%u0432%u043A%u043B%u0430%u0434%u043A%u0430%u0445%3A%0A//%20%20%20%20%20%20%20if%20%28%21%28link.ownerDocument.location.protocol%20%3D%3D%20%22file%3A%22%0A//%20%20%20%20%20%20%20%20%20%20%20%20%20%26%26%20link.className%20%3D%3D%20%27file%27%29%29%20return%20true%3B%0A%20%20%20%20%7D%0A%20%20%20%20return%20this.parent%20%3D%20parent%3B%0A%20%20%7D%0A%7D%29%3B%0A%0Avar%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0Avar%20uri%20%3D%20makeURI%28%22data%3Atext/css%2C%22%20+%20encodeURIComponent%28%0A%20%20%5B%0A%20%20%20%20%27@namespace%20xul%20url%28%22http%3A//www.mozilla.org/keymaster/gatekeeper/there.is.only.xul%22%29%3B%27%2C%0A%20%20%20%20%27@namespace%20html%20url%28%22http%3A//www.w3.org/1999/xhtml%22%29%3B%27%2C%0A%20%20%20%20%27@namespace%20svg%20url%28http%3A//www.w3.org/2000/svg%29%3B%27%2C%0A%20%20%20%20%27%27%2C%0A%20%20%20%20%27@-moz-document%20url%28%22chrome%3A//browser/content/browser.xul%22%29%20%7B%27%2C%0A%20%20%20%20%27%20%20%23sidebar-throbber%5Bloading%5D%20%7E%20%23sb-reload-button%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20display%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-throbber%3Anot%28%5Bloading%5D%29%20%7E%20%23sb-stop-button%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20display%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-box%20toolbarbutton%5Bid%5E%3D%22sb-%22%5D%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20-moz-appearance%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20padding%3A%203.5px%206px%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20margin%3A%20.5px%200%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20background%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20background-clip%3A%20border-box%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20border%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20border-radius%3A%200%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20box-shadow%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-box%3Anot%28%5Bsidebarcommand%3D%22viewWebPanelsSidebar%22%5D%29%20toolbarbutton%5Bid%5E%3D%22sb-%22%5D%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20display%3A%20none%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-box%20toolbarbutton%5Bid%5E%3D%22sb-%22%5D%20.toolbarbutton-icon%20%7B%27%2C%0A//%20%20%20%u0420%u0430%u0441%u043A%u043E%u043C%u043C%u0435%u043D%u0442%u0438%u0440%u0443%u0439%u0442%u0435%20%u0441%u0442%u0440%u043E%u043A%u0443%20%u043D%u0438%u0436%u0435%2C%20%u0435%u0441%u043B%u0438%20%u0443%20%u0432%u0430%u0441%20%u0437%u0430%u0433%u043E%u043B%u043E%u0432%u043A%u0430%20%u0441%u0430%u0439%u0434%u0431%u0430%u0440%u0430%20%u0438%u043C%u0435%u0435%u0442%20%u0442%u0435%u043C%u043D%u044B%u0439%20%u0444%u043E%u043D%3A%0A//%20%20%20%20%20%27%20%20%20%20filter%3A%20invert%28.9%29%20%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20opacity%3A%200.5%20%21important%3B%27%2C%0A%20%20%20%20%27%20%20%20%20transition%3A%20opacity%20ease%20200ms%20%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%20%20%23sidebar-box%20toolbarbutton%5Bid%5E%3D%22sb-%22%5D%3Ahover%20.toolbarbutton-icon%20%7B%27%2C%0A%20%20%20%20%27%20%20%20%20opacity%3A%200.9%20%21important%3B%27%2C%0A%20%20%20%20%27%20%20%7D%27%2C%0A%20%20%20%20%27%7D%27%0A%20%20%5D.join%28%27%5Cn%27%29%29%29%3B%0AaddDestructor%28%28%29%3D%3E%20sss.unregisterSheet%28this.uri%2C%200%20%7C%7C%20uri%2C%200%29%29%3B%0Athis.uri%20%3D%20uri%3B%0Asss.loadAndRegisterSheet%28uri%2C%200%29%3B%0A%0A%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

Board footer

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