Pas de reponse sur onkeypress pour IE

artragis Messages postés 510 Statut Membre -  
artragis Messages postés 510 Statut Membre -
Bonjour, je désire recharger une page différemment selon qu'on appuie sur la touche a ou une autre touche du clavier.
Dans le premier cas on utilise ajax, dans le second c'est un script php (avec validation de formulaire) qui prend le relai.
Seulement j'ai un problème : alors qu'aucune erreur n'est détecté sur webdevlopper et que ça marche bien sur mozilla, sur IE rien ne se passe, mais strictement rien.
J'ai IE 7 et voici le code :
//ce JS là permettra juste de faire un submit lorsqu'on cliquera sur une touche du clavier
            function mettre_timestamp(){//si c'est une autre touche que le a, on envoie une tentative de réponse
                if(onkeypress.keyCode !=65){
                    date=new Date();
                    timestamp=date.getTime();//on prend le timestamp
                    millisecond=date.getMilliseconds();//et les millisecond
                    timestamp=timestamp*1000+millisecond;//et on convertit en micro_timestamp
                    document.rep.reponse.value=timestamp;//on le met dans le formulaire
                    document.rep.submit();//et on envoie le formulaire.
                }
                // si c'est le a c'est juste une maj
                else{
                    relance();
                }
            }
Configuration: Windows Vista
Firefox 3.5.7

3 réponses

  1. UgglyBoy Messages postés 440 Statut Membre 66
     
    sous IE8 (sous IE7 idem probablement):
    menu: outils > options internet
    onglet: avancés
    section: navigation > désactiver le débogage des scripts

    ceci te permettra de voir toutes les erreurs (d'après IE)

    mieux encore:
    menu: outils > outils de développement F12
    0
  2. artragis Messages postés 510 Statut Membre 146
     
    le problème est réglé de moitié,
    en effet j'ai besoin d'une mise à jour sur deux pages différentes,
    j'ai modifié le code ainsi sur la première page :
    //ce JS là permettra juste de faire un submit lorsqu'on cliquera sur une touche du clavier
                function mettre_timestamp(ev){//si c'est une autre touche que le a, on envoie une tentative de réponse
                    if(ev.keyCode !=65){
                        date=new Date();
                        timestamp=date.getTime();//on prend le timestamp
                        millisecond=date.getMilliseconds();//et les millisecond
                        timestamp=timestamp*1000+millisecond;//et on convertit en micro_timestamp
                        document.rep.reponse.value=timestamp;//on le met dans le formulaire
                        document.rep.submit();//et on envoie le formulaire.
                    }
                    // si c'est le a c'est juste une maj
                    else{
                        relance();
                    }
                }
    
            </script>
            <!--[IF IE]
            <script langage="javascript">
            if (!ev) ev=window.event; 
            document.getElementsByTagName('body')[0].onkeypress=mettre_timestamp;
            -->
            <script src="requete_simultaneite.js">//script de simultaneite</script>
        </head>
        <body onKeyPress="mettre_timestamp(onkeypress)" >

    et ça marche, seulement pour la seconde page, où il n'y a pas besoin de mettre en place un formulaire, je me suis dit "mettre simplement la fonction dans le "onkeypress" de body devrait suffir" mais non
    alors j'ai fait quelques essaies, en voici un :
    <script language="javascript" src="requete_simultaneite.js">//script de simultaneite</script>
            <script language="javascript">
                function au_clic(ev){
                    if(ev){
                        relance();
                    }
                }
    
            </script>
             <!--[IF IE]
            <script langage="javascript">
            if (!ev) ev=window.event;
            document.getElementsByTagName('body')[0].onkeypress=au_clic;
            -->
        </head>
        <body onKeyPress="au_clic(onkeypress)">

    mais quoi_que je fais rien ne se passe. (la fonction relance est la même danls les deux scripts)
    0
  3. artragis Messages postés 510 Statut Membre 146
     
    en fait non, ça marche pas car le keycode n'est pas pris en en compte, que je clique sur a ou une autre touche ça revient otujours à une réponse
    0