Extern verlinken

Ich möchte gerne, dass in meinem Blog die Links auf externe Seiten einen neuen Tab öffnen – aber das jedes Mal von Hand einzugeben, ist mir zu mühsam. Gibts da eine bessere Lösung?

In Pocket speichern vorlesen Druckansicht
Lesezeit: 2 Min.
Von
  • Herbert Braun

Ich möchte gerne, dass in meinem Blog die Links auf externe Seiten einen neuen Tab öffnen – aber das jedes Mal von Hand einzugeben, ist mir zu mühsam. Gibts da eine bessere Lösung?

Mit ein paar Zeilen JavaScript können Sie externe Links automatisch erkennen und mit einem target-Attribut versehen. Den folgenden Code müssen Sie ausführen, nachdem die Seite eingelesen ist, also indem Sie ihn mit einem onload-Ereignis auslösen oder einfach ans Ende der HTML-Seite stellen:

var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
var uri = links[i].href;
if (uri.indexOf('http://') != 0
&& uri.indexOf('https://') != 0)
continue;
if (uri.indexOf('www.meine_domain.de') > 0) continue;
var target = document.createAttribute('target');
target.nodeValue = 'neu';
links[i].setAttributeNode(target);
}

Externe Links öffnen sich in einem eigenen Tab und sind wie in der Wikipedia gekennzeichnet – auch ohne Handarbeit.

Der Code durchläuft alle Links auf der Seite und prüft, ob sie mit „http://“ oder „https://“ beginnen. Zusätzlich können Sie noch Links auf Ihre eigene Website in der Form <a href="www.meine_domain.de"> ausschließen. Der Code versieht die gefundenen Links mit dem Attribut target="neu", sodass sie sich alle in einem Fenster oder Tab mit dem internen Namen „neu“ öffnen. Alternativ teilen Sie mit dem Fensternamen _blank jedem angeklickten Link einen eigenen Tab zu. Sie können die derart identifizierten externen Links auch via Stylesheet visuell kennzeichnen:

a[target="neu"]:after {content: url('extern.png');}

Diese CSS-Zuweisung fügt jedem Link mit dem Attribut target="neu" eine kleine Grafik hinzu, ähnlich wie dies die Wikipedia handhabt. Dieser CSS-Code funktioniert jedoch im Internet Explorer erst ab Version 9. (heb)