Bookmarklet

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Ein Bookmarklet (auch Favelet) ist ein kleines in JavaScript geschriebenes Makro, das als Bookmark abgespeichert wird und dadurch die Funktionen eines Webbrowsers erweitert. Es erlaubt beispielsweise, Aussehen oder Funktionalität von Webseiten clientseitig zu verändern. Technisch gesehen ist ein Bookmarklet ein Lesezeichen auf das Pseudoprotokoll javascript:, das es ermöglicht, JavaScript-Code durch den Browser auszuführen.

Im Normalfall wird ein in eine Webseite eingebettetes JavaScript beim Aufruf der Webseite oder bei bestimmten Aktionen, wie dem Absenden eines Formulars o. ä., ausgeführt. Art und Zeitpunkt der Ausführung bestimmt dabei der Ersteller der Webseite. Dagegen wird im Falle von Bookmarklets der enthaltene JavaScript-Code auf die momentan angezeigte Webseite angewendet, indem das Bookmarklet angewählt wird, nachdem die Seite geladen wurde.

Mögliche Anwendungen sind z. B. das Auslesen der Markierung und die Übergabe des markierten Textes an andere Webseiten, Berechnungen, Worttransformationen, URL-Manipulationen, Manipulation des Document Object Models, Whois-Abfragen usw.

Die Unterstützung in den verschiedenen Browsern hängt vom jeweiligen Support von JavaScript-URLs in den Bookmarks ab. Darüber hinaus spielt natürlich die Unterstützung der jeweiligen Teile des JavaScript-Codes eine Rolle.

Beispiel: Begriffserklärung mit Wikipedia[Bearbeiten]

Das folgende Bookmarklet durchsucht beispielsweise die deutschsprachige Ausgabe der Wikipedia nach dem zuvor im Browser markierten Text:

javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('Suchbegriff:',''))};if(Qr)location.href='https://de.wikipedia.org/w/index.php?search='+escape(Qr);

(Getestet mit: Google Chrome 4.1, Opera 7.5 und Mozilla 1.6, 1.8a3 sowie Mozilla Firefox 1.5.0.6)

Das obige Bookmarklet öffnet den Wikipedia-Artikel im selben Fenster (bzw. Tab), in dem sich die Webseite mit dem erklärungsbedürftigen Begriff befand. Will man das nicht, sondern lieber die Wikipedia-Erklärung in einem neuen Tab/Fenster, so ist der folgende Code als Bookmarklet zu setzen:

javascript:s=(window.getSelection?window.getSelection():document.getSelection?document.getSelection():document.selection.createRange().text);if(s==''){if(window.getSelection){if(frames.length>1){for(i=0;i<frames.length;i++){s=frames[i].document.getSelection();if(s)break;}}}}if(s=='')void(s=prompt('Bitte%20geben%20Sie%20einen%20Begriff%20zur%20Suche%20im%20Lexikon%20ein.',''));if(s){w=open('https://de.wikipedia.org/wiki/'+encodeURIComponent(s),'','');w.focus();}

Da der Internet Explorer die Methode getSelection() nicht unterstützt, muss das Bookmarklet (1. Version) für den IE so aussehen:

javascript:Qr=document.selection.createRange().text;if(!Qr){void(Qr=prompt('Suchbegriff:',''))};if(Qr)location.href='https://de.wikipedia.org/w/index.php?search='+escape(Qr);

Eine Version, die auch in Safari (Apple) funktioniert:

javascript:x=escape(getSelection());if(!x)%7Bvoid(x=prompt('Wort?',''))%7D;window.location='https://de.wikipedia.org/w/index.php?search='+x

Das vorhergehende Bookmarklet funktioniert nicht in Version 2.04 für Safari. Folgende Version sollte funktionieren:

javascript:x=escape(getSelection());if(!x)void(x=prompt('Wort?'));if(x)void(window.location='https://de.wikipedia.org/w/index.php?search='+x)

Ist nichts markiert, so erscheint ein Dialog-Fenster, das zur Eingabe des Suchbegriffs auffordert.

Installieren:
  1. Ein neues Lesezeichen/Favoriten anlegen.
  2. Einen Namen für das neue Lesezeichen/Favoriten wählen.
  3. In das Adressfeld den JavaScript-Code kopieren.
Benutzen:
  1. Auf einer beliebigen Internetseite ein Wort markieren.
  2. Lesezeichen/Favoriten, das den JavaScript-Code enthält, aufrufen.
  3. Wikipedia zeigt Erklärung des markierten Wortes an.

Weitere Beispiele[Bearbeiten]

Liste angezeigter Internetseiten[Bearbeiten]

Das Bookmarklet erzeugt eine neue Seite, auf der alle Links der angezeigten Internetseite aufgezählt werden.

javascript:WN7z=open('','Z6','width=400,height=200,scrollbars,resizable,menubar');DL5e=document.links;with(WN7z.document){write('<base target=_blank>');for(lKi=0;lKi<DL5e.length;lKi++){write(DL5e[lKi].toString().link(DL5e[lKi])+'<br /><br />')};void(close())}

Inverssuche von Telefonnummern[Bearbeiten]

Das folgende Bookmarklet bietet eine Inverssuche von Telefonnummern an. Gesucht wird dabei nach der aktuell markierten Telefonnummer auf der Webseite oder wenn keine Markierung vorhanden wird ein Eingabefeld angezeigt:

javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('Telefonnummer',''))};if(Qr)location.href='http://www.dasoertliche.de/Controller?form_name=search_inv&ph='+escape(Qr)

Weblinks[Bearbeiten]