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 ?