11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je développe un album photo sur mon site et j'aurais voulu à un instant donné ajouter un onkeypress pour permettre à l'utilisateur de visualiser les photos en utilisant les touches directionnelles.

En recherchant sur ce forum j'ai trouvé qu'il fallait faire :
document.getElementsByTagName('body')[0].onkeypress = control_key;


où control_key est la fonction qui gère le traitement de l'événement.
Il prend en argument un evt mais la solution me dit je cite que "l'attribution d'event se fait tout simplement en indiquant le nom de la fonction à utiliser."

Cependant ceci ne fonctionne pas chez moi, il ne rentre pas dans la fonction
et quand je fait :
document.getElementsByTagName('body')[0].onkeypress = control_key();

Il rentre dans la fonction mais en m'alertant que evt n'est pas défini...

Merci de votre aide
Smiley confus
Il se trouve dans une fonction js où j'effectue une requête Ajax pour récupérer une des photos de l'album.
En contrôlant les touches directionnelles je souhaite donc faire appel à d'autres fonctions qui me permettent de récupérer la photo précédente ou suivante ...
L'argument ev de la fonction n'est pas envoyé sous IE. Sous IE on utilise window.event à la place.

Souvent, la première ligne ressemble à
 if (!ev) ev=window.event; 


A part ça, ce n'est pas une bonne idée : quid de la sélection de texte ? Si je veux sélectionner du texte en utilisant le clavier, je fais comment ? Sans oublier que ça interfère aussi parfois avec la saisie dans les formulaires (en tout cas sous IE)