Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Mozilla Firefox: стили userChrome.css и скрипты js (Часть 1)
Применение пользовательских стилей и скриптов в Firefox

Модерирует : gyra, Maz

Maz (23-01-2026 14:24): Mozilla Firefox: стили userChrome.css и скрипты js (Часть 2)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

gutasiho

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору



В теме обсуждается настройка внешнего вида Firefox с использованием userChrome.css, userContent.css, а так же использование скриптов js (uc.js).

Родственные темы: Mozilla Firefox | Расширения для Firefox
 
Обсуждение на "Форуме Mozilla Россия":
Настройка внешнего вида Firefox в userChrome.css,
UCF - ваши кнопки, темы, дополнения, скрипты…
 
Темы на GitHub:
Aris-t2 CustomCSSforFx | Aris-t2 CustomJSforFx | xiaoxiaoflood/firefox-scripts | Endor8/userChrome.js | Alice0775 userChrome.js  
VitaliyV UCF - UserChromeFiles | MrOtherGuy/firefox-csshacks (known as MOG) | VicDobrov UCF-скрипты


Просьба публикуемые коды заключать в тэг [code][/code] (из выпадающего меню), а коды более 10 строк - в двойной тэг [more][code][/code][/more] Подробное разъяснение.
 
Как подключить скрипты JS:
метод Aris-t2 | метод xiaoxiaoflood | метод Endor8 | метод user_chrome_files (UCF)
Как подключить скрипты JSM, MJS в загрузчик скриптов от Aris-t2 , а если у вас Firefox v117+, то дополнительно...
 
Еще один способ активации, нюансы: скрипты можно поместить в пользовательслую папку, можно не прописывать активацию каждого скрипта отдельно.
 
Куда вписывать код для стиля userChrome.css и userContent.css
1\ Также не забываем про такую строку в user.js / prefs.js (для включения userChrome.css и userContent.css):
Код:
// Turn on userChrome.css and userContent.css support
// Включить поддержку userChrome.css и userContent.css
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);  
либо эту настройку включить через about:config.
2\ v136+: отключить CSP (Content Security Policy - Политика безопасности контента), снижает безопасность!:
Код:
security.browser_xhtml_csp.enabled = false
3\ v139+: если некоторые скрипты JS не работают, можете сделать так, снижает безопасность!:
Код:
security.allow_unsafe_dangerous_privileged_evil_eval = true  

Полезные ссылки
Онлайн-конвертер иконок в\из Base64
Онлайн-редактор иконок SVG
Онлайн-конвертер SVG to Data URI
Мануал по определению CSS-селекторов элементов интерфейса встроенными средствами браузера

Всего записей: 9388 | Зарегистр. 14-09-2020 | Отправлено: 08:34 29-07-2023 | Исправлено: Maz, 14:21 23-01-2026
Vitaliy977

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN

Цитата:
Делаем onCommand асинхронным

Зачем, вам же нужно просто послать сообщение actor.sendAsyncMessage() а не ждать ответа от actor.sendQuery()

Цитата:
который срабатывает на всех http(s) страницах по событию pageshow

По событию это не обязательно, актер создается также при отправке сообщения той самой кнопкой, главное чтобы он был уже зарегистрирован.
 
Вот простой пример, он рабочий можно использовать в UCF.
imageAnimationMode.js
imageAnimationModeChild.mjs
 
P.S. Но, обычно я так не делаю, с этим простым примером есть некоторая проблема, так как на странице может быть много фреймов, то в какой то момент значение imageAnimationMode может стать разным, поэтому лучше сделать запрос на главный фрейм и проверить его значение
как то так в onCommand
gBrowser.selectedBrowser.browsingContext.currentWindowGlobal.getActor("imageAnimationMode")
                .sendQuery("imageAnimationMode:getToggle").then(state => {
                      state = Number(!state);
                    здесь примерно тоже самое что в onCommand в примере
                    но actor.sendAsyncMessage("imageAnimationMode:Toggle", {state}); отправить с полученным state
                });
ну а в receiveMessage
windowUtils.imageAnimationMode = msg.data.state;

Всего записей: 849 | Зарегистр. 13-10-2013 | Отправлено: 16:41 20-12-2025 | Исправлено: Vitaliy977, 21:23 20-12-2025
gutasiho

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Satanachia
Context menu

Всего записей: 9388 | Зарегистр. 14-09-2020 | Отправлено: 20:05 20-12-2025
alloledd

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitaliy977
Цитата:
если мигает значит должен работать копировать в буфер обмена

Меня осенило и таки нашёл ещё один конфликт.) На этот раз autoCopy.mjs с QTranslate. Вот если QTranslate отключаю, то autoCopy.mjs и мигает, и копирует.

Всего записей: 7779 | Зарегистр. 25-10-2019 | Отправлено: 20:28 20-12-2025
Vitaliy977

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alloledd
А с Dark Reader не он виноват?

Всего записей: 849 | Зарегистр. 13-10-2013 | Отправлено: 21:08 20-12-2025
alloledd

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitaliy977
Точно, он. Вот же вредитель.

Всего записей: 7779 | Зарегистр. 25-10-2019 | Отправлено: 21:17 20-12-2025
Satanachia

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Satanachia
Context menu

Тоже классно
Но все таки с черным фоном и белым шрифтом лучше. Попробую поэкспериментировать с цветами, если не поломаю ничего.

Всего записей: 1295 | Зарегистр. 22-10-2012 | Отправлено: 22:23 20-12-2025
grom17



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Satanachia,
Цитата:
Но все таки с черным фоном и белым шрифтом лучше.

context_menu_config

Всего записей: 1750 | Зарегистр. 12-10-2002 | Отправлено: 23:54 20-12-2025
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitaliy977

Цитата:
windowUtils.imageAnimationMode = msg.data.state;

TypeError: can't access property "state", msg.data is undefined (imageAnimationModeChild.mjs)

Всего записей: 4151 | Зарегистр. 24-10-2002 | Отправлено: 23:55 20-12-2025
grom17



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Без Гамбургера.

Всего записей: 1750 | Зарегистр. 12-10-2002 | Отправлено: 23:55 20-12-2025
Vitaliy977

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
Значит что то не так сделали.
Хорошо вот вариант посложней
imageAnimationMode.js
imageAnimationModeChild.mjs

Всего записей: 849 | Зарегистр. 13-10-2013 | Отправлено: 00:36 21-12-2025 | Исправлено: Vitaliy977, 22:45 21-12-2025
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitaliy977 ок, спасибо. Не заметил, что у меня в обоих случаях отправлялось сообщение с одним и тем же именем. В своем загрузчике подключился к общему дочернему актеру - работает как надо.
Так и не смог понять, что означают пустые кавычки?
messageManagerGroups: ["browsers", "webext-browsers", ""],

Всего записей: 4151 | Зарегистр. 24-10-2002 | Отправлено: 01:36 21-12-2025
alloledd

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitaliy977
Цитата:
Хорошо вот вариант посложней
imageAnimationMode.js [?]
imageAnimationModeChild.mjs [?]

Во, спасибо, переключает хорошо. Только можете сделать, чтоб иконка изменялась, а то ж не видно, включена, или выключена?

Всего записей: 7779 | Зарегистр. 25-10-2019 | Отправлено: 02:01 21-12-2025 | Исправлено: alloledd, 02:07 21-12-2025
Satanachia

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
grom17

Цитата:
Satanachia,
Цитата:
Но все таки с черным фоном и белым шрифтом лучше.
 
context_menu_config


 
Добавлено:
gutasiho

Цитата:
Satanachia
Context menu

Почему то сломалось меню приложений. Я ничего в вашем коде не менял. Браузер r3dfox-146.0
Картинки
Контекстное шикарно смотрится, но проблема с меню приложений

Всего записей: 1295 | Зарегистр. 22-10-2012 | Отправлено: 04:14 21-12-2025 | Исправлено: Satanachia, 04:23 21-12-2025
gutasiho

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Satanachia
Цитата:
но проблема с меню приложений
Ну так поменяйте цвет фона гамбургера. А так же одновременно два стиля не должны управлять одним и тем же визуальным элементом (фоном в данном случае) во избежание конфликта).

Всего записей: 9388 | Зарегистр. 14-09-2020 | Отправлено: 06:53 21-12-2025
Satanachia

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
gutasiho
Меню
Единственное как исправить не знаю. Не очень удобно. Стрелочкой показал
Белый цвет неудобен
В остальном. Беру в работу ваш стиль.Очень понравилось. Но и у grom17 тоже отлично, но для меня сложноват увы.

Всего записей: 1295 | Зарегистр. 22-10-2012 | Отправлено: 08:22 21-12-2025
Vitaliy977

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
Цитата:
Так и не смог понять, что означают пустые кавычки?
messageManagerGroups: ["browsers", "webext-browsers", ""],  

Это позволяет загружать актера для элементов browser когда на нем отсутствует атрибут или название  
<browser messagemanagergroup="название группы" ...
 
alloledd
Цитата:
Только можете сделать, чтоб иконка изменялась, а то ж не видно, включена, или выключена?  

Я для контента так не делаю лишняя нагрузка на браузер, если не отслеживать фреймы то будет как в том скрипте что вы пользуетесь от CB не всегда контент будет соответствовать иконке, например при изменении другим скриптом на текущей странице.

Всего записей: 849 | Зарегистр. 13-10-2013 | Отправлено: 12:33 21-12-2025 | Исправлено: Vitaliy977, 12:36 21-12-2025
alloledd

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Vitaliy977

Цитата:
Я для контента так не делаю лишняя нагрузка на браузер, если не отслеживать фреймы то будет как в том скрипте что вы пользуетесь от CB не всегда контент будет соответствовать иконке, например при изменении другим скриптом на текущей странице.

Ну ладно, буду тогда привыкать. С другой стороны действительно, чего на неё смотреть, по смайлам на странице сразу будет видно, включена, или нет. Главное, что работает. Спасибо.

Всего записей: 7779 | Зарегистр. 25-10-2019 | Отправлено: 13:35 21-12-2025
Death_INN

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не хватает только проверки currentURI.spec, а то если кликнуть по кнопке, находясь, например, на странице about:preferences, то будет ошибка в консоли

Всего записей: 4151 | Зарегистр. 24-10-2002 | Отправлено: 20:57 21-12-2025
Vitaliy977

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Death_INN
Цитата:
Не хватает только проверки currentURI.spec, а то если кликнуть по кнопке, находясь, например, на странице about:preferences, то будет ошибка в консоли

Да не, ненужно такая ошибка не только там, но и на некоторых сайтах бывает, в основном на пустых фреймах about:blank и не рабочих. Просто добавил блок try...catch в imageAnimationModeChild.mjs

Всего записей: 849 | Зарегистр. 13-10-2013 | Отправлено: 22:53 21-12-2025
Satanachia

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В свое время, основной причиной подключения UCF, дополнительные панели.
Все отлично, но есть серьезная проблема независимо от версии браузера.
При переключении нижней панели, ломается порядок кнопок на ней, что ну не есть гуд.
Скриншоты Как поправить?
Не всегда нужно отображение панели. Помогите.
В самом начале топика, нашел панель от Aris-t2, но она как раз и не убирается, а прибита гвоздями.

Всего записей: 1295 | Зарегистр. 22-10-2012 | Отправлено: 09:02 22-12-2025
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

Компьютерный форум Ru.Board » Компьютеры » Программы » Mozilla Firefox: стили userChrome.css и скрипты js (Часть 1)
Maz (23-01-2026 14:24): Mozilla Firefox: стили userChrome.css и скрипты js (Часть 2)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.B0ard 2000-2026

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru