Javascript ne marche pas avec FF

Résolu/Fermé
nico03 - 7 oct. 2008 à 09:56
 Utilisateur anonyme - 7 oct. 2008 à 16:29
Bonjour,

La page d'accueil du site sur lequel je tente de faire des modifs dispose d'un bloc avec un texte défilant reprenant les titres des dernières news de la partie "News".

Or ce code qui fonctionne bien avec IE, ne marche pas avec FF où le texte reste coincé tout à droite de mon bloc sans défiler.

L'analyse de cette page par Web Developper me donne le message d'erreur suivant "CSS error : Erreur d'analyse de la valeur pour la propriété left"

Voic le code PHP de la partie accueil :



<script type="text/javascript">

<!--

var singletext=new Array();

<?php
for($i=0;$i<count($news);$i++)
{
?>

singletext[<?php echo $i?>]="<nobr align=\"center\"><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></nobr>";

<?php
}
?>
//-->
</script>

<div id="news">

<script type="text/javascript">
<!--
if(document.layers){document.write('<ilayer width='+swidth+' height='+sheight+' bgcolor='+sbcolor+'><layer 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>

</div>


Et le code javascript 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();}
}

Les fonctions mises en jeu sont a priori "start" et "ns6scroll".
Je précise que le lien entre la partie accueil et la page news.js se fait bien, mais il est sur une autre page.
Quelqu'un aurait-il une idée pour solutionner mon problème ?
Merci d'avance.

3 réponses

Utilisateur anonyme
7 oct. 2008 à 09:58
Es il possible d'avoir le lien de cette page ? Pour tester sur mon Firefox ? On saura comme ça si c'est la page qui a un soucis ou si on peux regarder du coté de Firefox.
1
Voici le lien de la maquette (OK, il reste du boulot sur le css) :
http://www.s225469006.onlinehome.fr/index_test.php?section=accueil

Tu constateras que le texte défilant marche bien avec IE, pas avec FF.

Merci
0
Utilisateur anonyme
7 oct. 2008 à 16:24
Si si.. Sur mon Firefox ça marche nickel... Faut voir ailleurs...
0
Oui, parce que depuis, j'ai trouvé la solution, il me manquait juste un petit "px" ici :

ns6div.style.left = parseInt(ns6div.style.left) - sspeed +"px";

Mais merci quand même.
0
Utilisateur anonyme
7 oct. 2008 à 16:29
Pas de soucis
0