Externe Links in neuem Tab öffnen

Für externe Links hat man früher gerne das Hyperlink-Attribut target auf _blank gestellt, um zu erreichen, dass diese Links in einem neuen Fenster oder Tab geöffnet werden. Mit dem „XHTML 1.0 Strict“-Standard wurde das Attribut target jedoch begraben, weshalb der W3C Markup Validation Service nur ein there is no attribute "target" anzeigt, sofern dieses Attribut verwendet wird. Begründet wurde dieser Entschluss damit, dass man dem Webseiten-Besucher selber die Entscheidung überlassen möchte, ob er den Link in einem neuen Fenster öffnen möchte oder nicht.

Möchte man trotzdem externe Links in einem neuen Tab öffnen lassen und dabei die W3C Validierung bestehen, so hilft ein Umweg über JavaScript, welcher alle externen Links findet und mit dem Wert target="_blank" auszeichnet:

var links = document.getElementsByTagName('a');
if(links.length > 0){
  for(var i = 0; (link = links[i]); i++){
    if(link.href.indexOf(document.domain) == -1){
      link.setAttribute('target', '_blank');
    }
  }
}

Möchte man die Links von dynamisch generierten Inhalten ebenfalls auf target="_blank" setzen, so hilft folgender PHP-Trick:

$text = str_replace('<a', '<a target="_blank"', $text);

Im aktuellen HTML5-Entwurf wurde das target-Attribut übrigens wieder aufgenommen.