из-за недоработки оригинального скрипта обречены переубеждать всех, что это не недостаток sidebar_tabs.js от Виталия.
Удалено
Соответственно сама кнопка в тулбаре у меня всегда отображается как нажатая.
Это не баг, так и задумано кнопка не выделенна только когда сайдбар полностью закрыт т.е. отключен, а в режиме автоскрытия он обычно просто скрыт т.е. находится за пределами окна и невидим, а при активации просто "въезжает" в окно, это значит что в сайдбаре может выполнятся сценарий сайта даже когда сайдбар скрыт. А сделать чтобы сайт выгружался когда сайдбар скрывается может быть не удобно по причине автоскрытия и отображения поверх страницы.
атрибут notselectedsinceload добавляется всегда при переключении на вкладку, даже когда этого атрибута нет. Проверку желательно сделать
Да можно сделать но это не обязательно, на анимацию браузера это не повлияет от слова совсем, а только для этого этот атрибут используется в [firefox], по соображениям оптимизации кода тоже, в одном случае лучше так в другом наоборот.
Опаньки, с кода "false" == true; консоль выдала мне false
Это слегка неожиданно.
Это же нестрогое равенство, сначала преобразуется так
Открывал в фоне подряд один и тот же сайт 20 раз и в двух случаях вкладки окрашивались, а в остальных нет.
Сомнительный результат у меня только раз не окрасилось, но не в этом дело а смысл помечать вкладки непрочитанными загруженные из кеша, это не логично,
атрибут notselectedsinceload добавляется только когда идет загрузка из сети, поэтому безусловно это плюс, но если хотите поспорить дело ваше.
UCF скрипты часто приходится адаптировать для userChromeJS, а наоборот - не в курсе
Ну я тоже особо не в курсе userChromeJS, потому как естественно считаю свой продукт лучше. Скажу так, все или c адаптацией скрипты userChromeJS могут работать в UCF, а наоборот даже адаптировать не все получится.
все
removeListener, потому что они и так удаляются
Типа полагаться на сборщик мусора, ну это такое себе
, !1);
А это что, укороченная запись false? При том что если не нужно делать перехват т.е. true, то false п
…Зачем они так сделали, настройка layout.css.light-dark.enabled тогда зачем?
Что сделали? Настройка для поддержки или неподдержки сайтов например с функцией light-dark
Для стилей браузера настройка не влияет.
Если включен и атрибут зависим от анимации, то его тоже не будет, если открывать в фоне about:config и прочее подобное. При настройке browser.cache.check_doc_frequency = 2 вкладки будут открываться в зависимости от попадания в кеш, то есть атрибут то будет, то нет
Это всё скорее плюсы чем минусы, зачем на всё подряд лепить unread атрибут...
(не для UCF)
А есть такой скрипт что не заработает в UCF ?
Может есть вариант прибить стробоскоп
А что это, белая вспышка при загрузке сайта? Посмотрел с разными темами вроде не наблюдаю такого.
Также попробовал установить Dark Reader, с ним есть вспышка на этом форуме независимо от настройки ui.prefersReducedMotion
единственное, посетив (активировав) эту вкладку и перейдя затем на другую она остаётся в тех же цветах.
Так это только со скриптом будет правильно работать. А мой скрипт для UserChromeFiles
Вкладки "Downloads" и "Add-ons" в sidebar_tabs со светлым фоном
Да.
В [linux] вообще не воспроизводится, посмотрел в [windows] действительно так.
Чтобы включить цветовую схему требуется объявить для browser color-scheme: light dark;
6e73epo
Атрибут удаляется на активной вкладке при обновлении страницы, нужен для анимации чтобы изменить animation-name
omni/chrome/browser/skin/classic/browser/tabbrowser/tabs.css:
&[bursting][notselectedsinceload]::before {
animation-name: tab-burst-animation-light;
}
может можно как то использовать, если сбрасывать атрибут? Все равно скрипт сочинять придется.
Уже использовал во времена биндингов https://forum.mozilla-russia.org/viewto … 84#p763384
Теперь такой скриптик можно, проще чем с гитхаба
(async () => ({ init() { gBrowser.tabContainer.addEventListener("TabSelect", this); setUnloadMap(Symbol("notselectedsinceload"), this.destructor, this); }, handleEvent({target}) { target.setAttribute("notselectedsinceload", "false"); }, destructor() { gBrowser.tabContainer.removeEventListener("TabSelect", this); }, }).init())();
В стиле выше
…grom17
Тогда лучше использовать вложенный стиль чтобы не повторять одно и тоже,
кстати для незагруженных вкладок скрипт не нужен
[spoiler][code].tabbrowser-tab {
/* Активные вкладки */
&[selected] {
.tab-label {
color: light-dark(goldenrod, gold) !important;
font-weight: bold !important;
}
.tab-background {
background-color: light-dark(white, darkblue) !important;
}
}
/* Неактивные вкладки */
&:not([selected],[multiselected]) {
.tab-label {
color: light-dark(gray, darkgray) !important;
}
.tab-background {
background-color: light-dark(gainsboro, black) !important;
}
}
/* Активные вкладки (при соединении) */
&[busy][selected] {
.tab-label {
color: light-dark(gray, darkgray) !important;
}
.tab-background {
background-color: light-dark(white, darkblue) !important;
}
}
grom17
Как-то так, наверно, если имеется ввиду цвет текста,
функцию light-dark конечно необязательно использовать.
[spoiler][code]/* Цвет текста активной вкладки (обычной) */
.tabbrowser-tab[selected] .tab-label {
color: light-dark(goldenrod, gold) !important;
font-weight: bold !important;
}
/* Цвет текста неактивной вкладки (обычной) */
.tabbrowser-tab:not([selected]) .tab-label {
color: light-dark(gray, darkgray) !important;
}
/* Цвет текста неактивной вкладки (обычной при наведении) */
.tabbrowser-tab:hover:not([selected]) .tab-label {
color: light-dark(goldenrod, gold) !important;
}
/* Цвет текста активной вкладки (при соединении) */
.tabbrowser-tab[busy][selected] .tab-label {
color: light-dark(gray, darkgray) !important;
}
/* Цвет текста неактивной вкладки (при соединении) */
.tabbrowser-tab[busy]:not([selected]) .tab-label {
color: light-dark(gray, darkgray) !importa
All
Вот только это не для всех, данная кнопка нерекомендуемый способ, т.е. костыль, кому надо переключать урезанное AutoHide. С остальным лучше справится кнопка в составе Sidebar Tabs.
egorsemenov06
нет пока не охота с этим заниматься, так что вот так.
у меня с обновленным расширением вообще перестал работать клик на закладках
Ну а вы как хотели, не буду же я после каждого обновления расширения проверять работает ли оно с нестандартным загрузчиком, если используете то не обновляйте.
startup.js -> строка 67 заменить win на this.win
А закрывать по щелчку в поле контента нельзя?
Проверяйте
Лечится удалением из parent.js всех mozSystemGroup: true
Зачем они там — понять не смог.
Это нужно для panel'ей , без системных слушателей не перехватываются события от мыши и они закрываются, а этого не нужно если не включена соответствующая настройка
За сайдбар спасибо, исправил теперь для сайдбара без mozSystemGroup.
Но для браузера — это немного странно
Мне так надо было, добавил настройку.
в parent.js замечен toolbar#add-additional-vertical-bar
что слегка несовременно.
Да прикольно, исправил на просто toolbar, так не устареет, наверно
29-06-2024 12:05:43
только плитки на новой вкладе открывается постоянно новые
Ну я так в расширении делать не буду для правильной работы нужно учитывать перенаправления а для этого нужен сетевой запрос, что слегка долго
…сделать так, чтобы нажимая на родную кнопку sidebar_tabs, выезжала боковая панель, но не сдвигая страницу вправо, а поверх содержимого страницы?
Хорошо добавил параметр SHOW_HIDE https://github.com/VitaliyVstyle/Vitali … abs.js#L41
Параметр влияет на кнопку (кроме кнопки закрытия на самом Sidebar Tabs) и сочетания клавиш. Например клик по кнопке показывает панель, для скрытия можно использовать повторный клик или клик в области контента.
Для полного закрытия Sidebar Tabs (то что делала кнопка и раньше) можно использовать Shift + ЛКМ по кнопке, или без модификаторов по кнопке закрытия Sidebar Tabs.
Полное закрытие значит выгрузка контента из Sidebar Tabs, удаление всех слушателей а значит отключение показа панели по наведению курсора на область срабатывания.
28-06-2024 13:26:14
Вот мне тоже по наведению не нравится, хотелось бы иметь возможность вызывать
…
обнновите пожалуйста еще вот эту кнопку
Ничего себе кнопка это моё расширение, но модифицированное, почему бы вам к автору мода Dumby не обратится?
подключается так
Многовато подключений это же регулярные выражения, можно заменить три в scriptschrome и scriptsallchrome
но одно в scriptsallchrome
{ path: "ucf_UndoBookmarksContextMenu.uc.js", urlregxp: /^chrome:\/\/browser\/content\/(?:browser|places\/(?:bookmarksSidebar|places))\.xhtml/, },
вроде работает как мне надо, но не знаю правильно или нет.
Не могли бы Вы обновить еще одну кнопку
Разве что обновить в смысле оформить для UCF
[spoiler]
(async ( timeout = 150, trg = document.querySelector("#tabbrowser-tabs tab.tabbrowser-tab").flattenedTreeParentNode, ) => ({ id: 0, tab: null, init() { trg.addEventListener("mouseover", this); setUnloadMap(Symbol("tab_focus"), this.destructor, this); }, handleEvent({target}) { var tab = target.closest("tab:not([selected])"); if (tab && this.tab != tab) clearTimeout(this.id), this.id = setTimeout((t, x) => { if (t.matches(":hover") && Math.abs(x - t.screenX) < 50) gBrowser.selectedTab = t; this.tab = null; }, timeout, this.tab = tab, tab.screenX); }, destructor() { trg.removeEventListener("mouseover", this); }, }).init())();
[/s
…Но я так и не понял как исключить некоторые кнопки
Ну как в excludeBtnSelectors добавляете селекторы, ID или например так сразу для всех расширений
"toolbarbutton[data-extensionid]",
а что бы менюшки сами закрывались можно сделать
Все что ли? тогда попробуйте добавить в hideAreaSelectors
"toolbar",
"popupset",
или раскомментируйте то что там есть только для закладок на панели,
кстати логика самозакрытия несколько отличается от того что было, они закрываются при наведении курсора на область контента, иначе получаем неожиданное закрытие меню например при при отводе курсора на другое меню вызываемое по ПКМ
что бы прозрачность можно было бы регулировать у всех меню?
Я неоднократно писал что не делаю стили для того что должны изменять темы, другое дело если темы не могут изменить цвет например menupopup
то использую стиль для меню с цветами от темы, выглядит так https://github.com/VitaliyVstyle/Vitali … .github.io
Прозрачность не использую, но теоретически если в теме есть прозрачность для panel то и menupopup будут прозрачными.
Автоматически открывать меню
Автоматически закрывать меню
наконец дошли руки для отлавливания этих менюшек, тестируйте кому надо новый скрипт
[spoiler][code](async (
id = Symbol("mouseover_openpopup"),
delay = 300,
hidedelay = 1000,
btnSelectors = [
"#PanelUI-menu-button",
"#library-button",
"#fxa-toolbar-menu-button",
"#nav-bar-overflow-button",
"#star-button-box",
"#pageActionButton",
"#unified-extensions-button",
"#downloads-button",
"#alltabs-button",
],
excludeBtnSelectors = [
"#tabs-newtab-button",
"#new-tab-button",
"#back-button",
"#forward-button",
],
areaSelectors = [
"toolbar",
],
hideAreaSelectors = [
// "#PlacesToolbarItems",
],
excludeHidePopupSelectors = [
"#contentAreaContextMenu",
"#contentAreaContextMenu :scope",
"#PopupSearchAutoComplete",
"#
egorsemenov06
список селекторов:
#allTabsMenu-searchTabs
#allTabsMenu-closeDuplicateTabs
#allTabsMenu-containerTabsButton
#allTabsMenu-hiddenTabsButton
пример:
#allTabsMenu-searchTabs {
list-style-image: url("икон");
}
-
egorsemenov06
А обязательно новую добавлять? от Sidebar Tabs "resource://ucf_sidebar_tabs" лучше используйте чтобы одинаковые были,
добавить в Object.entries({
class: "menuitem-iconic", style: 'list-style-image:url("resource://ucf_sidebar_tabs");-moz-context-properties:fill,stroke,fill-opacity;stroke:currentColor;fill:currentColor;fill-opacity:var(--toolbarbutton-icon-fill-opacity,.8);',