target=“_blank“ und XHTML Strict

Wer seine Website schonmal mit XHTML Strict durch den W3C HTML-Validator gejagt hat, wird feststellen, dass einige Attribute inzwischen nicht mehr erlaubt sind. Dazu gehört unter anderem der Befehl target=“_blank“, der Links in einem neuen Fenster oder Tab öffnen lässt.

Der Benutzer soll selbst entscheiden, ob ein Link in einem neuen Fenster geöffnet werden soll, oder nicht.

Dieser These kann ich mich nicht unbedingt anschließen, denn inzwischen erwartet man einfach, dass sich externe Links in einem neuen Tab öffnen. Natürlich gibt es immer noch Workarounds, um den gewünschten Effekt zu erzielen. Aus dem Grund stelle ich an dieser Stelle eine (wie ich finde) sehr elegante Lösung vor, die zwar auf JavaScript basiert, aber auch funktioniert, wenn JavaScript im Browser deaktiviert ist.
Eine zweite Methode basiert auf CSS3, die allerdings noch nicht von allen Browser vollständig unterstützt wird. Ich rate daher vorerst auf JS zurückzugreifen.

JavaScript

Schnellste Lösung:

<a href="http://www.league4u.de/" onclick="return !window.open(this.href)">League4u (öffnet im neuen Fenster)</a>

Und hier nochmal eine saubere Lösung für target=“_blank“ als jQuery-Skript:

<script type="text/javascript">
//<![CDATA[
$('a.external').bind('click', function() {
	window.open(this.href);
	return false;
});
//]]>
</script>
 
<a href="http://www.league4u.de/" class="external">League4u (öffnet im neuen Fenster)</a>

Hierfür wird das jQuery JavaScrip-Framework benötigt!

target=“_blank“ mit CSS3

<style type="text/css">
.external { target: new tab behind; }
</style>
 
<a href="http://www.league4u.de/" class="external">League4u (öffnet im neuen Fenster)</a>

Dieses CSS-Attribut funktioniert allerdings in noch keinem der aktuellen Browser und befindet sich derzeit noch in Entwicklung beim W3.

Mehr Informationen dazu unter http://www.w3.org/TR/css3-hyperlinks/#target0.

Ein Kommentar zu “target=“_blank“ und XHTML Strict

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.