[js]Exec sur pc ok; pas depuis le ftp pour ie

Résolu/Fermé
stpunky Messages postés 24 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 19 février 2010 - 3 avril 2008 à 20:28
stpunky Messages postés 24 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 19 février 2010 - 5 avril 2008 à 20:45
Bonjour,

Donc j'ai développer un petit bou de code en javascript qui me permet d'afficher un texte progressivement lettre par lettre.

Voir le code ci dessous:


//pageteste.html

<head>
<script language="JavaScript" src="codetextdecal.js" type="text/javascript"></script>
</head>

<body onFocus="testtxt()">

blabla debut
<div id="div1">
	<div id="div2">
		<div id="textdecal">
			mon joli texte d'origine 
		</div>
	</div>
</div>
blabla fin


</body>


//codetextdecal.js

phrase='ton nouveau message.'
i=5;
function testtxt(){
	if(i <= phrase.length)
	{
	document.getElementById("textdecal").innerHTML = phrase.substr(0,i);
	i++;
	window.setTimeout("test()",150);
	}
}



Alors le probleme qui se pose a moi est que tout cela marche parfaitement avec FF et EI6/7 lorsque j'ouvre le fichier html sur le pc.

Mais alors lorsque j'ouvre celui-ci sur le même pc mais depuis un ftp alors sous FF tout marche parfaitement (c pas génial çà ?) mais sous EI6 et IE7 alors la ! Rien ne se passe, pas de message d'erreur, comme si le script n'était pas exécuté...
J'ai testé ce sur ftp free et sur serveur apache2 en local...
Le code Javascript dans un fichier externe ou directement dans le fichier principal aucun effet.
EI n'en veut pas...

Merci d'avance pour l'aide que vous pourrez m'apporter.
A voir également:

3 réponses

stpunky Messages postés 24 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 19 février 2010 5
5 avril 2008 à 16:02
Réctification il semblerai que le script s'éxécute sous IE7 depuis le ftp...
C'est donc certainement un problème lié à ie6.
0
Salut stpunky,
Incomprehenssible ce truc !
J'ai continué sur une autre partie de mon projet en attendant des réponses et maintenant, je reviens sur la page et le code marche !

Un truc de ouf, j'ai pas touché une ligne de code ! juste quelques css dans la feuille de style, mais qui ont rien à voir avec ce formulaire!!!

IE6 pour moi, je crois connaitre le bug ;-)

Merci quand même

Ed
0
Sinon, je viens de regarder ton code et j'ai diverses questions :

i=5;
function testtxt(){
	if(i <= phrase.length)
	{
	document.getElementById("textdecal").innerHTML = phrase.substr(0,i);
	i++;
	window.setTimeout("test()",150);
	}
}


Est tu sûr de l'usage de OnFocus dans ton body, à mon avis tu devrais regarder du coté de onload

pourquoi i commence à 5 ?

ne devrais tu pas utiliser
innerHTML += phrase.substr(0,i);
si le but est d'ajouter les caractère 1 à 1 ?

Si tu appelle la fonction test() dans ton setTimeout alors que tu as défini ta fonction testtxt(), c'est normal qu'elle ne démarre jamais ; deplus le settimeout devrait alors être en dehors de la fonction, mais le plus logique serait peut-être de faire une boucle for ?

Courage,

Ed
0
stpunky Messages postés 24 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 19 février 2010 5
5 avril 2008 à 20:45
Bonjour,
Merci de ta reponse.

En ce qui concerne le onFocus je le préfér au onLoad car avec ce second l'ecriture des caractères commence avant que la page soit complètement chargé ce qui est génant car suivant la connection le texte est ecrit en grande partie avant l affichage.

i commence a 5 car c'était une procédure de teste pourquoi pas a 1 bonne question :p

J'ai essayer avec le += mais cela me fait un bug alrs que ca marche avec le i++ a la suite.

Les caractères s'affiche bien les un aprés les autre.

Pour le setTimeout cela marche trés bien (quand la bonne fonction est appeler bien sur) Le code qui marche est ci-dessous :

//test.html

<head>
<script language="JavaScript" src="test.js" type="text/javascript"></script>
</head>

<body onFocus="test()">

bla
<div id="machin"><div id="machin2"><div id="machin3">
<span id="test">mon joli test</span>
</div></div></div>
blabla

</body>




//test.js

phrase='ton nouveau message.'
i=1;
function test(){
	if(i <= phrase.length)
	{
	document.getElementById("test").innerHTML = phrase.substr(0,i);
	i++;
	window.setTimeout("test()",150);
	}
}


Le probléme est que le script marche parfaitement sous FF et IE6/7 quand je le lance le fichier html depuis le pc.
Par contre lorsque je lance celui-ci depuis un FTP alors la ce ne marche plus sous IE6 uniquement...
Est-il possible que ma configue IE6 autorise le Js ouvert depuis le méme pc mais pas depuis un FTP ?
0