Frage zu Event-Handlern (Tastaturüberwachung)
lousypoetry
- javascript
0 doemsle0 lousypoetry0 Struppi
0 Andreas-Lindig
Hallo zusammen!
Ich hab das Problem, dass einige Eventhandler, nämlich onkeypress, onkeydown, onkeyup in Netscape/Mozilla nicht funktionieren.
Also hab ich mich durchs Archiv gewühlt und auch gefunden, dass Netscape und IE da unterschiedlich arbeiten, und dass man evtl. mit "window.onkeydown" eine Lösung finden kann. Trotzdem versteh ich irgendwie nicht, wie ich mein Script umbasteln muss, damit es funktioniert,
1. Versuch (geht nur im IE)
---------------------------
function tausch()
{
alert("Hallo");
}
.
.
.
</script>
<body onkeypress="tausch();">
2. Versuch (geht leider gar nicht, ist also ein Fehler drin :))
---------------------------------------------------------------
function tausch()
{
alert("Hallo");
}
.
.
.
window.onkeydown="tausch;"
</script>
<body>
.
.
.
Kann mir da jemand helfen? Danke!
PS: warum sind im Archiv eigentlich sämtliche Umlaute "ersetzt"? Ist z.T. sehr schwer zu lesen, oder ist das nur bei mir so?
- Versuch (geht leider gar nicht, ist also ein Fehler drin :))
function tausch()
{
alert("Hallo");
}
.
.
.
window.onkeydown="tausch;"
Hier muss es window.onkeydown="tausch();" heissen!
</script>
<body>
Hier muss es window.onkeydown="tausch();" heissen!
Hatte ich auch probiert, geht auch nicht.
window.onkeydown="tausch;"
Hier muss es window.onkeydown="tausch();" heissen!
Nein muss es nicht.
window.on(Event) ist eine Referenz auf eine Aktion.
Mit den beiden Anweisungen weist du dieser Referenz einen String zu (ob mit oder ohne Klammer spielt keine Rolle, es ist ein String). Du willst aber eine Referenz auf eine Funktion:
window.onkeydown=tausch;
Struppi.
window.onkeydown=tausch;
Hm, entweder mach ich immer noch was falsch oder - hm, das 'oder' spar ich mir besser... ;)
Ich poste mal mein kleines bescheidenes Script:
<script language="JavaScript">
<!--
function tausch()
{
alert("Hallo");
}
window.onkeydown=tausch;
//-->
</script>
Jetzt müsste doch - egal welche Taste ich drücke - die Alert-Meldung ausgegeben werden, oder? Passiert leider nicht, dabei dachte ich, ich hättes jetzt verstanden...
Hallo,
Also hab ich mich durchs Archiv gewühlt und auch gefunden, dass Netscape und IE da unterschiedlich arbeiten, und dass man evtl. mit "window.onkeydown" eine Lösung finden kann. Trotzdem versteh ich irgendwie nicht, wie ich mein Script umbasteln muss, damit es funktioniert,
wie wär's mal mit einem Nachschlagewerk, statt Archiv - es heißt SelfHTML oder so ähnlich ;)
- Versuch (geht nur im IE)
<body onkeypress="tausch();">
Da hast du aber Glück, daß der IE so Fehlertolerant ist. Eigentlich sollte das gar nicht funktionieren.
sieh mal hier:
http://dhtml.andeas-lindig.de/
unter "events->Grundlagen" kannst Du die unterschiedlichen Modelle für IE und Mozilla nachlesen.
Gruß, Andreas
<body onkeypress="tausch();">
Da hast du aber Glück, daß der IE so Fehlertolerant ist. Eigentlich sollte das gar nicht funktionieren.
Wieso nicht? Seh ich jetzt den Wald vor lauter Bäumen nicht oder gibts da speziell was zu beachten, was ich mit meinem bescheidenen Wissen nicht wissen kann? ;)