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

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

№670110-08-2013 10:25:57

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

Re: Custom Buttons

okkamas_knife
Блин, сколько раз устанавливал кнопки и не обращал на это внимание...
Ты открыл мне глаза! :)

Отсутствует

 

№670210-08-2013 14:44:42

firepox
Участник
 
Группа: Members
Зарегистрирован: 17-11-2011
Сообщений: 358
UA: Firefox 23.0

Re: Custom Buttons

Задача:
Действие на картинке - и она открывается в "с:\up.exe"
Можно реализовать?
спасибо

Отсутствует

 

№670311-08-2013 00:27:06

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

Re: Custom Buttons

bunda1
Спасибо за кнопку, то что нужно.

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


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

Отсутствует

 

№670411-08-2013 01:26:51

firepox
Участник
 
Группа: Members
Зарегистрирован: 17-11-2011
Сообщений: 358
UA: Firefox 23.0

Re: Custom Buttons

firepox пишет

Задача:
Действие на картинке - и она открывается в "с:\up.exe"
Можно реализовать?
спасибо

Огромное спасибо Infocatcher!
Помог, уже не в первый раз!
Теперь: потянув картинку вверх = она заливается куда угодно, накладывается водяной знак и многое другое...
Одно движение мышкой - заменяет кучу "телодвижений"! :)

Отсутствует

 

№670511-08-2013 01:35:37

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

Re: Custom Buttons

Тогда и результат сюда же надо:
https://gist.github.com/Infocatcher/6201658
(в личной переписке вопрос ставился про DragIt, так что решение для него)

Сохраняет изображение из

Выделить код

Код:

var sourceNode = DragIt.dndParams.Source;

во временную папку и запускает

Выделить код

Код:

var program = "%ProgramFiles%\\XnView\\xnview.exe";

с параметрами

Выделить код

Код:

var args = ["%f"]; // %f will be replaced with path to temp file

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

Отсутствует

 

№670611-08-2013 02:44:16

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

Re: Custom Buttons

Добавил второй пример (работает в том числе и в Custom Buttons):
https://gist.github.com/Infocatcher/620 … allback-js
(Старый: https://gist.github.com/Infocatcher/620 … allback-js)
Извлекает изображения из выделения, сохраняет их во временную папку и передает в виде аргументов заданной программе, когда все изображения будут сохранены.


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

Отсутствует

 

№670713-08-2013 11:04:16

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

Re: Custom Buttons

bunda1
Недавно ты делал мне переключение на домашнюю жестом, но иногда приходится открывать двойным по титлбару http://forum.mozilla-russia.org/viewtopic.php?pid=556713#p556713
можно что придумать чтобы тоже не открывал заново а переключал на уже открытую домашнюю - chrome://desktop/content/desktop.html


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

Отсутствует

 

№670813-08-2013 21:45:18

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

Re: Custom Buttons

villa7 пишет

bunda1
Недавно ты делал мне переключение на домашнюю жестом, но иногда приходится открывать двойным по титлбару  можно что придумать чтобы тоже не открывал заново а переключал на уже открытую домашнюю - chrome://desktop/content/desktop.html

Выделить код

Код:

addEventListener("dblclick", function(e) {
if ( e.button == 0 && document.getElementById('main-window').hasAttribute('tabsintitlebar') ) {
     e.preventDefault();
     
     var desktopTab = true;  
     for ( var i = 0; i < gBrowser.tabs.length; i++ ) {
           var mTab = gBrowser.mTabs[i];
           if ( mTab.linkedBrowser.currentURI.spec == 'chrome://desktop/content/desktop.html') {
              gBrowser.selectedTab = mTab;
              var desktopTab = false;  
              break;
              }
         }
     if ( desktopTab ) gBrowser.selectedTab = gBrowser.addTab('chrome://desktop/content/desktop.html');
     }
}, false, document.getElementById('TabsToolbar') );

Отсутствует

 

№670913-08-2013 22:21:03

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

Re: Custom Buttons

Вопрос к знающим людям, как получить адрес ссылки при перетаскивании ссылки на кнопку?

Отредактировано bunda1 (14-08-2013 00:08:52)

Отсутствует

 

№671013-08-2013 22:53:28

SendInfo
.
 
Группа: Members
Зарегистрирован: 14-02-2011
Сообщений: 271
UA: Firefox 26.0

Re: Custom Buttons

bunda1 У Infocatcherа можно посмотреть Custom_Buttons/Session_Bookmarks at master · Infocatcher/Custom_Buttons · GitHub

Отсутствует

 

№671113-08-2013 23:04:56

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

Re: Custom Buttons

SendInfo
Сложно :/

Отсутствует

 

№671214-08-2013 00:09:05

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

Re: Custom Buttons

bunda1 пишет

Вопрос к знающим людям, как получить адрес ссылки при перетаскивании ссылки на кнопку?

Вроде работает:

Выделить код

Код:

this.ondragover = function(e) { 
custombuttons.alertSlide("alert", e.dataTransfer.mozGetDataAt("text/x-moz-url", 0));
};

Отсутствует

 

№671314-08-2013 00:23:24

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

Re: Custom Buttons

bunda1 пишет

открывать двойным по титлбару

Отлично, спасибо.


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

Отсутствует

 

№671414-08-2013 02:20:33

Baron_
Забанен
 
Группа: Members
Зарегистрирован: 13-08-2013
Сообщений: 71
UA: Firefox 23.0

Re: Custom Buttons

Infocatcher пишет

в личной переписке вопрос ставился про DragIt...

А можно как-то сделать код к DragIt, чтобы корректно сохранял содержимое ссылки в указанную в его настройках папку? Дело в том, что на некоторых ресурсах, особенно форумах, содержимое ссылки сохраняется как index.php или index.php, независимо от содержимого. При этом, если сменить расширение на нужное, оказывается, что файл скачался без ошибок, но с неверным именем и расширением. Подозреваю, что дело в самих ресурсах и ссылках на них, поскольку, в основном, все сохраняется правильно. Но тем не менее, есть ли возможность побороть подобные ошибки сохранения??

Отредактировано Baron_ (14-08-2013 02:27:09)

Отсутствует

 

№671514-08-2013 18:52:34

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

Re: Custom Buttons

okkamas_knife
Спасибо в хозяйстве пригодится.

Отредактировано bunda1 (21-08-2013 19:21:08)

Отсутствует

 

№671614-08-2013 20:14:40

firepox
Участник
 
Группа: Members
Зарегистрирован: 17-11-2011
Сообщений: 358
UA: Firefox 23.0

Re: Custom Buttons

на сколько сложно и возможно ли реализовать такое кнопкой?

скрытый текст
- выделяем текст на любой странице.
- нажимаем кнопку
- текст переводится здесь: http://translate.google.ru/ (перевод с русского на албанский, например)
- затем, текст с албанского переводится обратно на русский

Отсутствует

 

№671714-08-2013 21:44:04

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

Re: Custom Buttons

firepox
На албанский, в инициализацию новый кнопки:

Выделить код

Код:

this.onclick = function(e) {  
     if ( e.button == 0 ) {
          var sel = getSelect();
          if ( !sel )return;
          var url = "http://translate.google.com/translate_t?hl=ru#auto|sq|" + sel;
          gBrowser.selectedTab = gBrowser.addTab( url ); 
          }
};


function getSelect() {
     window.content.focus();
     var selection = document.commandDispatcher.focusedWindow.getSelection();

     if ( selection.toString().length == 0 ) {
          var theBox = document.commandDispatcher.focusedElement;
         
          if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { 
               var startPos = theBox.selectionStart;
           var endPos = theBox.selectionEnd;
           var selection = theBox.value.substring(startPos, endPos);  
               }
          }

     return ( selection == '') ? false : selection;
};

Добавлено 14-08-2013 21:47:32
Насчёт перевода с албанского обратно на русский я не понял.

Отредактировано bunda1 (14-08-2013 21:48:27)

Отсутствует

 

№671821-08-2013 17:37:12

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

Re: Custom Buttons

Люди, подскажите, как удалять обработчики, если они заданы таким образом:

Выделить код

Код:

// find bar, открыть/закрыть двойным СКМ на странице
gBrowser.addEventListener("dblclick", function (event){
    if (event.button !== 1) return;
    event.preventDefault();    
    gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
    Find(event);
}, false);

а то зашел/вышел в панель инструментов и уже траблы...

Отсутствует

 

№671921-08-2013 19:15:08

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

Re: Custom Buttons

Inko7 пишет

Люди, подскажите, как удалять обработчики, если они заданы таким образом:
а то зашел/вышел в панель инструментов и уже траблы...

Выделить код

Код:

// Переключать панель поиска двойным средним кликом на странице
addEventListener("dblclick", function(e) {
   if ( e.button !== 1 ) return;
   e.preventDefault(); 
   gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
}, false, gBrowser );

Добавлено 21-08-2013 19:16:59
Но такой код будет работать только если в настройках отключено Использовать автоматическую прокрутку

Добавлено 21-08-2013 19:26:56

okkamas_knife пишет

несложно всё необходимое для этого есть в сниппетах.
часть можно глянуть в кнопке Context Translate

Я уже эму сделал эту кнопку, копирует двойной перевод, но по не понятным причинам не везде работает, на пример на http://silver.ru/news/56602/  выделяем текст всей статьи и кнопка выбрасывает ошибку, может что подскажешь?

Выделить код

Код:

// Настройка функций кликов мыши для кнопки ................................
this.onclick = function(e) {  
     if ( e.button == 0 ) {
          var sel = getSelect();
          if ( !sel ) return;
          
          translateText( sel, 'sq');
          }
};



/* Получить выделенный текст из страницы или текстового поля, 
   если текст не выделен функция отдаст 'false' ................................*/
function getSelect() {
     window.content.focus();
     var selection = document.commandDispatcher.focusedWindow.getSelection();

     if ( selection.toString().length == 0 ) {
          var theBox = document.commandDispatcher.focusedElement;
         
          if ( theBox && (theBox.type == "text" || theBox.type == "textarea") ) { 
               var startPos = theBox.selectionStart;
           var endPos = theBox.selectionEnd;
           var selection = theBox.value.substring(startPos, endPos);  
               }
          }

     return ( selection == '') ? false : selection;
};



// Перевести текст в Google переводчике в маленьком окошке ................................
var background = 'none', fontSize = 'medium'; // фон и размер шрифта окошка перевода
var winWidth = 0.4, winHeight = 0.4 // ширина и высота окошка перевода относительно размера страницы

function translateText( text, language ) {
        
   const beg = "http://translate.google.com/translate_t?prev=hp&hl=" + language + "&js=y&text=";
   const end = "&file=&sl=auto&tl=" + language + "&history_state0=#";
   var url = beg + text + end;
    
   var req = new XMLHttpRequest();
   req.open("GET", url, true);
   
   req.onload = function() {
       var res = req.responseText;
       var suHTML = Cc["@mozilla.org/feed-unescapehtml;1"].getService(Ci.nsIScriptableUnescapeHTML);
       var doc = document.implementation.createHTMLDocument("");
       doc.body.appendChild(suHTML.parseFragment(res, false, null, doc.body));

       var text = doc.getElementById("result_box").textContent;
       if ( language == 'sq' ) { translateText( text, 'ru'); return; };
       
       gClipboard.write( text );
       custombuttons.alertSlide("", "Скопировал двойной перевод");
       }
   req.channel.loadFlags |= req.channel.LOAD_FROM_CACHE; // if possible
   req.send(null)
};

Отредактировано bunda1 (21-08-2013 19:26:56)

Отсутствует

 

№672021-08-2013 22:24:21

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

Re: Custom Buttons

bunda1
т.е. как я понял, достаточно убрать в начале gBrowser.addEventListener . . .
и добавить его в конце  . . .}, false, gBrowser );
правильно?
интересно, а что это меняет?

Отсутствует

 

№672121-08-2013 23:00:36

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

Re: Custom Buttons

Inko7 пишет

т.е. как я понял, достаточно убрать в начале gBrowser.addEventListener . . .
и добавить его в конце  . . .}, false, gBrowser );
правильно?
интересно, а что это меняет?

Правильно, так обработчик не будет дублироваться при обновлении кнопки или кода и нормально удалится при удалении кнопки или кода. Почему так и что это меняет я не знаю.

Отредактировано bunda1 (21-08-2013 23:02:46)

Отсутствует

 

№672221-08-2013 23:32:51

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

Re: Custom Buttons

Inko7 пишет

интересно, а что это меняет?

Custom Buttons предоставляет свои реализации функций addEventListener() и removeEventListener():
http://sourceforge.net/p/custombuttons/ … der.js#l43
А something.addEventListener() вызывает оригинальную функцию.


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

Отсутствует

 

№672322-08-2013 10:21:47

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

Re: Custom Buttons

bunda1
Infocatcher
спасибо

А если вот такой вид:

Выделить код

Код:

document.getElementById("alltabs-button").addEventListener("click", midclick, false);

то можно ли его заменить на такой?

Выделить код

Код:

addEventListener("click", midclick, false, document.getElementById("alltabs-button") );

и тоже не потребуется removeEventListener ?

Добавлено 22-08-2013 10:46:56
Infocatcher
В этом посте ты писал мне код для запуска проверки обновлений. Можно ли как-то его поправить, чтобы вкладка about:addons открывалась сразу в подразделе "Расширения" ? Просто сейчас, если закрыть about:addons находясь в другом подразделе, он так и запустится в нем.

Отредактировано Inko7 (22-08-2013 10:46:56)

Отсутствует

 

№672422-08-2013 11:02:37

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

Re: Custom Buttons

Inko7 пишет

то можно ли его заменить на такой?

Да, можно.

Inko7 пишет

и тоже не потребуется removeEventListener ?

Если логика работы не требует удалять слушателя событий (то есть когда нужно удалять только при удалении/обновлении), то не потребуется.

Inko7 пишет

чтобы вкладка about:addons открывалась сразу в подразделе "Расширения" ?

Перед

Выделить код

Код:

var browser = tab.linkedBrowser;

добавить

Выделить код

Код:

var view = "addons://list/extension";
Services.obs.addObserver(function observer(aSubject, aTopic, aData) {
    Services.obs.removeObserver(observer, aTopic);
    aSubject.loadView(view);
}, "EM-loaded", false);

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

Отсутствует

 

№672522-08-2013 22:33:23

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

Re: Custom Buttons

Infocatcher
В [nightly] перестала очищать№7469,  если можешь поправь, плиз.

Отсутствует

 

Board footer

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