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

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

№715116-11-2013 20:22:02

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

Re: Custom Buttons

bunda1 пишет

Может тут поищи ardiman/userChrome.js · GitHub

Нет, я оттуда скрипт Open New Tab раньше пробовал, не понравился он мне.

Вот если б этот что у меня допилить. Всего-то нужно ссылки из библиотеки открывать в новых табах.
Но я не сделаю...



Upd
Я нашёл там ещё сниппет, который по идее должен делать то что мне нужно https://github.com/ardiman/userChrome.j … Plus.uc.js

Выделить код

Код:

(function() {
    /* Lesezeichen und Chronik */
    try {
        eval('openLinkIn = ' + openLinkIn.toString().
        replace('w.gBrowser.selectedTab.pinned', '(!w.isTabEmpty(w.gBrowser.selectedTab) || $&)').
        replace(/&&\s+w\.gBrowser\.currentURI\.host != uriObj\.host/, ''));
    }catch(e){}
})();

Но он для ФФ 20 и у меня на ФФ 25 не работает.

Отредактировано rbfyec (16-11-2013 20:53:38)

Отсутствует

 

№715216-11-2013 20:58:57

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

Re: Custom Buttons

bunda1, в последнее время кнопка Drag and go Modoki ведет себя неправильно, раньше подсказка к выполняемому жесту появлялась в нижнем левом углу экрана, а теперь появляется в аддонбаре, но т.к. аддонбар у меня в адресной строке, то и подсказка появляется там же.
Все это приводит к этому:
s_1384620953_3183955_73e0597d1d.jpg
И к тому же постоянно висит прозрачный элемент:
s_1384621070_9441700_1e57bc4ec2.jpg
который иногда заскакивает между другими кнопками и все это выглядит не очень то и хорошо :(

Отсутствует

 

№715316-11-2013 21:11:17

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

Re: Custom Buttons

rbfyec пишет

Я использую этот кусочек кода чтобы все открывалось в новых вкладках.
Очень удобно, но есть 2 минуса.
1. Ссылки из библиотеки - закладки и журнал - открываются в текущей вкладке. Как бы в этот код что-то добавить, чтоб это обойти?
2. Иногда бывает, после интенсивного серфинга начинает косячить: в основном всё продолжает открываться в новых табах, но если написать адрес и нажать Энтер (именно клавишу), адрес открывается в текущем.  А если кликнуть стрелку "Go" в адресной строке - то в новом табе.
Кто с этим сталкивался?

Похоже что тут ничего не допишешь эти коды не реагируют на открытие из библиотеки.

Добавлено 16-11-2013 21:12:21

rbfyec пишет

[
Я нашёл там ещё сниппет, который по идее должен делать то что мне нужно https://github.com/ardiman/userChrome.j … Plus.uc.js

Сейчас посмотрю.

Отредактировано bunda1 (16-11-2013 21:12:41)

Отсутствует

 

№715416-11-2013 21:45:09

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

Re: Custom Buttons

Выделить код

Код:

// Открывать в новой вкладке ......................................
(function () { 

eval("whereToOpenLink = " + whereToOpenLink.toString()
  .replace(/return "current";/g, "{"+(function() {
    var node = e && e.originalTarget;
    while (node) {
      switch (node.id) {
        case "bookmarksMenuPopup":
        case "goPopup":
        case "appmenu_bookmarksPopup":
        case "appmenu_historyMenupopup":
        case "personal-bookmarks":
        case "bookmarks-menu-button":
        case "historymenu_history":
        case "home-button":
        case "page-proxy-stack":
        case "go-button":
        case "urlbar-go-button":
        case "PopupAutoCompleteRichResult":
        case "searchbar":
        case "PopupAutoComplete":
          return "tab";
      }
      node = node.parentNode;
    }
    return "current";
  }).toString().replace(/^.*{|}$/g, "")+"}")
);

eval("openLinkIn = " + openLinkIn.toString()
  .replace(/(?=if \(where == "save"\))/, 'if (url.substr(0, 11) == "javascript:") where = "current";')
  .replace(/(?=var loadInBackground)/, 'if (w.gBrowser.currentURI.spec == "about:blank" && !w.gBrowser.mCurrentTab.hasAttribute("busy")) where = "current";')
);

eval("PlacesUIUtils._openNodeIn=" + PlacesUIUtils._openNodeIn.toString().replace('{', '{\naWhere = (aWhere == "tab") ? "current" : "tab";') );

})();

Отредактировано bunda1 (16-11-2013 22:02:20)

Отсутствует

 

№715516-11-2013 22:43:07

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

Re: Custom Buttons

bunda1
Вот спасибо! КЛАСС!!

Отсутствует

 

№715616-11-2013 22:49:31

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

Re: Custom Buttons

Kamui пишет

bunda1, в последнее время кнопка Drag and go Modoki ведет себя неправильно, раньше подсказка к выполняемому жесту появлялась в нижнем левом углу экрана, а теперь появляется в аддонбаре, но т.к. аддонбар у меня в адресной строке, то и подсказка появляется там же.

Займусь, кстати мне кажется автор обновил этот код.

Отсутствует

 

№715716-11-2013 23:22:02

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

Re: Custom Buttons

bunda1,
Я сейчас только обнаружил, этот новый код не открывает в новой вкладке букмарки из Панели меню > Закладки.

Отсутствует

 

№715817-11-2013 01:30:10

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

Re: Custom Buttons

rbfyec пишет

bunda1,
Я сейчас только обнаружил, этот новый код не открывает в новой вкладке букмарки из Панели меню > Закладки.

Попробуй все возможное что можно открыть, сделай рестарт после замены кода.

Выделить код

Код:

// Открывать всё в новых вкладках, от 17.11.2013. ......................................
(function () { 

   // всё перечисленное открыввать в новых вкладках, если пустая страница открывать в текущей ....
   const where = whereToOpenLink;
   eval("whereToOpenLink = " + where.toString()
     .replace(/return "current";/g, "{"+(function() {
       var node = e && e.originalTarget;
       while (node) {
         switch (node.id) {
           case "goPopup":
           case "home-button":
           case "page-proxy-stack":
           case "go-button":
           case "appmenu_historyMenupopup":
           case "PopupAutoCompleteRichResult":
           case "searchbar":
           case "PopupAutoComplete":
             if ( ["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) return "current";
             return "tab";
         }
         node = node.parentNode;
       }
       return "current";
     }).toString().replace(/^.*{|}$/g, "")+"}")
   );

   // закладки и историю в новых вкладках, букмарклети или пустая страница в текущей ....
   const openNode = PlacesUIUtils._openNodeIn;
   eval("PlacesUIUtils._openNodeIn = " + openNode.toString()
      .replace('{', '{\n if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) aWhere = "current";\n')
      .replace('{', '{\n aWhere = (aWhere == "tab" || aNode.uri.startsWith("javascript:") ) ? "current" : "tab";')
   );

   // если JavaScript ссылка или пустая страница открывать в текущей ....
   const linkIn = openLinkIn;
   eval("openLinkIn = " + linkIn.toString()
      .replace(';', ';\n  if ( url.startsWith("javascript:") ) where = "current";\n')
      .replace(';', ';\n  if (["about:newtab", "about:blank"].indexOf(content.location.href)!= -1 ) where = "current";')
   );

   // команды адресной строки открывают всё связанное с адресной строкой в новых вкладках ....
   const handle = gURLBar.handleCommand;
   eval("gURLBar.handleCommand = " + handle.toString()
      .replace(/aTriggeringEvent\s*&&\s*aTriggeringEvent.altKey/, "!($&)")
      .replace("aTriggeringEvent.preventDefault();", "")
      .replace("aTriggeringEvent.stopPropagation();", "")
   );


   // удалять изменения из внутренних функций Firefox ....
   addDestructor(function() {
      eval("whereToOpenLink = " + where);
      eval("PlacesUIUtils._openNodeIn = " + openNode);
      eval("openLinkIn = " + linkIn);
      eval("gURLBar.handleCommand = " + handle);
   });

})();

Отредактировано bunda1 (17-11-2013 04:41:32)

Отсутствует

 

№715917-11-2013 19:28:08

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

Re: Custom Buttons

bunda1 пишет

Попробуй все возможное что можно открыть, сделай рестарт после замены кода.

Тестировал код - до сих пор ни одного сбоя.
Спасибо ещё раз! :)



Где-то проскакивала информация, что кнопка Toggle Find барахлит, если введён длинный текст. Хотелось бы почитать этот пост, но не могу его найти.

Отсутствует

 

№716018-11-2013 00:11:42

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

Re: Custom Buttons

Kamui пишет

bunda1, в последнее время кнопка Drag and go Modoki ведет себя неправильно, раньше подсказка к выполняемому жесту появлялась в нижнем левом углу экрана, а теперь появляется в аддонбаре, но т.к. аддонбар у меня в адресной строке, то и подсказка появляется там же.
Все это приводит к этому:
который иногда заскакивает между другими кнопками и все это выглядит не очень то и хорошо :(

А чем ты перенёс аддонбар в адресную строку.

Отсутствует

 

№716118-11-2013 13:51:24

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

Re: Custom Buttons

Kamui пишет

раньше подсказка к выполняемому жесту появлялась в нижнем левом углу экрана

По идее, можно использовать

Выделить код

Код:

XULBrowserWindow.setOverLink("что-то там");

(см. chrome://browser/content/browser.js)


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

Отсутствует

 

№716218-11-2013 21:53:12

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

Re: Custom Buttons

Kamui
С кодом от Infocatcher: Drag and go Modoki.txt

Отсутствует

 

№716319-11-2013 16:54:17

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

Re: Custom Buttons

bunda1 пишет

А чем ты перенёс аддонбар в адресную строку.

url-addon-bar

bunda1 пишет

С кодом от Infocatcher: Drag and go Modoki.txt

ссылка ведет на старый код, по-крайей мере отличия от моего только в жестах:/

Отсутствует

 

№716420-11-2013 16:42:09

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

Re: Custom Buttons

Распорка для Australis'а: http://custombuttons.sourceforge.net/fo … f=2&t=1222


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

Отсутствует

 

№716522-11-2013 11:44:18

YuriS
Участник
 
Группа: Members
Зарегистрирован: 22-09-2013
Сообщений: 7
UA: Firefox 25.0

Re: Custom Buttons

Не подскажете, а есть ли кнопка, для включения/отключения javascript? Поиск не помог.

Отсутствует

 

№716622-11-2013 19:34:50

Ki_rrrilll
Участник
 
Группа: Members
Зарегистрирован: 22-11-2013
Сообщений: 127
UA: Firefox 23.0

Re: Custom Buttons

Infocatcher пишет

Чайник
Проблема в том, что нужный узел определен в binding'e для (анонимного) textbox.searchbar-textbox, а не #searchbar. И в таком случае подсветка красным уже не помогает.
Настоящего родителя можно узнать через getBindingParent(): в DOM Inspector'e можно справа выбрать «Объект JavaScript», в контекстном меню корневого узла вызвать «Вычислить JavaScript» и там уже выполнить что-нибудь вроде

Выделить код

Код:

var p = target.ownerDocument.getBindingParent(target);
alert(p.nodeName + (p.id ? "#" + p.id : "") + (p.className ? "." + p.className.split(/\s+/).join(".") : ""));

Специально зарегистрировался чтобы спросить. Мне тоже бывает нужно определить родителя.

Infocatcher что имеется в виду "в DOM Inspector'e можно справа выбрать «Объект JavaScript», в контекстном меню корневого узла вызвать «Вычислить JavaScript» и там уже выполнить что-нибудь вроде..." под корневым узлом?

Отсутствует

 

№716722-11-2013 19:59:16

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

Re: Custom Buttons

Ki_rrrilll
После выбора в правой панели «Объект JavaScript», в ней появляется дерево вида
Объект         [object XULElement]
├─ тут
├─ какие-то
└─ свойства

Вот этот самый первый «Объект» и есть корневой узел этого дерева. И он же представляет собой JavaScript-объект DOM-узла, выбранного в панели слева. Ну, и target в «Вычислить JavaScript» будет указывать как раз на него (там про это будет написано).


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

Отсутствует

 

№716822-11-2013 21:35:04

Ki_rrrilll
Участник
 
Группа: Members
Зарегистрирован: 22-11-2013
Сообщений: 127
UA: Firefox 25.0

Re: Custom Buttons

Ясно, спасибо

Отсутствует

 

№716923-11-2013 20:10:34

Ki_rrrilll
Участник
 
Группа: Members
Зарегистрирован: 22-11-2013
Сообщений: 127
UA: Firefox 23.0

Re: Custom Buttons

Пара вопросов.
Я вешаю на картинку обработчик онклик. Кликаю по картинке, выполняется нужный код.

Но если картинка со ссылкой, происходит ещё и переход по ссылке, preventDefault() ничего не помогает. Что можно тут сделать?

И второй вопрос, есть ли в JavaScript нечто подобное - первый клик вызывает одну функцию, второй клик - другую?

Отсутствует

 

№717024-11-2013 11:40:48

Anton
Участник
 
Группа: Extensions
Откуда: от верблюда
Зарегистрирован: 14-12-2004
Сообщений: 3057
UA: Firefox 25.0
Веб-сайт

Re: Custom Buttons

Infocatcher пишет

Распорка для Australis'а: http://custombuttons.sourceforge.net/fo … f=2&t=1222

Большое спасибо.


Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!

Отсутствует

 

№717124-11-2013 18:59:18

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

Re: Custom Buttons

Anton пишет

Большое спасибо.

Там еще с только что вытащенными из палитры кнопками какие-то проблемы – как будто отрабатывает XBL-деструктор, так что кнопки-меню оказываются без меню. Но если в инициализации добавляется контекстное меню, расположенное не внутри кнопки, то оно работает.
А вот в новых окнах и после перезапуска уже все нормально. То есть проблема где-то в изменениях механизма настройки панелей.

Вот простая кнопка для проверки:

Выделить код

Код:

this.type = "menu";
this.orient = "horizontal";
var mp = document.createElement("menupopup");
var mi = document.createElement("menuitem");
mi.setAttribute("label", "Test");
mi.setAttribute("oncommand", "alert(this.getAttribute('label'));");
mp.appendChild(mi);
this.appendChild(mp);
Выделить код

Код:

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%3ETest%20menu%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bthis.type%20%3D%20%22menu%22%3B%0Athis.orient%20%3D%20%22horizontal%22%3B%0Avar%20mp%20%3D%20document.createElement%28%22menupopup%22%29%3B%0Avar%20mi%20%3D%20document.createElement%28%22menuitem%22%29%3B%0Ami.setAttribute%28%22label%22%2C%20%22Test%22%29%3B%0Ami.setAttribute%28%22oncommand%22%2C%20%22alert%28this.getAttribute%28%27label%27%29%29%3B%22%29%3B%0Amp.appendChild%28mi%29%3B%0Athis.appendChild%28mp%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E

И с удаление кнопок не все хорошо.
Там используется resource:///modules/CustomizableUI.jsm, и есть кэш в настройке browser.uiCustomization.state. Если кнопка удаляется, а кэш не правится, то после добавления такой же кнопки (с тем же id) ее не будет в палитре (ну, то есть она там, куда ее и добавили, но из интерфейса ее скрывают). Вот тут есть кое-какие подробности.


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

Отсутствует

 

№717225-11-2013 02:46:23

Владимир...
Участник
 
Группа: Members
Зарегистрирован: 07-09-2013
Сообщений: 28
UA: Firefox 23.0

Re: Custom Buttons

Помогите пожалуйста!)  В Кнопке истории (Firefox) Левый клик мышью - не выводит список последних 37-и адресов...

открывается список лишь с 15-ью адресами, как и в меню браузера при нажатии кнопки "Журнал".

Как только установишь кнопку выпадает список в 37 адресов, но после сокращается до 15, возможно в ранних версиях Firefox эта кнопка работала корректно, а сейчас конфликт правил...  Можно как-нибудь исправить?

Отсутствует

 

№717325-11-2013 03:02:50

Pony_Smile_Pack
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 1144
UA: Firefox 25.0

Re: Custom Buttons

Владимир... пишет

Помогите пожалуйста!)  В Кнопке истории (Firefox) Левый клик мышью - не выводит список последних 37-и адресов...

открывается список лишь с 15-ью адресами, как и в меню браузера при нажатии кнопки "Журнал".

Как только установишь кнопку выпадает список в 37 адресов, но после сокращается до 15, возможно в ранних версиях Firefox эта кнопка работала корректно, а сейчас конфликт правил...  Можно как-нибудь исправить?

Такую закладку создать, прописав столько адресов сколько нужно.

скрытый текст
place:queryType=0&sort=4&maxResults=

30

Отсутствует

 

№717425-11-2013 03:28:55

Владимир...
Участник
 
Группа: Members
Зарегистрирован: 07-09-2013
Сообщений: 28
UA: Firefox 23.0

Re: Custom Buttons

Pony_Smile_Pack пишет

Такую закладку создать, прописав столько адресов сколько нужно.

скрытый текст
place:queryType=0&sort=4&maxResults=

30

Поставил вместо
("place", "type=0&sort=4&maxResults=37")  >  ("place", "place:queryType=0&sort=4&maxResults=30")

Не помогает, после перезагрузки браузера, в списке снова 15 адресов.

Отредактировано Владимир... (25-11-2013 03:33:13)

Отсутствует

 

№717525-11-2013 03:38:40

Pony_Smile_Pack
Участник
 
Группа: Members
Зарегистрирован: 13-01-2012
Сообщений: 1144
UA: Firefox 25.0

Re: Custom Buttons

Владимир... пишет

Не помогает, после перезагрузки браузера, в списке снова 15 адресов.

Нет, пользоваться закладкой, а не списком. Разместив её в удобном месте.

Отсутствует

 

Board footer

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