Bonjour,
J'ai créé une page web (DOCTYPE XHTML 1.0 strict) avec un bloc qui afficher un texte défilant. Ce texte reprend les titres des news de la partie News.
Le texte s'affiche bien avec IE, mais pas avec Firefox.
Lorsque je supprime le DOCTYPE ou que j'insère un DOCTYPE Transitional, je n'ai plus le problème avec FF.
Je pense qu'il y a une erreur dans le code mais je ne vois pas.
Voici le code de la page d'accueil :
<script type="text/javascript">
var singletext=new Array();
<?php
for($i=0;$i<count($news);$i++)
{
?>
singletext[<?php echo $i?>]="<nobr align=\"center\" class=tan><a href=\"index.php?section=news\"><span class=\"defilnews\"><?php echo $news[($i+1)]?> :</span></a> <span class=\"newsAcc\" Onclick=\"javascript:document.location.href=\'index.php?section=news\'\"><?php echo $corps[($i+1)]?>...</span></a></nobr>";
<?php
}
?>
</script>
<script type="text/javascript">
document.write('<td width='+swidth+'>');
if(document.layers)
{document.write('<ilayer id="ns4div" width='+swidth+' height='+sheight+' bgcolor='+sbcolor+'><layer id="ns4div1" width='+swidth+' height='+sheight+' onmouseover="sspeed=0;" onmouseout="sspeed=restart"></layer></ilayer>')}
if(document.getElementById||document.all)
{document.write('<div style="position:relative;overflow:hidden;width:'+swidth+';height:'+sheight+';clip:rect(0 '+swidth+' '+sheight+' 0);background-color:'+sbcolor+';" onmouseover="sspeed=0;" onmouseout="sspeed=restart"><div id="iens6div" style="position:absolute;height:'+sheight+';"></div></div>');}
</script>
Et le code de la page news.js :
var swidth="650px";
var sheight="25px";
var sspeed=4;
var restart=sspeed;
var rspeed=sspeed;
var spause=2000;
var sbcolor="none";
var ii="0";
function goup()
{
if(sspeed!=rspeed*8)
{sspeed=sspeed*2;
restart=sspeed;}
}
function godown()
{
if(sspeed>rspeed)
{sspeed=sspeed/2;
restart=sspeed;}
}
function start()
{
if(document.getElementById)
{ns6div=document.getElementById('iens6div');
ns6div.style.left=swidth;
ns6div.innerHTML=singletext[0];
sizeup=ns6div.offsetWidth;
ns6scroll();}
else if(document.layers)
{ns4layer=document.ns4div.document.ns4div1;
ns4layer.left=swidth;
ns4layer.document.write(singletext[0]);
ns4layer.document.close();
sizeup=ns4layer.document.width;
ns4scroll();}
else if(document.all)
{iediv=iens6div;
iediv.style.pixelLeft=swidth;
iediv.innerHTML=singletext[0];
sizeup=iediv.offsetWidth;
iescroll();}
}
function iescroll()
{
if(iediv.style.pixelLeft>0&&iediv.style.pixelLeft<=sspeed)
{iediv.style.pixelLeft=0;
setTimeout("iescroll()",spause);}
else if(iediv.style.pixelLeft>=sizeup*-1)
{iediv.style.pixelLeft-=sspeed;
setTimeout("iescroll()",100);}
else
{if(ii==singletext.length-1)ii=0;
else ii++;
iediv.style.pixelLeft=swidth;
iediv.innerHTML=singletext[ii];
sizeup=iediv.offsetWidth;
iescroll();}
}
function ns4scroll()
{
if(ns4layer.left>0&&ns4layer.left<=sspeed)
{ns4layer.left=0;
setTimeout("ns4scroll()",spause);}
else if(ns4layer.left>=sizeup*-1)
{ns4layer.left-=sspeed;
setTimeout("ns4scroll()",100);}
else
{if(ii==singletext.length-1)ii=0;
else ii++;
ns4layer.left=swidth;
ns4layer.document.write(singletext[ii]);
ns4layer.document.close();
sizeup=ns4layer.document.width;
ns4scroll();}
}
function ns6scroll()
{
if(parseInt(ns6div.style.left)>0&&parseInt(ns6div.style.left)<=sspeed)
{ns6div.style.left=0;
setTimeout("ns6scroll()",spause);}
else if(parseInt(ns6div.style.left)>=sizeup*-1)
{ns6div.style.left=parseInt(ns6div.style.left)-sspeed;
setTimeout("ns6scroll()",100);}
else
{if(ii==singletext.length-1)ii=0;
else ii++;
ns6div.style.left=swidth;
ns6div.innerHTML=singletext[ii];
sizeup=ns6div.offsetWidth;
ns6scroll();}
}
Quelqu'un saurait-il me dire ce qui cloche ?
Merci d'avance !