© ilj ilj@flowsim.se
JavaScript på svenska 47
JavaScript substring
- text i textruta och i fönstrets underkant







 
och så här ser koden ut:
 


<SCRIPT LANGUAGE="
JavaScript"
     TYPE="
text/javascript">
<!--

tomt=" "
//
skrivst=0
//
realdone=0
//
for(i=0;i<30;i++)
//1
     {
     tomt=tomt+" "
//
     }
alltext=tomt + "THIS PAGE WAS MADE BY ilj"
//
 
function iljtext3()
//
{
if(realdone<2)
//
     {
     var skrivtext=alltext.substring(skrivst,alltext.length)
//2
     window.status = skrivtext
//3
     document.iljform.iljruta.value=skrivtext
//4
     skrivst++
//5
     iljtimer2 = setTimeout("iljtext3()",150)
//
     if(skrivst==alltext.length+1)
//
     {
     skrivst=0
//
     realdone++
//
     }
     }
}
//
-->
</SCRIPT>
 

<FORM NAME="
iljform">
<INPUT TYPE="
text"
     SIZE="
30"
     NAME="
iljruta">
</FORM>
 

<SCRIPT LANGUAGE="
JavaScript"
     TYPE="
text/javascript">
<!--
iljtext3()
//
-->
</SCRIPT>

 

 
Ändringar man måste göra och några som man kan göra:
 
I Själva texten som visas i fönsterlisten måste förstås ändras; här är den skriven med VERSALER. Citationstecknen måste dock finnas kvar!
 
II Siffran (här 150) som reglerar hur fort det hela ska gå kan ändras. I exemplet "flyttas" alltså texten ett tecken åt vänster med ett intervall av 150 millisekunder.
 
III Siffran som reglerar hur många gånger texten ska visas (här 2 gånger) kan också ändras. Den siffran finns på funktionens första rad som ser ut så här:
 
if(realdone<2)
 
vilket betyder att funktionen anropar sig själv och skriver texten i fönsterlisten så länge
realdone är mindre än (<) 2. Inledningsvis sätts realdone till 0 och ökar därefter med 1 varje gång alla tecken i texten skrivits.
realdone++ är samma sak som realdone=realdone+1
 
IV Anropet -
iljtext3() - kan förstås placeras efter BODY ONLOAD i stället.
 

 
fotnoter - lite fler förklaringar
 
1 När sidan laddas skapas först en lång textsträng (första
for-loopen). Den sparas i variabeln alltext och ser i avkortat skick och med mellanslagen markerade med bindestreck ser ut så här:
 
"----------------------THIS PAGE WAS"
 
2 Därefter börjar utskriften: första gången funktionen
iljtext3 anropas skrivs hela den ursprungliga texten, från och med första tecknet eftersom skrivst är lika med 0
 
"----------------------THIS PAGE WAS"
 
Nästa gång funktionen anropas har
skrivst räknats upp med 1 (skrivst++) och den text som skrivs är alltså samtliga tecken från och med det ANDRA.
 
"---------------------THIS PAGE WAS"
 
Varje gång funktionen anropas kapas alltså ett tecken från den ursprungliga textsträngen. Så här ser det ut (fortfarande med tomrummen markerade med bindestreck):
 
"----------------------THIS PAGE WAS"
"---------------------THIS PAGE WAS"
"--------------------THIS PAGE WAS"
"-------------------THIS PAGE WAS"
"------------------THIS PAGE WAS"
 
3 placerar
skrivtext (dvs den del av hela texten som för tillfället ligger i variabeln skrivtext) i fönstrets underkant
 
4 placerar
skrivtext i en textruta som fått namnet iljruta och som finns på en FORM som fått namnet iljform
 
5
skrivst++ är samma sak som skrivst=skrivst+1
 

 
Med hjälp av substring kan man alltså få tag på delar av en textsträng. Om man t ex stoppar in "flowsim" i en variabel som man kallar ordet och därefter vill skriva ut hela innehållet i variabeln kan man skriva så här:
 
ordet.substring(0,ordet.length)
visa hela textsträngen

 
Vill man ha med texten bara från och med tredje tecknet skriver man så här:

 
ordet.substring(2,ordet.length)
visa textsträngen fr o m tredje tecknet
 

 
För att få fram tredje och fjärde tecknet skriver man så här:
 

 
ordet.substring(2,4)
ordet.substring(2,4)
 

 

Sidan gjordes av
 
ilj
 
ilj@flowsim.se
 

 
Senast ändrad 22 augusti 1998.
 
Den här sidan hör hemma i ett ramsystem
hos:
www.flowsim.se