Свои JavaScript и CSS на любом сайте
Userscript и userstyle — расширение позволяет запускать собственные скрипты и стили оформления на любых сайтах. JavaScript и CSS подключаются мгновенно, еще до загрузки страницы, поэтому результат выходит без задержек.
Преимущества:
- Мгновенный запуск
- Возможность добавлять свои библиотеки
- Система URL масок позволяет гибко изменять список сайтов к которым будут применены изменения
Документация:
https://tenrabbits.github.io/user-js-css-docs/ru/
История изменений:
Версия 3.0.6 beta
- удалена обертка `try catch`
- улучшено внедрение CSS
- добавлена кнопка сохранения конвертированного URL
Версия 3.0.5 beta
- вернулся метод внедрения CSS через DOM
- незначительные исправления
Версия 3.0.3 бета
- модули теперь находятся в одной области видимости
- улучшение подключения CSS
- другие мелкие исправления
Версия 3.0.2 бета
- hotfix: исправлена ошибка с регистрацией и удалением скриптов
- добавлена возможность менять запускать скрипты перед загрузкой страницы
- добавлена возможность строгого чтения URL паттернов
Версия 3.0.1 бета
- Улучшение работы внедрения CSS
- Фикс загрузки внешних модулей при замене хранилища
Версия 3.0.0 бета
- Расширение переведено на MV3
- Появилась опция устанавливать скрипты и стили в iframe
- Появилась возможность "живого" редактирования CSS
- Добавилась тема One Dark и несколько других улучшений
Версия 2.0.0
- 90% кода было переписано;
- Улучшен пользовательский интерфейс;
- Добавлена поддержка SASS;
- Добавлено форматирование кода через Prettier;
- Другие незначительные улучшения.
Версия 1.2.8
- Добавлена функция именования правил
- Обновлены переводы
Версия 1.2.7
- Обновлены все библиотеки которые использованы в расширении
Версия 1.2.6
- Исправлена ошибка "Unchecked runtime.lastError: The message port closed before a response was received"
- Улучшен алгоритм выделения домена в URL
- Обновлены библиотеки Ace Editor и jQuery
Версия 1.2.5
- Решен баг с пропажей "@import" в CSS при включенной опции "приоритетный CSS"
- "Приоритетный CSS" по умолчанию отключен
- Добавлена возможность исключения URL адресов символом '!'
- Обновлены библиотеки jQuery и Ace Editor до последних версий
- Другие незначительные изменения
Версия 1.2.4
- Добавлена функция ручной загрузки хранилища в облако в тестовом режиме
- Улучшен алгоритм подстановки высокого приоритета к CSS стилям
- Другие незначительные изменения
Версия 1.2.1
- Исправлен алгоритм "высокого приоритета CSS"
Версия 1.2.0
- Добавлен переключатель работы правила в список
- Добавлена документация
- Добавлена опция 'Vintage mode' для редактора
- Обновлены jQuery и Ace Editor до последних версий
- Другие небольшие изменения
Версия 1.1.5
- Возвращен старый метод внедрения скриптов и стилей, добавлен переключатель на новый метод. Новый метод (альтернативный) позволяет избегать проблем с CORS и подключать библиотеки без конфликтов с сайтом, но имеет доступ только к DOM дереву (без контекста сайта). Старый метод и ныне включенный по умолчанию добавляет скрипты посредством тэга <script> в конце страницы.
- Добавлен scroll past end в редактор
Версия 1.1.2
- Незначительные исправления
Версия 1.1.0
- Переписана система внедрения скриптов значительно повышающая производительность
- Добавлена возможность вписывать несколько адресов через запятую
- Добавлена опция переноса слов в редакторе
- Добавлена опция максимального приоритета CSS правил
- Небольшие изменения в работе расширения
Версия 1.0.2
- Исправление ошибок
Версия 1.0.0
- Полный редизайн расширения
- Добавлены новые настройки
- Добавлен выключаемый счетчик сайтов на иконке расширения
Версия 0.98
- Исправлен баг мешающий сохранять сайты
- Небольшие изменения в работе расширения
Версия 0.96
- Полный редизайн интерфейса расширения
- 80% кода ядра было переписано
- Добавлена возможность изменения адреса с использованием масок с помощью символа "*" (например *.expample.com)
- Окно редактора открывается в новом окне
- Функция автосохранения была вырезана
- Добавлена возможность частично настраивать редактор кода
- Добавлена новая иконка
Версия 0.94
- Исправлена ошибка открытия редактора у новых пользователей
Версия 0.93
- Исправлена ошибка при которой JavaScript не всегда мог загрузиться в страницу
- Отключены устаревшие процессы
Версия 0.92
- Автосохранение кода работает для всех страниц
Версия 0.91
- Исправлен парсер зоны ".co.uk"
- Другие незначительные исправления
Версия 0.90
- Улучшение работы "ядра" расширения
- Добавлена возможность загружать свои библиотеки
Расширение всё еще находится в стадии разработки. Если у вас возникли трудности с ним, свяжитесь со мной по email.
Latest reviews
- (2024-09-03) Sreeraj S: Excellent app. Do the job perfectly. Thank you very much - posted in Jul 8, 2019 Updates: In 2024, it is not working properly; sometimes it works, but I don't know why. The previous version was excellent. I am using Google Chrome
- (2024-07-22) Ľuboš Anguš: This is best javascript and css injection plugin available. --- 07. 2024 update After 3.x update it started to behave poorly. Styles are appearing even after deleting them.
- (2024-06-10) Иван Субботин: Лучшее в своём роде. ---------------------------- пользуюсь 4 года, всё супер.
- (2024-02-11) Mi Hunter: Появилась небольшая, но заметная задержка при открытии "Popup" и при переключении вкладок в "Options". (У меня 200+ скриптов, бекап весит больше 2 МБ. На пустом расширении проблем с производительностью нет.) --- Подробнее. "Popup" теперь открывается пустой (без списка скриптов) и в темной теме, и лишь через небольшую задержку он отрисовывается заново в светлой теме со списком скриптом. Раньше он мгновенно отрисовывался со списком скриптом без всяких багов. "Options page" тоже стал медленнее загружаться (задержка есть как при обновлении страницы, так и каждый раз при переключении на вкладку "Rules" или "Extension settings"). Плюс, маленький прямоугольник с текстом RULES тоже сначала отрисовывается в темной теме (хотя это заметно только при нажатии F5). Переключение на вкладку "Extension settings" занимает 150 мс из-за "getZipSize". Переключение на вкладку "Rules" занимает 400 мс (много мелких операций по несколько мс при рендере компонентов Vue). --- Чтобы оптимизировать расширение, стоит просто разбить данные по ключам. Сейчас ключ "rules". Это огромный супер объект (массив) всего и вся: let now = performance.now(); chrome.storage.local.get("rules", obj => {console.log(performance.now() - now, obj);}); ...чтобы его прочесть, тратится 50 мс, т.к. тут парсинг строки на 2+ МБ. Непосредственно пользовательский код JS и CSS нужно вынести в отдельные ключи "storage.local". И обращаться к ним, только когда собственно этот текст будет нужен (для инжекта или для редактора). Кстати, id у правил есть (md5), вот они и пригодятся. Собственно, все. 99 %, что это поможет, как минимум, popup точно будет мгновенно показываться. Т.е: "storage.local" должно выглядеть так: { libs: [...], rules: [...], "code:1234567890abcdef1234567890abcdef": {jsCode, cssCode}, "code:01234567890abcdef1234567890abcde": {jsCode, cssCode}, } Брать {jsCode, cssCode} нужного правила по id, только когда нужно, а не читать весь стор целиком. Например, ViolentMonkey так и хранит данные. Хотя любопытно, что на предыдущей версии (1.2.8) проблем с этим не было. Хотя стор имел схожую организацию. --- id правил, конечно, лучше заменить на инкрементальный (для новых скриптов можно использовать дату создания), чтобы избежать лишнего геммора из-за постоянно меняющегося md5. Заодно можно добавить сортировку по дате создания. --- Также "Intl.Collator()" надо переиспользовать (а не каждый раз вызывать при сортировке), т.к. это тяжелая операция. Это сэкономит несколько десятков мс при сортировке.
- (2024-02-03) Mi Hunter: Появилась небольшая, но заметная задержка при открытии pop up. (У меня 200+ скриптов, бекап весит больше 2 MB.) Теперь pop up открывается пустой (без списка скриптов) и в темной теме, и лишь через небольшую задержку он отрисовывается заново в светлой теме со списком скриптом. Раньше он мгновенно отрисовывался со списком скриптом без всяких багов. Эдитор (данные в нем) тоже стал медленнее загружаться (задержка есть как при обновлении страницы, так и каждый раз при переключении на "вкладку" "Rules"). Плюс, маленький прямоуголькик с текстом RULES тоже сначала отрисовывавается в темной теме (хотя это заметно только при нажатии F5). --- Кнопка бекапа не имеет никакой визуальной индикации на нажатие. Если в браузере выключена индикация загрузок, то не понятно, отработала ли кнопка или нет. --- Касательно нового внешнего вида pop up: По-моему, теперь итемы слишком массивные, я бы уменьшил паддинги. Это особенно заметно, когда скриптов на странице больше 4. Pop up в 2+ раза теперь больше. Раньше был аккуратный список. Также сокрытие чекбокса для активных скриптов спорное решение, более того, невидимый чекбокс все равно заслоняет название. Раньше было сразу видно, какие скрипты включены, какие нет. И это не интуитивно, приходиться наводить на итем, чтобы убедиться, что он включен. Лучше сделать наоборот, чтобы активный чекбокс показывался всегда или показывать чекбокс всегда вне зависимости от состояния. --- Плюс, сортировку по дате создания было бы неплохо добавить. Хотя, конечно, у старых скриптов дата создания магическим образом не появится.
- (2024-01-08) Alan Shum: Improvement idea: - Create an "awesome User Javascript and CSS" repo so everyone could share their scripts! - Sync with my Google Account Competitive edge - completely replaced Tampermonkey and it's super easy to setup. - I can ideally replace all extensions with this, by writing my own scripts - Kiwi Browser (Android) + This extensions = Super duper killer browser that does whatever automations and customization I want
- (2023-11-04) me tinyant: Спасибо за предоставление такого замечательного инструмента! Было бы лучше, если бы страница автоматически обновлялась после изменения статуса правила.
- (2023-11-03) Jimmy Wang: This is so much easier and better to use than Tampermonkey. Thank you! By the way, the donation option might have issues when trying to pay.
- (2023-10-28) Logan Woolf: Wonderful implementation.
- (2023-10-25) Peter: I would love if instead of CSS you would have SASS.
- (2023-09-12) Mohsen Khahani: The "Cloud Storage" feature is awesome. It saved me after I had to remove and re-installed my chrome. I wonder why is not in the feature list.
- (2023-08-18) Daniel Thompson: It's the best.
- (2023-08-09) イヴ: Excellent extension. I wanted to donate to thank the author, but the interface only takes cards. There is no way to donate without releasing card info, like paypal ... :-(
- (2023-08-07) 주영찬: 알잘딱 ㅅㅌㅊ
- (2023-08-06) AxFx: По моему мнению - лучшее расширение для моих задач, благодарю от всей души Автора!
- (2023-07-13) Wilhelm Mauch: Absolutely the best under all custom CSS and JS extensions.
- (2023-07-10) Денис Локтионов: This is the best extension I've ever used. I've been using it for several years, and it's absolutely fantastic.
- (2023-07-01) Ashraf Mohammed: This extension is very useful for me. Previously, I had to manually edit some CSS code to change the appearance of the book reader, but now I can automatically add CSS code to maintain a neat and simple layout.
- (2023-06-27) Volkan Yılmaz: beğendim kullanıyorum. basit ve sadece işini yapıyor, reklam yok, saçma sapan şeyler yok. yapan kimse tebrikler.
- (2023-06-26) Shramee Srivastav: Works perfectly!!
- (2023-06-04) Danh Nguyễn Ngọc: Good!!!!
- (2023-06-03) nowhere nobody: It works very well.
- (2023-06-01) Oleksandr Boiko: This sounds weird, but checked option "Icon badge counter" causes high CPU load when playing videos. The problem seems to be in this exact setting - I have >100KB collection of scripts, and tried different combination of settings, but only checking/unchecking this toggle cases that lag. Probably, something about too frequent updates of the extension icon?
- (2023-06-01) Nikolay Pelov: Adds JS and CSS to pages and doesn't require an account creation and your social security number as most of the other extensions do.
- (2023-05-29) brahim oubbad: good tool i love it thank you so much.
- (2023-05-27) Rajesh: Working Good
- (2023-05-25) Алексей Фирсов: Отличное, минималистичное расширение, которым пользовался несколько лет. Но последнее время при попытке добавления стилей, браузер подвисает и закрывается. Может такое только у меня...
- (2023-05-02) James Anderson: This is the nicest extension for injecting both JS *and* CSS. Needs to be ported to FF
- (2023-04-20) DarkblooM: Waiting for the day we will get SASS support
- (2023-03-29) Даниил Павлов: Отличное расширение, благодаря которому настроил под себя множество страниц. Жаль не умеет в scss, но в целом отлично.
- (2023-03-10) Josh Wilson: I absolutely love this extension! but please add a dark mode for the whole extension, settings page and all, not just the editor window, ive tried to fix it using the extension itself, but it seems css cant be injected into extension pages, like the chrome store, annoyingly
- (2023-03-07) Yuriy Linchuk: ПРЕКРАСНАЯ ПРОГРАММА ! ОНА ПОЗВОЛЯЕТ ЗАТЕМНЯТЬ ОПАСНЕЙШИЕ, СВЕТЛОГО, СЛЕПЯЩЕГО ЦВЕТА ФОТОГРАФИИ ВКОНТАКТЕ, ВО ВРЕМЯ ЖАЛОБ НА НИХ. А ВМЕСТЕ С ПРЕКРАСНОЙ ПРОГРАММОЙ VK STYLES ТЕМЫ ВК, ЖИВЫЕ ОБОИ, КОТОРАЯ ЗАТЕМНЯЕТ ФОН СТРАНИЦ И ШРИФТ, ДОСТИГАЕТСЯ МАКСИМАЛЬНАЯ ЭКОНОМИЯ ПРИ ТАКИХ ЖАЛОБАХ ЗНАЧИТЕЛЬНО ЭКОНОМЯ ЗРЕНИЕ !
- (2023-03-06) William Angel: The best extension
- (2023-03-06) J. Martin: Great extension but fails to work in page iframes :( yes the iframes are for the same domain it just doesnt attach the script or CSS to them
- (2023-03-01) Adrian Boisclair: This is what we have been waiting for. A great app, simple and works great. Sr JS Devs don't require JS Validation ;)
- (2023-02-24) Klaus: I use (and love) it for many websites!! Thx
- (2023-02-07) enjunglipret: Bagus tapi tidak bisa menginject html :(
- (2023-02-01) Kim Lulu: excelente, cumple con lo prometido
- (2023-01-29) Yitao: I wish there's a keyboard shortcut to delete a line of text in the editor
- (2023-01-26) Lucas Cava: Could add a night mode theme to be perfect!
- (2023-01-18) Oxen Furt: thanks dear for this awesome extension
- (2022-12-08) Viktor Grindheim: It works!
- (2022-11-16) Mi Hunter: Старая/ненастроенная версия редактора Ace — без поддержки async/await (см. github.com/ajaxorg/ace/issues/3160#issuecomment-1170018316) Теперь от JavaScript programmatic injection смысла нет. Больше не позволяет обойти CORS. Теперь расширение годится лишь для простеньких скриптов. Придется переписывать скрипты под VioletMonkey. Хоть бы на GitHub были бы исходнии, чтобы можно было допилить расширение, добавив аналог GM.xmlHttpRequst.
- (2022-11-13) Bilal al Obaidi: Very good extension, I can't live without. I suggest to the developer to seperate the Enable/Disable to target CSS or JS seperately, Sometime we need to disable customized JS for a website but we want to keep CSS or vice versa without changing the javascript code (now using Return; in top of js script)
- (2022-11-09) Aleksandr Vesterovskii: Очень классное приложение. Добавьте только тёмную тему
- (2022-11-03) Mohamed Essam: Awesome, very simple and easy to use
- (2022-10-23) Sedov Anton: Working extension, not sure about benefits over TamperMonkey
- (2022-09-02) Luis Celadita (Kodam): Excelente, pero sería mejor si te dejara aplicar css/js sobre páginas de extensiones de chrome.
- (2022-08-22) Dan Rotaru: Great extension but add please scss support for css, exists a lot of libraries that convert your scss to css. Thank you.
- (2022-08-18) Orlando Fernando Marconi: Perfeito, para todos os sites é só colocar * no endereço