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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№510105-11-2012 13:47:36

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

Re: Custom Buttons

Lex1 пишет

Да, в сниппетах для получения адреса страницы предлагается использовать:
getBrowser().currentURI.spec a почему не getBrowser().contentWindow.location - какие-то проблемы?

Ну для получения адреса страницы сущствует много вариантов, и наверно автор сниппета выложил свой любимый или более универсальный. Кстати можно и так:
alert(content.location);
alert(gBrowser.currentURI.spec);
alert(content.document.location);
или даже:
alert(gURLBar.value);

Отсутствует

 

№510205-11-2012 14:38:35

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

Re: Custom Buttons

Dumby
Насчёт кнопки Настройки.
Спасибо за if (node == "textbox" || node == "filefield") return;
я не подумал об этом, потому что сам для выделения слова и строки двойной клик не использую. Кстати добавил node == "richlistitem"
Интересно то что твой win.ondblclick при повторном нажатие кнопки не добавляется повторно а вот preferences.addEventListener("dblclick",... добавляется без конечно. В общем твой вариант лучше.

С кнопкой VT проблема - на FF16 получается слишком широкая
вертикальная панель, ни как не могу найти нужный Css код и уменьшить ширину.

VT
clipboardg.jpg

Отредактировано bunda1 (05-11-2012 14:52:37)

Отсутствует

 

№510305-11-2012 18:34:50

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

Re: Custom Buttons

bunda1
Угу, alert(getBrowser().contentWindow===content) -> true. Будем использовать его. Продолжу знакомиться с предметом:

Allow context menu - На некоторых сайтах заблокировано контекстное меню или копирование текста, или даже нельзя закрыть страницу. Эта кнопка решает подобные проблемы.

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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EAllow%20context%20menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACHElEQVR4AZXBT0hTARwH8N+b/yCXeSiYeGh0cYQQBE5UaOFpUw8mXrooKIiSKJtuOQcbW2ksWHP0TDSnBp1Mx0BiQWMN3J/3hnO9ScyYGmoGgiShjJbDb5eCCLPt86HfDg93SxYXX7QbDPety8tCMeXq9PS4eGnpwRO5XAS1Wu/g+Z18ylUy+byvq4tQVVUAo9Fq5fldhnKxtjajXlgQwWQiVFdfgMViN/P8dh5lSxCcmnCYQTRK6Okh1NSIYTY/fhQKbRdSNjjOqQmFGBwcEKamCB0dhLq6QlgstofB4Kd8+p9AwKnx+RhkMoRwmOBwEIaGCEqlGDabzRKLbRXReYJBp8bjYQAQUimCXk/Qagnd3YSKCkJvr3qC59+XxeOCiM7CcTOaSIRBOk2YnSVUVhIkEhHq68sgk13KSKXS7xMT0/c2NjZK6Szr69Nqj4dgNBKam6+BZQkqFYO2Nt0Pt/td++QkK+e4kDQaXc2nvwGpvFjMpmtoIDQ2tn50udymnZ3LKZeLUFsrT3u9m9fpPOn015K5uVFWobhxwrK+W8nksVgQ2jZXVhi0thIGBoyOQGDrIv3L3t5WAceFb3u94Tv0Szz+eiASkZzMzxNaWmTfRkZeKigXicSHq37/3c9+P6Gzk9Dfr50ZH38loWzt72/nJRJvDcPDV1BeTlAqVZs63ehNysXR0Zciu/3Z06am9jeDg/q+sbGxUvrDT/sZDTsp21mGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B%28function%28w%29%7B%0A%20%20%20%20%20%20%20%20var%20arr%20%3D%20%5B%27contextmenu%27%2C%27copy%27%2C%27cut%27%2C%27paste%27%2C%27mousedown%27%2C%27mouseup%27%2C%27beforeunload%27%2C%27beforeprint%27%5D%3B%0A%20%20%20%20%20%20%20%20for%28var%20i%20%3D%200%2C%20x%3B%20x%20%3D%20arr%5Bi%5D%3B%20i++%29%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28w%5B%27on%27%20+%20x%5D%29w%5B%27on%27%20+%20x%5D%20%3D%20null%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20w.addEventListener%28x%2C%20function%28e%29%7Be.stopPropagation%28%29%7D%2C%20true%29%3B%0A%20%20%20%20%20%20%20%20%7D%3B%0A%20%20%20%20%20%20%20%20for%28var%20j%20%3D%200%2C%20f%3B%20f%20%3D%20w.frames%5Bj%5D%3B%20j++%29%7Btry%7Barguments.callee%28f%29%7Dcatch%28e%29%7B%7D%7D%0A%7D%29%28content%29%3B%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№510405-11-2012 19:01:00

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2130
UA: Firefox 10.0

Re: Custom Buttons

bunda1

про Настройки
Ну win.ondblclick - мне кажется похожим на простое переопределение
свойства объекта, а как оно там «изнутри» работает - я не знаю, и что
происходит с добавлеными listener'ами, когда окно закрывается - тоже без понятия...

Ещё заметил, что при исправлении, ты написал this.close();
Пока preferences.addEventListener - всё нормально, а если кто заменит на gBrowser.addEventListener,
так работать не будет (ключевое слово this тогда будет указывать на tabbrowser)

А ещё ты не указал в описании кнопки, что она открывает Настройки
как немодальное окно независимо от
browser.preferences.inContent  и  browser.preferences.instantApply.
Я думаю - это главное приемущество кнопки.


Ширина VT - строчка  toolbar.setAttribute("_width", toolbar.boxObject.width + 4);
попробуй подогнать число «под себя», можно и минус.
Но изменения произойдут, только когда на VT что-нибудь добавить (или убрать)

Отредактировано Dumby (05-11-2012 19:23:46)

Отсутствует

 

№510505-11-2012 20:50:43

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

Re: Custom Buttons

Спасибо я исправил this.close(); и toolbar.setAttribute("_width", toolbar.boxObject.width + 4); тоже помог.
И насчет Настройки как не модальное окно тоже написал.

Отредактировано bunda1 (05-11-2012 21:00:40)

Отсутствует

 

№510606-11-2012 22:21:26

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

Re: Custom Buttons

Где тут была кнопка для загрузки файлов на Загрузки | Форум Mozilla Россия

Отсутствует

 

№510707-11-2012 17:44:55

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 16.0

Re: Custom Buttons

Может кто это починить. Когда использую с Mouseover Popup Image Viewer, то частенько на рутрекере например, появляется ошибка:

Выделить код

Код:

[Mouseover Popup Image Viewer] Error: Permission denied to access property 'querySelector'

На гугл картинках ошибки нет.

Еще консоль пишет:

Выделить код

Код:

Метка времени: 07.11.2012 22:44:16
Ошибка: Показ объектов chrome JS содержимому без __exposedProps__ является небезопасным и устаревшим. Для получения большей информации прочтите https://developer.mozilla.org/en/XPConnect_wrappers
Источник: chrome://custombuttons/content/button.js?windowId=Firefox&id=custombuttons-button0@init
Строка: 1007
Выделить код

Код:

Метка времени: 07.11.2012 22:44:14
Ошибка: Показ объектов chrome JS содержимому без __exposedProps__ является небезопасным и устаревшим. Для получения большей информации прочтите https://developer.mozilla.org/en/XPConnect_wrappers
Источник: chrome://custombuttons/content/button.js?windowId=Firefox&id=custombuttons-button0@init
Строка: 1031

Не уверен относиться ли к данной кнопке, так как на практике консоль источник указывает неверно, т.е. всегда chrome:/ /custombuttons/content/button.js?windowId=Firefox&id=custombuttons-button0@init

Отредактировано Kamui (07-11-2012 18:46:24)

Отсутствует

 

№510808-11-2012 11:59:50

lokiju
Участник
 
Группа: Members
Зарегистрирован: 30-01-2012
Сообщений: 208
UA: Firefox 16.0

Re: Custom Buttons

Kamui пишет

Может кто это починить. Когда использую с Mouseover Popup Image Viewer, то частенько на рутрекере например, появляется ошибка:Выделить кодКод:[Mouseover Popup Image Viewer] Error: Permission denied to access property 'querySelector'На гугл картинках ошибки нет.Еще консоль пишет:Выделить кодКод:Метка времени: 07.11.2012 22:44:16
Ошибка: Показ объектов chrome JS содержимому без __exposedProps__ является небезопасным и устаревшим. Для получения большей информации прочтите https://developer.mozilla.org/en/XPConnect_wrappers
Источник: chrome://custombuttons/content/button.js?windowId=Firefox&id=custombuttons-button0@init
Строка: 1007Выделить кодКод:Метка времени: 07.11.2012 22:44:14
Ошибка: Показ объектов chrome JS содержимому без __exposedProps__ является небезопасным и устаревшим. Для получения большей информации прочтите https://developer.mozilla.org/en/XPConnect_wrappers
Источник: chrome://custombuttons/content/button.js?windowId=Firefox&id=custombuttons-button0@init
Строка: 1031Не уверен относиться ли к данной кнопке, так как на практике консоль источник указывает неверно, т.е. всегда chrome:/ /custombuttons/content/button.js?windowId=Firefox&id=custombuttons-button0@init
                    Отредактировано Kamui (Вчера 16:46:24)

А если обновиться со страницы автора скрипта? UserScriptLoader 0.1.7.9

гуглоперевод пишет

// @note           0.1.7.9 __exposedProps__ Я положил

Добавлено 08-11-2012 12:12:41

bunda1 пишет

Где тут была кнопка для загрузки файлов на Загрузки | Форум Mozilla Россия

Оно?

Отредактировано lokiju (08-11-2012 12:12:41)

Отсутствует

 

№510908-11-2012 13:57:15

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 16.0

Re: Custom Buttons

lokiju
Благодарю, ошибка с __exposedProps__ исчезла, но Mouseover Popup Image Viewer тем не менее не работает например на рутрекере с первьюшками с радикала, хотя здесь превьюшки с радикала работают. А вот например превьюшки с itmages на этом форуме не работают. Ошибка везде одна:

Выделить код

Код:

[Mouseover Popup Image Viewer] Error: Permission denied to access property 'querySelector'

И кстати кто автор оригинала UserScriptLoader'a? Я например брал у ardiman'а.

Отсутствует

 

№511008-11-2012 19:34:33

lokiju
Участник
 
Группа: Members
Зарегистрирован: 30-01-2012
Сообщений: 208
UA: Firefox 16.0

Re: Custom Buttons

Kamui пишет

И кстати кто автор оригинала UserScriptLoader'a? Я например брал у ardiman'а.

lokiju пишет

А если обновиться со страницы автора скрипта? UserScriptLoader 0.1.7.9

[url=https://github.com/Griever пишет

Griever[/url]]
// ==UserScript==
// @name UserScriptLoader.uc.js
// @description Greasemonkey っぽいもの
// @namespace http://d.hatena.ne.jp/Griever/
// @include main
// @compatibility Firefox 5.0
// @license MIT License
// @version 0.1.7.9

ardiman  пишет

// ==UserScript==
// @name UserScriptLoader.uc.js
// @description Greasemonkey っぽいもの
// @namespace http://d.hatena.ne.jp/Griever/
// @include main
// @compatibility Firefox 5.0
// @license MIT License
// @version 0.1.7.8

Скоро ardiman заменит английский в скрипте на немецкий и у него будет  version 0.1.7.9

Отсутствует

 

№511108-11-2012 19:46:23

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 16.0

Re: Custom Buttons

lokiju
Ясно, мне как раз английский больше по душе, еще хотел перевести его с немецкого :lol: а оригинал то и так на английском:)

Отсутствует

 

№511208-11-2012 20:02:46

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

Re: Custom Buttons

lokiju
Спасибо это оно :)

Kamui
Я не знаю как исправить Mouseover Popup Image Viewer :(

Отредактировано bunda1 (08-11-2012 20:03:06)

Отсутствует

 

№511308-11-2012 21:18:58

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 16.0

Re: Custom Buttons

bunda1
Автору написал, может чего и сделает. Там как оказалось, не загружаются непрямые ссылки на картинку.
Например эта грузится:
0189230458e0e85dab1733bbdb826230.jpg
А эта нет:
aa72c459f5cfc0ad8afda27533eb8dab.jpeg


Автор MPIV внес фикс и теперь все работает, благодарю всех за внимание :)

Отредактировано Kamui (09-11-2012 22:12:04)

Отсутствует

 

№511410-11-2012 01:28:33

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 19.0

Re: Custom Buttons

skynet281978 пишет

Перестала работать ваша кнопочка Memory Monitor
Memory Monitor - отображает используемую оперативную память Firefox  в адресной строке

Всё работает даже на [nightly]

Отсутствует

 

№511510-11-2012 02:25:39

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 19.0

Re: Custom Buttons

skynet281978 пишет

voqabuhe у меня показывает только MB без цифр. вы проверили код который я писал?

А чего проверять, если я пользуюсь этой кнопкой [CB]Memory Monitor

Отсутствует

 

№511610-11-2012 02:40:32

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 19.0

Re: Custom Buttons

skynet281978 пишет

кнопка редактировалась судя по дате...

Дык кто виноват, если ты пользуешься устаревшей версией? Обновись.:dumb:

Отсутствует

 

№511710-11-2012 22:09:35

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

Re: Custom Buttons

Кнопка сохраняет снапшот (текущее состояние) страницы или выделения в html.

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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3ESave%20snapshot%20to%20html%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACaUlEQVR4AX3BTWvcVRTA4d+592am/5lp0qSxtEtRxI0oVmipuBFEEDfd1IUvCz+RO3du/QAqCgUjxULdWKFV8AUkapg0pplM5uX/cu85x7RQlDb4PPL62++8ubq68cLZjXPnY2hnKYk4JxMgZ/fpvHe6bo72tr745OO0trb+4pVLb1x7/92rFzfXIQr/a1kbX34T2Lrx2d350Uefpq4znc6y/b0Ho8oZVII5J4oC81qZTAL1YhmAXnK12LUqB1O40Br9fkQLT3DAIjQNLBsw1wBIKmahbkucTKFtjdxFioI7T4gRcnG0tJgVASSVUmKXS6hrJXeQC+QC5iD8h0NaAS2Cu6FFAxCCqkZVDWYKIjwiPEZ4SBzMCmo5AJJULWIau7ZlZ6zMZhV1q5g5j0sxcP+gpl4qZhqAmLTkBBbNnZvfjTk8zBxMWprWcAd3HhJxhoNEVSWGowsE0QBI6nIOajnEFEkp8Orl8wxHQ4QCKCJOjByL/PLbnB/u7DIYRFRLAELKucSmzuHPnTmT/TFX33qK61vbLGp479qzbG70eGR9NXHj258Yjc7h5gEIIecS6yaHxaJlWS9ZLjPf3x5z89Yuh9PMA/cnsLsPh9NMFMetYFYCEII7vRh7vapaReQUm2d6fPjBZV678hxrp3s80O9DFJBwin5/QFWtEWMvATGpFp8e3bOd8W0O9u/w1deZiy8/zysvLfj19xk//mzMF4W2c7b/2NPtv+52Kk11eHSPYyKD1bOXzMozpbRPSwjkpgiChJWAZ8UViBwTQSSnldjgVsXUm5Wm+Vz41xDoAwIETuaAAy3QAf4PtuhVEPpvXZEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20getSelWin%20%3D%20function%20%28w%29%20%7B%0A%09if%20%28w.getSelection%28%29.toString%28%29%29%20return%20w%3B%0A%09for%20%28var%20i%20%3D%200%2C%20f%2C%20r%3B%20f%20%3D%20w.frames%5Bi%5D%3B%20i++%29%20%7B%0A%09%09try%20%7B%0A%09%09%09if%20%28r%20%3D%20arguments.callee%28f%29%29%20return%20r%0A%09%09%7D%20catch%28e%29%20%7B%7D%0A%09%7D%0A%7D%3B%0Avar%20ele%2C%20pEle%2C%20clone%2C%20win%20%3D%20content%3B%0Avar%20doc%20%3D%20win.document%2C%20loc%20%3D%20win.location%3B%0Avar%20selWin%20%3D%20getSelWin%28win%29%3B%0Aif%20%28selWin%29%20%7B%0A%09var%20rng%20%3D%20selWin.getSelection%28%29.getRangeAt%280%29%3B%0A%09pEle%20%3D%20rng.commonAncestorContainer%3B%0A%09ele%20%3D%20rng.cloneContents%28%29%3B%0A%09doc%20%3D%20selWin.document%3B%0A%09loc%20%3D%20selWin.location%0A%7D%20else%20%7B%0A%09pEle%20%3D%20doc.documentElement%3B%0A%09ele%20%3D%20%28doc.body%20%7C%7C%20doc.getElementsByTagName%28%27body%27%29%5B0%5D%29.cloneNode%28true%29%0A%7D%3B%0Awhile%20%28pEle%29%20%7B%0A%09if%20%28pEle.nodeType%20%3D%3D%201%29%20%7B%0A%09%09clone%20%3D%20pEle.cloneNode%28false%29%3B%0A%09%09clone.appendChild%28ele%29%3B%0A%09%09ele%20%3D%20clone%0A%09%7D%3B%0A%09pEle%20%3D%20pEle.parentNode%0A%7D%3B%0Avar%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0Asel.appendChild%28ele%29%3B%0A%0Avar%20scripts%20%3D%20sel.getElementsByTagName%28%27script%27%29%3B%0Afor%20%28var%20i%20%3D%20scripts.length%3B%20i--%3B%29%20%7B%0A%09scripts%5Bi%5D.parentNode.removeChild%28scripts%5Bi%5D%29%0A%7D%3B%0Avar%20head%20%3D%20ele.insertBefore%28doc.createElement%28%27head%27%29%2C%20ele.firstChild%29%3B%0Avar%20meta%20%3D%20doc.createElement%28%27meta%27%29%3B%0Ameta.httpEquiv%20%3D%20%27content-type%27%3B%0Ameta.content%20%3D%20%27text/html%3B%20charset%3Dutf-8%27%3B%0Ahead.appendChild%28meta%29%3B%0Avar%20tEle%20%3D%20doc.getElementsByTagName%28%27title%27%29%5B0%5D%3B%0Aif%20%28tEle%29%20head.appendChild%28tEle.cloneNode%28true%29%29%3B%0Aif%20%28loc.protocol%20%21%3D%20%27data%3A%27%29%20%7B%0A%09var%20bEle%20%3D%20doc.getElementsByTagName%28%27base%27%29%5B0%5D%3B%0A%09var%20base%20%3D%20bEle%20%3F%20bEle.cloneNode%28false%29%20%3A%20doc.createElement%28%27base%27%29%3B%0A%09if%20%28%21base.getAttribute%28%27href%27%29%29%20base.href%20%3D%20loc.href%3B%0A%09head.appendChild%28base%29%0A%7D%3B%0Ahead.copyStyle%20%3D%20function%20%28s%29%20%7B%0A%20%20%20%20if%20%28%21s%29%20return%3B%0A%09var%20style%20%3D%20doc.createElement%28%27style%27%29%3B%0A%09style.type%20%3D%20%27text/css%27%3B%0A%09if%20%28s.media%20%26%26%20s.media.mediaText%29%20style.media%20%3D%20s.media.mediaText%3B%0A%09try%20%7B%0A%09%09for%20%28var%20i%20%3D%200%2C%20rule%3B%20rule%20%3D%20s.cssRules%5Bi%5D%3B%20i++%29%20%7B%0A%09%09%09if%20%28rule.type%20%21%3D%203%29%20%7B%0A%09%09%09%09style.appendChild%28doc.createTextNode%28rule.cssText%20+%20%27%5Cn%27%29%29%0A%09%09%09%7D%20else%20%7B%0A%09%09%09%09this.copyStyle%28rule.styleSheet%29%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%20catch%28e%29%20%7B%0A%09%09if%20%28s.ownerNode%29%20style%20%3D%20s.ownerNode.cloneNode%28false%29%0A%09%7D%3B%0A%09this.appendChild%28style%29%0A%7D%3B%0Avar%20sheets%20%3D%20doc.styleSheets%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20sheets.length%3B%20i++%29%20head.copyStyle%28sheets%5Bi%5D%29%3B%0A%0Avar%20doctype%20%3D%20%27%27%2C%20dt%20%3D%20doc.doctype%3B%0Aif%20%28dt%20%26%26%20dt.name%29%20%7B%0A%09doctype%20+%3D%20%27%3C%21DOCTYPE%20%27%20+%20dt.name%3B%0A%09if%20%28dt.publicId%29%20doctype%20+%3D%20%27%20PUBLIC%20%5Cx22%27%20+%20dt.publicId%20+%20%27%5Cx22%27%3B%0A%09if%20%28dt.systemId%29%20doctype%20+%3D%20%27%20%5Cx22%27%20+%20dt.systemId%20+%20%27%5Cx22%27%3B%0A%09doctype%20+%3D%20%27%3E%5Cn%27%0A%7D%3B%0Avar%20fileName%20%3D%20selWin%20%3F%20selWin.getSelection%28%29.toString%28%29%20%3A%20%28tEle%20%26%26%20tEle.text%20%3F%20tEle.text%20%3A%20loc.pathname.split%28%27/%27%29.pop%28%29%29%3B%0AfileName%20%3D%20fileName.replace%28/%5B%3A%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%27_%27%29.replace%28/%5Cs+/g%2C%20%27%20%27%29.slice%280%2C%20100%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%27%27%29%3B%0Aif%28%21/%5C.html%3F%24/.test%28fileName%29%29fileName%20+%3D%20%27.html%27%3B%0A%0AsaveURL%28%27data%3Atext/html%3Bcharset%3Dutf-8%2C%27%20+%20encodeURIComponent%28doctype%20+%20sel.innerHTML%20+%20%27%5Cn%3C%21--%20This%20document%20saved%20from%20%27%20+%20%28loc.protocol%20%21%3D%20%27data%3A%27%20%3F%20loc.href%20%3A%20%27data%3Auri%27%29%20+%20%27%20--%3E%27%29%2C%20fileName%2C%20null%2C%20false%2C%20false%2C%20null%2C%20doc%29%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


И ещё. Кнопка копирует ссылки из выделенного текста (а если не выделено, то все) в буфер обмена (подобие расширения Multi Links).
скрытый текст

Выделить код

Код:

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


Добавлено 10-11-2012 22:15:51
bunda1

Выделить код

Код:

var docTitle = docTitle.replace(/"/g,  " ").
               replace(/\*/g, " ").
               replace(/\//g, " ").
               replace(/:/g,  " ").
               replace(/</g,  " ").
               replace(/>/g,  " ").
               replace(/\?/g, " ").
               replace(/\\/g, " ").
               replace(/\|/g, " ");

Это можно сделать быстрее и одной строчкой.

Выделить код

Код:

.replace(/[:\\\/<>?*|"]+/g, '_')

Отредактировано Lex1 (11-11-2012 20:06:36)

Отсутствует

 

№511810-11-2012 23:07:02

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2130
UA: Firefox 10.0

Re: Custom Buttons

Lex1
Вот спасибо !!! :beer:
Ещё бы картинки в base64 :whistle:
И для Nightly users: отсюда + 4 поста далее.

Отсутствует

 

№511911-11-2012 00:04:00

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

Re: Custom Buttons

Dumby
Да, спасибо исправил (а также сохранение link в head). Картинки следующие в планах.

Отредактировано Lex1 (11-11-2012 00:06:10)

Отсутствует

 

№512011-11-2012 03:04:10

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

Re: Custom Buttons

Lex1
Ок, спасибо. Это ценное замечание.

Выделить код

Код:

function copyToClipboard(s) { 
    const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]. 
    getService(Components.interfaces.nsIClipboardHelper); 
    gClipboardHelper.copyString(s); 
};

:) Это тоже можно сделать одной строчкой:

Выделить код

Код:

gClipboard.write(str);

Отредактировано bunda1 (11-11-2012 03:07:32)

Отсутствует

 

№512111-11-2012 23:21:32

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

Re: Custom Buttons

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%3ESave%20snapshot%20to%20html%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAACaUlEQVR4AX3BTWvcVRTA4d+592am/5lp0qSxtEtRxI0oVmipuBFEEDfd1IUvCz+RO3du/QAqCgUjxULdWKFV8AUkapg0pplM5uX/cu85x7RQlDb4PPL62++8ubq68cLZjXPnY2hnKYk4JxMgZ/fpvHe6bo72tr745OO0trb+4pVLb1x7/92rFzfXIQr/a1kbX34T2Lrx2d350Uefpq4znc6y/b0Ho8oZVII5J4oC81qZTAL1YhmAXnK12LUqB1O40Br9fkQLT3DAIjQNLBsw1wBIKmahbkucTKFtjdxFioI7T4gRcnG0tJgVASSVUmKXS6hrJXeQC+QC5iD8h0NaAS2Cu6FFAxCCqkZVDWYKIjwiPEZ4SBzMCmo5AJJULWIau7ZlZ6zMZhV1q5g5j0sxcP+gpl4qZhqAmLTkBBbNnZvfjTk8zBxMWprWcAd3HhJxhoNEVSWGowsE0QBI6nIOajnEFEkp8Orl8wxHQ4QCKCJOjByL/PLbnB/u7DIYRFRLAELKucSmzuHPnTmT/TFX33qK61vbLGp479qzbG70eGR9NXHj258Yjc7h5gEIIecS6yaHxaJlWS9ZLjPf3x5z89Yuh9PMA/cnsLsPh9NMFMetYFYCEII7vRh7vapaReQUm2d6fPjBZV678hxrp3s80O9DFJBwin5/QFWtEWMvATGpFp8e3bOd8W0O9u/w1deZiy8/zysvLfj19xk//mzMF4W2c7b/2NPtv+52Kk11eHSPYyKD1bOXzMozpbRPSwjkpgiChJWAZ8UViBwTQSSnldjgVsXUm5Wm+Vz41xDoAwIETuaAAy3QAf4PtuhVEPpvXZEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5Bvar%20imageToBase64%20%3D%20function%28image%29%7B%0A%20%20%20%20var%20doc%20%3D%20image.ownerDocument%3B%0A%20%20%20%20var%20canvas%20%3D%20doc.createElement%28%27canvas%27%29%3B%0A%20%20%20%20canvas.width%20%3D%20image.width%3B%0A%20%20%20%20canvas.height%20%3D%20image.height%3B%0A%20%20%20%20doc.body.appendChild%28canvas%29%3B%0A%0A%20%20%20%20var%20ctx%20%3D%20canvas.getContext%28%272d%27%29%3B%0A%20%20%20%20ctx.drawImage%28image%2C%200%2C%200%29%3B%0A%20%20%20%20var%20base64%20%3D%20canvas.toDataURL%28%27image/png%27%29%3B%0A%20%20%20%20doc.body.removeChild%28canvas%29%3B%0A%20%20%20%20return%20base64%3B%0A%7D%3B%0Avar%20getSelWin%20%3D%20function%20%28w%29%20%7B%0A%09if%20%28w.getSelection%28%29.toString%28%29%29%20return%20w%3B%0A%09for%20%28var%20i%20%3D%200%2C%20f%2C%20r%3B%20f%20%3D%20w.frames%5Bi%5D%3B%20i++%29%20%7B%0A%09%09try%20%7B%0A%09%09%09if%20%28r%20%3D%20arguments.callee%28f%29%29%20return%20r%0A%09%09%7D%20catch%28e%29%20%7B%7D%0A%09%7D%0A%7D%3B%0Avar%20ele%2C%20pEle%2C%20clone%2C%20win%20%3D%20content%3B%0Avar%20doc%20%3D%20win.document%2C%20loc%20%3D%20win.location%3B%0Avar%20selWin%20%3D%20getSelWin%28win%29%3B%0Aif%20%28selWin%29%20%7B%0A%09var%20rng%20%3D%20selWin.getSelection%28%29.getRangeAt%280%29%3B%0A%09pEle%20%3D%20rng.commonAncestorContainer%3B%0A%09ele%20%3D%20rng.cloneContents%28%29%3B%0A%09doc%20%3D%20selWin.document%3B%0A%09loc%20%3D%20selWin.location%0A%7D%20else%20%7B%0A%09pEle%20%3D%20doc.documentElement%3B%0A%09ele%20%3D%20%28doc.body%20%7C%7C%20doc.getElementsByTagName%28%27body%27%29%5B0%5D%29.cloneNode%28true%29%0A%7D%3B%0Awhile%20%28pEle%29%20%7B%0A%09if%20%28pEle.nodeType%20%3D%3D%201%29%20%7B%0A%09%09clone%20%3D%20pEle.cloneNode%28false%29%3B%0A%09%09clone.appendChild%28ele%29%3B%0A%09%09ele%20%3D%20clone%0A%09%7D%3B%0A%09pEle%20%3D%20pEle.parentNode%0A%7D%3B%0Avar%20sel%20%3D%20doc.createElement%28%27div%27%29%3B%0Asel.appendChild%28ele%29%3B%0A%0Avar%20scripts%20%3D%20sel.getElementsByTagName%28%27script%27%29%3B%0Afor%20%28var%20i%20%3D%20scripts.length%3B%20i--%3B%29%20%7B%0A%09scripts%5Bi%5D.parentNode.removeChild%28scripts%5Bi%5D%29%0A%7D%3B%0A%0Avar%20imgs%20%3D%20sel.getElementsByTagName%28%27img%27%29%3B%0Afor%28var%20i%20%3D%200%2C%20img%3B%20img%20%3D%20imgs%5Bi%5D%3B%20i++%29%7B%0A%09if%28img.complete%29%20try%7B%0A%09%09img.src%20%3D%20imageToBase64%28img%29%3B%0A%09%7Dcatch%28x%29%7B%7D%3B%0A%0A%7D%3B%0A%0Avar%20head%20%3D%20ele.insertBefore%28doc.createElement%28%27head%27%29%2C%20ele.firstChild%29%3B%0Avar%20meta%20%3D%20doc.createElement%28%27meta%27%29%3B%0Ameta.httpEquiv%20%3D%20%27content-type%27%3B%0Ameta.content%20%3D%20%27text/html%3B%20charset%3Dutf-8%27%3B%0Ahead.appendChild%28meta%29%3B%0Avar%20tEle%20%3D%20doc.getElementsByTagName%28%27title%27%29%5B0%5D%3B%0Aif%20%28tEle%29%20head.appendChild%28tEle.cloneNode%28true%29%29%3B%0Aif%20%28loc.protocol%20%21%3D%20%27data%3A%27%29%20%7B%0A%09var%20bEle%20%3D%20doc.getElementsByTagName%28%27base%27%29%5B0%5D%3B%0A%09var%20base%20%3D%20bEle%20%3F%20bEle.cloneNode%28false%29%20%3A%20doc.createElement%28%27base%27%29%3B%0A%09if%20%28%21base.getAttribute%28%27href%27%29%29%20base.href%20%3D%20loc.href%3B%0A%09head.appendChild%28base%29%0A%7D%3B%0Ahead.copyStyle%20%3D%20function%20%28s%29%20%7B%0A%20%20%20%20if%20%28%21s%29%20return%3B%0A%09var%20style%20%3D%20doc.createElement%28%27style%27%29%3B%0A%09style.type%20%3D%20%27text/css%27%3B%0A%09if%20%28s.media%20%26%26%20s.media.mediaText%29%20style.media%20%3D%20s.media.mediaText%3B%0A%09try%20%7B%0A%09%09for%20%28var%20i%20%3D%200%2C%20rule%3B%20rule%20%3D%20s.cssRules%5Bi%5D%3B%20i++%29%20%7B%0A%09%09%09if%20%28rule.type%20%21%3D%203%29%20%7B%0A%09%09%09%09style.appendChild%28doc.createTextNode%28rule.cssText%20+%20%27%5Cn%27%29%29%0A%09%09%09%7D%20else%20%7B%0A%09%09%09%09this.copyStyle%28rule.styleSheet%29%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%20catch%28e%29%20%7B%0A%09%09if%20%28s.ownerNode%29%20style%20%3D%20s.ownerNode.cloneNode%28false%29%0A%09%7D%3B%0A%09this.appendChild%28style%29%0A%7D%3B%0Avar%20sheets%20%3D%20doc.styleSheets%3B%0Afor%20%28var%20i%20%3D%200%3B%20i%20%3C%20sheets.length%3B%20i++%29%20head.copyStyle%28sheets%5Bi%5D%29%3B%0A%0Avar%20doctype%20%3D%20%27%27%2C%20dt%20%3D%20doc.doctype%3B%0Aif%20%28dt%20%26%26%20dt.name%29%20%7B%0A%09doctype%20+%3D%20%27%3C%21DOCTYPE%20%27%20+%20dt.name%3B%0A%09if%20%28dt.publicId%29%20doctype%20+%3D%20%27%20PUBLIC%20%5Cx22%27%20+%20dt.publicId%20+%20%27%5Cx22%27%3B%0A%09if%20%28dt.systemId%29%20doctype%20+%3D%20%27%20%5Cx22%27%20+%20dt.systemId%20+%20%27%5Cx22%27%3B%0A%09doctype%20+%3D%20%27%3E%5Cn%27%0A%7D%3B%0Avar%20fileName%20%3D%20selWin%20%3F%20selWin.getSelection%28%29.toString%28%29%20%3A%20%28tEle%20%26%26%20tEle.text%20%3F%20tEle.text%20%3A%20loc.pathname.split%28%27/%27%29.pop%28%29%29%3B%0AfileName%20%3D%20fileName.replace%28/%5B%3A%5C%5C%5C/%3C%3E%3F*%7C%22%5D+/g%2C%20%27_%27%29.replace%28/%5Cs+/g%2C%20%27%20%27%29.slice%280%2C%20100%29.replace%28/%5E%5Cs+%7C%5Cs+%24/g%2C%20%27%27%29%3B%0Aif%28%21/%5C.html%3F%24/.test%28fileName%29%29fileName%20+%3D%20%27.html%27%3B%0A%0AsaveURL%28%27data%3Atext/html%3Bcharset%3Dutf-8%2C%27%20+%20encodeURIComponent%28doctype%20+%20sel.innerHTML%20+%20%27%5Cn%3C%21--%20This%20document%20saved%20from%20%27%20+%20%28loc.protocol%20%21%3D%20%27data%3A%27%20%3F%20loc.href%20%3A%20%27data%3Auri%27%29%20+%20%27%20--%3E%27%29%2C%20fileName%2C%20null%2C%20false%2C%20false%2C%20null%2C%20doc%29%0A%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Добавлено 11-11-2012 23:21:59
bunda1
Спасибо.

Добавлено 11-11-2012 23:46:02
Что касается картинок. Если не нравится размер получаемого файла, можно заменить 'image/png' на

Выделить код

Код:

/\.(gif|png)$/i.test(image.src) ? 'image/png' : 'image/jpeg'

Jpeg прозрачность не поддерживает, а без этого будет плохо.

Отредактировано Lex1 (11-11-2012 23:46:02)

Отсутствует

 

№512211-11-2012 23:53:57

voqabuhe
Участник
 
Группа: Members
Зарегистрирован: 06-12-2011
Сообщений: 3231
UA: Firefox 19.0

Re: Custom Buttons

Lex1 пишет

Сохранение с картинками:

Ну ты силён, спасибо. Ты бы выкладывал свои кнопки в Готовые кнопки для Custom Buttons, чтобы не затерялись.

Отсутствует

 

№512312-11-2012 00:23:04

Dumby
Участник
 
Группа: Members
Зарегистрирован: 12-08-2012
Сообщений: 2130
UA: Firefox 10.0

Re: Custom Buttons

Lex1

Ура-а ! Картинки ! Большое спасибо !
И проблему с @import исправил здо́рово.

Для полного счастья не хватает картинок, которые через CSS подключаются...

Отсутствует

 

№512412-11-2012 10:52:15

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

Re: Custom Buttons

Lex1

Lex1 пишет

Сохранение с картинками

За кнопку спасибо!

voqabuhe пишет

Ты бы выкладывал свои кнопки в Готовые кнопки для Custom Buttons, чтобы не затерялись.

присоединяюсь к просьбе!

Отсутствует

 

№512514-11-2012 02:31:37

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

Re: Custom Buttons

Есть такая кнопка "Управление изображениями" http://forum.mozilla-russia.org/viewtopic.php?id=41987&p=1 пробовал сам удалить "загружать только с этого сайта", не выходит, для меня эта функция только лишний раз щелкать, что можно подправить чтобы осталось только "загружать" - "не загружать". Спасибо.


Лучше спросить у знающих - чем лезть не зная.

Отсутствует

 

Board footer

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