Greasemonkey

Greasemonkey est un outils qui permet de modifier les éléments du DOM d'un page web à la volée. L'intérêt est de modifier le code HTML/Javascript/CSS d'une page dont on est un simple visiteur.

Il devient possible de supprimer l'affichage de certain élément (publicité), de réordonner l'affichage (résultat de moteur de recherche), ...

Installation

Pour firefox il existe un extension disponible à travers le gestionnaire d'extension. Une fois installé, une petite tête de singe apparaît dans la barre de statuts.

Il faut installer des scripts utilisateurs afin que l'extension soit utiles. Un site regroupe un grand nombre de scripts : http://userscripts.org.

Développer un script

Le développement se fait en javascript.

Quelques liens utiles :

Étapes de développement :

  • créer un fichier .user.js sur le disque
  • y mettre les méta données (Attention : bien séparer les clés des valeurs par des tabulation !) :
// ####UserScript####
// @name                Nettoyeur de resultats
// @namespace           http://www.guim.info
// @description         N'affiche pas les posts interdits aux freenautes
// @include             http://www.guim.info/null/*
// @include             http://binnews.in/*
// @include             http://www.binnews.in/*
// @author              Mathieu Guilbaud
// @license             GPL v2
// @version             2009-02-19
// ####/UserScript####
  • installer le script en pointant son navigateur sur le fichier en local, Greasemonkey propose de l'installer automatiquement
  • ensuite il est possible de l'éditer :
    • soit par la boîte de dialogue de Greasemonkey
    • soit sur le disque directement : ~/.mozilla/firefox/ALEATOIRE/gm_scripts/NOM_DU_SCRIPT/NOM_DU_SCRIPT.user.js

Attention : la balise @include n'accepte pas tout les TLD. Si votre TLD n'est pas accepté, le script s'installera, mais ne sera pas actif. Pour éviter ce problème, il faut ajouter une fausse balise @include contenant une URL avec un TLD reconnu, qui ne « matchera » pas un vrai site (ex : http://www.guim.info/null/*)