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

Хотите узнать больше о расширениях? Посмотрите ролики, рассказывающие о работе с расширениями Firefox.

№865131-07-2015 21:28:14

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

bunda1 пишет

e это event смотри тут Объект события

О, спасибо, хоть одним глазком глянуть, как тут нутро устроено :rolleyes:

Отсутствует

 

№865231-07-2015 22:28:21

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

Re: Custom Buttons

rbfyec пишет

Если послать xmlhttprequest то по полученным заголовкам можно узнать кое-что нужное - тип файла, размер и т. д.
А есть подобный способ узнать допустим размеры картинки в пикселях, не загружая саму картинку?

Ну какие мнения будут?

И это, вопрос: а куда делась тема со сниппетами?

Отсутствует

 

№865301-08-2015 00:11:48

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

Re: Custom Buttons

rbfyec пишет

Ну какие мнения будут?
И это, вопрос: а куда делась тема со сниппетами?

Автор okkamas_knife по не понятным причинам убрал тему со сниппетами. Жаль.
А насчёт картинки в пикселях я не знаю. Кстати XMLHTTPRequest: описание, применение, частые проблемы | XmlHttpRequest.ru

Отсутствует

 

№865401-08-2015 14:41:57

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 592
UA: Firefox 39.0

Re: Custom Buttons

Не подскажете как в "Attributes Inspector"
повесить на клик колесика копирование всплывающей подсказки?
Сейчас на ней вызов DOM Inspector

Отсутствует

 

№865501-08-2015 17:30:54

Infocatcher
Not found
 
Группа: Extensions
Зарегистрирован: 24-05-2007
Сообщений: 4339
UA: Firefox 39.0

Re: Custom Buttons

Ultima2m пишет

Не подскажете как в "Attributes Inspector"
повесить на клик колесика копирование всплывающей подсказки?
Сейчас на ней вызов DOM Inspector

Вот тут

Выделить код

Код:

clickHandler: function(e, top) {
            if(!this.canInspect(e))
                return;
            this._checkPreventDefault(e);
            this.stopEvent(e);
            var nodes = this._nodes;
            var node = nodes.length ? nodes[0] : e.originalTarget;
            this.inspect(node, top, e.shiftKey);
        },

заменить

Выделить код

Код:

var nodes = this._nodes;
            var node = nodes.length ? nodes[0] : e.originalTarget;
            this.inspect(node, top, e.shiftKey);

на

Выделить код

Код:

this.copyTootipContent();

P.S. И на будущее лучше в специальной теме спрашивать.


Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела

Отсутствует

 

№865601-08-2015 18:33:21

Ultima2m
Участник
 
Группа: Members
Откуда: Россия
Зарегистрирован: 28-11-2013
Сообщений: 592
UA: Firefox 39.0

Re: Custom Buttons

Infocatcher пишет
Выделить код

Код:

this.copyTootipContent();

И на будущее лучше в специальной теме спрашивать.

Спасибо.
:blush: Извиняюсь. Затупил что-то.

Отредактировано Ultima2m (01-08-2015 18:34:52)

Отсутствует

 

№865701-08-2015 22:59:24

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

Подскажите, я кнопки в SeaMonkey скопировал и некоторые из них вообще не работают, а какие-то - дублируются в меню? Это нормально?

А вообще, чтоб обойтись без SeaMondey мне нужно, чтоб ссылки из thunderbirdportable открывались в firefoxportable, но thunderbirdportable открывает ссылки в браузере назначенном системой по умолчания. :sick:

Отсутствует

 

№865801-08-2015 23:03:21

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

Re: Custom Buttons

fokanik пишет

дублируются

https://forum.mozilla-russia.org/viewto … 77#p685077

Отсутствует

 

№865901-08-2015 23:09:23

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

turbot пишет
fokanik пишет

дублируются

https://forum.mozilla-russia.org/viewto … 77#p685077

Помогло, спасибо!

Отсутствует

 

№866001-08-2015 23:09:44

vitalii201
Участник
 
Группа: Members
Зарегистрирован: 24-03-2011
Сообщений: 676
UA: Firefox 39.0

Re: Custom Buttons

fokanik, Open With и в настройках добавьте путь к вашему FirefoxPortable.exe

Отсутствует

 

№866101-08-2015 23:35:20

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

vitalii201 пишет

fokanik, Open With и в настройках добавьте путь к вашему FirefoxPortable.exe

Ух, еле разобрался, в меню у ссылки нашел - работает, спасибо!

Отсутствует

 

№866202-08-2015 09:38:46

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

Re: Custom Buttons

bunda1 пишет

А насчёт картинки в пикселях я не знаю. Кстати XMLHTTPRequest: описание, применение, частые проблемы | XmlHttpRequest.ru

А я там побывал с самого начала :D
Потому я и спрашивал как запросить размеры картинки /чтоб без загрузки/, что через XMLHTTPRequest этого не сделаешь.

Отсутствует

 

№866302-08-2015 10:37:06

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3141
UA: Firefox 40.0

Re: Custom Buttons

Нужна кнопка для вставки смайлов типа  i-669.gif  Его код <kolobki type=":Колобки:Улыбаюсь:">.
Пробовал самостоятельно подставлять в кнопки вставки спец.символов но или я не то делал или нужно какое то волшебное  слово.
Если кого не затруднит и это возможно, прошу сделать образец кода а заполнить другими смайлами, думаю, смогу сам...желательно с пояснениями в коде...
Пытался использовать коды тут и далее по ссылкам.

Отредактировано oleg.sgh (02-08-2015 10:40:16)

Отсутствует

 

№866402-08-2015 10:51:15

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

Re: Custom Buttons

Отсутствует

 

№866502-08-2015 10:59:49

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3141
UA: Firefox 40.0

Re: Custom Buttons

jars пишет

Пытался и в эту подставить свое но после своих замен кнопка становилась мертвая...

Отсутствует

 

№866602-08-2015 11:15:31

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

Re: Custom Buttons

oleg.sgh пишет

Пытался и в эту подставить свое но после своих замен кнопка становилась мертвая...

Там внимательно нужно, как и во всех кнопках , хехе ;)
я уж добавил туда своих смайлов несколько штук - всё работает.
Там в трёх местах надобно прописывать:
1. это вначале в base64. Эта иконка будет отображаться в конт. меню.

Выделить код

Код:

var icon16="data:image/gif;base64,R0lGODlhJ................

2. название смайла. Это пункт кот. берет "имя" для показа в конт. меню и выполняет команду при клике(см. пункт 3). После последнего пункта не должно быть запятой.

Выделить код

Код:

{          label:"pioner1",          command:command16,          image:icon16        }

3. Тут копируем тело ф-ции как и у других, меняем только путь к смайлу в сети т.е. картинко должна быть в интронэтах ибо оттуда она будет взята как BBcode.

Выделить код

Код:

function command16(){
var text = "[img]http://yahooeu.ru/engine/data/emoticons/smoke1.gif[/img]";
var cmd = "cmd_insertText";
var controller = document.commandDispatcher.getControllerForCommand(cmd);
if(controller && controller.isCommandEnabled(cmd)) { 
    controller = controller.QueryInterface(Components.interfaces.nsICommandController);
    var params = Components.classes["@mozilla.org/embedcomp/command-params;1"]
                .createInstance(Components.interfaces.nsICommandParams);
    params.setStringValue("state_data", text);
    controller.doCommandWithParams(cmd, params);
}

}

Отредактировано jars (02-08-2015 11:18:06)

Отсутствует

 

№866702-08-2015 11:31:18

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3141
UA: Firefox 40.0

Re: Custom Buttons

jars
Попробую еще раз но
У смайла нет адреса а только код. Загружать смайл в альбом и привязать к АК майла кнопку...не айс. Тег изображения что в кнопке не работает на майл ру. Поэтому нужно для кода смайла вида <kolobki type=":Колобки:Улыбаюсь:">
У меня их коды есть в дополнении Clippings но там уже и так много чего. Просто неудобен выбор, меню - Clippings  - папка - смайл поэтому и обратился. Может проще сделать образец, именно,  для этих смайлов.

пс. получилось заменить на загруженное изображение в майловском формате но - тег изображения не работает в личке. вдобавок, опять контекстное меню и дерево плюс привязка к АК. Спасибо, но это вариант не подходит i-505.gif

Отредактировано oleg.sgh (02-08-2015 11:44:55)

Отсутствует

 

№866802-08-2015 13:48:14

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Firefox 39.0

Re: Custom Buttons

vitalii201 пишет

fokanik, Open With и в настройках добавьте путь к вашему FirefoxPortable.exe

А можно как-то избавиться от проблемы при передачи еще одной ссылки программе:
d3afbd1f7708.jpg

Пробовал открывать ссылку с ключем firefoxportable.exe -new-tab -no-remote - открыть в новой вкаладке, не помогло.

Отсутствует

 

№866902-08-2015 18:36:36

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

Re: Custom Buttons

oleg.sgh
ну хз. универсального всё одно нет, да и не надо оно , универсальное... если где нету BBcode там обычно есть свои смайлы, я на этихваших мылору не шаряюсь, не знаю как там :P
Но ежели нужно именно вставлять куски текста, то можно переделать кнопку Insert Special symbol (очистить то шо там и записать свои нужные куски текста).
Правда это кнопка на панели, а не в конт.меню. Добавил в конце твой пример( <kolobki type=":Колобки:Улыбаюсь:"> ), вставляет норм.
URl

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

Выделить код

Код:

custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EInsert%20special%20symbol%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAALCAYAAAB24g05AAAACXBIWXMAAA7DAAAOwwHHb6hkAAACmElEQVQokU3MS0hUYRyG8ff/nTOXMzNnLkdttDJvo46NZZrONJNZSm6KihZFtY3aBK2jRYs2EVQUEa5qkUKhERZUC1MwI+iCZZEZgtNcUkEHL+Pc53xfiyB69r+HAICIIIQAACiKFXWNTQh2ddfkdd1tNinR9xNji7Mz37lFsSCdTiG1kfxnCAAkSYJvR4utPXigwburfU+dp76zarM7SLlUWVYXsfV0fj6dSS1YFWXudyy69mXyw8yzoUcvopHw38HRYyeVS1euPTcopoMGiYTdaSPEY5h/OQwhG+E5dQZSiYZoJCZiC8vkKq1IvBp+HLx+9fKsDADbfa1+SFL3509z+PguzM9f6CHnpnJsOXeR3C6rmPsVx9unI1hKL4pHk33i9L6zJaFQ716t5OYsa9nlR1t7qDuVyUrNLdv0YFeD9G0qzopcsJXVJKXSObaRybPE+jpr3NIkaZrGppcmYVcdPW3+IFgg0KnY7PYuIgazYiLVoeDrVASyzMAYQeccZrMRDrsTa4UEVNUOX8VOFKTsHq1kk4ft7ez25vVis9FsBBHRYP8EksksNpJ5EAiFIgcRg2KyYikTR32pl3VVHwEDqh1O1yEG0GGraiuzWkz8ft8rXlnj4vt7fWI+nhCyUUKuUAAxBqNBxs/5KbHV2sAVm4G7rBaDRTYE2PLKSj6f2UijoDO32ykdPxFijAT9mI5RschFocC5ECTyeo5XOj3oaGxna6uL+r3bNwaGBgdukaaVUmWVt6KqptbfEQj4PQ3egKo6G1OpbHlt3WbJoarIFXWEwxGYuJ4en3g91v/wwd1YJDxKRDrhvxiT4S6vlFt3B6oDoU6fppWF7HZbyGg0eBJLi9NPHvffGX8zOiI4zzDGSAhBfwCGWwpS1pS7aQAAAABJRU5ErkJggg%3D%3D%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B/*Initialization%20Code*/%0A%0A//%20Indomito%20%u0438%20Difabor%20-%20%u0432%u0435%u0440%u0441%u0438%u044F%20%u043E%u0442%2027.05.2014%0A//%20%u0417%u0430%20%u043E%u0441%u043D%u043E%u0432%u0443%20%u0432%u0437%u044F%u0442%20%u043A%u043E%u0434%20-%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%28%20Firefox%20%29%20%u043E%u0442%2011.05.2013%20%u0430%u0432%u0442%u043E%u0440%20bunda1%0A%0Avar%20delay%20%3D%20600%2C%20array%20%3D%20%5B%5D%2C%20symbList%2C%20myID%20%3D%20_id%2C%20symbName%20%3D%20myID%20+%20%22.symbols%22%2Cmynum%3D0%3B%0Avar%20symbListOrig%20%3D%20%22%A4%2C%A6%2C%A7%2C@%2C%A9%2C%AB%2C%BB%2C%AC%2C%AE%2C%B0%2C%B1%2C%B5%2C%B6%2C%u2014%2C%u2018%2C%u2019%2C%u201C%2C%u201D%2C%u2022%2C%u2030%2C%u2039%2C%u203A%2C%u2122%22%3B%20%0A%0Athis.onmousedown%20%3D%20function%28event%29%20%7Bthis._mouseDownTime%20%3D%20Date.now%28%29%3B%7D%3B%0A%20%20%20%20//if%28e.button%20%21%3D%200%29%20%20%20%20%20%20%20%20return%3B%0A%20%20%20%20//if%28event.button%20%3D%3D%202%29%20%20this._mouseDownTime%20%3D%20Date.now%28%29%3B%0A//%7D%3B%0A%0Athis.tooltipText%20%3D%20%0A%22%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0441%u043F%u0435%u0446%u0438%u0430%u043B%u044C%u043D%u044B%u0439%20%u0441%u0438%u043C%u0432%u043E%u043B%5Cn%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%u2014%5Cn%22%20+%0A%22Left%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%20%5Cn%22%20+%0A%22Left%20Long%20%20%20%20%20%u2014%20%20%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Middle%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Right%20%20%20%20%20%20%20%20%20%20%20%20%u2014%20%20%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22%20+%0A%22Right%20Long%20%20%u2014%20%20%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%20%22%3B%0A%0A/*%0Athis.tooltipText%20%3D%20%0A%22Left%20Short%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0412%u0441%u0442%u0430%u0432%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0438%u0437%20%u0441%u043F%u0438%u0441%u043A%u0430%5Cn%22%20+%20%0A%22Left%20Long%20Or%20Left+Shift%20%20%20%20%20%20%20%3D%3E%20%u0420%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u0441%u043F%u0438%u0441%u043A%u0430%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22Middle%20Or%20Left+Ctrl%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0412%u043E%u0437%u0432%u0440%u0430%u0442%20%u043A%20%u0438%u0441%u0445%u043E%u0434%u043D%u043E%u043C%u0443%20%u0441%u043F%u0438%u0441%u043A%u0443%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%5Cn%22%20+%0A%22%28Middle%20Or%20Left+Ctrl%29+Shift%20%3D%3E%20%u041C%u0435%u0440%u044F%u0442%u044C%20%u0434%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%20%u043A%u043B%u0438%u043A%u0430%5Cn%22%20+%0A%22Right%20Short%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3D%3E%20%u0417%u0430%u043F%u0443%u0441%u043A%20%u0442%u0430%u0431%u043B%u0438%u0446%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20Windows%5Cn%22%20+%20%0A%22Right%20Long%20Or%20Right+Shift%20%3D%3E%20%u0421%u0442%u0430%u043D%u0434%u0430%u0440%u0442%u043D%u043E%u0435%20%u041C%u0435%u043D%u044E%20%u041A%u043D%u043E%u043F%u043A%u0438%20%22%3B%0A*/%0A%0Athis.onclick%20%3D%20function%28event%29%20%7B%0A%20%20%20%20symbList%20%3D%20%28custombuttons.isPref%28symbName%29%29%3F%20unescape%28custombuttons.getPrefs%28symbName%29%29%3A%20symbListOrig%3B%0A%20%20%20%20if%28event.button%20%3D%3D%200%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%7B%0A%20%20%20%20%20%20array%20%3D%20symbList.split%28%22%2C%22%29%3B%0A%20%20%20%20%20%20var%20node%20%3D%20document.getElementById%28this.id%20+%20%22-menuPopup%22%29%3B%0A%20%20%20%20%20%20if%20%28%20node%20%26%26%20node.parentNode%20%29%20node.parentNode.removeChild%28node%29%3B%20//%20%u0431%u043B%u043E%u043A%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u0434%u0443%u0431%u043B%u0438%u0440%u043E%u0432%u0430%u043D%u0438%u0435%20%u043C%u0435%u043D%u044E%0A%0A%20%20%20%20%20%20var%20menuPopup%20%3D%20document.getElementById%28%22mainPopupSet%22%29.appendChild%28document.createElement%28%22menupopup%22%29%29%3B%0A%20%20%20%20%20%20menuPopup.id%20%3D%20this.id%20+%20%22-menuPopup%22%3B%0A%0A%20%20%20%20%20%20array.forEach%28function%28symbol%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20var%20menuItem%20%3D%20document.createElement%28%22menuitem%22%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.setAttribute%28%22label%22%2C%20symbol%20%29%3B%0A%20%20%20%20%20%20%20%20%20menuItem.style.fontSize%20%3D%20%2216px%22%3B%20//%20%u0440%u0430%u0437%u043C%u0435%u0440%20%u0448%u0440%u0438%u0444%u0442%u0430%0A%20%20%20%20%20%20%20%20%20menuItem.addEventListener%28%22command%22%2C%20insertText%2C%20false%29%3B%20%0A%20%20%20%20%20%20%20%20%20menuPopup.appendChild%28menuItem%29%3B%0A%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20menuPopup.showPopup%28this%2C%20-1%2C%20-1%2C%20%22popup%22%2C%20%22bottomleft%22%2C%20%22topleft%22%29%3B%0A%20%20%20%20%7D%20%20%0A%20%20%20%20else%20if%28event.button%20%3D%3D%200%20%26%26%20%28%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3E%3D%20delay%29%7C%7C%28%21event.ctrlKey%20%26%26%20event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%29%20%7B%0A%20%20%20%20%20%20var%20a%3Dprompt%28%22%u0420%u0440%u0435%u0434%u0430%u043A%u0442%u0438%u0440%u043E%u0432%u0430%u0442%u044C%20%u044D%u0442%u0443%20%u0441%u0442%u0440%u043E%u043A%u0443%2C%20%u0432%u0441%u0442%u0430%u0432%u043B%u044F%u044F%20%u0441%u0438%u043C%u0432%u043E%u043B%u044B%20%u0438%u043B%u0438%20%u0433%u0440%u0443%u043F%u043F%u044B%20%u0441%u0438%u043C%u0432%u043E%u043B%u043E%u0432%20%u0447%u0435%u0440%u0435%u0437%20%u0437%u0430%u043F%u044F%u0442%u0443%u044E%3A%22%2CsymbList%29%3B%0A%20%20%20%20%20%20if%20%28a%29%20custombuttons.setPrefs%28symbName%2Cescape%28a%29%29%3B%20%20%20%20%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%28event.button%20%3D%3D%201%20%7C%7C%20%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%29%29%20%26%26%20%28%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u0421%u041A%u041C%20%0A%20%20%20%20%20%20%20%20//mbMouse%28%29%3B%0A%20%20%20%20%20%20%20%20custombuttons.clearPrefs%28symbName%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%20%28%28event.button%20%3D%3D%201%20%7C%7C%20%28event.button%20%3D%3D%200%20%26%26%20event.ctrlKey%20%29%29%20%26%26%20%28event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%29%20%7B%0A%20%20%20%20%20alert%28%22%u0414%u043B%u0438%u0442%u0435%u043B%u044C%u043D%u043E%u0441%u0442%u044C%3A%20%22+%28Date.now%28%29%20-%20this._mouseDownTime%29+%20%22%u043C%u0441%20%22%20+%20mynum%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20else%20if%28event.button%20%3D%3D%202%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0414%u0435%u0439%u0441%u0442%u0432%u0438%u0435%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20//if%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20startProcess%28%22C%3A%5C%5CWin%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%20%20%20%20startProcess%28%22C%3A%5C%5CWin%5C%5Csystem32%5C%5Ccharmap.exe%22%2C%5B%5D%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0Athis.oncontextmenu%20%3D%20function%28event%29%20%7B%0A%20%20%20%20if%28event.button%20%3D%3D%202%20%26%26%20%28%28Date.now%28%29%20-%20this._mouseDownTime%29%20%3C%20delay%29%20%20%26%26%20%21event.ctrlKey%20%26%26%20%21event.shiftKey%20%26%26%20%21event.altKey%20%26%26%20%21event.metaKey%29%20%7B%0A%20%20%20%20%20%20%20%20//%20%u0411%u043B%u043E%u043A%u0438%u0440%u0443%u0435%u043C%20%u043A%u043E%u043D%u0442%u0435%u043A%u0441%u0442%u043D%u043E%u0435%20%u043C%u0435%u043D%u044E%20%u043F%u0440%u0438%20%u043A%u043B%u0438%u043A%u0435%20%u041F%u041A%u041C%20%u0431%u0435%u0437%20%u043C%u043E%u0434%u0438%u0444%u0438%u043A%u0430%u0442%u043E%u0440%u043E%u0432%0A%20%20%20%20%20%20%20%20event.preventDefault%28%29%3B%0A%20%20%20%20%20%20%20%20event.stopPropagation%28%29%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%0Afunction%20startProcess%28path%2C%20args%29%20%7B%0A%20%20%20%20var%20file%20%3D%20Components.classes%5B%22@mozilla.org/file/local%3B1%22%5D%0A%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsILocalFile%29%3B%0A%20%20%20%20%20file.initWithPath%28path%29%3B%0A%20%20%20%20if%28file.exists%28%29%29%20%7B%0A%20%20%20%20%20%20%20var%20process%20%3D%20Components.classes%5B%22@mozilla.org/process/util%3B1%22%5D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20.createInstance%28Components.interfaces.nsIProcess%29%3B%0A%20%20%20%20%20%20%20process.init%28file%29%3B%0A%20%20%20%20%20%20%20%20process.run%28false%2C%20args%2C%20args.length%29%3B%0A%20%20%20%20%20%20%7D%20else%20custombuttons.%20alertBox%20%28%22%u0424%u0430%u0439%u043B%20%u043D%u0435%20%u043D%u0430%u0439%u0434%u0435%u043D%22%2C%20path%29%3B%20%0A%7D%3B%0A%0A//this.type%20%3D%20%22menu%22%3B%20%0A%0A//%20%u0412%u0441%u0442%u0430%u0432%u0438%u0442%u044C%20%u0442%u0435%u043A%u0441%u0442%20%u0432%20%u0442%u0435%u043A%u0441%u0442%u043E%u0432%u043E%u0435%20%u043F%u043E%u043B%u0435%20............%0Afunction%20insertText%28%29%20%7B%20%0A%20%20%20var%20text%20%3D%20this.label%3B%0A%20%20%20var%20cmd%20%3D%20%22cmd_insertText%22%3B%0A%20%20%20var%20controller%20%3D%20document.commandDispatcher.getControllerForCommand%28cmd%29%3B%0A%20%20%20if%20%28%20controller%20%26%26%20controller.isCommandEnabled%28cmd%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20var%20controller%20%3D%20controller.QueryInterface%28Components.interfaces.nsICommandController%29%3B%0A%20%20%20%20%20%20%20%20var%20params%20%3D%20Components.classes%5B%22@mozilla.org/embedcomp/command-params%3B1%22%5D.createInstance%28Components.interfaces.nsICommandParams%29%3B%0A%20%20%20%20%20%20%20%20params.setStringValue%28%22state_data%22%2C%20text%29%3B%0A%20%20%20%20%20%20%20%20controller.doCommandWithParams%28cmd%2C%20params%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%7D%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E


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

Выделить код

Код:

/*Initialization Code*/

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

var delay = 600, array = [], symbList, myID = _id, symbName = myID + ".symbols",mynum=0;
var symbListOrig = "¤,¦,§,@,©,«,»,¬,®,°,±,µ,¶,—,‘,’,“,”,•,‰,‹,›,™"; 

this.onmousedown = function(event) {this._mouseDownTime = Date.now();};
    //if(e.button != 0)        return;
    //if(event.button == 2)  this._mouseDownTime = Date.now();
//};

this.tooltipText = 
"                    Вставить специальный символ\n—————————————————————————\n" +
"Left               —   Вставка символа из списка \n" +
"Left Long     —   Редактирование списка символов\n" +
"Middle         —   Возврат к исходному списку символов\n" +
"Right            —   Запуск таблицы символов Windows\n" +
"Right Long  —   Стандартное Меню Кнопки ";

/*
this.tooltipText = 
"Left Short                              => Вставка символа из списка\n" + 
"Left Long Or Left+Shift       => Редактирование списка символов\n" +
"Middle Or Left+Ctrl             => Возврат к исходному списку символов\n" +
"(Middle Or Left+Ctrl)+Shift => Мерять длительность клика\n" +
"Right Short                           => Запуск таблицы символов Windows\n" + 
"Right Long Or Right+Shift => Стандартное Меню Кнопки ";
*/

this.onclick = function(event) {
    symbList = (custombuttons.isPref(symbName))? unescape(custombuttons.getPrefs(symbName)): symbListOrig;
    if(event.button == 0 && ((Date.now() - this._mouseDownTime) < delay) && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey){
      array = symbList.split(",");
      var node = document.getElementById(this.id + "-menuPopup");
      if ( node && node.parentNode ) node.parentNode.removeChild(node); // блокировать дублирование меню

      var menuPopup = document.getElementById("mainPopupSet").appendChild(document.createElement("menupopup"));
      menuPopup.id = this.id + "-menuPopup";

      array.forEach(function(symbol) { 
         var menuItem = document.createElement("menuitem");
         menuItem.setAttribute("label", symbol );
         menuItem.style.fontSize = "16px"; // размер шрифта
         menuItem.addEventListener("command", insertText, false); 
         menuPopup.appendChild(menuItem);
      });
      menuPopup.showPopup(this, -1, -1, "popup", "bottomleft", "topleft");
    }  
    else if(event.button == 0 && (((Date.now() - this._mouseDownTime) >= delay)||(!event.ctrlKey && event.shiftKey && !event.altKey && !event.metaKey))) {
      var a=prompt("Рредактировать эту строку, вставляя символы или группы символов через запятую:",symbList);
      if (a) custombuttons.setPrefs(symbName,escape(a));    
    }
    else if ((event.button == 1 || (event.button == 0 && event.ctrlKey )) && (!event.shiftKey && !event.altKey && !event.metaKey)) {
        // Действие при клике СКМ 
        //mbMouse();
        custombuttons.clearPrefs(symbName);
    }
    else if ((event.button == 1 || (event.button == 0 && event.ctrlKey )) && (event.shiftKey && !event.altKey && !event.metaKey)) {
     alert("Длительность: "+(Date.now() - this._mouseDownTime)+ "мс " + mynum);
    }
    else if(event.button == 2 && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey && ((Date.now() - this._mouseDownTime) < delay)) {
        // Действие при клике ПКМ без модификаторов
        //if ((Date.now() - this._mouseDownTime) < delay) startProcess("C:\\Win\\system32\\charmap.exe",[]);
        startProcess("C:\\Win\\system32\\charmap.exe",[]);
    }
};
this.oncontextmenu = function(event) {
    if(event.button == 2 && ((Date.now() - this._mouseDownTime) < delay)  && !event.ctrlKey && !event.shiftKey && !event.altKey && !event.metaKey) {
        // Блокируем контекстное меню при клике ПКМ без модификаторов
        event.preventDefault();
        event.stopPropagation();
    }
};

function startProcess(path, args) {
    var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
     file.initWithPath(path);
    if(file.exists()) {
       var process = Components.classes["@mozilla.org/process/util;1"]
              .createInstance(Components.interfaces.nsIProcess);
       process.init(file);
        process.run(false, args, args.length);
      } else custombuttons. alertBox ("Файл не найден", path); 
};

//this.type = "menu"; 

// Вставить текст в текстовое поле ............
function insertText() { 
   var text = this.label;
   var cmd = "cmd_insertText";
   var controller = document.commandDispatcher.getControllerForCommand(cmd);
   if ( controller && controller.isCommandEnabled(cmd) ) {
        var controller = controller.QueryInterface(Components.interfaces.nsICommandController);
        var params = Components.classes["@mozilla.org/embedcomp/command-params;1"].createInstance(Components.interfaces.nsICommandParams);
        params.setStringValue("state_data", text);
        controller.doCommandWithParams(cmd, params);
        }
};

Отсутствует

 

№867002-08-2015 19:09:44

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3141
UA: Firefox 40.0

Re: Custom Buttons

jars
Примерно то что надо и именно кнопкой. Только что бы в меню кнопки были сами смайлы а не коды их. Т.е. нажал на кнопку - линейка меню из смайлов, нажал на смайл - добавился его код.
Почистить, пусть и коряво, может и получится но вот смайлы в меню кнопки мне не вставить. Если смайлы вообще затруднительно вставить то хотя бы нормальное имя.

Отсутствует

 

№867102-08-2015 20:08:42

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

Re: Custom Buttons

oleg.sgh
ну хз. пришло в бошку только переделать ту, первую кнопку со смайлами что предлагал вначале Смайлы в конт. меню
Только заместо BBcode  в функции ставить твои куски текста. например тот же кусок:

Выделить код

Код:

//-------------------------------------------------------------------------    

function command16(){
var text = "<kolobki type=\":Колобки:Улыбаюсь:\">";
var cmd = "cmd_insertText";
var controller = document.commandDispatcher.getControllerForCommand(cmd);
if(controller && controller.isCommandEnabled(cmd)) { 
    controller = controller.QueryInterface(Components.interfaces.nsICommandController);
    var params = Components.classes["@mozilla.org/embedcomp/command-params;1"]
                .createInstance(Components.interfaces.nsICommandParams);
    params.setStringValue("state_data", text);
    controller.doCommandWithParams(cmd, params);
}

}
//-------------------------------------------------------------------------

т.е. все остается как и есть, иконки в base64 прописываешь(они будут показываться в меню), название тоже. А в функции заместо [img]путь_до_иконки_в_интронэте[/img] вписуешь свой текст. Только нужно кавычки экранировать обратной чертой(слэш) \
зы. кнопка требует перезапуска бравзера после изменений. scratch_one-s_head.gif

Отсутствует

 

№867202-08-2015 20:14:17

oleg.sgh
Участник
 
Группа: Members
Зарегистрирован: 19-04-2014
Сообщений: 3141
UA: Firefox 40.0

Re: Custom Buttons

jars Спаисбо, оставлю как запасной вариант. В конт. меню у меня уже  реализована вставка кодов хотя там вместо самого смайла его название. Кнопкой на панели будет удобнее.
пс. пока воюю с кнопкой...кнопка побеждает....и не могу понять где кнопка сохраняет коды смайлов которые сам добавил.

Отредактировано oleg.sgh (02-08-2015 20:18:07)

Отсутствует

 

№867303-08-2015 03:36:24

fokanik
Участник
 
Группа: Members
Зарегистрирован: 05-02-2014
Сообщений: 268
UA: Seamonkey 2.33

Re: Custom Buttons

А как добавить разделитель в меню?

Отсутствует

 

№867403-08-2015 09:10:11

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

Re: Custom Buttons

fokanik

Выделить код

Код:

(function() {
  if (document.getElementById("cb-separator-1;")) return; 

  var contextMenu = document.getElementById("contentAreaContextMenu");
  var refChild = document.getElementById("context-paste"); //id пункта, после которого вставить сепаратор
  var menuseparator = document.createElement("menuseparator");
  menuseparator.id = "cb-separator-1;" //id сепаратора

  contextMenu.insertBefore(menuseparator, refChild.nextSibling);

  // удалите листенер, если хотите, чтобы сепаратор показывался всегда, а не только если в контекстном меню виден родительский пункт
  addEventListener("popupshowing", function() {
    var hidden = refChild.getAttribute("hidden") == "true";
    menuseparator.setAttribute("hidden", hidden.toString()); 
  }, false, contextMenu);

})();

Отсутствует

 

№867503-08-2015 09:16:45

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

Re: Custom Buttons

turbot
Тогда css не нужен:)


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

Отсутствует

 

Board footer

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