IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

onmousemove se déclenche en permanence sous IE


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut onmousemove se déclenche en permanence sous IE
    Bonjour

    J'ai pas mal cherché dans le forum et testé plein de solutions, mais à chaque fois IE me lance bizzarement en permanence l'éveènement onmousemove, alors que cela fonctionne très bien avec FX.

    Voici le code très simple, juste pour tests et repris depuis un autre post ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    <html>
    <head>
     
    <script language="javascript">
     
    function MouseOrKey() {
           document.getElementById('test').value = new Date();
    }
     
    function MouseOrKeyFX(evt) {
           document.getElementById('test').value = new Date();
    }
     
    function MouseOrKeyMS() {
           document.getElementById('test').value = new Date();
    }
     
    // essai n°1
    /*if ( document.captureEvents ) {
       document.captureEvents(Event.MOUSEMOVE); 
       document.onmousemove = MouseOrKeyFX; 
    } 
     
    document.onmousemove = function(e) {
       MouseOrKeyMS(event);
    }*/
     
    // Essai n°2 : 
    //document.onmousemove = MouseOrKeyMS(); // conjointement avec le code pour FX
     
    // Essai n°3
    (window.document.attachEvent) ? window.document.attachEvent("onmousemove", MouseOrKey) : window.addEventListener("mousemove", MouseOrKey, false);
     
    </SCRIPT>
    </head>
    <body>
    <input id="test" type="text" size="50">
    </body>
    </html>
    Si j'essaie document.body.onmousemove au lieu de document.onmousemove plus rien ne se produit sous IE.

    J'avoue ne plus savoir que faire, quelqu'un aurait-il une explication ?

    Merci
    Loko

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    normal , tu dois travailler sur un élément , donc le body et non le document

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut
    Oui mais non. comme indiqué dans mon précédent message, plus rien ne se passe si je fais document.body.onmousemove, cad que sous IE l'evenement n'est jamais déclenché !
    Par contre il est déclenché en permanence avec window.document.attachEvent.

    A noter que sous IE, j'ai au départ un message du style "pour protéger votre ordinateur le contenu a été bloqué" et j'ai cliqué pour accepter/débloquer, je ne sais pas si cela joue.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut
    Nouveau test : si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <ul>
    		<li onmousemove="MouseOrKey();">G&eacute;n&eacute;ral</li>
    ca marche nickel meme sous IE.

    Par contre ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onmousemove="MouseOrKey();">
    me ramène au même problème : ca marche sous FX mais sous IE c'est déclenché en permanence.

    Quelqu'un a t-il une solution ?

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Par défaut
    tu peux m'expliquer ce que tu veux faire au final ?

    sinon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        function AddEvent(a, b, c) {
            try {
                if (a.addEventListener) {
                    a.addEventListener(b, c, false)
                } else if (a.attachEvent) {
                    a.attachEvent('on' + b, c)
                }
                return true
            } catch(err) {
                return false
            }
        }
    puis tu appel comme ceci : AddEvent(a,b,c) ou
    a : objet ciblé. ( par exemple document.body )
    b : évènement (met mouseclick pour tester)
    c : action ((met un alert("toto")))

    :-)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut
    J'ai essayé ton exemple avec une div, et j'ai le meme souci.

    Pour résumer, quelque soit le code utilisé, sous IE le 'onmousemove' réagit comme un 'onmouseover', cad qu'il déclenche la fonction en permanence quand je laisse mon pointeur au dessus de l'element en question, meme sans le bouger.

    Par contre ca fonctionne bien, egalement sous IE, avec un autre evenement par exemple (on)Click, mais ce n'est pas ce que je souhaite.

    (je voudrais lancer une alerte après un certain temps d'inactivité, et donc désactiver cette alerte par un mousemove ou keypress)

Discussions similaires

  1. onmousemove sous opera 11
    Par soccersoft dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 13/01/2011, 11h39
  2. Réponses: 2
    Dernier message: 26/02/2010, 10h15
  3. Redirect permanent sous domaine
    Par lelectronique.com dans le forum Apache
    Réponses: 5
    Dernier message: 25/10/2009, 16h54
  4. Réponses: 6
    Dernier message: 27/08/2007, 13h37
  5. onmouseover qui ne se déclenche pas sous IE...
    Par narnou dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/03/2006, 17h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo