Пожалуйста, подскажите, как перекрасить бейдж на кнопке вот этого расширения?
Перепробовал разные комбинации селекторов - исчезает, но не перекрашивается.
Отсутствует
razoo
#xxxxxxxxxxxxxxxx(например)-browser-action .toolbarbutton-badge { background-color: rgba(0,66,66, 0.8) !important; color: rgba(210, 210, 210, 1) !important; }
Отсутствует
xrun1
Нет это проблема из-за Hover Links (v2)
т.к. он делает пустыми атрибуты title (там где сможет), вероятно для того чтобы показывалось вместо подсказки браузера его окошко.
Отредактировано Vitaliy V. (03-09-2020 13:52:47)
Отсутствует
_zt
ID заменить на свой.
Спасибо, но этот вариант я первым пробовал. Не работает. По крайней мере у меня и на этом аддоне.
upd:
дело не в аддоне - никакие бейджи теперь таким методом не перекрашиваются.
Отредактировано razoo (03-09-2020 21:08:40)
Отсутствует
razoo
а так ?
... *|*.toolbarbutton-badge ...
Отсутствует
razoo
Имеет смысл поиском по всей папке chrome пройтись. У меня то работает, глобально для color, индивидуально для #xxx background-color и + смещение для панелей.
Vitaliy V.
Что дает или делает *|*, в двух словах?
Отсутствует
_zt
обычно у юзеров по умолчанию пространство имен установлено в xul
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
а .toolbarbutton-badge это HTML-элемент и поэтому стиль не работает.
Если добавить пространство имен для HTML-элементов (по умолчанию остается xul)
@namespace html url("http://www.w3.org/1999/xhtml");
тогда можно так оформить
html|*.toolbarbutton-badge
или так
html|label.toolbarbutton-badge
Ну или если нет никакого пространства имен как у вас то будет работать просто .toolbarbutton-badge
Отредактировано Vitaliy V. (04-09-2020 12:50:46)
Отсутствует
Vitaliy V.
А вот это уже интересно. Еще интереснее то, что у меня до сих пор в основном userChrome.css
/*AGENT_SHEET*/ @namespace url(http://www.w3.org/1999/xhtml); @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
/* Бэйджи, только цвета */ .toolbarbutton-badge { /* background-color: rgba(238, 49, 49, 1) !important; */ color: rgba(210, 210, 210, 1) !important; }
Отредактировано _zt (04-09-2020 13:54:30)
Отсутствует
В этом посте https://forum.mozilla-russia.org/viewto … 45#p764245 имеется код: как перекрасить цвет выделения, когда мы подводим курсором мыши к сохранённым закладкам в Боковой панели(CTR+B).
А можно сделать точно также для панели закладок.
Отредактировано sibirnik (04-09-2020 14:28:40)
Отсутствует
@namespace url(http://www.w3.org/1999/xhtml);
@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
определитесь какое пространство имен по умолчанию использовать, но в этом случае будет xul
а верхнее не при делах.
работает.
нет это не может работать убедитесь сами если оставить только это в userChrome.css
/*AGENT_SHEET*/ @namespace url(http://www.w3.org/1999/xhtml); @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); .toolbarbutton-badge { color: red !important; }
/*AGENT_SHEET*/ нужен сейчас или нет?
нет и никогда не был нужен в userChrome.css, это только для старого xul расширения Stylish использовалось
А вот что я писал пока ваш ответ не увидел.
а что непонятного очевидно же что *|* работает всегда неважно какое указано пространство имен.
SidebarModoki
О нет, с этой мутной панелью лень возится, её придется полностью переделывать
sibirnik
или
toolbarbutton.bookmark-item:hover:not(:is(.subviewbutton,[disabled="true"],[open])) { background-color: blue !important; color: white !important; }
Отсутствует
Vitaliy V.
Вы меня не поняли. Нужно перекрасить цвет выделения, когда мы подводим курсором мыши к сохранённым закладкам в папках и ссылкам в этих папках на панели закладок. По аналогии в указанном посте.
А предложенные вами коды красят сами папки на панели(и всё), а во внутри этих папок всё без изменений.
Отсутствует
sibirnik
в этих меню по умолчанию используется системный стиль и background там просто так не сработает
если используете общий стиль для меню как этот https://forum.mozilla-russia.org/viewto … 65#p764365
то в стиле можно изменить или добавить ниже только для закладок как то так
:not(#ContentSelectDropdown) > menupopup .bookmark-item[_moz-menuactive="true"]:not([disabled="true"]) { background: blue !important; color: white !important; }
Отредактировано Vitaliy V. (04-09-2020 15:20:34)
Отсутствует
Vitaliy V.
А вот что я писал пока ваш ответ не увидел.
а что непонятного очевидно же что *|* работает всегда неважно какое указано пространство имен.
Это как бы писалось к тому что ниже и ни какого отношения к тому что выше не имеет.
нет это не может работать убедитесь сами если оставить только это в userChrome.css
Перепроверил. Влияет вот этот код перед пространствами:
@-moz-document url("chrome://browser/content/browser.x") { #tabbrowser-tabpanels, tabbrowser#content, .browserContainer > .browserStack > browser { -moz-appearance: none !important; background: rgb(27,27,29) !important; } *|*:root[privatebrowsingmode="temporary"] #tabbrowser-tabpanels { background-color: rgb(27,27,29) !important; } } @namespace url(http://www.w3.org/1999/xhtml); @namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);
Отредактировано _zt (04-09-2020 16:02:09)
Отсутствует
Почему?
Потому что такое правило, его нельзя вставить куда попало
@charset
@import
@namespace
только потом остальное
Отсутствует
Это не работает
Этот скрипт чуть подправить надо, т.к. он не обновлялся с 69 версии. У себя правил для журнала сменой xul на xhtml в chrome://browser/content/places/historySidebar.xul, уж не помню когда, в 72 кажется. Подключен в user_chrome_files, работает по журналу везде, кроме библиотеки, вплоть до 82
// (function() { var b_urlbar = false; var b_searchbar = true; function whereToOpenLinkMod() { { var b_bookmarks = false; var b_history = true; var b_syncedtab = false; if (!e) return 'current'; var win = window.opener || window; var isTabEmpty = win.isTabEmpty; var gBrowser = win.gBrowser; if (typeof isTabEmpty === "function" && isTabEmpty(gBrowser.mCurrentTab || gBrowser.selectedTab) || gBrowser.selectedTab.isEmpty) return 'current'; var node = e.originalTarget; while (node) { if(node.className && node.className.indexOf('bookmark-item') != -1 && node.outerHTML && node.outerHTML.indexOf('scheme="javascript"') != -1) { return 'current'; } if (node.className && node.className.indexOf('sync-state') != -1) { // sidebar syncedtabs return b_syncedtab ? 'tab' : 'current'; } switch (node.id) { case 'bookmarksMenuPopup': // menubar bookmarks case 'BMB_bookmarksPopup': // navibar bookmarks case 'PanelUI-bookmarks': // navibar bookmarks case 'bookmarksPanel': // sidebar bookmarks return b_bookmarks ? 'tab' : 'current'; case 'goPopup': // menubar history case 'PanelUI-history': // navibar history case 'history-panel': // sidebar history return b_history ? 'tab' : 'current'; case 'placeContent': // library bookmarks&history var collection = document.getElementById('searchFilter').getAttribute('collection'); var tab = collection === "bookmarks" && b_bookmarks || collection === "history" && b_history; return tab ? 'tab' : 'current'; case 'PanelUI-remotetabs': // navibar syncedtabs return b_syncedtab ? 'tab' : 'current'; } node = node.parentNode; } return 'current'; } } function generateReplacement(func, regexp, replacementFunc, appendMatch, appendAhead) { var replacementStr = replacementFunc.toString().replace(/^.*{|}$/g, ''); if (appendMatch) { if (appendAhead) { replacementStr = '$&' + replacementStr; } else { replacementStr = replacementStr + '$&'; } } var funcStr = func.toString().replace(regexp, replacementStr); if (!funcStr.startsWith("function")) { funcStr = "function " + funcStr; } return funcStr; } function generateWhere() { where = typeof isTabEmpty === "function" && isTabEmpty(gBrowser.mCurrentTab || gBrowser.selectedTab) || gBrowser.selectedTab.isEmpty ? 'current' : 'tab'; } if (location == 'chrome://browser/content/browser.xhtml') { /* :::: Open Bookmarks/History in New Tab :::: */ eval('whereToOpenLink = ' + generateReplacement(whereToOpenLink, /(return "current";)(?![\s\S]*\1)/g, whereToOpenLinkMod)); var sidebar = document.getElementById('sidebar'); sidebar && sidebar.addEventListener('DOMContentLoaded', function(event) { var doc = event.originalTarget; var win = doc.defaultView.window; if (win.location == 'chrome://browser/content/bookmarks/bookmarksPanel.xul' || win.location == 'chrome://browser/content/history/history-panel.xul' || win.location == 'chrome://browser/content/places/bookmarksSidebar.xul' || win.location == 'chrome://browser/content/places/historySidebar.xhtml' || win.location == 'chrome://browser/content/syncedtabs/sidebar.xhtml') { eval('win.whereToOpenLink = ' + generateReplacement(win.whereToOpenLink, /(return "current";)(?![\s\S]*\1)/g, whereToOpenLinkMod)); } else if (win.location == 'chrome://browser/content/readinglist/sidebar.xhtml') { /* :::: Open Sidebar ReadingList in New Tab :::: */ eval('win.RLSidebar.openURL = ' + generateReplacement(win.RLSidebar.openURL, /mainWindow\.openUILink\(url, event\);/, generateWhere, true)); } }); /* :::: Open Url in New Tab :::: */ if (b_urlbar) { var urlbar = document.getElementById('urlbar'); urlbar && eval('urlbar.handleCommand=' + generateReplacement(urlbar.handleCommand, /let where = openUILinkWhere( \|\| this\._whereToOpen\(event\))?;/, generateWhere, true, true)); } /* :::: Open Search in New Tab :::: */ if (b_searchbar) { var searchbar = document.getElementById('searchbar'); searchbar && /*{true: function() {*/ eval('searchbar.handleSearchCommand=' + generateReplacement(searchbar.handleSearchCommand, /this\.doSearch\(textValue, where(, aEngine)?\);|this\.handleSearchCommandWhere\(aEvent, aEngine, where, params\);/, generateWhere, true)); /*}, false: function() { searchbar.addEventListener('load', this[true]); }}[!!searchbar.handleSearchCommand]();*/ var oneOffButtons = document.getElementById('PopupSearchAutoComplete').oneOffButtons; oneOffButtons && eval('oneOffButtons.handleSearchCommand=' + generateReplacement(oneOffButtons.handleSearchCommand, /this\.popup\.handleOneOffSearch\(aEvent, aEngine, where, params\);/, generateWhere, true)); if (b_urlbar) { var oneOffSearchButtons = document.getElementById('PopupAutoCompleteRichResult').input.popup.oneOffSearchButtons; oneOffSearchButtons && eval('oneOffSearchButtons.handleSearchCommand=' + generateReplacement(oneOffSearchButtons.handleSearchCommand, /this\.popup\.handleOneOffSearch\(aEvent, aEngine, where, params\);/, generateWhere, true)); } } } else if (location == 'chrome://browser/content/places/places.xul') { /* :::: Open Bookmarks/History in New Tab :::: */ eval('whereToOpenLink = ' + generateReplacement(whereToOpenLink, /(return "current";)(?![\s\S]*\1)/g, whereToOpenLinkMod)); } })();
Vitaliy V.
Может Вы нам как-нибудь напишите современный и компактный грамотный скрипт для открытия ссылок только из журнала в новой вкладке? Можно и из строки поиска ещё бы. Спасибо.
Отредактировано sandro79 (04-09-2020 20:21:22)
Отсутствует
Имеет смысл поиском по всей папке chrome пройтись.
Во-первых, я проверил на чистом профиле.
Во-вторых, оказалось имело смысл, но не для меня.
В-третьих, надо этот вопрос закрыть, не в последнюю очередь для тех, кто будет искать ответ позже: Оставлять ли пространство имён only.xul по дефолту.
(по умолчанию остается xul)
Насколько помнится, "разделённый астериск" встречался в стилях и десять лет назад, но неопределяемые html элементы было достаточно отделять ">" или "> stack >". Это до сих пор работает для старых расширений (у меня точно работает на старом счётчике табов). Теперь нужно уточнять пространство имён дополнительно. Достаточно к конкретной части таблицы применить, выделив как xhtml?
Короче говоря, как теперь корректней оформить usercrome? Универсальное решение на будущее? (Сколько там ещё продержится зул и поддержка кастомных стилей.)
Отредактировано razoo (04-09-2020 23:30:49)
Отсутствует
razoo
Во первых, откуда в чистом пространство имен взялось? )
Во вторых, для вас, у вас же не работало изначально. ) Мне то чего искать, если изначально все работало.
В третьих, отвечать не надо, с вами и так все понятно.
sandro79
У меня не работает, ни так, ни в ucf. Куда он у вас подключен?
Вообще абсолютно нелогичное поведение открытия в Firefox. Мне вот интересно, кто нибудь открывает закладки и историю, кроме как через контекстное меню? Очень сомневаюсь.
Отредактировано _zt (05-09-2020 10:04:03)
Отсутствует
Куда он у вас подключен?
/* ************************************************ */ // Здесь может быть ваш код который сработает по событию "load" не раньше setTimeout(() => { var loadScripts = ((name) => { try { Services.scriptloader.loadSubScript(`chrome://user_chrome_files/content/custom_scripts/${name}`, window, "UTF-8"); } catch(e) {} }); loadScripts("favicon_in_urlbar.uc.js"); loadScripts("search_engine_icon.uc.js"); loadScripts("openNewTab.uc.js"); loadScripts("Tabs_Focus.uc.js"); loadScripts("tabstoolbar_doubleclick_opennewtab.uc.js"); loadScripts("restart_item_in_menu.uc.js"); loadScripts("add_a_bookmark_to_the_bookmarks_menu.uc.js"); // и так далее }, 0); /* ************************************************ */
Отредактировано sandro79 (25-02-2021 09:33:40)
Отсутствует
kokoss
Исключения подтверждают правило.
sandro79
Работает и, наверное раньше работал, но не для SidebarModoki.
Vitaliy V.
Если будете новый скрипт для истории писать, добавьте пожалуйста совместимость с SidebarModoki.
Отсутствует