preload
Jul 08

Häufig werden für Buttons, die einen Hintergrund haben (also ein Bild) und sich beim MouseOver ändern sollen, img-Tags verwendet. Um Beim Klick eine Aktion auszuführen wird das onclick-Ereignis ergänzt. Der Text des Buttons steht dabei in den Bildern. Doch das geht auch anders…

Weiterlesen

Jul 07

Ein Link, bei dem im onclick-Event ein Javascript-Aufruf erfolgt, soll beim Klick üblicherweise keine andere Seite aufgerufen werden. Das sieht bspw. wie folgt aus:

<a href="javascript:void(0);" onclick="alert('Hallo');">Hallo</a>

Damit der IE6 nicht einfach die aktuelle Seite nochmals aufruft, was in vielen Browsern das Standardvorgehen bei leerem href-Attribut ist (href=""), muss im onclick-Attribut false zurückgegeben werden. Die Version, die in allen Browsern funktioniert, lautet also:

<a href="javascript:void(0);" onclick="alert('Hallo');return false;">Hallo</a>

Die schönste Möglichkeit ist es, die Anweisung in das href-Attribut zu stecken und auf das onclick-Event zu verzichten. Der Trick liegt darin, trotzdem immer void(0); am Ende des Aufrufs anzufügen, also bspw. wie folgt:

<a href="javascript:alert('Hallo');void(0);">Hallo</a>

Jul 06

Der direkte Zugriff auf document.getElementById("elementID").value funktioniert in älteren Versionen des Internet Explorers nicht. Doch das ist keineswegs der einzige Fallstrick. In einem Fall half nichts – der IE wollte und wollte nicht auf das value-Attribut zugreifen – weder direkt noch über die Kombination von options- und selectedIndex-Attribut. Die Lösung – wie so oft – ist genauso simpel wie unschön, jedoch keineswegs naheliegend:

Ist im head-Teil des HTML-Dokumentes – unabhängig vom Dokument-Typ – ein Meta-Tag für das Land definiert, also bspw. <meta name="country" content="DE" />, so funktioniert im IE der Zugriff auf das value-Attribut von select-Elementen schlicht nicht mehr. Nach dem Weglassen dieses Meta-Tags funktioniert wieder alles bestens und zwar auf beide Arten:

var obj = document.getElementById("elementID");
var val = obj.value;

und

var obj = document.getElementById("elementID");
var val = obj.options[obj.selectedIndex].value