Zum Inhalt springen

Bookmarklet

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 14. Juli 2007 um 13:06 Uhr durch Kockmeyer (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein Bookmarklet (auch: Favelet) ist ein kleines in JavaScript geschriebenes Makro, das als Bookmark abgespeichert wird und es erlaubt Websiten im Browser zu manipulieren. Technisch gesehen ist ein Bookmarklet ein Lesezeichen auf das Pseudoprotokoll javascript:, das es erlaubt Code durch den Browser auszuführen.

Im Normalfall wird 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 lokal vorliegende JavaScript-Code auf die jeweils betrachtete Webseite angewendet, indem das Bookmarklet während des Betrachtens der Webseite aufgerufen wird.

Mögliche Anwendungen sind z. B. das Auslesen der Markierung und die Übergabe des markierten Textes an andere Webseiten, Berechnungen, Worttransformationen, URL-Manipulationen, 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 1: Begriffserklärung mit Wikipedia

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='http://de.wikipedia.org/w/wiki.phtml?search='+escape(Qr)

(Getestet mit: Opera 7.5 und Mozilla 1.6, 1.8a3 sowie Mozilla Firefox 1.5.0.6) Mit Mozilla unter Fedora Core werden Umlaute nur dann richtig übertragen, wenn man encode() durch encodeURIComponent() ersetzt.

Das obige Bookmarklet öffnet den Wikipedia-Artikel im gleichen 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('http://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='http://de.wikipedia.org/w/wiki.phtml?search='+escape(Qr);

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

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

Das vorhergehende Booklet 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='http://de.wikipedia.org/w/wiki.phtml?search='+x)

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

für Netscape, Firefox, Mozilla für Internet Explorer
Installieren:
  1. Ein neues Lesezeichen im Lesezeichen-Manager anlegen.
  2. Einen Namen für das neue Lesezeichen wählen.
  3. In das Adressfeld den JavaScript-Code kopieren.
  1. Über Favoriten verwalten einen neuen Favoriten anlegen.
  2. Einen Namen für den Favoriten wählen.
  3. In das Adressfeld den JavaScript-Code kopieren.
Benutzen:
  1. Auf einer beliebigen Internetseite ein Wort markieren.
  2. Lesezeichen, das den JavaScript-Code enthält, aufrufen.
  3. Wikipedia zeigt Erklärung des markierten Wortes an.
  1. Auf einer beliebigen Internetseite ein Wort markieren.
  2. Favorit, der den JavaScript-Code enthält, aufrufen.
  3. Wikipedia zeigt Erklärung des markierten Wortes an.


Weitere Beispiele

Liste angezeigter Internetseiten

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

Das Bookmarklet bietet eine Inverssuche von Telefonnummern an: javascript:Qr=document.getSelection();if(!Qr){void(Qr=prompt('Telefonnummer',''))};if(Qr)location.href='http://dasoertliche.de/Controller?form_name=search_inv&ph='+escape(Qr)


Siehe auch


Weiterführende Informationen

Sammlungen von Bookmarklets