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 :

[IE6] coordonnées en Y depuis haut page


Sujet :

JavaScript

  1. #1
    Invité
    Invité(e)
    Par défaut [IE6] coordonnées en Y depuis haut page
    Bonjour,

    Lors du passage de la souris sur une image je déclenche un événement que je capture en JavaScript. Je voudrais pouvoir obtenir les coordonnées en Y de cet événement depuis le haut de la page, ce qui se fait sous FF par evt.pageY mais sous IE cette propriété n'existe pas! La seule dispo est clientY qui me donne Y depuis le haut de la fenêtre => problème lorsque je scrolle vers le bas.

    Un petit peu de code pour illustrer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function preview(evt) {
    	if (evt == "[object MouseEvent]") { // FF
    		var xPos = parseInt(evt.pageX);
    		var yPos = parseInt(evt.pageY);
    	}
     
    	else { //IE
    		var evt = window.event;
    		var xPos = parseInt(evt.clientX);
    		var yPos = parseInt(evt.clientY);
    	}
    alert(xPos + " " + yPos);
    }
    J'ai fait une recherche sur MSDN, Microsoft conseille d'utiliser la propriété scrollTop à ajouter à clientY pour obtenir un résultat correct.

    Je modifie donc mon script (partie IE) comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    else {
    		var evt = window.event;
    		var imgsrc = evt.srcElement.src;
    		var xPos = parseInt(evt.clientX + evt.scrollTop);
    		var yPos = parseInt(evt.clientY);
    		alert(xPos);
    	}
    Et l'alert me donne cette réponse :
    NaN
    Merci pour votre aide,

    webrider

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    a priori, pour IE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     event.y+document.body.scrollTop;
    A+

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse E.Bzz!

    J'ai essayé ta proposition mais IE retourne cette erreur :
    document.body a la valeur Null ou n'est pas un objet

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par webrider
    Merci pour ta réponse E.Bzz!

    J'ai essayé ta proposition mais IE retourne cette erreur :

    Jamais eu !
    D'un autre côté si body n'est pas un objet de ta page, c'est inquiétant
    Ca doit dépendre d'où tu appelles le script : si il est au milieu de ta page, par ex., il s'exécute avant la fermeture du <body>, et ce dernier n'existe donc pas encore ...

    A+

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par E.Bzz

    Jamais eu !
    D'un autre côté si body n'est pas un objet de ta page, c'est inquiétant
    Oui effectivement c'est inquiétant! lol Je vais modifier mon script pour que ne s'exécute cette fonction qu'à la fin du chargement complet de la page. On verra ce que ça va me donner.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Eh bien non l'erreur ne change pas, toujours cette même réponse! Pourtant mon body existe bien, je ne suis pas fou!

  7. #7
    Invité
    Invité(e)
    Par défaut
    Ouups j'ai répondu trop vite, après quelques refresh j'ai fini par avoir autre chose qu'un message d'erreur mais pas vraiment ce que j'espérais.

    Même si je fais un scroll vers le bas la valeur de document.body.scrollTop vaut toujours 0...

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Je sèche.
    Pour info, la fonction (récupérée je sais plus où) qui tourne chez moi (IE6), utilisée pour une bulle d'aide ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var nava = (document.getElementById && !document.all);
    var iex = (document.all);
     
    if (nava) document.captureEvents(Event.MOUSEMOVE);
    document.onmousemove = get_mouse;
    function get_mouse(e)
    {
    var x = (nava) ? e.pageX : event.x+document.body.scrollLeft;
    var y = (nava) ? e.pageY : event.y+document.body.scrollTop;
    document.getElementById('divinfo').style.left=(event.x<650)?x+20:x-100;
    document.getElementById('divinfo').style.top=(event.y<450)?y+20:y-50;
    }
    A+

  9. #9
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.documentElement

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Bisûnûrs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.documentElement
    Alors là je dis BRAVO!! Ca marche impec chez moi, cela dit je ne comprends pas trop pourquoi j'ai des problèmes avec la version de E.Bzz. Mais bon, ça marche donc comme diraient certains : ne te pose pas de question!

    Encore merci à tous les deux!

    webrider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Système] Lancer un programme externe depuis une page web
    Par needles94000 dans le forum Langage
    Réponses: 2
    Dernier message: 08/02/2006, 21h34
  2. [APPLET] beans dans applet appelé depuis une page HTML
    Par Néo-Tony dans le forum Applets
    Réponses: 1
    Dernier message: 04/01/2006, 14h54
  3. [Javamail] Upload fichier depuis une page JSP
    Par matthieulombard dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 01/12/2005, 18h42
  4. Réponses: 2
    Dernier message: 05/11/2005, 13h48
  5. [FTP] lien ftp depuis une page web
    Par broken dans le forum Langage
    Réponses: 1
    Dernier message: 24/10/2005, 13h03

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