JustZix vs Tampermonkey / Greasemonkey — co innego, co lepiej, kiedy które
Tampermonkey jest synonimem "userscripts" od 15 lat. Jeśli ktoś mówi "wstrzykuję JS na stronę", domyślnie myśli Tampermonkey. JustZix robi wszystko co Tampermonkey, plus userstyles (Stylus), plus UI layer którego userscripts nie mają. Ten post pokazuje gdzie się różnimy.
Feature comparison
| Feature | Tampermonkey | Greasemonkey | JustZix |
|---|---|---|---|
| JS injection na URL match | ✓ (@match w header) | ✓ (@include) | ✓ (scope.url) |
| CSS injection | ~ (przez GM_addStyle) | ~ (przez GM_addStyle) | ✓ (dedykowana CSS rule) |
| Live editor w karcie | ✗ | ✗ | ✓ (CSS pane + JS pane) |
| REPL w karcie | ✗ | ✗ | ✓ (JS Console) |
| Pasek akcji z UI buttonami | ~ (GM_registerMenuCommand — w extension popup) | ~ | ✓ (6 typów akcji widocznych na stronie) |
| Share przez URL | ~ (export to .user.js) | ~ (export) | ✓ (TTL link 1-48h) |
| Sync across devices | ✓ (Tampermonkey Cloud — payable) | ✗ | ✓ (chrome.storage.sync, free) |
| Open source | ~ (free version, ale closed-source dla Tampermonkey) | ✓ (Greasemonkey GPL) | ✓ (MIT) |
| @require external scripts | ✓ | ✓ | ~ (fetch w JS rule) |
| GM_xmlhttpRequest (CORS bypass) | ✓ | ✓ | ~ (native fetch, ograniczony przez CORS) |
| Scripts marketplace | greasyfork.org | greasyfork.org | n/a (share linki TTL) |
Gdzie Tampermonkey wygrywa
- @require + external libs — userscripts mogą importować jQuery, Lodash przez URL. JustZix wymaga inline kodu lub fetch'owania przez JS rule.
- GM_xmlhttpRequest — bypass CORS dla cross-domain API calls. JustZix używa natywnego fetch — limited przez page's CORS.
- greasyfork.org marketplace — tysiące userscripts publicznie. JustZix nie ma central registry (celowo — share TTL).
- Existing userscript collection — jeśli masz 50 zainstalowanych userscripts, migracja to praca. JustZix nie importuje .user.js (ale możesz copy-paste body do JS rule).
Gdzie JustZix wygrywa
- UI layer in-tab — paski akcji z BUTTON/SLIDER/TOGGLE3 widoczne na stronie. Tampermonkey ma tylko GM_registerMenuCommand w extension popup (niewidoczne dopóki nie klikniesz icon w toolbar).
- CSS + JS w jednej regule — userstyle + userscript razem, scope=same. Tampermonkey wymaga osobnego Stylus.
- Live editor w karcie — CSS pane / JS pane dla iteracji bez F5.
- Output Console w karcie — debug bez DevTools, dedykowany kanał
JUSTZIX.log. - Snap dashboard — bars + panes układają się w grupy. Tampermonkey nie ma persistent UI poza popup'em.
Migracja 3 typowych userscriptów do JustZix
Script 1: "Auto-skip cookie banners"
Tampermonkey userscript:
// ==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 migracja:
- Nowy folder "Auto-actions"
- Nowa reguła "Cookie skip", scope:
*://*/* - Zakładka JS: wklej body funkcji (BEZ IIFE wrapper'a, BEZ header'a userscript)
- Run-at: JustZix default to "document-end" — zgodne
- Save
Script 2: "GitHub: copy SHA"
Tampermonkey userscript dodaje button "Copy SHA" obok commit hash'a. JustZix:
- Reguła scope:
https://github.com/* - JS rule: ten sam kod observing commit hash elements
- Plus: zamiast tworzyć button DOM, użyj akcji BUTTON "📋 SHA" w pasku akcji JustZix — wizualnie spójne z innymi akcjami
Script 3: "Reddit hide ads"
Tampermonkey userscript ukrywa .promoted elementy. JustZix:
- CSS rule (nie JS!) — czystsze, faster:
.promoted, [data-promoted="true"] { display: none !important; } - Bonus: dodaj TOGGLE3 "Mode" (Default / Hide ads / Hide ads+sponsored) z 3 stanami CSS variables
Patterny CSS-first są często prostsze niż JS observer.
Pułapki migracji
- GM_* APIs są inne. Tampermonkey: GM_setValue, GM_getValue, GM_xmlhttpRequest, GM_notification. JustZix:
chrome.storage.local/sync, natywnyfetch,JUSTZIX.logjako log channel. - @require nie ma equivalent. Userscripts mogą importować jQuery przez URL. W JustZix wkleja inline (~10KB minified) lub
fetch + new Function(CSP risk). - Tampermonkey Cloud Sync płatny. JustZix chrome.storage.sync darmowy ale limited 100KB. Above → chrome.storage.local (no sync). W praktyce: 50-100 reguł.
- greasyfork.org has scripts JustZix doesn't. Jeśli zależysz od konkretnego userscriptu z greasyfork — migracja to spread out (kopiuj body, adaptuj GM_* calls). Realistycznie: 50% userscripts ma <100 linii, migracja ~5 min.
Co dalej
- Migracja ze Stylish/Stylus — counterpart dla userstyles
- Mini-IDE w karcie — co JustZix dodaje poza userscripts
- window.JZ + JUSTZIX — JustZix's equivalent of GM_* API
Zainstaluj JustZix — Tampermonkey może żyć równolegle. Test 2 tygodnie, zobacz który zostanie.
Oceń ten wpis
Brak ocen — oceń jako pierwszy.