Bonjour,
J'ai créé une page web sous DOCTYPE strict XHTML 1.0 permettant d'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, celà fonctionne sur les deux.
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 :
//-- Begin Scroller's Parameters and messages -->
//scroller's width
var swidth="650px";
//scroller's height
var sheight="25px";
//scroller's speed
var sspeed=4;
var restart=sspeed;
var rspeed=sspeed;
//scroller's pause
var spause=2000;
//scroller's background
var sbcolor="none";
//-- end Parameters and message -->
//-- begin: Scroller's Algorithm -->
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();}
}
//-- end Algorithm -->
Quelqu'un saurait-il me dire ce qui cloche ?
Merci d'avance !
Nico