11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je ne comprend pas ce qui ce passe... J'ai un code qui applique une gestion des evenements onmouseover, onmouseout, onclick sur une balise <a> en javascript. Ca fonctionne sous tous les navigateurs, sauf IE7 (IE6 aussi, mais je commence à faire sans). Sous IE8 c'est ok... Et j'ai beau chercher, je ne comprend pas pourquoi...

voici le code :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
<title></title>
</head>
<body>
<div id="a">
</div>
<script type="text/javascript">
var wReel = 100;
var hReel = 200;
var cible = "a";
var nom = "truc";
var map = document.createElement("div"); 
map.id = cible+"_map"; 
map.style.position = "absolute"; 
map.style.zIndex = 3; 
map.style.top = 0; 
map.style.left = 0; 
map.style.margin = 0; 
map.style.padding = 0; 
map.style.width = wReel; 
map.style.height = hReel; 
 
// Cree la zone "suivante" 
var area = document.createElement("a"); 
area.id = "areaSuiv"; 
area.setAttribute("style", ""); 
         
area.style.position = "absolute"; 
area.style.zIndex = 3; 
area.style.top = 0; 
area.style.left = Math.floor(wReel/2)+"px"; 
area.style.width = Math.floor(wReel/2)+"px"; 
area.style.height = hReel+"px"; 
area.style.backgroundColor = "#000FFF";

area.setAttribute("onclick", "javascript:alert('"+cible+"');"); 
area.setAttribute("onmouseover", "javascript:alert('"+cible+"_suivant');"); 
area.setAttribute("onmouseout", "javascript:alert('"+cible+"_suivant');"); 
map.appendChild(area); 
      
document.getElementById("a").appendChild(map);
</script>
</body>
</html>

Etant entendu que le code ne genere aucune erreur (sous Chrome en tout cas...)

J'ai colorié les zones pour etre sur qu'elle existe est son bien positionnées.

Voila... A votre bon coeur Messieurs Dames... Smiley smile

J'ai changer le code afin qu'un copier coller suffise à tester le code...
Modifié par tepaze (15 May 2011 - 20:36)
Bonjour,

Je crois me souvenir que setAttribute crée des problèmes sous IE.
Creuse dans ce sens Smiley cligne

Cordialement
Ok, je cherche.

Mais si je remplace par :
area.onClick = "...";

Comme on peut aussi le faire, ca ne change rien.

Je vais essayer en mettant
area.onclick = function(){...}

A+
Modifié par tepaze (17 May 2011 - 09:02)