11548 sujets

JavaScript, DOM et API Web HTML5

J'ai le code suivant qui me fait bugger IE au point que ça recharge la page en boucle !

l'appel:

function animFondTop(delai,ht1,ht2,mg1,mg2) {

  ftSens = (ht1 > ht2)? "-" : "+"; // determine le sens increment ou decrement
  ftHt1=ht1; ftHt2=ht2; ftMg1=mg1; ftMg2=mg2;
  ftClear=setInterval("setFondTop()",delai);
}


et le code qui fait planter :
function setFondTop() {
  if (ftSens=="+") {
    ftHt1=ftHt1+6;
    ftMg1=ftMg1-6;
    if (ftHt1 >= ftHt2) { ftHt1=ftHt2; ftMg1=ftMg2; clearInterval(ftClear); }
  }
  else {
    ftHt1=ftHt1-6;
    ftMg1=ftMg1+6;
    if (ftHt1 <= ftHt2) { ftHt1=ftHt2; ftMg1=ftMg2; clearInterval(ftClear); }
  }

  with ( document.getElementById('top').style ) {
    height=ftHt1+"px";
    marginTop=Math.round(ftMg1/2)+"px";
    marginBottom=Math.round(ftMg1/2)+"px";
  }
}


si je laisse height ou marginTop ou marginBottom ça plante si je vire tout marche bien !
auriez-vous une piste, je dois faire quelque chose de travers !

PS : il y a bien une valeur valide dans les variables ftHt1 et ftMg1, j'ai vérifié.

PS2 : Cela ne beugue que si je met un DOCTYPE HTML 4.01 sinon ça marche parfaitement sous IE
Modifié par lacsap49 (31 Mar 2006 - 19:10)
je viens de m'apercevoir que ce phenomène ne se produisait que lors des tests en local, lorsque le site est sur le serveur il fonctionne parfaitement !

je crois que cela viens de l'adresse qui est dans le doctype :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


Je ne m'explique pas pourquoi cela marche dans une page et pas dans l'autre mais si ça vous arrive un jour vous tomberez peut-etre sur ce post.

Cela provoquait un reset en boucle de la page.

Si quelqu'un à une explication rationnelle, je suis preneur.

pour finir tout marche parfaitement sous Firefox (Doctype ou pas) le problème ne se posait qu'avec IE.

Pascal