Tips für Web-Profis (Designer & HTML-Autoren)
◀Zurück zur Übersicht aller Themen
Link-Targets und _blank
er Unsinn
Irrtum 1: _new steht für ein neues Fenster
„Bei einem Link, dessen Zieldokument in einem neuen Fenster geöffnet werden soll, gibt man als
Target-Attribut _new
an.“ Auch wenn sich viele Menschen dies gleichzeitig
ausgedacht haben und es vielleicht irgendwie logisch klingt: Es ist Unfug!
Kein Standard und kein De-Facto-Standard.
Verwirrend, dass der Microsoft Internet-Explorer (z.B. MSIE 7) hier sogar den echten Standards folgt:
Er behandelt beim Target-Attribut eines Links das Wort _new
wie einen
ganz normales Wort; wie einen ganz normalen Namen für ein Link-Ziel (Window oder Frames).
Was das heißt, wird weiter unten klar.
Andere Browser, z.B. Firefox (1.5), haben die irrige Meinung vieler Designer zum „Pseudo-Standard“
erhoben und öffnen tatsächlich für jeden Link mit Target _new
ein neues Fenster.
So kann man natürlich auch Sonderfälle schaffen.
Wenn der Designer wirklich für jeden Link ein neues Browser-Fenster öffnen will, so definiert der Standard
als Zauberwort allerdings nicht _new
sondern _blank
.
Irrtum 2: _blank ist viel besser
_blank
hat im Gegensatz zu _new
tatsächlich eine Daseinsberechtigung; diese aber auch nur in Sonderfällen.
Wie oben angesprochen öffnet folgender Link das Ziel-Dokument in einem neuen Fenster:
<a href="buchen.html" target="_blank">Schöne Buchen</a>
Das ist aber oft auch nicht das, was die Besucherin einer Seite wirklich erwartet. Der Browser stellt Mittel genug zur Verfügung, um auf die Index-Seite zurückzuspringen. Clevere Benutzerinnen wissen sogar, wie man einen Link in einem neuen Fenster -- oder besser in einem neuen Tab -- öffnet. Kein Grund also, jemanden auf der Index-Seite festzuhalten und sternförmig für jeden Link ein neues Browser-Fenster zu öffnen.
Irrtum 3: Für das Link-Target gibt es nur ein paar gültige Werte
Wer immer noch der Meinung ist, er oder sie will den Besucher seines Website mit neuen Browser-Fenstern beehren, kann die Zahl der zusätzlichen Fenster eventuell auf eines beschränken. Im Folgenden wird beschrieben, wie das funktioniert. Ob das sinnvoll ist, muss der Designer letzten Endes entscheiden. Hier soll nur die Technik beschrieben werden.
Nehmen wir an, der Besucher läßt das
zusätzliche Fenster auf und geht ([Alt]+[Tab]) auf die Index-Seite
zurück. Dort klickt er auf einen weiteren Link. Für das Ziel dieses Links könnte man
das zuvor geöffnete Extra-Fenster wiederverwenden. Dazu braucht man nur
ein beliebiges Wort als Target-Namen zu verwenden. Die Wahl ist beliebig, wenn man von den den
Schlüsselwörtern wie _self
, _parent
,
_top
oder _blank
absieht. Und: Da, wie wir oben gesehen
haben, manche Browser-Designer dem Wort _new
eine Bedeutung eintrichtern wollen,
sollten man _new
niemals
verwenden.
<a href="buchen.html" target="details">Schöne Buchen</a>
<a href="eichen.html" target="details">Dicke Eichen</a>
<a href="birken.html" target="details">Weiße Birken</a>
Wird einer der Links (z.B. „Schöne Buchen“) anklickt, so öffnet ein neues Browser-Fenster und zeigt die Datei buchen.html.
Läßt man dieses Fenster auf, geht zurück in das Browser-Fenster mit der Index-Seite und
klickt dort einen weiteren Link (z.B. “Dicke Eichen“) an, dann wird das Ziel dieses
Links den Inhalt im bisherigen Fenster ersetzen. Man beachte den Unterschied zum Link-Target
_blank
: Dieses würde noch ein neues, zusätzliches Fenster
öffnen.
Zwischenbilanz
Bei der ersten Verwendung eines Nicht-Schlüsselwortes als Link-Target haben wir also ein neues Browser-Fenster geöffnet, welches nun nach dem Link-Target benannt ist. Bei weiteren Verwendungen des gleichen Target aktualisieren wir dieses Fenster.
Einen Nachteil hat die Sache allerdings: Diese Aktualisierung passiert wahrscheinlich im Hintergrund, sodass die Benutzerin glaubt, der Link habe nicht funktioniert.
Damit ist wieder mal ein Grund gegeben, kein Target (bzw. _self
) anzugeben.
Aber wir nehmen an es gibt einen Grund für das separate Fenster. Dann ist nur noch dem Besucher
zu helfen, der Javascript (eingeschaltet) hat: Man muss das aktualisierte Fenster wieder in den
Vordergrund bringen. Da man dazu ohnehin Javascript braucht, sind Pop-Ups dem einheitlichen Link-Target
vorzuziehen.
Das aktualisierte Fenster in den Vordergrund bringen
Egal ob Pop-Up oder zusätzliches Fenster: Ein neues Browser-Fenster oder Pop-Up sollte nach dem Öffnen auch in den Vordergrund kommen. Wenn Javascript vorhanden ist, geht das mit der Methode
window.focus();
Es reicht, dieses als onLoad
-Attribut des body
zu
definieren.
Also z.B. im HTML selbst mit:
<body onLoad="window.focus()">
Fazit
-
Das Target-Attribut des Link-Tags auszulassen bzw. den Standardwert
_self
dort anzugeben ist in den meisten Fällen sehr weise. -
Das Öffnen von Extra-Fenstern -- ob als Pop-Up oder als neues Browser-Fenster -- sollte man verhindern. Die meisten Browser erlauben dem Benutzer zu entscheiden, ob ein Link in einem neuen Fenster, einem neuen Tab oder im gleichen Fenster öffnen sollen. (Übrigens: Wer externe Links in einem separaten Fenster öffnet, um den Benutzer zu „halten“, nimmt sich uns seinen Website wahrscheinlich einfach zu wichtig.)
-
Das Link-Target
_new
entspricht keinem Standard und wird von verschiedenen Browsern verschieden interpretiert. Daher sollte man es auf keinen Fall verwenden. -
Das Link-Target
_blank
öffnet für jeden Link, der dieses Target verwendet, ein neues Fenster. -
Andere Namen für Link-Targets öffnen einmalig ein neues Browser-Fenster. Solange dieses auf ist, werden weitere Links mit dem gleichen Target-Attribut die Zielobjekte in dieses Browser-Fenster laden, d.h. das Fenster aktualisieren. In diesem Fall sollte man dafür Sorge tragen, dass das Fenster nach dem Aktualisieren auch in den Vordergrund kommt. Dies geht nicht ohne Javascript.