JavaScript  

 

w przykładach                

http://javascript.jest.o.k.pl

Dalekopis

Ten skrypt wyświetla w okienku tekstowym napisy, drukując je po jednej literce - naśladując dalekopis. Można określić kilka różnych komunikatów, które będą się zmieniać cyklicznie, można też ustalić prędkość, z jaką tekst będzie się pojawiał.

Instrukcja

W nagłówku dokumentu (przed </HEAD>) wklejamy następujący kod:

<script language="JavaScript" type="text/javascript">                 
<!--                                                                  
// Niniejszy skrypt pochodzi z serwisu "JavaScript w przykladach"     
// Copyright (C) 1999 Maciej Szczepaniak <maciek@wls1.ch.pwr.wroc.pl> 
                                                                      
// Skrypt objety jest licencja GNU General Public License.            
// Koniecznie przeczytaj pelna informacje o licencji pod adresem:     
//     http://javascript.jest.o.k.pl/archiwum.html#l                  
                                                                      
                                                                      
function dInit(speed,msg) {                                           
   dMsg = msg.split("\n"); // tablica z napisami                      
   dNr = 0;  // indeks biezacego napisu                               
   dPoz = 0;  // liczba wyswietlonych znakow                          
   dSpeed = speed;  // predkosc                                       
   dDrukuj();                                                         
}                                                                     
                                                                      
function dDrukuj() {                                                  
   dPoz = (dPoz+1)%dMsg[dNr].length; // zwieksz i wez modulo          
   if (dPoz == 0) {                                                   
   // caly napis - czekamy dluzej, piszemy bez kursora                
      document.dform.dinput.value = dMsg[dNr];                        
      dNr = (dNr+1)%dMsg.length;                                      
      dTimer = setTimeout("dDrukuj()",dSpeed*20);                     
   } else {                                                           
   // tylko czesc - dodajemy na koncu kursor                          
      document.dform.dinput.value = dMsg[dNr].substring(0,dPoz)+"_";  
      dTimer = setTimeout("dDrukuj()",dSpeed);                        
   }                                                                  
}                                                                     
                                                                      
//-->                                                                 
</script>                                                             
Troch꠴eorii:

Na uwagę zasługuje linijka dMsg = msg.split("\n");. Widzimy tu użycie metody split(), właściwej wszystkim stringom. Metoda ta zwraca tablicę (Array) stringów powstałą po rozbiciu napisu względem danego separatora. W naszym przypadku separatorem jest \n, czyli znak nowej linii. Tak właśnie zapisuje się w JS znaki specjalne: z ukośnikiem, np. \t oznacza tabulację, \n nową linię, \' i \" odpowiednio ' i " (tych sekwencji możemy używać wewnątrz stringów ujętych w takie właśnie cudzysłowy - nie zostaną one zinterpretowane jako koniec napisu). Natomiast sam ukośnik to \\.

Teraz musimy wstawić na stronę okienko, w którym będą się pojawiały nasze komunikaty. Wklejamy w upatrzonym miejscu taki kod:

<form name="dform" action="">                                         
<input type="text" name="dinput" size="30" readonly>                  
</form>                                                               

Pozostaje nam już tylko uruchomienie skryptu - aby działo się to automatycznie przy otwieraniu strony, wykorzystamy atrybut onLoad znacznika <body>:

<body onLoad="dInit(prędkość,'Stój\nbo strzelam')">                   

Za prędkość wstaw odpowiednią liczbę (polecam wartości od 50 (szybko) do 100 (wolno)). Drugim argumentem naszej funkcji dInit() jest wyświetla wiadomość - poszczególne komunikaty rozdzielamy symbolem nowej linii: \n.

Bardzo łatwo tak zmienić ten skrypt, aby komunikaty pojawiały się nie w okienku tekstowym, a np. w pasku stanu przeglądarki. Porównaj skrypty Banner w pasku stanu i Banner w okienku tekstowym, a napewno zorientujesz się, jak to zrobić.

[ Powrót na górę ]

Przykład

Tu widzimy nasz skrypt w akcji:

[ Powrót na górę ]

 


Powód niezgodności
strony z HTML 4.0:

Atrybut NAME w znaczniku FORM

© 1998-2000 Maciej Szczepaniak