по сети гуляют упоминания про userchrome и xul файлы, но ничего из этого в моей 38 версии не находится. так же давно простыл след известного Menu Editor дополнения, а единственное наличное Menu Wizard не дотягивает до моих требований(скажем нет меню по правому клику в адресной строке).
подскажите как всё же вручную отредактировать ЛЮБЫЕ меню FF? (для манипуляций типа удалить, изменить расположение)
Отредактировано rey (25-05-2015 03:16:31)
Отсутствует
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;}
Лучше спросить у знающих - чем лезть не зная.
Отсутствует
Э, опоздал, но все же дополню:
@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)
Отсутствует
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
...
строка с "@namespace" нужна лишь одна. В самом начале файла userChrome.css.
Разреши спросить . Нужна зачем ?
Отсутствует
villa7, turbot спасибо за ответы. вопрос задал тут, потому что тут же нашёл поиском закрытую давнюю тему того же вопроса, вот только там не было "ответов". нигде раньше не встречал упоминаний что файл то создавать нада самому(!).
думаю создание кнопок или прям новых пунктов мне не осилить(без справочника тут тёмный лес ), ну хоть с присутствующими чтото прояснилось. верно понимаю что с помощью DOM Inspector можно узнать ID разных присутствующих пунктов? а где бе разжится может уже собранной таблицей/справочником по всем таким ID, для комбинирования скажем?(хочется добавить в адресную строку пункт "Paste&go in new tab"= как я понимаю это сумма присутствующих комманд newtab+paste & go)
Отсутствует
Нужна зачем ?
А что, разве в userChrome она не нужна? Тут иногда и без
@namespace xul url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
некоторые стили не срабатывают. Фих знает, почему. При том, что в исходном стиле нет конструкций типа xul|*.attr-value.theme-fg-color6.
верно понимаю
Не совсем. ID, класс, атрибуты - да узнаете. А вот добавить - это уже яваскрипт и Custom Buttons. С этим, вон, Dumby () мучайте, он знаток.
Отсутствует
А что, разве в userChrome она не нужна?
Мне кажется, что наличие её необходимости
ровно такое же, как и у любого другого стиля.
Тут иногда и без
@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'ом.
Это нам надо ?
Отсутствует
Ну, если для них и делается, то почему бы и нет.
А завтра моя левая пятка спросит меня
Ой, добавила в userChrome.css
#urlbar .urlbar-input {
background-color: lightgreen !important;
}
Но не работает. Что делать ?
И что мне ей ответить ?
Отредактировано Dumby (25-05-2015 17:12:44)
Отсутствует
И что мне ей ответить ?
Нууу,
@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; }
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
спасибо за некоторые примеры приведенные тут. только мне как новичку ничего не понятно..
поставил DOM Inspector, вобще не ясно как в нём чтото "найти" то что нужно. от turbot были неплохие примеры, но не понял как же указать в какое меню вставляешь команду или скрываешь? я непротив вобще "пересобрать" менюшки полностью, для собственного порядка команд, понять бы Как... когдато пользовался Oper'ой и там было весьма не сложно, а тут совсем завяз.
посмотрел Custom Buttons, штука интересная, но там совсем уже коды пошли, а значит ещё больший "лес" как их в меню вставить
Отсутствует
как в нём чтото "найти"
Custom Buttons c Attributes Inspector
же. Нажимаете кнопку Attributes Inspector'а, наводите на нужный элемент и ctrl+I (либо средней кнопкой мыши). DOM Inspector запустится с фокусом на этом элементе. Если нужно, чтобы менюшка не закрылась (после запуска DOM Inspector'а), то ctrl+shift+I (для менюшки урл-бара есть баг пока). Подробнее - в справке кнопки (пункт в ее контекстном меню).
Добавлено 27-05-2015 23:03:55
как их в меню вставить
Много готовых кнопок и примеров. Даже я бы мог сделать вам вашу
"Paste&go in new tab"
, но контекстное меню урбара не имеет id, а я так и не освоил getAnonymousElementByAttribute, и не знаю, как всунуть пункт в такое меню. Напишите свой запрос в тему по CB, подробно описав, что требуется, и кто-нибудь наверняка поможет.
Отредактировано turbot (27-05-2015 23:03:55)
Отсутствует
но контекстное меню урбара не имеет id, а я так и не освоил getAnonymousElementByAttribute, и не знаю, как всунуть пункт в такое меню.
Вот для примера "Вставить и искать" пункт контекстного меню адресной строки | Форум Mozilla Россия . Думаю - осилите.
Отсутствует
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"));
UPD: Поправил. Теперь значение адресной строки страницы, с которой осуществлялся поиск/переход, остается прежним. (Но фокус/выделение в адресной строке страницы, с которой осуществлялся поиск/переход, не снимается. Как убрать - пока не придумал). - придумал
Отредактировано turbot (08-08-2015 02:22:02)
Отсутствует