Mit Hilfe von JavaScript Void, einem speziellen JavaScript-Operator, ist es möglich, einen von einer JavaScript-Anweisung gelieferten Rückgabewert zu unterdrücken. Anstelle des normalerweise geflieferten Rückgabewertes liefert der Void-Operator immer den Wert "undefined". In manchen Fällen führt das Liefern eines Rückgabewertes durch einen JavaScript-Befehl zu unerwünschten Nebeneffekten.
Eine im HREF-Attribut eines Links aufgerufene JavaScript-Funktion (oder auch eine andere JavaScript-Anweisung) muss stets "undefined" zurückliefern. Ist dies nicht der Fall, so lädt der Browser bestenfalls die Seite erneut, was in diesem Fall nicht gewollt ist und zu unnötiger Belastung des Webservers führt. Noch schlimmer ist es allerdings, wenn die Seite durch den Rückgabewert der JavaScript-Anweisung überschrieben wird – der ursprünglich angezeigte Seiteninhalt verschwindet dadurch und der Besucher wird leicht irritiert sein.
Dies ist insbesondere dann der Fall, wenn es sich bei dem zu implementierenden JavaScript-Script um ein sogenanntes Bookmarklet handelt. Bookmarkets sind JavaScript-Programme, die als Bookmarks abgespeichert werden. Ein Bookmarklet wird also – anders als normaler JavaScript-Code, der im HTML-Dokument gespeichert oder zumindest mit diesem verknüpft ist – meist lokal als Bookmark gespeichert. Eingeleitet wird ein solches Bookmarket durch das Pseudoprotokoll "javascript:". Auf diese Angabe folgt dann der, nach Anklicken des Bookmarks, auszuführe JavaScript-Code.
Da die verschiedenen Browser zur Speicherung von Bookmarks bestimmte Obergrenzen bezüglich der Länge der URL haben, ist ein Bookmarklet-Entlwickler dazu angehalten sich bei der Implementierung seines Bookmarklets kurz zu fassen. Es besteht aber auch die Möglichkeit diese jeweiligen Restriktionen zu umgehen, indem nicht das eigentliche Script als Bookmark gespeichert wird, sondern nur ein Verweis auf eine extern gespeicherte Script-Datei, die vom Browser geladen wird. Die JavaScript-Datei kann dabei nicht nur im Filesystem des lokalen Rechners oder Netzwerks liegen, sondern auch unter irgendeiner URL im Web gespeichert sein.
Normalerweise sind Bookmarklets nicht besonders umfangreich und mit Hilfe weniger JavaScript-Befehle implementiert. Dennoch stellen sie erweiterte Funktionalitäten zur Verfügung, die für den jeweiligen Zweck oft recht praktisch sind. So kann mit Hilfe von Bookmarklets beispielsweise der Inhalt der angezeigten Seite angepasst oder gar um zusätzliche Informationen bereichert werden.
Im Beispiel unten wird ein Link definiert der, nachdem er angeklickt wurde, nach dem Verstreichen von einer Sekunde eine Dialogbox anzeigt, in welcher der Name der Browseranwendung ausgegeben wird. Die dafür benötigten Informationen werden aus dem Navigator-Objekt gewonnen. Mit setTimeout, wird der zeitverzögerte Aufruf der Dialogbox eingeleitet. SetTimeout ist, ebenso wie die Alert-Box eine Methode des vordefinierten JavaScript-Objekts Window. Als Rückgabewert liefert setTimeout eine ID, die dazu verwendet werden kann, das Timeout vorzeitig zu beenden.
Genau hier liegt allerdings das Problem. Wird die Methode setTimeout() ohne den Void-Operator notiert, so führt dies dazu, dass das aktuelle HTML-Dokument durch den von der Methode gelieferten Rückgabewert überschrieben wird. Der gewünschte Effekt wird so verfehlt.
Im zweiten Link dieses Beispiels wird einfaches ein Bookmarklet implementiert, welches Sie sich auch als lokalen Bookmark speichern können. Sinn des Bookmarklets ist es, eine Suche beim Suchmaschinenbetreiber Yahoo! durchzuführen. Dabei wird zunächst ein Eingabedialog angezeigt, welcher zur Eingabe einer Suchphrase auffordert. Nach der Eingabe wird (durch das Target-Attribut in einem neuen Browserfenster) direkt die HTML-Seite mit den gefundenen Suchergebnissen angezeigt. Dazu wird einfach über die href-Eigenschaft des JavaScript-Objekts Location die entsprechend durch das Bookmarklet zusammengestellte URL aufgerufen. Der Vorteil hierbei ist, dass nicht erst die Seite des Suchmaschinenbetreibers aufgerufen werden muss, sondern direkt das Suchergebnis zur Verfügung steht.
<a href="javascript:void(window.setTimeout ('alert(navigator.appName)', 1000))" title="">Name der Browseranwendung</a><br> <a href="javascript:void(q=prompt('Suchphrase:',''));if(q)location.href='http://de.search.yahoo.com/search/de?p='+escape(q)" target="_blank" title="">Suchen bei Yahoo</a>
Name der Browseranwendung
Suchen bei Yahoo
Hallo, ich bin auf der Suche nach einem Script, mit dem ich einen Leser für Audio-Spuren in eine Html-Webseite einfügen kann. Ich brauche dabei ... » mehr
von Finlay am Sonntag, 22. Januar 2012 22:52 in JavaScript - bisher 1 AntwortHallo,
wenn es um einen MP3-Player geht, dann sollte jplayer das Richige sein. Einfach mal den Suchschlitz der Suchmaschine Deiner Wahl nutzen. ... » mehr
ich habe hier einie gallerie die funktioniert problem los aber hat noch kein über belnd effect jedoch würde ich diesen gerne einfügen aber ich habe ... » mehr
von faebe am Freitag, 20. Januar 2012 20:19 in JavaScript - noch nicht beantwortetHallo! Vielen Dank für das super kommentierte Script-Beispiel zur Weiterverarbeitung von XML-Dateien per JavaScript: ... » mehr
von gn0me am Freitag, 11. März 2011 19:03 in JavaScript - noch nicht beantwortetHi, zu erst mal ein Lob an Eure Galerie. Nun habe ich allerdings eine Frage um die Galerie eventuell zu erweitern. Derzeit wird auf meiner Seite ... » mehr
von G-RuN am Dienstag, 25. Januar 2011 17:13 in JavaScript - bisher 8 AntwortenHat sich erledigt. Mir haben noch die Zuweisung von der Variablen anzahl_bilder und anzahl_thumbnails gefehlt.
Grüße, ... » mehr
Hallo, ich habe hier ein kleines Problem und ... » mehr
von Kallchen am Freitag, 14. Januar 2011 23:07 in JavaScript - bisher 3 Antwortenwindow.location = "_blankeineseite.html";
Das funktioniert auf keinen Fall. Die Location-Eigenschaft muss eine URL enthalten und wird bei ... » mehr
¬ Menu
¬ Gratis Download
¬ Seminare
¬ Yoga
¬ Insolvenzrecht
¬ News
15.08.2008Schleifen in PHP: Die While-Schleife » mehr 13.08.2008Nutzung von Variablen unter PHP: Definition, Sichtbarkeit und vordefinierte Variablen » mehr 11.08.2008Ausgabe von Datum und Zeit mit PHP nach Konvertierung in ein String » mehr Eine vollständige News-Liste ist auf der News-Seite zugänglich.
¬ Foren
¬ Buchtipp

Ajax in action
Weitere JavaScript Literaturtipps finden Sie unter JavaScript Bücher
Webdesign •
Beratung Internetseite •
Programmierung Internetseite