Meldung

13.09.2007 - Automatischer Redirect mit JavaScript

Ein Browser Redirect ist eine automatische Weiterleitung eines Besuchers, die zu einer anderen Seite führt. Dabei ist es unerheblich, ob die Seite, auf die der Besucher weitergeleitet wird, sich auf dem selben Webserver befindet, wie die weiterleitende Seite. Der Browser des Besuchers wird durch den Redirect angewiesen, sich die angeforderte Seite unter einer anderen Adresse abzuholen. Aber nicht nur Browseranwendungen werden durch den Redirect an den neuen Speicherort des angeforderten Dokuments verwiesen. Auch automatisch agierende Programme, die sogenannten Bots – diese werden beispielsweise von Suchmaschinenbetreibern zum Indexieren von Internetseiten verwendet – reagieren auf einen Redirect.

Bei einem Redirect, der mittels JavaScript implementiert ist, muss der Webserver eine HTML-Datei an den Browser schicken, die den Redirect durchführt. Es wird also eine Seite geladen, die das zur Durchführung des Redirects nötige Script enthält. Die URL, unter der sich das angeforderte HTML-Dokument befindet, wird dabei in dieser Datei angegeben. Nachdem diese Seite wurde und diese den Redirect durchgeführt hat erscheint im Fenster des Webbrowsers dann die angeforderte Datei und die zuvor in der Adresszeile des Browsers angezeigte URL wechselt automatisch auf die Ziel-URL, auf die umgeleitet wurde.

Grundsätzlich ist anzumerken, dass Redirects nach Möglichkeit direkt durch den Server eingeleitet werden sollte. Hierzu kann beispielsweise ein Eintrag in der .htaccess-Datei oder ein in einer serverseitigen Scriptsprache (z.B. PHP oder Perl) verfasster Redirect genutzt werden – beachten Sie hierzu auch unsere Beispiele zum Redirect mit PHP. Die Anweisung zum Redirect wird dann direkt im HTTP-Header des Requests an den Browser gesendet. Dies ist sinnvoll, da nicht alle Clients (z.B. Bots) JavaScript unterstützen und demnach auch der Redirect mit JavaScript nicht funktioniert. Auch wird die zu Übertragende Datenmenge reduziert, wenn nur ein HTTP-Header und nicht ein ganzes HTML-Dokument samt JavaScript Code versendet werden muss.

In den Beispielen wird, neben einem unmittelbar ausgeführten JavaScript redirect, auch ein verzögerter Redirect mit JavaScript gezeigt. Die nötige Verzögerung wird mit der Methode setTimeout realisiert. Hier wird vor dem automatischen Redirect zunächst ein Timeout von 5 Sekunden abgewartet, bevor die Umleitung durchgeführt wird. SetTimeout gehört zum Window-Object, welches zu den in JavaScript vordefinierten Objekten gehört.


Alexander Müller