Hallo,
ich versuche ein Problem beim Ausführen des Event-Handlers onmousedown in unterschiedlichen Browsern zu umgehen.
Beim schnellen Nacheinanderklicken soll immer wieder ein Befehl ausgeführt werden und zwar bei jedem Klick. Dazu mal folgender Code:
<html>
<head>
<title>Klick-Test</title>
<script type="text/javascript">
document.onmousedown = click_test;
//document.ondblclick = click_test;
function click_test()
{
document.getElementById('test').innerHTML = parseInt(document.getElementById('test').innerHTML) + 1;
}
</script>
</head>
<body>
<span id="test">0</span>
</body>
</html>
Das ganze zählt bei jedem Maus-Klick die angezeigte Zahl um 1 höher.
Im Firefox 1.5.0.6 und Netscape 7.1 funktioniert das gut, auch beim sehr schnellen klicken. Im Opera 9.00 hab ich schon ne Problemlösung gefunden. Dort funktioniert das ganze, wenn man das ondblclick-Event mit auswertet (Kommentarzeichen im Code entfernen).
Jetzt zu dem, was ich gern hätte:
Zum einen eine Lösung für den IE. Der Befehl soll immer beim Runterdrücken der Maustaste ausgeführt werden, also soll er schon gelaufen sein, wenn man die Taste noch gedrückt hält. Und genau das ging im IE6 nicht (beim schnellen Hintereinander-Drücken).
Zum anderen würde mir eine Lösung ohne Browserweiche am besten gefallen, denn die wäre bis jetzt nötig. Denn der Code der im Opera mit dem kleinen Trick geht, führt den Befehl u.a. im Firefox einmal zu viel aus.
Ich habe auch schon mit dem onfocus-Event experimentiert, doch auch damit ging schnelles klicken u.a. im IE nicht.
Der Code ist natürlich nur ne Abbildung meiner Anwendung, aber vom Prinzip genau mein Problem. Danke schonmal für eure Mithilfe.