Gros problème en Javascript
Fermé
site12
Messages postés
288
Date d'inscription
dimanche 13 février 2011
Statut
Membre
Dernière intervention
3 décembre 2017
-
22 août 2015 à 11:58
Utilisateur anonyme - 22 août 2015 à 21:41
Utilisateur anonyme - 22 août 2015 à 21:41
A voir également:
- Gros problème en Javascript
- Telecharger javascript - Télécharger - Langages
- Javascript est activé mais ne fonctionne pas ✓ - Forum Réseaux sociaux
- Erreur #125 javascript - Forum Mozilla Firefox
- Node.js javascript runtime virus ✓ - Forum Virus
- A javascript error occurred in the main process - Forum Handicap / Accessibilté
2 réponses
KX
Messages postés
16760
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
22 août 2015 à 12:11
22 août 2015 à 12:11
Bonjour,
La fonction de document.onkeydown ne prends aucun paramètre, donc même si tu as une fonction avec un paramètre e, celui-ci vaudra undefined au moment de l'appel, or "undefined is not an object" il ne peut donc pas faire "e.keyCode" puisqu'en fait e ne vaut rien...
Plutôt qu'utiliser onkeydown sur document, tu devrais l'utiliser sur un input par exemple, dans ce cas la fonction onkeydown prendra bien le paramètre du type que tu attends...
La fonction de document.onkeydown ne prends aucun paramètre, donc même si tu as une fonction avec un paramètre e, celui-ci vaudra undefined au moment de l'appel, or "undefined is not an object" il ne peut donc pas faire "e.keyCode" puisqu'en fait e ne vaut rien...
Plutôt qu'utiliser onkeydown sur document, tu devrais l'utiliser sur un input par exemple, dans ce cas la fonction onkeydown prendra bien le paramètre du type que tu attends...
Utilisateur anonyme
22 août 2015 à 21:41
22 août 2015 à 21:41
Bonjour
Quand le gestionnaire d'événements appelle ta fonction, il lui passe bien un événement en paramètre et ton (e.keyCode == 37) est parfaitement correct.
Par contre, quand toi tu appelles directement deplacer(); dans ton code ci-dessus, tu ne lui passes aucun paramètre : dans ce cas là, e est bien "undefined".
D'ailleurs cet appel n'a pas grand sens : il est sensé gérer l'appui sur une touche, mais quelle touche quand tu appelles directement deplacer() ?
Quand le gestionnaire d'événements appelle ta fonction, il lui passe bien un événement en paramètre et ton (e.keyCode == 37) est parfaitement correct.
Par contre, quand toi tu appelles directement deplacer(); dans ton code ci-dessus, tu ne lui passes aucun paramètre : dans ce cas là, e est bien "undefined".
D'ailleurs cet appel n'a pas grand sens : il est sensé gérer l'appui sur une touche, mais quelle touche quand tu appelles directement deplacer() ?