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

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

№757610-03-2014 14:14:50

ma3ca
Участник
 
Группа: Members
Зарегистрирован: 15-02-2009
Сообщений: 54
UA: Firefox 27.0

Re: Custom Buttons

Подскажите, пожалуйста, есть ли кнопка, которая открывает настройки фф?
Не смог найти в списке готовых.

Отсутствует

 

№757710-03-2014 14:57:29

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

Re: Custom Buttons

ma3ca

Выделить код

Код:

openPreferences();

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

Отсутствует

 

№757810-03-2014 19:49:24

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

Re: Custom Buttons

ma3ca пишет

Подскажите, пожалуйста, есть ли кнопка, которая открывает настройки фф?
Не смог найти в списке готовых.

Ну вот же Настройки

Отсутствует

 

№757911-03-2014 13:04:20

Чайник
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 268
UA: Firefox 25.0

Re: Custom Buttons

Если я выделил текст, а потом кликнул для сброса выделения, браузер может отличить, кликнуто внутри выделения или вне его?

Отсутствует

 

№758011-03-2014 19:56:44

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

Re: Custom Buttons

Чайник пишет

Если я выделил текст, а потом кликнул для сброса выделения, браузер может отличить, кликнуто внутри выделения или вне его?

Можно попробовать проверить координаты выделения.

Выделить код

Код:

var rng = document.commandDispatcher.focusedWindow.getSelection().getRangeAt(0);
var rc = rng.getBoundingClientRect();
alert(rc.left + "x" + rc.top + "\n" + rc.width + "x" + rc.height);

https://developer.mozilla.org/en-US/doc … ClientRect
https://developer.mozilla.org/en-US/doc … lientRects

Добавлено 11-03-2014 19:58:44
Только еще надо будет пересчитать в экранные координаты, примерно так:
https://github.com/Infocatcher/Custom_B … or.js#L630

Отредактировано Infocatcher (11-03-2014 19:58:44)


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

Отсутствует

 

№758112-03-2014 21:31:11

Чайник
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 268
UA: Firefox 25.0

Re: Custom Buttons

Infocatcher
Спасибо, буду знать.

Отсутствует

 

№758215-03-2014 13:58:37

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Firefox 25.0

Re: Custom Buttons

Как приделать к кнопке мышиный rocker жест, т. е. при зажатой ЛКМ делаем клик ПКМ?

И вопрос, как можно обратиться к анонимному элементу с anonid, кроме как через его неанонимного родителя?
Потому что истинного родителя бывает нелегко определить.

Отсутствует

 

№758315-03-2014 15:09:55

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

Re: Custom Buttons

toxa пишет

Как приделать к кнопке мышиный rocker жест, т. е. при зажатой ЛКМ делаем клик ПКМ?

:/

Выделить код

Код:

function handleMouseDown(e) {   
   var contextMenu = document.getElementById("custombuttons-contextpopup");
   
   if ( e.button == 0 ) {
        self.leftButtonDown = true;
   
        function c(e) {
           delete self.leftButtonDown;
           removeEventListener(e.type, c);
           setTimeout(function() contextMenu.hidden = false, 500);
        };
        addEventListener("mouseup", c);
        }
        
   if ( e.button == 2 && self.leftButtonDown ) {
        contextMenu.hidden = true;
        
        custombuttons.alertSlide("alert", "");
        }    
};
addEventListener("mousedown", handleMouseDown, true, self );

Отредактировано bunda1 (15-03-2014 15:22:46)

Отсутствует

 

№758416-03-2014 14:43:31

toxa
Участник
 
Группа: Members
Зарегистрирован: 11-04-2012
Сообщений: 261
UA: Firefox 25.0

Re: Custom Buttons

Благодарю, bunda1! :D

А как насчёт второго вопроса?

Отсутствует

 

№758518-03-2014 11:10:41

Soeflaxs
Участник
 
Группа: Members
Зарегистрирован: 18-03-2014
Сообщений: 2
UA: Palemoon 24.0

Re: Custom Buttons

Господа, в упор не могу понять как писать код кнопки, но нужно простейшее - закрытие текущей вкладки при нажатии на саму кнопку. Может кто помочь?

Отсутствует

 

№758618-03-2014 12:26:45

Soeflaxs
Участник
 
Группа: Members
Зарегистрирован: 18-03-2014
Сообщений: 2
UA: Palemoon 24.0

Re: Custom Buttons

okkamas_knife пишет
Soeflaxs пишет

Господа, в упор не могу понять как писать код кнопки, но нужно простейшее - закрытие текущей вкладки при нажатии на саму кнопку. Может кто помочь?

делаем раз Готовые кнопки для Custom Buttons
читаем внимательно заглавный пост,
в самом низу делаем custom buttons documentation 2
читаем оглавление видим там Remove Tabs.. и жмем 3

Премного благодарен.

Отсутствует

 

№758720-03-2014 19:41:30

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

Re: Custom Buttons

Подскажите, что нужно прописать в код кнопки, чтобы она скрылась с панели?

Отсутствует

 

№758820-03-2014 20:18:31

Чайник
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 268
UA: Firefox 25.0

Re: Custom Buttons

Inko7 пишет

Подскажите, что нужно прописать в код кнопки, чтобы она скрылась с панели?

Наверно

Выделить код

Код:

this.style.display='none'

Не?

Отсутствует

 

№758920-03-2014 20:20:26

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

Re: Custom Buttons

Inko7 пишет

Подскажите, что нужно прописать в код кнопки, чтобы она скрылась с панели?

Выделить код

Код:

self.style.display = 'none';

Отсутствует

 

№759020-03-2014 20:39:18

Чайник
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 268
UA: Firefox 25.0

Re: Custom Buttons

bunda1 пишет

self.style.display = 'none';

bunda1, а в чём отличие?
Если this, то вроде тоже скрывается

Отсутствует

 

№759120-03-2014 21:03:13

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

Re: Custom Buttons

Да если this то тоже скрывается, но если в кнопке будет другой код то this может изменится и не будет отдавать ссылку на кнопку тогда код не сработает. this в кнопке может меняется а self нет, если конечно его специально не менять.

Отсутствует

 

№759220-03-2014 21:53:43

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

Re: Custom Buttons

bunda1,Чайник
Спасибо! :beer:

А вот такую задачку можно решить?
Некоторые видео в YouTube имеют ограничение на просмотр, т.е. пока не авторизуешься, то фиг его просмотришь. Но есть лазейка!
Обычно URL видео выглядит так: youtube.com/watch?v=6LZM3_wp2ps
Если же изменить URL на: youtube.com/v/6LZM3_wp2ps, то можно получить прямой доступ к файлу видео без проверки возраста и других параметров.
Требуется: при нажатии СКМ по голубой кнопке "Выполните вход, чтобы подтвердить свой возраст" изменить url, как описано выше, и открыть его в текущей вкладке.
Если СКМ по этой кнопке невозможно отследить, то пусть будет СКМ по всему серому прямоугольнику плеера.

скрин
c84382bd59f0.jpg

Отсутствует

 

№759321-03-2014 06:34:40

>ORG@niZM<
Участник
 
Группа: Members
Зарегистрирован: 20-08-2013
Сообщений: 66
UA: Firefox 24.0

Re: Custom Buttons

Inko7
для себя держу такую кнопку

Выделить код

Код:

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%3EYoutube%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABYklEQVQ4jcXTzUoCURjG8XdTnnN0Zs7Yh4JIVyAEXUm0DVp0AW26gILAFiWJFJrYwo9FErQxAoMsjJxoNhUDQbgecSPjJgYGnhaVTCO1aOMLv9Xz375EE797It7RwzUjKkxDF64RDeMvHT38/NnyMhERtXWevtPD+I+2ztPUksK80QX8bmMSdq2Ch6UUgptfSwqTmlL0r3QBv+uFOFzXxftggKf1NQT3b00p+tTQuHchBX5IxuE4DhzHwXA4xFupiMt4FMGuoXGPzqXAmGQMtm2P9Ho9vBznxzspQHWNI+g0MY9utztitlrILKbGurrGQVWVeVWNw6+SmINlWbAsC2f7e9iYlcirDMGuqjKPSgrvn6gcfqXYDB4NA7sry9gUIRQD+6hTeJ8KKjcLKoffkcqxyqawHWEIbgEm5RSWPlQZ/iOnsDRliHhWYeWswswv+M2BEnoddRG2s0U0PdE/JCKiD2TAbGlHU6nxAAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20icon%20%3D%20document.getAnonymousElementByAttribute%28%20this%2C%20%27class%27%2C%20%27toolbarbutton-icon%27%29%3B%0Aicon.style.width%20%3D%20%2716px%27%2C%20icon.style.height%20%3D%20%2716px%27%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B//%20%u0441%u043E%u0437%u0434%u0430%u0451%u043C%20%u043D%u0430%u0447%u0430%u043B%u044C%u043D%u0443%u044E%20%u0447%u0430%u0441%u0442%u044C%20%u0443%u0440%u043B%0Avar%20url1%3D%22https%3A//www.youtube.com/v/%22%3B%0A//%20%u043F%u043E%u043B%u0443%u0447%u0430%u0435%u043C%20%u0443%u0440%u043B%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%0Avar%20url%20%3D%20window._content.document.location.href%3B%0A//%20%u0443%u043A%u0430%u0437%u044B%u0432%u0430%u0435%u043C%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044C%0Avar%20chkpoint%3D%22%26%22%3B%0A/*%20%u043E%u0431%u0440%u0435%u0437%u0430%u0435%u043C%20%u0443%u0440%u043B%20%u043F%u043E%u043B%u0443%u0447%u0435%u043D%u043D%u044B%u0439%20%u0438%u0437%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%20%u043F%u043E%20%u043F%u0440%u0438%u043D%u0446%u0438%u043F%u0443%2032%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%u0441%u043D%u0430%u0447%u0430%u043B%u0430%20%28http%3A//www.youtube.com/watch%3Fv%3D%29%0A%u0438%20%u043F%u043E%u0441%u043B%u0435%2085%u0433%u043E%20%u0441%u0438%u043C%u0432%u043E%u043B%u0430%20%28%u044D%u0442%u043E%20%u044F%20%u0441%u0434%u0435%u043B%u0430%u043B%20%u0441%20%u0437%u0430%u043F%u0430%u0441%u043E%u043C%20%u0435%u0441%u043B%u0438%20%u0434%u043B%u0438%u043D%u0430%20%u043A%u043E%u0434%u0430%20%u0440%u043E%u043B%u0438%u043A%u0430%20%u0440%u0430%u0437%u043D%u0430%u044F%29*/%0Avar%20url%3Durl.slice%2832%2C85%29%3B%0A//%20%u0440%u0435%u0436%u0435%u043C%20%u0442%u043E%20%u0447%u0442%u043E%20%u043E%u0441%u0442%u0430%u043B%u043E%u0441%u044C%20%u043E%u0442%20%u0443%u0440%u043B%20%u043F%u043E%20%u0443%u043A%u0430%u0437%u0430%u043D%u043D%u043E%u043C%u0443%20%u0440%u0430%u0437%u0434%u0435%u043B%u0438%u0442%u0435%u043B%u044E%20%u0438%20%u0437%u0430%u043F%u0438%u0445%u0438%u0432%u0430%u0435%u043C%20%u0432%20%u043C%u0430%u0441%u0441%u0438%u0432%20%u044D%u0442%u043E%20%u0447%u0442%u043E%u0431%20%u043E%u0442%u0440%u0435%u0437%u0430%u0442%u044C%20%u0432%u0441%u0451%20%u043B%u0438%u0448%u043D%u0435%u0435%20%u043F%u043E%u0441%u043B%u0435%20%u043A%u043E%u0434%u0430%20%u0440%u043E%u0434%u0438%u043A%u0430%0Avar%20arrayOfStrings%20%3D%20url.split%28chkpoint%29%3B%0A//%u043F%u0440%u0438%u0441%u0432%u0430%u0438%u0432%u0430%u0435%u0442%20%u043A%u043E%u043D%u0435%u0447%u043D%u043E%u0439%20%u0447%u0430%u0441%u0442%u0438%20%u0443%u0440%u043B%20%u0441%u0430%u043C%u044B%u0439%20%u043F%u0435%u0440%u0432%u044B%u0439%20%u044D%u043B%u0435%u043C%u0435%u043D%u0442%20%u043C%u0430%u0441%u0441%u0438%u0432%u0430%20%u043A%u043E%u0442%u043E%u0440%u044B%u043C%20%u0438%20%u0431%u0443%u0434%u0435%u0442%20%u043A%u043E%u0434%20%u0440%u043E%u043B%u0438%u043A%u0430%20%0Avar%20url2%3DarrayOfStrings%5B0%5D%3B%0A//%20%u0437%u0430%u0433%u0440%u0443%u0436%u0430%u0435%u043C%20%u0432%20%u0442%u0435%u043A%u0443%u0449%u0443%u044E%20%u0432%u043A%u043B%u0430%u0434%u043A%u0443%20%u0430%u0434%u0440%u0435%u0441%20%u0438%u0437%20%u043D%u0430%u0447%u0430%u043B%u044C%u043D%u043E%u0433%u043E%20%u0438%20%u043A%u043E%u043D%u0435%u0447%u043D%u043E%u0433%u043E%20%u0443%u0440%u043B%20%0AloadURI%28url1+url2%29%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%u041D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%u0441%u044F%20%u0442%u043E%u043B%u044C%u043A%u043E%20%u043F%u043B%u0435%u0435%u0440%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

Отсутствует

 

№759421-03-2014 11:14:18

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

Re: Custom Buttons

>ORG@niZM<
Класс!!!
Но все же хотелось бы обработчик на нажатие СКМ приделать. Кнопка это хорошо, но хотелось бы от нее с панели избавиться. Хоткеями я не пользуюсь.

Добавлено:
попробовал через обработчик, как-то неудобно жмется :|
повесил на ALT+F5, вроде пока нормально :)
остался вопрос: как отключить этот хоткей или не выполнять код, если я не на странице youtube ?

Добавлено #2:
сделал так

Выделить код

Код:

var urlgrab = content.location.href.substring(12,23);
if (urlgrab !== 'youtube.com') return;

или можно как-то проще по другому?

Отредактировано Inko7 (21-03-2014 13:28:26)

Отсутствует

 

№759521-03-2014 15:41:07

Чайник
Участник
 
Группа: Members
Зарегистрирован: 15-04-2008
Сообщений: 268
UA: Firefox 25.0

Re: Custom Buttons

Inko7
Я слепил код, положить его в инициализацию любой кнопки.
Срабатывает только на youtube.com, если кликнуть СКМ в любом месте по прямоугольнику плеера.

Выделить код

Код:

addEventListener("TabAttrModified", function() { 
   var div = content.document.getElementById('player-unavailable');
   var new_url = content.location.href.replace('watch?v=', 'v/');
   if ( content.location.host !== 'www.youtube.com' || !div ) return;
     div.addEventListener('mousedown', function func(e){
       if ( e.button == 1)loadURI(new_url)
       }) 
}, true, gBrowser.tabContainer )

Отсутствует

 

№759621-03-2014 16:22:37

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

Re: Custom Buttons

Чайник
Спасибо! Всё работает!

Отсутствует

 

№759721-03-2014 21:34:13

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

Re: Custom Buttons

Inko7 пишет

Но все же хотелось бы обработчик на нажатие СКМ приделать.

Inko7 пишет

или можно как-то проще по другому?

Выделить код

Код:

addEventListener("mousedown", function(e) {
  if ( e.button !== 1 || content.location.host !== 'www.youtube.com' ||
       !content.document.querySelector("#player-unavailable:hover") ) return;
       loadURI( content.location.href.replace('watch?v=', 'v/') );
}, false, gBrowser );

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

Отсутствует

 

№759821-03-2014 22:26:23

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

Re: Custom Buttons

bunda1
лаконично, как всегда! :rock:

Отсутствует

 

№759922-03-2014 14:41:22

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

Как эмулировать клик в нужных координатах?
Я пробовал

Выделить код

Код:

var utils = content.QueryInterface(Components.interfaces.nsIInterfaceRequestor).
getInterface(Components.interfaces.nsIDOMWindowUtils);

utils.sendMouseEvent("mouseup", х, у, 0, 1, 0);
utils.sendMouseEvent("mousedown", х, у, 0, 1, 0);

Вместо х, у подставлял координаты ссылки. Листнер поставленный на ссылке не реагирует, event.target-ом оказывается родитель  родителя ссылки.
О перехвате событий я знаю, ну а как мне сделать, чтобы ссылка реагировала на клик?

Отсутствует

 

№760022-03-2014 17:26:54

Ferguss114
Участник
 
Группа: Members
Зарегистрирован: 31-03-2012
Сообщений: 207
UA: Firefox 25.0

Re: Custom Buttons

В том и дело, что нужен клик по определённым координатам.
Со ссылкой я просто проверял как работает эмуляция клика.

Jah_KE.jpg

тут невозможно обратиться к нужному элементу

Отсутствует

 

Board footer

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