Markus Kniebes Journal urn:uuid:463d903b09e2d2b815575b896fd4b34d 2022-29-05T11:43:40 <![CDATA[Zuviel des Guten]]> urn:uuid:2639 2003-11-08T14:42:00 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 dem ersten Blick noch recht schön fand hat, sich im Verlauf beim Lesen als recht unagenehm herausgestellt, da die Bilder den Text unnötig auseinanderreißen.

Man muß sich auch die Frage nach dem Sinn stellen, externe Links zu kennzeichnnen. Weiter sollte der Kontext und der Linktext selbst Aufschluß darüber gegen 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, daß extere Links voll qualifiziert sind und lokale Links keine Domainangaben beinhalten.
Damit bspw. in einem Weblog die Konsistenz lokaler Links im Feed gewährleitet ist, kann ein regulärer Ausdruck eingesetzt werden. Aber das nur am Rande.

$domain = 'http://' . $_SERVER['HTTP_HOST'];
$item = preg_replace(
  '~(src=|href=)("|'|&quot;)(?!http://)(.*?)(\2)~',
  '\1\2'.$domain.'\3\4',
  $item
);

Unschwer zur erraten, daß Attribut-Selektoren nur was für echte Browser sind. Der Internet Explorer ist draußen, wie gewohnt.

]]>
Markus Kniebes kniebes@pm.me