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

  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)

  7. #7
    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
    ha oui mais non mais non mais non !!
    rien a voir !!!!

    pour t'en convaincre ...

    récupère les coordonnée de ta souris avec un mouseover ! tu les auras à un instant T , alors qu'un mousemove sera rafraichis à chaque fois que tu déplace ta souris ...

    je pense que tu ne gères pas tes évènements correctement , et non les évènement qui ne fonctionnent pas

  8. #8
    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
    Citation Envoyé par le_chomeur Voir le message
    je pense que tu ne gères pas tes évènements correctement , et non les évènement qui ne fonctionnent pas
    ben je gère les évenements avec le script que tu viens de me donner ...^^

    Je retire ce qu' j'ai dis : ca ne fonctionne pas comme le mouseover je me suis trompé, mais en tout cas cela se déclenche bien en continu.

    Voici le fichier complet à l'heure actuelle, si ca fonctionne chez toi ou chez quelqu'un d'autre avec IE alors mystère ...

    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
     
    <html>
    <head>
    <script language="javascript">
    function MouseOrKey() {
           document.getElementById('test').value = new Date();
    }
     
    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
            }
        }
     
    </script>
    </head>
     
    <body>
    <input id="test" type="text" size="50">
     
    <script language="javascript">
    AddEvent(document.body,'mousemove',MouseOrKey);
    </script>
    </body>
     
    </html>

  9. #9
    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
    je t'ai dit une erreur je m'excuse il fallait effectivement travailler sur document :


    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    		<title>Untitled Document</title>
    		<script language="javascript">
    function MouseOrKey() {
           document.getElementById('test').value = new Date();
    }
     
    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
            }
        }
     
    </script>
    	</head>
    	<body>
    		<input id="test" type="text" size="50">
     
    <script language="javascript">
    AddEvent(document,'mousemove',MouseOrKey);
    </script>
    	</body>
    </html>
    testé sous ie6/7 et firefox

  10. #10
    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
    Je viens de faire une copie exacte de ton script dans un nouveau fichier, et j'ai toujours le meme souci : l'heure défile en continu sous IE (v7.0).

    Par contre je viens de tester sur une autre machine avec exactement la meme version d'IE7 et ... ca marche !

    Je n'y comprends plus rien. La seule différence que je vois (il y en a peut etre d'autres) est que sur ma machine j'ai du cliquer pour "autoriser le contenu bloqué" alors que je n'ai pas eu besoin de le faire sur la 2eme ou cela fonctionne.

  11. #11
    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


    Souris bouge : input mis a jours avec la date courante !
    Souris bouge plus : plus rien !

    Sous ie6/7 Firefox , je viens de rere tester
    prochaine preuve une vidéo ???

  12. #12
    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
    pas besoin de vidéo, je te crois évidemment, par contre crois moi quand je te dis que ca ne marche pas chez moi.

    Mais j'ai modifié mon précédent message entre-temps, voir le fait que ca fonctionne sur une autre machine.

    Je ne sais pas ce qui peut faire que ca fonctionne sur l'une et pas sur l'autre, à version identique.

  13. #13
    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 n'aurais pas une souris laser par hazard ??

  14. #14
    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
    si, mais je me suis connecté sur les 2 machines avec les memes périphériques (mon PC local ou ca ne fonctonne pas, et un serveur NT via Citrix).

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