Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
greasemonkey [2013/05/14 18:06] – [GreaseMonkey] sebsauvage | greasemonkey [2014/07/12 11:26] (Version actuelle) – modification externe 127.0.0.1 |
---|
====== GreaseMonkey ====== | ====== GreaseMonkey ====== |
| |
Cette page (succincte) s'adresse aux développeurs. Connaissances en javascript requise, XPath recommandée. Débutants, passez votre chemin. | Cette page (succincte) s'adresse aux développeurs. Connaissances en javascript requises, XPath recommandées. Débutants, passez votre chemin. |
| |
| |
===== Comment ça marche ? ===== | ===== Comment ça marche ? ===== |
| |
Installez d'abord l'[[https://addons.mozilla.org/fr/firefox/addon/greasemonkey/|extension Firefox]], puis ajoutez les [[https://userscripts.org/|scripts de votre choix]], ou créez-en vous-même. Ces scripts (écrits en javascript) manipulent la page web au moment où elle est chargée. Les scripts sont définis pour s'activer sélectivement sur certains site et certaines pages. | Installez d'abord l'[[https://addons.mozilla.org/fr/firefox/addon/greasemonkey/|extension Firefox]], puis ajoutez les [[https://userscripts.org/|scripts de votre choix]], ou créez-en vous-même. Ces scripts (écrits en javascript) manipulent la page web au moment où elle est chargée. Les scripts sont définis pour s'activer sélectivement sur certains sites ou pages. |
| |
:!: **ATTENTION**: Ne téléchargez pas n'importe quel script. Les scripts peuvent faire n'importe quoi dans les pages. Utilisez votre cerveau. | :!: **ATTENTION**: Ne téléchargez pas n'importe quel script. Les scripts peuvent faire n'importe quoi dans les pages. Utilisez votre cerveau. |
})(); | })(); |
</file> | </file> |
| |
| Pour trouver quels éléments atteindre, utilisez l'inspecteur de Firefox (clic-droit > Examiner l'élément). Si l'élément en question a un **id**, c'est bonheur: il est (en principe) unique dans la page. Sinon bon courage avec les classes, parent/ancestor/sibling et autres bricolages à base de XPath (comme dans les horribles exemples que j'ai donnés). |
| |
| A titre d'exemple, pour virer la boite de recherche de mon Shaarli, on ferait: |
| |
| <code javascript>// ==UserScript== |
| // @name Essai |
| // @namespace tototititata.com |
| // @include http://sebsauvage.net/links/* |
| // ==/UserScript== |
| |
| (function () { |
| ...code supprimé... |
| try |
| { |
| removeElement("//div[@id='headerform']"); |
| } |
| catch (e) |
| { |
| alert("UserScript exception:\n" + e); |
| } |
| })();</code> |
| |
| ou encore forcer tous les liens en bleu: |
| |
| <code javascript>injectCSS("a { color:blue !important; }");</code> |
| |
| À vous de jouer ! |
| |
| ===== Autres exemples ===== |
| |
| ==== Redirection de page dans Tumblr ==== |
| |
| Si vous êtes sur une page tumblr du genre: <html>http://*.tumblr.com/image/12345</html>, ce script vous redirigera immédiatement vers l'URL directe de l'image (pour l'afficher pleine page): |
| |
| <code javascript> |
| // ==UserScript== |
| // @name Tumblr image redirector (/image --> direct image URL) |
| // @namespace sebsauvage.net |
| // @include http://*.tumblr.com/image/* |
| // @version 1 |
| // ==/UserScript== |
| |
| try { |
| var alltags = document.evaluate("//div[@id='content']/img",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); |
| if (alltags.snapshotItem(0) != null) |
| { |
| document.location=alltags.snapshotItem(0).src; |
| } |
| } |
| catch (e) |
| { |
| alert("UserScript exception:\n" + e); |
| } |
| </code> |
| |
| |
| |