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 :
- livre O'reilly sur le développement avec Greasemonkey, il y a quasiment tout dedans...
- le wiki de greasespot contenant la documentation officielle
- tutoriel sur XPath, car XPath est réellement utile pour le développement de scripts !
É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/*)