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

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

№125-05-2015 03:15:46

rey
Участник
 
Группа: Members
Зарегистрирован: 25-05-2015
Сообщений: 11
UA: Firefox 35.0

Редактирование меню FF

по сети гуляют упоминания про userchrome и xul файлы, но ничего из этого в моей 38 версии не находится. так же давно простыл след известного Menu Editor дополнения, а единственное наличное Menu Wizard не дотягивает до моих требований(скажем нет меню по правому клику в адресной строке). =/
подскажите как всё же вручную отредактировать ЛЮБЫЕ меню FF? (для манипуляций типа удалить, изменить расположение)

Отредактировано rey (25-05-2015 03:16:31)

Отсутствует

 

№225-05-2015 04:07:39

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

Re: Редактирование меню FF

http://forum.ru-board.com/topic.cgi?for … it=1&m=1#1
В userChrome.css. Пример

#context-ext-google-translate {-moz-box-ordinal-group:1!important;}
#UseAsProxy {-moz-box-ordinal-group:10!important;}
#context-ext-addon {-moz-box-ordinal-group:3!important;}
#context-copy {-moz-box-ordinal-group:4!important;}
#saveSelectionToFile {-moz-box-ordinal-group:5!important;}


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

Отсутствует

 

№325-05-2015 04:24:05

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

Re: Редактирование меню FF

Э, опоздал, но все же дополню:

скрытый текст
DOM Inspector + Custom Buttons c Attributes Inspector(как добавить кнопку - в шапке темы) - в помощь:
thumb.jpg 
Находим id или иной селектор нужного пункта и, если хотим скрыть, то создаем такой стиль в userChrome.css (создаем в папке профиля браузера папку chrome и в ней текстовый файл userChrome.css), либо в Stylish:

Выделить код

Код:

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
.textbox-contextmenu menuitem[label="Cut"] {
  display: none!important;
}

Для изменения порядка:

Выделить код

Код:

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);

.textbox-contextmenu menuitem[label="Paste"] {
  -moz-box-ordinal-group: 1!important;
}
.textbox-contextmenu menuseparator:nth-child(1) { /* :nth-child() - используем для элементов, у которых нет уникальных индентификаторов, т.е. цифра 1 в скобках - это первый элемент menuseparator в .textbox-contextmenu */
  -moz-box-ordinal-group: 2!important;
}
.textbox-contextmenu menuitem[label="Cut"] {
  -moz-box-ordinal-group: 3!important;
}
.textbox-contextmenu menuitem[label="Copy"] {
  -moz-box-ordinal-group: 4!important;
}
/* и т.д.  */
/* Скорее всего, придется задать порядок для всех пунктов меню, даже если хотите поменять местами лишь несколько из них */

(строка с "@namespace" нужна лишь одна. В самом начале файла userChrome.css. Для Stylish'а - в каждом отдельном стиле.)

А с помощью Custom Buttons (например) можно и добавлять новые пункты в разные меню. Но это отдельная история.

Добавлено 25-05-2015 04:27:37
Да, и по стилям есть отдельный раздел. Остальные вопросы советую задавать в соответствующей теме.

Отредактировано turbot (25-05-2015 04:27:37)

Отсутствует

 

№425-05-2015 09:44:58

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

Re: Редактирование меню FF

turbot пишет

@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
...
строка с "@namespace" нужна лишь одна. В самом начале файла userChrome.css.

Разреши спросить :blush:. Нужна зачем ?

Отсутствует

 

№525-05-2015 13:29:09

rey
Участник
 
Группа: Members
Зарегистрирован: 25-05-2015
Сообщений: 11
UA: Firefox 35.0

Re: Редактирование меню FF

villa7, turbot спасибо за ответы. вопрос задал тут, потому что тут же нашёл поиском закрытую давнюю тему того же вопроса, вот только там не было "ответов". нигде раньше не встречал упоминаний что файл то создавать нада самому(!).
думаю создание кнопок или прям новых пунктов мне не осилить(без справочника тут тёмный лес :cry:), ну хоть с присутствующими чтото прояснилось. верно понимаю что с помощью DOM Inspector можно узнать ID разных присутствующих пунктов? а где бе разжится может уже собранной таблицей/справочником по всем таким ID, для комбинирования скажем?(хочется добавить в адресную строку пункт "Paste&go in new tab"= как я понимаю это сумма присутствующих комманд newtab+paste & go)

Отсутствует

 

№625-05-2015 14:29:45

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

Re: Редактирование меню FF

Dumby пишет

Нужна зачем ?

А что, разве в userChrome она не нужна? :rolleyes: Тут иногда и без
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
некоторые стили не срабатывают. Фих знает, почему. При том, что в исходном стиле нет конструкций типа xul|*.attr-value.theme-fg-color6.

rey пишет

верно понимаю

Не совсем. ID, класс, атрибуты - да узнаете.  А вот добавить - это уже яваскрипт и Custom Buttons. С этим, вон, Dumby (:P) мучайте, он знаток.

Отсутствует

 

№725-05-2015 16:05:06

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

Re: Редактирование меню FF

turbot пишет

А что, разве в userChrome она не нужна?

Мне кажется, что наличие её необходимости
ровно такое же, как и у любого другого стиля.

turbot пишет

Тут иногда и без
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
некоторые стили не срабатывают.

У Егора стиль не работал именно из-за наличия
присутстувующей в userChrome.css строки
«@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");»

И как только он её изменил (считай удалил) — всё заработало.

Таковая строка, видимо, обозначает добровольное самоограничение,
что весь (!) userChrome.css-стиль будет применяться только к элементам с xul-namespace'ом.

Это нам надо ?

Отсутствует

 

№825-05-2015 16:16:04

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

Re: Редактирование меню FF

Dumby пишет

не работал именно из-за наличия

А, и впрямь... Не догадался проверить без. :dumb:

Это нам надо ?

Ну, если для них и делается, то почему бы и нет. А то вылезет, где не надо. :)

Отсутствует

 

№925-05-2015 17:11:20

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

Re: Редактирование меню FF

turbot пишет

Ну, если для них и делается, то почему бы и нет.

А завтра моя левая пятка спросит меня

Ой, добавила в userChrome.css

#urlbar .urlbar-input {
        background-color: lightgreen !important;
}
Но не работает. Что делать ?

И что мне ей ответить ?

Отредактировано Dumby (25-05-2015 17:12:44)

Отсутствует

 

№1025-05-2015 17:22:08

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

Re: Редактирование меню FF

Dumby
Ок, идею уловил.

левая пятка спросит меня

скрытый текст
Я бы ей ответил: "Научилась говорить - разберешься и что поправить." shuffle.gif

Отредактировано turbot (25-05-2015 17:22:26)

Отсутствует

 

№1126-05-2015 19:53:33

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

Re: Редактирование меню FF

Dumby пишет

И что мне ей ответить ?

Нууу,

Выделить код

Код:

@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
@namespace html url("http://www.w3.org/1999/xhtml");
#urlbar html|*.urlbar-input {
    background-color: lightgreen !important;
}

:D


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

Отсутствует

 

№1227-05-2015 21:44:44

rey
Участник
 
Группа: Members
Зарегистрирован: 25-05-2015
Сообщений: 11
UA: Firefox 38.0

Re: Редактирование меню FF

спасибо за некоторые примеры приведенные тут. только мне как новичку ничего не понятно.. :(
поставил DOM Inspector, вобще не ясно как в нём чтото "найти" то что нужно. от turbot были неплохие примеры, но не понял как же указать в какое меню вставляешь команду или скрываешь? я непротив вобще "пересобрать" менюшки полностью, для собственного порядка команд, понять бы Как... когдато пользовался Oper'ой и там было весьма не сложно, а тут совсем завяз.
посмотрел Custom Buttons, штука интересная, но там совсем уже коды пошли, а значит ещё больший "лес" как их в меню вставить :cry:

Отсутствует

 

№1327-05-2015 22:55:37

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

Re: Редактирование меню FF

rey пишет

как в нём чтото "найти"

turbot пишет

Custom Buttons c Attributes Inspector

же. Нажимаете кнопку Attributes Inspector'а, наводите на нужный элемент и ctrl+I (либо средней кнопкой мыши). DOM Inspector запустится с фокусом на этом элементе. Если нужно, чтобы менюшка не закрылась (после запуска DOM Inspector'а), то ctrl+shift+I (для менюшки урл-бара есть баг пока). Подробнее - в справке кнопки (пункт в ее контекстном меню).

Добавлено 27-05-2015 23:03:55

rey пишет

как их в меню вставить

Много готовых кнопок и примеров. Даже я бы мог сделать вам вашу

"Paste&go in new tab"

, но контекстное меню урбара не имеет id, а я так и не освоил getAnonymousElementByAttribute, и не знаю, как всунуть пункт в такое меню. Напишите свой запрос в тему по CB, подробно описав, что требуется, и кто-нибудь наверняка поможет.

Отредактировано turbot (27-05-2015 23:03:55)

Отсутствует

 

№1428-05-2015 12:21:08

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

Re: Редактирование меню FF

turbot пишет

но контекстное меню урбара не имеет id, а я так и не освоил getAnonymousElementByAttribute, и не знаю, как всунуть пункт в такое меню.

Вот для примера "Вставить и искать" пункт контекстного меню адресной строки | Форум Mozilla Россия . Думаю - осилите.

Отсутствует

 

№1528-05-2015 15:13:40

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

Re: Редактирование меню FF

lokiju
О, спасибо.

rey
В инициализацию любой кнопки:

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

Выделить код

Код:

addEventListener("popupshowing", function(event) {
   const eltID = "urlbar-paste-and-go-in-newtab";
   var menupopup = event.originalTarget;
   var refChild = menupopup.getElementsByAttribute("oncommand", "gURLBar.select(); goDoCommand('cmd_paste'); gURLBar.handleCommand();")[0];
   var canPaste = refChild.getAttribute("disabled") == "true";
   var menuitem = document.getElementById(eltID);
   if (!menuitem) {
   var urlbarPasteAndSearch = function(event) {
         window.content.focus();
         BrowserOpenNewTabOrWindow(event); 
         gURLBar.select();
         goDoCommand('cmd_paste');
         setTimeout(()=> gURLBar.handleCommand(event), 50);
      };
      menuitem = document.createElement("menuitem");
      menuitem.id = eltID;
      menuitem.setAttribute("label", "Paste & Go in new tab");
      menuitem.addEventListener("command", urlbarPasteAndSearch, false);
      menupopup.insertBefore(menuitem, refChild.nextSibling);
   }
   menuitem.setAttribute("disabled", canPaste.toString());
}, false, document.getElementById("urlbar"));


Все спасибки - SendInfo

UPD: Поправил. Теперь значение адресной строки страницы, с которой осуществлялся поиск/переход, остается прежним. (Но фокус/выделение в адресной строке страницы, с которой осуществлялся поиск/переход, не снимается. Как убрать - пока не придумал). - придумал :)

Отредактировано turbot (08-08-2015 02:22:02)

Отсутствует

 

Board footer

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