begin process at 2010 08 01 01:07:46
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

JavaScript et le navigateur

 > 

Problème de compatibilité

 > 

Problème avec FF / DOCTYPE


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec FF / DOCTYPE

dimanche 5 octobre 2008 à 23:18:09 | Problème avec FF / DOCTYPE

nico03

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)]?>&nbsp;:</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 !
dimanche 5 octobre 2008 à 23:22:58 | Re : Problème avec FF / DOCTYPE

nico03

Oups, désolé pour le doublon.

Pas trouvé l'option "supprimer"..
lundi 6 octobre 2008 à 17:57:54 | Re : Problème avec FF / DOCTYPE

kazma

bonjour
pas tous lu mais deja tu doit ajouter px

if(document.getElementById||document.all)
{document.write('<div style="position:relative;overflow:hidden;width:'+swidth+'px;height:'+sheight+'px;clip:rect(0 '+swidth+' '+sheight+' 0);background-color:'+sbcolor+';" onmouseover="sspeed=0;" onmouseout="sspeed=restart"><div id="iens6div" style="position:absolute;height:'+sheight+'px;"></div></div>');}
</script>
lundi 6 octobre 2008 à 18:01:05 | Re : Problème avec FF / DOCTYPE

kazma

finalement j'aurait du tous lire car apparement px est bien ajoute faut voir ailleur
mardi 7 octobre 2008 à 09:18:43 | Re : Problème avec FF / DOCTYPE

nico03

Après différent tests, il s'avère que mon test s'affiche bien avec Firefox, mais il reste "coincé" tout à droite de mon bloc sans défiler.
C'est donc la fonction javascript que Firefox ne veut pas lancer.
Lorsque je teste ma page avec Web developper, j'ai un message d'erreur 'Erreur d'analyse de la valeur pour la propriété Left". Je pense en effet qu'il y a bien un probleme de "px" quelque part mais je ne vois pas.

Les deux parties du code "impliquées" sont a prioiri celles-ci :

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();}
}

et celle-ci :


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();}
}

Merci....

Nico
mardi 7 octobre 2008 à 13:20:57 | Re : Problème avec FF / DOCTYPE

PetoleTeam

Membre Club
Réponse acceptée !
Bonjour,
Les deux seules fonctions utiles à ton déplacement sont

//-------------
function start(){
  if (document.getElementById) { // MARCHE pour tous les nouveaux navigateurs
    ns6div = document.getElementById('iens6div');
    ns6div.style.left = swidth;
    ns6div.innerHTML = singletext[0];
    sizeup = ns6div.offsetWidth;
    ns6scroll();
  }
}
//-------------------
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 +"px"; // c'est ici qu'il manque px
    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();
  }
}

kazma a donc raison même si il croit qu'il a tord...
;O)
mardi 7 octobre 2008 à 16:23:13 | Re : Problème avec FF / DOCTYPE

nico03

Merci Petole Team, celui-ci m'avait échappé.
C'est nickel !!

Nico


Cette discussion est classée dans : document, ii, if, sspeed, ns4layer


Répondre à ce message

Sujets en rapport avec ce message

Pb avec Firefox et DOCTYPE strict [ par nico03 ] 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 pa FORMULAIRE champs obligatoires boutons radio [ par ju0123456789 ] Bonjour,Pour mon site web, je suis en train de créer un formulaire de commande, et j'ai créé un script qui oblige l'utilisateur de rentrer les chamsp probleme incompatibilité IE-FF svp HELP !! [ par ju0123456789 ] Bonjour, depuis plusieurs jours, je mesuis pris la tête pour mon script de mon site web de commande en ligne, mais malheureusement il ne marche pas so très lent [ par metaleurop ] Bonjour à tous!!J'ai un script sympa pour des élèves mais malheureusement il est super long à tourner ,quand il ne bugge pas!Serait-il possible de le Problème lors de l'affichage de div sous IE7 [ par illeriane ] Bonjour,Le problème a déjà été évoqué mais malgré la lecture des postes et tutos sur internet, je ne suis pas parvenu a résoudre le problème:J'ai une Info-bulle avec usermap [ par f1hgu ] Bonjour,Dans le but de développer mon site, j'étais à la recherche d'un script faisant une info bulle avec un usermap et des areas shape. Ne trouvant, Comment centrer un ensemble de calques ? [ par chabgyver ] Bonjour,J'ai crée une interface regroupant un ensemble de div au milei duquel se trouve une iframe et j'aimerai centrer le tout horizontalement et pou Afficher texte avec X et Y [ par bshaka ] Bonjour à tous,j'ai trouvé sur le web cette fonction qui affiche date et heure à une position x et y, pour l'appeler, je fais :InitHorloge(265,56,"fon Help me please [ par balbeur ] [:)] Bonjour à tous J'ai trouvé un formulaire sur le net apparamment en Javascript.Quasi pile poil ce que je cherchais.Je les donc modifié un peu a Affichier un texte avec la position X et Y [ par bshaka ] Bonjour à tous,j'ai trouvé sur le web cette fonction qui affiche date et heure à une position x et y, pour l'appeler, je fais :InitHorloge(265,56,"fon


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Août 2010
LMMJVSD
      1
2345678
9101112131415
16171819202122
23242526272829
3031     

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,374 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales