Andree Filchos: Events abbrechen

Beitrag lesen

Hallo,

ich versuche gerade ein Forenscript zu optimieren. Eine andere Seite kann dort sowohl über Click auf <a href="targetLink"> als auch über Click auf <td onclick="window.location.href='clickLink';"> erreicht werden. Wenn ich unter Firefox mit Hilfe von Umschalttasten einen neuen Tab mit dem Ziellink aufmachen möchte, wird nicht nur im neuen Tab der targetLink geöffnet, sondern auch im aktuellen Fenster der clickLink. Das gewünschte Verhalten ist das ausschliessliche Öffnen des neuen Tabs mit dem targetLink.

Na gut - wofür gibt es SelfForum mit Suche. Ich habe Lösungen gefunden und das Script erweitert. (Der folgende Code ist extrem verkürzt und daher nicht valid, ich weiss):

<html>
 <body>

<script>
 function stopEvent(e) {
  if (!e) {
   e = window.event;
  }
  if (e.stopPropagation) {
   e.stopPropagation();
  } else {
   e.cancelBubble=true;
  }
 }
 </script>

<div onclick="window.location.href='index.html'" style="background-color:#eee; padding:20px;" >
  <a href="index2.html" xonclick="stopEvent(event); return true;">
   CLICK
  </a>
 </div>

</body>
</html>

Mit der Javascript-Funktion wird jetzt das Durchreichen des onclick-Events an das div unterbunden und bei einfachem Click wird zwischen targetLink und clickLink unterschieden. Das Problem ist jetzt aber, dass beim Click auf <a> mit Umschalttasten nichts passiert. Es wird also kein neuer Tab erzeugt.

Kann mir jemand dieses Verhalten erklären?

(Getestet unter Firefox 1.0, Mac OS X 10.3)

Gruss Andree Filchos