# Greasemonkey

Greasemonkey (von englisch grease monkey für „(Kfz-)Mechaniker“, wörtlich „Schmieraffe“ oder sinngemäß „Schmiermaxe“) ist eine Webbrowser-Erweiterung, die die Installation von Skripten ermöglicht, die Inhalte von aufgerufenen Webseiten ändern. Greasemonkey erlaubt dem Nutzer, eigene JavaScript-Dateien im Browser auszuführen. Diese Skripte individualisieren Erscheinungsbild und Verhalten der angezeigten Webseite, ohne auf die eigentliche Webseite zugreifen zu müssen. Dadurch erweitert Greasemonkey beispielsweise Webseiten um Funktionen, behebt Fehler in der Darstellung, bindet Inhalte anderer Webseiten ein und erledigt wiederkehrende Aufgaben automatisch.

## Technische Details

Greasemonkey wurde in JavaScript und XUL geschrieben. Es ermöglicht dem Benutzer die Ausführung von JavaScript-Dateien im Browser, die die angezeigte Webseite mittels DOM-Schnittstelle manipulieren können. Diese JavaScript-Dateien bezeichnet man als Greasemonkey-Skripte oder Userscripts; sie sind ohne die Erweiterung nicht direkt lauffähig. Da Greasemonkey aber nur eine Vereinfachung zur Erstellung und Einbindung dieser Skripte bereitstellt, gibt es von vielen Greasemonkey-Skripten auch allein lauffähige Firefox-Erweiterungen oder Bookmarklets.
Für jedes Skript kann mit regulären Ausdrücken festgelegt werden, für welche URL es eingebunden werden soll. Wird diese URL dann aufgerufen, bindet Greasemonkey das Skript in die Seite ein, so dass dieses sich so verhält, als wäre es von der Seite selbst eingebunden worden, und es die Seite folglich beliebig verändern kann.
Greasemonkey-Skripte haben die Dateiendung .user.js, sodass sie von Greasemonkey automatisch als Skripte erkannt werden und dem Benutzer zur Installation angeboten werden. Zusätzlich zum eigentlichen JavaScript-Quelltext enthalten die Dateien noch einige Metadaten über Autor, Arbeitsweise und Vorschläge für zu verwendende reguläre Ausdrücke.
Auch wenn Greasemonkey die Erstellung von Erweiterungen vereinfacht, ist doch Grundwissen über JavaScript und DOM vonnöten.

## Typische Anwendungsbereiche

Anwender haben die unterschiedlichsten Skripte erstellt, welche beispielsweise
* in Gmail einen Löschen-Knopf einbauen
* Preise für dasselbe Produkt auf anderen Websites anzeigen
* Internetwerbung entfernen
* das Layout einer Webseite anpassen
* Formulare automatisch ausfüllen
* Tastenkombinationen zu einer Webseite hinzufügen
* Dienstleistungen automatisch via HTTPS aufrufen

## Ähnliche Funktionen für andere Browser

Greasemonkey ist für Mozilla Firefox, Gnome Web, Flock, Falkon, Pale Moon und für SeaMonkey verfügbar.
Opera hatte von Version 8 bis Version 12 eine ähnliche Software direkt implementiert, wodurch Greasemonkey-Skripte zumeist auch in Opera ohne (große) Änderungen lauffähig waren. Zudem existieren zwei Erweiterungen namens Violent Monkey, ein Pendant zu Greasemonkey, und UserScript Converter (nur bis Version 12), das versucht, Opera-Erweiterungen aus Greasemonkey-Skripten zu generieren.
Für den Internet Explorer wurde versucht, diese Funktionalität durch GreasemonkIE (inzwischen eingestellt), Trixie und Turnabout bereitzustellen, wobei letzteres als Open-Source-Software unter der BSD-Lizenz entwickelt wird. Ein ähnliches Konzept verfolgt auch iMacros, allerdings konzentriert sich diese Software auf die Automatisierung von Abläufen im Browser. Veränderungen der Webseite sind nicht vorgesehen.
Google Chrome unterstützt Greasemonkey-Skripte seit der Anfang 2010 veröffentlichten Version 4. Die Skripte werden aber nicht nativ als ECMA-Skripte ausgeführt, sondern bei der Installation eines Skriptes in ein Plugin überführt, das sich dann wie alle anderen Erweiterungen des Browsers verwalten lässt. Auf Grund der technischen Unterschiede zwischen Mozilla Firefox und Google Chrome geht Google davon aus, dass etwa 85 bis 90 % der Skripte fehlerfrei in Google Chrome laufen. Mit Tampermonkey existiert zudem eine Chrome-Extension, die angibt, voll kompatibel zu Greasemonkey zu sein. Auch Violentmonkey gibt es für Chrome.
Die Webextensions Tampermonkey und Violentmonkey wurden ebenfalls für Firefox portiert. Unter Firefox Android ermöglichen die Addons Tampermonkey und usi (User|Unified Script Injector) das Ausführen von Greasemonkey-Skripten.
Fast alle Browser gestatten es, durch Bookmarklets JavaScript im Browser auszuführen, allerdings nur durch manuellen Aufruf und nicht automatisch beim Laden der Seite.

## Ähnliche Software

Sehr ähnlich, allerdings mit Cascading Style Sheets, arbeitet die Erweiterung Stylus für Mozilla- und Chrome-Browser.
Viele lokale Proxyserver erlauben es, unabhängig vom verwendeten Browser, die angeforderte Webseite vor dem Anzeigen durch den Webbrowser zu ändern, beispielsweise Proxomitron und Privoxy.