JustZix vs Tampermonkey / Greasemonkey — что меняется, что выигрывает, когда выбрать что
Tampermonkey уже 15 лет — синоним «userscript». Когда кто-то говорит «я внедряю JS на страницу», он, вероятно, по умолчанию думает о Tampermonkey. JustZix делает всё, что делает Tampermonkey, плюс userstyles (как Stylus), плюс UI-слой, которого у userscript'ов нет. Этот пост показывает, где мы отличаемся.
Сравнение функциональности
| Функциональность | Tampermonkey | Greasemonkey | JustZix |
|---|---|---|---|
| Внедрение JS при совпадении URL | ✓ (@match в заголовке) | ✓ (@include) | ✓ (scope.url) |
| Внедрение CSS | ~ (через GM_addStyle) | ~ (через GM_addStyle) | ✓ (выделенное CSS-правило) |
| Живой редактор во вкладке | ✗ | ✗ | ✓ (CSS pane + JS pane) |
| REPL во вкладке | ✗ | ✗ | ✓ (JS Console) |
| Панель действий с UI-кнопками | ~ (GM_registerMenuCommand — в попапе расширения) | ~ | ✓ (6 типов действий, видимых на странице) |
| Шеринг через URL | ~ (экспорт в .user.js) | ~ (экспорт) | ✓ (ссылка TTL 1-48 ч) |
| Синхронизация между устройствами | ✓ (Tampermonkey Cloud — платно) | ✗ | ✓ (chrome.storage.sync, бесплатно) |
| Open source | ~ (бесплатная версия, но Tampermonkey closed-source) | ✓ (Greasemonkey GPL) | ✓ (MIT) |
| @require внешних скриптов | ✓ | ✓ | ~ (fetch в JS-правиле) |
| GM_xmlhttpRequest (обход CORS) | ✓ | ✓ | ~ (нативный fetch, ограничен CORS) |
| Маркетплейс скриптов | greasyfork.org | greasyfork.org | н/д (ссылки для импорта с TTL) |
Где выигрывает Tampermonkey
- @require + внешние библиотеки — userscript'ы могут импортировать jQuery, Lodash через URL. JustZix требует inline-код или fetch в JS-правиле.
- GM_xmlhttpRequest — обход CORS для cross-domain API-вызовов. JustZix использует нативный fetch — ограничен CORS страницы.
- Маркетплейс greasyfork.org — тысячи публичных userscript'ов. У JustZix нет центрального реестра (намеренно — шеринг с TTL).
- Существующая коллекция userscript'ов — если у тебя установлено 50 userscript'ов, миграция — работа. JustZix не импортирует .user.js (но можешь копировать-вставлять тело в JS-правило).
Где выигрывает JustZix
- UI-слой во вкладке — панели действий с КНОПКОЙ/SLIDER/TOGGLE3, видимые на странице. У Tampermonkey только GM_registerMenuCommand в попапе расширения (невидим, пока ты не кликнешь иконку на панели инструментов).
- CSS + JS в одном правиле — userstyle + userscript вместе, scope=идентичен. Tampermonkey требует отдельного Stylus.
- Живой редактор во вкладке — CSS pane / JS pane для итераций без F5.
- Output Console во вкладке — отладка без DevTools, выделенный канал
JUSTZIX.log. - Snap-дашборд — панели + panes организуются в группы. У Tampermonkey нет постоянного UI вне попапа.
Миграция 3 типичных userscript'ов в JustZix
Скрипт 1: «Авто-пропуск cookie-баннеров»
Userscript Tampermonkey:
// ==UserScript==
// @name Cookie skip
// @match *://*/*
// @run-at document-end
// ==/UserScript==
(function() {
const obs = new MutationObserver(() => {
const accept = [...document.querySelectorAll('button')]
.find(b => /accept all/i.test(b.textContent));
if (accept) { accept.click(); obs.disconnect(); }
});
obs.observe(document.body, {childList: true, subtree: true});
})();
Миграция JustZix:
- Новая папка «Auto-actions»
- Новое правило «Cookie skip», scope:
*://*/* - Вкладка JS: вставь тело функции (БЕЗ обёртки IIFE, БЕЗ заголовка userscript)
- Run-at: JustZix использует «document-end» по умолчанию — совпадение
- Сохрани
Скрипт 2: «GitHub: копировать SHA»
Userscript Tampermonkey добавляет кнопку «Копировать SHA» рядом с хешами коммитов. JustZix:
- Scope правила:
https://github.com/* - JS-правило: тот же код, наблюдающий за элементами хешей коммитов
- Плюс: вместо создания DOM-кнопки используй действие КНОПКА «📋 SHA» на панели действий JustZix — визуально согласовано с другими действиями
Скрипт 3: «Reddit: скрой рекламу»
Userscript Tampermonkey скрывает элементы .promoted. JustZix:
- CSS-правило (не JS!) — чище, быстрее:
.promoted, [data-promoted="true"] { display: none !important; } - Бонус: добавь TOGGLE3 «Mode» (Default / Скрыть рекламу / Скрыть рекламу+спонсированное) с CSS-переменными 3 состояний
CSS-first паттерны часто проще JS-observer'а.
Ловушки миграции
- API GM_* отличаются. Tampermonkey: GM_setValue, GM_getValue, GM_xmlhttpRequest, GM_notification. JustZix:
chrome.storage.local/sync, нативныйfetch,JUSTZIX.logкак канал логов. - @require не имеет эквивалента. Userscript'ы могут импортировать jQuery через URL. В JustZix вставляешь inline (~10 KB минифицированно) или
fetch + new Function(риск CSP). - Tampermonkey Cloud Sync платный. chrome.storage.sync JustZix бесплатный, но ограничен 100 KB. Сверх → chrome.storage.local (без синхронизации). На практике: 50-100 правил.
- У greasyfork.org есть скрипты, которых нет у JustZix. Если ты зависишь от конкретного userscript'а greasyfork — миграция разрозненна (скопируй тело, адаптируй вызовы GM_*). Реалистично: 50% userscript'ов меньше 100 строк, миграция ~5 мин.
Что делать дальше
- Миграция с Stylish/Stylus — аналог для userstyle'ов
- Мини-IDE во вкладке — что JustZix добавляет сверх userscript'ов
- window.JZ + JUSTZIX — эквивалент API GM_* в JustZix
Установи JustZix — Tampermonkey может жить параллельно. Попробуй 2 недели, посмотри, что останется.
Оцени эту статью
Оценок пока нет — оцени первым.