# Greasemonkey

Greasemonkey è un'estensione del browser Mozilla Firefox che permette all'utente di modificare le pagine web grazie all'uso di alcuni script. L'idea alla base di questo software è il concetto di "Navigazione Attiva" ("Active Browsing"), di norma infatti gli script sono prerogativa dell'autore del sito internet, mentre Greasemonkey permette all'utente di eseguirne alcuni e a propria scelta.
Greasemonkey può essere utilizzato per aggiungere nuovi contenuti, migliorarne l'aspetto, semplificare operazioni, combinare dati con altre pagine e numerosi altri scopi, l'unico limite è la potenza del JavaScript.

## Esempi tipici di script

I più comuni script per Greasemonkey hanno queste funzioni:
* Aggiungere pulsanti o link diretti a risorse esterne al sito o non facilmente raggiungibili (per esempio aggiungendo tasti come "sposta" o "cancella" a WebMail)
* Comparazione di dati provenienti da siti diversi (per esempio prezzi di negozi online).
* Rimuovere paragrafi o immagini (come pubblicità o spam).
* Spostare o modificare contenuti secondo l'esigenza dell'utente.
* Compilazione automatica di dati (come e-mail e nickname).
* Possibilità di aggiungere lo sfondo in google (funzione disattivata da google).

## Dettagli tecnici

La maggior parte degli "user script" per Greasemonkey sono scritti a mano, utilizzando codice JavaScript specifico per il sito, che ne manipola i contenuti per mezzo dell'interfaccia Document Object Model. Gli script hanno il formato nome.user.js e Greasemonkey offre automaticamente di installare il suddetto script se ci si clicca con il tasto destro; all'interno del file sono contenute anche alcune meta-informazioni, che specificano l'autore, la versione e gli indirizzi dei siti per cui è pensato.
Scrivere uno script per Greasemonkey richiede alcune conoscenze avanzate, escludendo così l'utente ordinario dal poterne scrivere una. L'estensione Platypus Archiviato l'8 maggio 2007 in Internet Archive. permette però all'utente di modificare la pagina (spostando, cancellando o modificando i contenuti) e di salvare il risultato come script per Greasemonkey.

## Problemi

L'uso di Greasemonkey potrebbe portare alcuni problemi, per cui alcuni ritengono che debba essere usato con cautela. Ecco alcuni esempi:
* Sostituire la pubblicità o il contatore di visite di un sito con il corrispettivo di un altro potrebbe falsare le statistiche o diminuire gli introiti per aumentare quelli del rivale.
* Per comparare i dati di siti diversi è necessario richiedere la pagina web di siti che non si sta visitando ma di cui ci interessano le informazioni, questo porta ad incrementare il traffico generandone uno fittizio.
* Il cambiamento di forma di un sito potrebbe rendere il relativo script inutile o anche dannoso, creando anche errori, diventerebbe quindi necessario disattivare lo script e riscriverlo.

## Equivalenti per altri browser

Greasemonkey è disponibile solo per Firefox, ma esistono programmi simili: GreasemonkIE Archiviato il 27 gennaio 2006 in Internet Archive. Trixie e per Internet Explorer.
Opera invece supporta gli "user script" nativamente, ma non fornisce supporto per le funzioni estese di Greasemonkey. Esiste una versione di Greasemonkey anche per Epiphany, tra le estensioni ufficiali del browser. Da notare che Opera e Firefox supportano il W3C DOM, mentre Internet Explorer utilizza istruzioni diverse, quindi gli script di Greasemonkey dovrebbero funzionare anche in Opera, ma non in IE.
A partire dalla release 4.0, pubblicata nel febbraio 2010, Google Chrome supporta nativamente gli script di Greasemonkey, che vengono internamente convertiti in estensioni dal browser e trattati come tali. L'autore di Greasemonkey, Aaron Boodman (che tra l'altro è sviluppatore del browser in questione), ha ricordato però che circa il 15%-25% degli script di Greasemonkey per Firefox non funzionano correttamente su Chrome per via delle differenze tra browser. Inoltre, il supporto nativo di Chrome per gli script di Greasemonkey ignora le direttive @exclude.
Per SeaMonkey non è invece stata pubblicata una versione ufficiale ma all'interno del progetto Mozdev.org sono presenti versioni non-ufficiali che permettono l'utilizzo dell'add-on anche su tale browser.