[JS] Qu est ce qui cloche dans mon script ?

Qu est ce qui cloche dans mon script ? [JS] - Programmation

Marsh Posté le 17-03-2002 à 15:17:20    

aidez moi plizzz j'en dors plus depuis 2 jours :fou:  
 
je veux faire un script qu'a pas l'air bien mechant : afficher 1 par 1 les caracteres d'une chaine  
voici mon script :

Citation :


<script language="JavaScript">
<!--
var i;
var chaine2="";
var chaine="la chaine a afficher";
var temps;
var tableau=new Array();
 
function aff(j){
 
 if(j<chaine.length)
 {
  j++;
 chaine2=chaine2+chaine.charAt(j);
 window.document.write(chaine2);
 var chainef="aff(" + j + " );";
 //alert(chainef);
 if(j!=0){
 cleartimeout(temps);
 }
 temps=window.setTimeout(chainef,100);
 }
 
 else{
 cleartimeout(temps);
 }
 
}
 
//debut du programme
aff(-1);
//-->
</script>


 
Il m'affiche bien les 2 premiers caracteres puis il me sort objet attendu. j'ai essaye pleins de facons differentes mais je m'en sors pas ca me prend la tete grave ! :gun:  
 
Un bon point pour celui ki trouve !!!


---------------
All we need is a soul revolution
Reply

Marsh Posté le 17-03-2002 à 15:17:20   

Reply

Marsh Posté le 17-03-2002 à 15:56:22    

* clearTimeout et non pas cleartimeout
 
* document.write est fait pour être éxécuté lors du l'affichage initial de la page, eg  
 
<b>texte en gras</b>
<script>document.write(new Date())</script>
 
l'utiliser alors que la page est chargée va effacer la page.
 
-> utiliser innerHTML =  
 
<div id='maChaine'></div>
<script>
//window.document.write(chaine2);  
maChaine.innerHTML = chaine2;
</script>
 
* commencer à -1, c'est pas top : commence à 0 (aff(0)) et déplace le j++ après chaine2 = ...

Reply

Marsh Posté le 17-03-2002 à 17:05:21    

I don't know if you care or not but THANKS A LOT !!! :love:


---------------
All we need is a soul revolution
Reply

Marsh Posté le 17-03-2002 à 17:06:44    

ah c'est vachement sympa ca gere meme les balises html.
si vous voulez voir :
 
 
<body>
<div id="mondiv"></div>
<script language="JavaScript">
<!--
var i;
var chaine2="";
var chaine="la chaine <br> toto";
var temps;
var tableau=new Array();
 
function aff(j){
 
 if(j<chaine.length)
 {
   
 chaine2=chaine2+chaine.charAt(j);
 //window.document.write(chaine2);
 
 mondiv.innerHTML=chaine2;
 j++;
 var chainef="aff(" + j + " );";
 temps=window.setTimeout(chainef,200);
 }
 
 else{
 clearTimeout(temps);
 }
 
}
//-->
</script>
//debut du programme
aff(0);

 

[jfdsdjhfuetppo]--Message édité par kayasax--[/jfdsdjhfuetppo]


---------------
All we need is a soul revolution
Reply

Marsh Posté le 17-03-2002 à 17:38:06    

vous auriez pas une URL pour une doc javascript ou alors c du DHTML nan ?
j'ai vu qu'il y avait aussi un innerText et j'amerais bien en savoir +  :jap:

Reply

Marsh Posté le 17-03-2002 à 17:45:23    

recherche google : innerhtml site:msdn.microsoft.com + i'm feeling lucky
 
sinon, www.w3.org :)

Reply

Marsh Posté le 17-03-2002 à 17:52:51    

ah merde c du standard M$ !!
et sinon Youdontcare comment explique tu que la 1ere version de mon script affichait 2 caracteres si la page est detruite ??
passe pas dans opera  :sweat:

 

[jfdsdjhfuetppo]--Message édité par kayasax--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 17-03-2002 à 18:05:31    

>> et sinon Youdontcare comment explique tu que la 1ere version de mon script affichait 2 caracteres si la page est detruite ??  
 
aucune idée pour les deux caractères :) ton premier document.write() doit être document.write('l';) qui remplace toute la page par 'l' (ce qui gicle tout tout tout y compris ton code de script). peut-être que le document.write() est asynchrone et qu'il a eu le temps d'éxécuter ta fonction une deuxième fois.
 
innerHTML est standard ms mais tellement utilisé qu'il est supporté sous mozilla. si tu veux un truc 100% standard, je ne connais pas LA méthode mais un truc possible est de créer une node texte (avec createTextNode() http://www.w3.org/TR/DOM-Level-2-Core/core.html ), de l'attacher à une balise parent (ton <div> par ex, avec appendChild()) tout en effaçant celle créé précédemment (removeChild()).

Reply

Marsh Posté le 17-03-2002 à 18:11:45    

Wazaaa!
la je sens ke ca va devenir trop balaise pour pas gd chose :heink: mais un grand merci pour ton aide

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed