In den vergangenen beiden Wochen habe ich in diesem Log externe Links durch ein kleines Icon gekennzeichnet, wie bspw. bei diesem Link: externer Link.
Was ich auf den ersten Blick noch recht schön fand, hat sich im Verlauf beim Lesen als recht unangenehm herausgestellt, da die Bilder den Text unnötig auseinanderreißen.
Man muss sich auch die Frage nach dem Sinn stellen, externe Links zu kennzeichnen. Weiter sollte der Kontext und der Linktext selbst Aufschluss darüber geben können, ob es sich um einen externen Link handelt.
Eine IMHO interessantere Anwendung von grafischen Kennzeichnungen an Links ist die Markierung von Dokumenten, die kein HTML sind, e.g. Downloads, PDF, DOC (was ohnehin abartig ist). Da diese je nach Beschaffenheit des Clients zu einer Menge „Aufregung“ führen können und der Benutzer solche Dokumente nicht ohne Weiteres anklicken möchte.
CSS Klasse zur Markierung externer Links:
a[href^="http:"] {
background-image: url(/images/link_extern.gif);
background-repeat: no-repeat;
background-position: center left;
padding-left: 12px;
}
CSS Klasse zur Markierung von Links auf PDF Dokumente:
a[href$=".pdf"] {
background-image: url(/images/link_pdf.gif);
background-repeat: no-repeat;
background-position: center left;
padding-left: 12px;
}
Ich gehe mal davon aus, dass externe Links voll qualifiziert sind und lokale Links keine Domainangaben beinhalten.
Damit bspw. in einem Weblog die Konsistenz lokaler Links im Feed gewährleistet ist, kann ein regulärer Ausdruck eingesetzt werden. Aber das nur am Rande.
$domain = 'http://' . $_SERVER['HTTP_HOST'];
$item = preg_replace(
'~(src=|href=)("|'|")(?!http://)(.*?)(\2)~',
'\1\2'.$domain.'\3\4',
$item
);
Unschwer zu erraten, dass Attribut-Selektoren nur was für echte Browser sind. Der Internet Explorer ist draußen, wie gewohnt.