RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 Piège de FireFox avec les gestionnaires

Forum : AJAX
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ AJAX

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM AJAX

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
hibou57
Superviseur :
- Langages Web
Modérateur :
- XML/XSL
- ADA
Avatar de hibou57
Inscrit : 13/02/2005
Messages : 459
Message
#154000
Posté le 07/06/08 à 21:18
Bonsoir,

Je signale une trappe que je viens de remarquer, qui concerne FireFox et les gestionnaires d'événements.

Si vous définissez de manière globale, un fonction du nom de "onmousemove" par exemple, alors FireFox l'attachera implicitement à window.onmousemove, alors que les autres navigateurs ne le font pas.

Le comportement de FireFox parrait logique dans le sens ou tous ce qui est défini globalement est attaché à l'objet window.

Mais en même temps cela semble illogique dans la sens ou il s'agit d'une définition, et non pas d'une affectation.

En tous les cas, faites-y attention, parce qu'en faisant

function onmousemove (...)
{
...
}

div.onmousemove = onmousemove;

Alors onmousemove sera appelé à la fois quand la souris passe sur le div, mais aussi quand elle passe n'importe où ailleurs sur la fenêtre.

Ceci vaut pour tout les gestionnaires d'événement : FireFox assimile une déclaration à une affectation.

La règle la plus simple est d'éviter de donner à une fonction déclarée globalement, le même nom qu'un gestionnaire d'événement.
__________________________
Lasidoré : Editeur XML orienté sémantique/Online XML editor - Alpha
Utiliser le Compilateur Ada GNAT - Fiabilité professionnelle, Ada we trust
Opera, Le navigateur - Léger, rapide, efficace, joli et source d'inspiration
DragonFly, Le debugger JavaScript, CSS, ... et HTML - Only on Opera
Exalead Search - Beceause Google is not a synonym of “ search engine ”

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

pistache
Superviseur :
- CSharp (C#)
Modérateur :
- VB .NET
- XAML
Chef de projet(s) :
- Image Data base
- Titan

Avatar de pistache
Inscrit : 22/02/2005
Messages : 1293
Message
#154012
Posté le 08/06/08 à 18:49
Oui effectivement, c'est bizarre. Celà devrait etre spécifié et reglementé dans les normes sur les navigateurs (pour le JS), si ce n'est pas déjà fait.
__________________________
Prière de ne pas oublier le magnifique tag Image (résolu) si votre sujet l'est !

Pistaaaaaaaaaaache

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Visiteur MP
Membre du club
Inscrit :
Messages : 1244
Message
#154032
Posté le 09/06/08 à 11:15
bonjour,

ça vient du fait d'appeler la fonction onmousemove
si on l'appelle toto, pas de "souci".

c'est vrai pour tout ( print, alert... )

le déplacement de la souris ailleurs appelle onmousemove !
qui a été écrasé par la fonction écrite.

EDIT : j'ai oublié de préciser que c'est "du à la gestion*des
évènements en js. un évènement sur un élément
déclenche le même évènement sur les parents,
sauf à "gérer" stopPropagation() et/ou cancelBubble.
c'est ce que j'entendais par "ailleurs" !?!

exemple :

<body>
<div id="d"
style=" background-color:#FFFF00;width:100%;
height:50%;overflow:auto">&nbsp;</div>
<script>
var dv=document.getElementById("d");
function alert(xxx)
{ dv.innerHTML+=xxx+"<br />"; }
alert("exemple");

</script>
</body>

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM AJAX



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.