[Javascript] un clientX capricieux sous IE 6

Voilà, par habitude, je teste mes appli web ASP .NET avec Firefox. Mais malheur à moi, le comportement du site web est totalement différent sur IE (chose normal lorsqu’il s’agit de CSS par exemple). Là, où je coince, j’ai un script de création d’un élément de drag & drop là où le client a cliqué.

Théoriquement, il suffit simplement de récupérer la valeur de event.clientX pour connaitre la position X du curseur client. Maintenant, gros problème, la coordonnée X ne correspond en aucun cas à la position X réel. Au lieu d’avoir la bonne valeur, le Browser lui ajoute 200 px supplémentaire à ma valeur et ce sans que je lui dise de le faire.

function createNewLine(e) { var target; if ("activeElement" in document) { target = document.activeElement; } else { target = e ? e.explicitOriginalTarget : null; } if(document.all) { e = event; // Sous IE } alert("Client X : " + e.clientX); // Selon le navigateur, le résultat diffère totalement

Edit : j’ajoute aussi, que document.activeElement (IE) ne sélectionne que l’élément père. Contrairement à la variable e avec son explicitOriginalTarget (Firefox) qui me sélectionne l’élément du document cliqué. N’y aurait il pas une expression similaire à explicitOriginalTarget pour IE ?

Voilà le détail du problème (cliquez pour agrandir) :

(Sous IE) Si je clique sur l’icone de fermeture d’une de ces mini fenetres, au lieu que mon target point sur la class de ma balise IMG. Il me renvoie la classe de la case du tableau (ici, class = minute). Quel commande dois je saisir pour faire comprendre à IE que je veux récupérer seulement la bonne div ?

Hop, apparemment avec l’activeElement (IE), il me prend généralement la class parent et non pas la class fils (celui où je suis en train de cliquer). Ce que je ne comprend pas, c’est que l’activeElement intercepte bien les class adéquate lorsque je clique ailleurs que mon bouton de fermeture (cf image ci dessus).

Je mets la structure HTML du rectangle drag & drop qui est lui même placé dans une DIV parent. Ce dernier représente une des cases du tableau.

[code]






MON TEXTE



[/code]

Donc quand je clique sur le bouton de fermeture, au lieu que l’activeElement me retourne la class “mon_bouton_de_fermeture”, j’ai plutot la classe parent de la class “fenetre” (ici, la classe de la case). Par contre sous Firefox, je réceptionne bien la class adéquate via le ExplicitOriginalTarget et l’évènement e.