11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde,

Je développe actuellement un petit site qui comporte dans son header des citations de personnes l'ayant utilisé. Ces citations changent toutes les 4 secondes grâce à javascript.
Ce que j'ai fait marche très bien sous FF mais malheureusement sous IE je n'y arrive pas .
Voici le code javascript :

function changeText(){
	   var tabloText = new Array(6);
	   tabloText[1] = "<b>“</b>Depuis Interconf je n’ai plus de problème avec mes collègues étrangers.<b>”</b><p id=\"sign\">Audrey, 27 ans, directrice marketing</p>";
	   tabloText[2] = "<b>“</b>Sans InterConf ? Nous discuterions encore par mail...<b>”</b><p id=\"sign\">Olivier, 35 ans, cadre</p>";
	   tabloText[3] = "<b>“</b>Les réunions à grande échelle ne sont plus un problème grâce à InterConf.<b>”</b><p id=\"sign\">Mickael, 32 ans, chef des ventes</p>";
	   tabloText[4] = "<b>“</b>Grâce à InterConf, j'organise facilement des réunions internationales.<b>”</b><p id=\"sign\">Audrey, 27 ans, directrice marketing</p>";
	   tabloText[5] = "<b>“</b>Simple, rapide, InterConf est LA solution à vos problèmes internationaux.<b>”</b><p id=\"sign\">Axel, 22 ans, développeur</p>";
        var citat = document.getElementById("citation").innerHTML ;
    	var chiffre = aleatoire(5);
    	document.getElementById("citation").innerHTML = tabloText[chiffre];
    	setTimeout("changeText()",4000);       
	}
	
	function aleatoire(N) {
      return (Math.floor((N)*Math.random()+1));
   }


et la div correspondante :
<div id="citation"></div>


Merci de votre aide.
Modifié par asquel78 (29 Jun 2007 - 14:54)
Salut,

J'ai essaie ton script, ca marches biens sous FF et aussi IE7.

Seulement mon debugger pour IE s'est plain de la presence de characteres illegaux, mais il est passe outre et le script a fonctionne malgre tout.

J'ai modifie un peu pour enlever les erreurs de characteres illegaux, voici la page qui marches chez moi avec IE7 et FF.


<html>
<head>
<script language="javascript" type="text/javascript">
function changeText(){

	   var tabloText = new Array(6);

	   tabloText[1] = "<b>\"</b>Depuis Interconf je n’ai plus de problème avec mes collègues étrangers.<b>\"</b><p id=\"sign\">Audrey, 27 ans, directrice marketing</p>";

	   tabloText[2] = "<b>\"</b>Sans InterConf ? Nous discuterions encore par mail...<b>\"</b><p id=\"sign\">Olivier, 35 ans, cadre</p>";

	   tabloText[3] = "<b>\"</b>Les réunions à grande échelle ne sont plus un problème grâce à InterConf.<b>\"</b><p id=\"sign\">Mickael, 32 ans, chef des ventes</p>";

	   tabloText[4] = "<b>\"</b>Grâce à InterConf, j'organise facilement des réunions internationales.<b>\"</b><p id=\"sign\">Audrey, 27 ans, directrice marketing</p>";

	   tabloText[5] = "<b>\"</b>Simple, rapide, InterConf est LA solution à vos problèmes internationaux.<b>\"</b><p id=\"sign\">Axel, 22 ans, développeur</p>";

        var citat = document.getElementById("citation").innerHTML ;

    	var chiffre = aleatoire(5);

    	document.getElementById("citation").innerHTML = tabloText[chiffre];

    	setTimeout("changeText()",4000);       

	}
	function aleatoire(N) {
      return (Math.floor((N)*Math.random()+1));
   }
</script>
</head>
<body onload="changeText();">
<div id="citation"></div>
</body>
</html>


As-tu essaie sous IE en local ou avec une page uploadee sur ton site? J'ai deja eue souvent le cas de pages ne fonctionnant pas localement (pour des problemes d'acces) mais qui marchaient tres bien en ligne (avec IE7 uniquement).

En tout cas chez moi ca marches bien.
merci de ta réponse

le site est en ligne ou hors ligne
www.interconf.fr (si tu veux voir la version online)

mais moi sur IE6 ca ne marche pas, même avec la correction des caractères spéciaux.
je n'ai pas essayé sur IE7 je vais le faire de suite.
Ca marche sur IE6 chez toi ?
c'est normal que ca ne marche pas Smiley biggol
ta donée de fausse indication dans ton post aussi Smiley sweatdrop

<p id="citation"><b>&#65533;</b>Grâce à InterConf, j'organise facilement des réunions internationales.<b>&#65533;</b><p id="sign">Audrey, 27 ans, directrice marketing</p></p>


le innerHTML ne marche que sur des DIV sous IE ^^ essai de mettre tes citation dans une DIV et non un P.
Ton site ne marches pas non plus chez moi sous IE7.

Ton probleme viens des onloads multiples.

Remplace ton code comme ceci, chez moi ca marches :


<script type="text/javascript">
	<!--

function test()
	{
               init();
               changeText();
        }
.
.
.
</scrip>


et


	<script type="text/javascript">
	<!--
	window.onload=test();
	//window.onload=init();
	//window.onload=changeText();
	//window.onload=initCode();
	
	//-->
	</script>


De cette facon cela fonctionne chez moi.
Je n'avais pas vue le post de hakkou, pour tester j'ai utilise une div et non p.
Avec p cela ne fonctionnera pas sous IE.
oui oui je sais ca
j'ai remplacé en local pour tester avec un div !
mais ca marchait pas non plus, je vais essayer le coup des onload !
humm
bon maintenant ca marche en local mais pas en distant :'( :'(
lol c'est à devenir fou Smiley langue

pourtant la configuration des serveurs est rigoureusement la même ...
vous avez une idée ?
Je mis en ligne chez moi, il-y-a une petite erreur ("non implementee"???) mais en laissant continuer le script ca marches.

En tout cas en placant le onload dans body, j'ai plus cette erreur.

<body onload="test();">
en mettant dans le body, ca ne marche plus en local !
vaut mieux que je mette le javascript dans le head ?
ou après la balise body ?
ou dans un fichier un séparé appelé dans le head ?
hakkou a écrit :


le innerHTML ne marche que sur des DIV sous IE ^^ essai de mettre tes citation dans une DIV et non un P.

La grosse blague.
Merci de ne pas répandre ce genre d'inepsie sur les autres forums. Le innerHTML marche parfaitement sur toutes les balises sauf : sur l'élément Table et l'élément Select