API programmatiche — JZ e JUSTZIX
JustZix espone due globali di supporto già pronti in ogni script di regola. <code>JZ</code> pilota i pulsanti azione e <code>JUSTZIX</code> scrive nella finestra Output Console — senza colla DOM artigianale.
Cos'è l'API di supporto nella pagina
Ogni snippet JavaScript di una regola JustZix — e il codice dietro ogni pulsante azione — viene eseguito in un contesto dove ti aspettano due globali già pronti: window.JZ e window.JUSTZIX. Niente da importare, niente da caricare; sono disponibili dalla prima riga del tuo script.
È un'API volutamente piccola. Invece di centinaia di metodi ti dà due punti di aggancio solidi: uno per pilotare i pulsanti azione, uno per loggare. Tutto il resto lo fai con il normale JavaScript della pagina.
JZ — pilotare i pulsanti azione
L'oggetto JZ collega il tuo codice ai pulsanti azione dell'estensione. I metodi chiave sono:
JZ.click('LBL')— clicca programmaticamente il pulsante azione etichettato «LBL».JZ.action('LBL')— restituisce l'elemento DOM del pulsante, così puoi stilizzarlo o controllarne gli attributi.JZ.actions()— un array di tutti i pulsanti azione visibili.JZ.labels()— un array delle etichette originali con maiuscole e minuscole preservate.
La ricerca delle etichette è case-insensitive — JZ.click('btn') e JZ.click('BTN') colpiscono lo stesso pulsante.
JUSTZIX — loggare nella Output Console
L'oggetto JUSTZIX è un logger che scrive direttamente nella finestra Output Console dell'estensione. Offre JUSTZIX.log(), .warn(), .error(), .info() e .debug() — ognuno aggiunge una voce al livello corrispondente. Sono a portata di mano anche gli alias __JUSTZIX__ e JZ.log.
Così segui ciò che fa una regola senza aprire i DevTools. I messaggi atterrano in un unico posto tranquillo, separato dal rumore della console del browser.
Perché un'API stabile batte la colla DOM artigianale
Potresti cercare i pulsanti per selettore e inviare i tuoi eventi, ma quel codice si rompe nel momento in cui il layout dell'estensione cambia. JZ e JUSTZIX ti danno un contratto stabile: lo stesso nome di metodo funziona qualunque cosa cambi all'interno.
Abbinalo a un mutation observer e hai un vero workflow — una regola attende un elemento, clicca una serie di azioni e segnala l'esito:
// Azione «AUTO» — concatena tre altre azioni
JZ.click('LOAD');
setTimeout(() => JZ.click('PROC'), 500);
setTimeout(() => { JZ.click('SAVE'); JUSTZIX.info('fatto'); }, 1500);
Articoli del blog correlati
Articoli che approfondiscono questo argomento.