Greasemonkey in poche parole

by Michele

Greasemonkey è l’estensione del momento, tutti parlano di lei e della rivoluzione che porta con se nel mondo web. Firefox è diventato il browser che permette agli utenti di personalizzare, modificare, correggere le pagine web che navigano. Un esempio eclatante è il restyling del sito Trenitalia. Questo restyling ha reso, in alcune parti, il sito incompatibile con Firefox. In realtà il codice JavaScript è stato scritto male e per farlo funzionare con browser diversi da IE c’era bisogno di una modifica. Uno script per Greasemonkey permette questo in maniera del tutto trasparente per l’utente che naviga.

Ma che cosa è Greasemonkey?
Si tratta di una estensione di Firefox che permette la gestione di user scripts. Un manager di script scritti in JavaScript che intervengono sulla pagina per aggiungere, modificare e rimuovere elementi. Uno script per Greasemonkey ha le seguenti caratteristiche:

  • Il nome del file deve finire per user.js (es: repubblica.user.js)
  • Il file deve contenere i seguenti meta dati:
    // ==UserScript==
    // @name          nome
    // @namespace     sito di riferimento
    // @description   breve descrizione
    // @include       path in cui eseguire lo script
    // @exclude       path in cui non eseguire lo script
    // ==/UserScript==

Insieme a queste informazioni si inseriscono righe di codice JavaScript da eseguire. L’esempio più banale può essere un semplice alert():

(function() {
    alert("ciao mondo!");
})();

Questo codice, in ogni pagina che rientra nei path da includere, visualizzerà un alert con la scritta “ciao mondo!”. Un esempio completamente inutile ma che rende l’idea del funzionamento di uno user script di Greasemonkey. Appena entrato a conoscenza di questo nuovo “modo” di navigare il web, ho provato a realizzare un mio script. Navigo spesso il sito del giornale La Repubblica e non sopporto i banner pubblicitari che ci sono, quindi ho realizzato un script che toglie la maggior parte di questi banner.

L’intero script è disponibile alla fine del post mentre il codice per la rimozione del solo banner in alto è il seguente:

// ==UserScript==
// @name          Repubblica.it Ads
// @namespace     http://www.blackbirdblog.it
// @description   Ads remover for www.repubblica.it
// @include       http://repubblica.it/*
// @include       http://*.repubblica.it/*
// @exclude
// ==/UserScript==

(function() {

    // rimuovo il banner in alto
    var pList = document.getElementsByTagName("p");
    for(i=0;i<pList.length;i++){
        if( pList[i].className == "adv-a" ){
            pList[i].parentNode.removeChild(pList[i]);
            break;
        }
    }

})();

Notate i meta dati all’inizio del codice e la dichiarazione di una funzione. Il codice che contiene questa funzione permette di rimuovere il banner in alto. Si tratta di JavaScript utilizzato come un semplice script per pagine HTML. Greasemonkey mette a disposizione anche funzioni che permettono di eseguire richieste HTTP remote o di registrare dei dati su disco e rileggerli come una sorta di cookie.

A mio avviso questa nuova estensione per Firefox è una vera manna dal cielo per risolvere alcuni problemi di compatibilità e per personalizzare i siti che si naviga ogni giorno. L’importanza di questa nuova possibilità è accentuata dal fatto che anche l’ultima versione del browser Opera supporta il concetto di user script.

Per Greasemonkey sono già disponibili centinaia di script che permettono di modificare i contenuti di moltissimi siti. Se siete intenzionati a sviluppare qualche script vi consiglio di dare una letta veloce a queste pagine e alla fine di spostarvi su Dive Into Greasemonkey e leggetevi lo spettacolare libro scritto dal grande Mark Pilgrim.

« Script per il sito Repubblica.it