target=_blank in XHTML 1.1

September 2009

Ein sicher bekanntes Problem ist die Tatsache, dass das target-Attribut in XHTML 1.1 nicht mehr erlaubt ist. So lässt sich eine neue Seite nicht mehr in einem neuen Fenster bzw. Tab öffnen.
Mit einem kleinen JavaScript-Trick kann man jedoch das target="_blank" simulieren.

<a href="http://www.domain.tld/" onclick="window.open(this.href);return false;">Link</a>
Mit dem Befehl window.open(this.href) wird ein neuer Tab oder neues Fenster geöffnet mit der Adresse, welche im href-Attribut des jeweiligen <a>-Tags steht.
Mit "return false" wird verhindert, dass die neue Seite im ursprünglichen Fenster geladen wird.

Und wenn der Client kein JavaScript unterstützt, hat er keine Probleme. Die Seite wird einfach im selben Fenster geöffnet.

Es gibt noch eine unsaubere Methode, das target="_blank" zu erreichen, indem man den entsprechenden Links z.B. eine Klasse verpasst und dann bei allen so gekennzeichneten Links mittels JavaScript das target-Attribut einfügt.
Unsauber ist das deshalb, weil hier trotzdem gegen die Regeln von XHTML 1.1 verstossen wird, nur kann der Validator dies nicht erkennen, weil er kein JS versteht.
 


Andere Einträge


Kommentare

#1
von Kevin am 22.01.2011
Ist target="_blank" in html5 wieder erlaubt? Ich benutz das nämlich die ganze Zeit und wahrscheinlich viele andere auch.

#2
von Floern am 04.02.2011
Ja, das target-Attribut ist in HTML5 (laut Spezifikation) wieder erlaubt: http://dev.w3.org/html5/spec/links.html#attr-hyperlink-target

#3
von Christian am 09.10.2012
Muss ich bei _blank in HTML5 irgend etwas beachten (toctype etc.)?