![]() | ![]() ![]() ![]() ![]() ![]() |
Beschreibung
Es werden unterschiedliche Laufschriften zur Auswahl gestellt.
Quelltext
<head>
<script language="JavaScript">
<!--
timer=null;
text="";
wahl="";
ll=0;
ii=0;
function start(cc) {
wahl=cc;
if(cc == '1') {
start1("Das ist eine Laufschrift + "+
"Erstellt mit JavaScript + "+
"Das koennen Sie auch !");
} else if(cc == '2') {
start2("Das ist ein relativ kurzer Text ");
} else {
document.form1.text1.value="schau mal in die Status-Zeile !"
start3("ich hasse Lauftexte in der Status-Zeile ! ");
}
}
function start1(cc) {
text=cc;
ll=text.length;
ii=0;
lauf1();
}
function lauf1() {
if(wahl != '1')return;
document.form1.text1.value=text.substring(ii,ll)+" "+text.substring(0,ii);
ii++;
if(ii > ll)ii=0;
timer=setTimeout("lauf1()", 100);
}
function start2(cc) {
text=cc;
ll=text.length;
ii=0;
lauf2();
}
function lauf2() {
if(wahl != '2')return;
document.form1.text1.value=text.substring(0,ii);
ii++;
if(ii > ll)ii=0;
timer=setTimeout("lauf2()", 100);
}
function start3(cc) {
text=cc;
ll=text.length;
ii=0;
lauf3();
}
function lauf3() {
if(wahl != '3')return;
window.status=text.substring(0,ii);
ii++;
if(ii > ll)ii=0;
timer=setTimeout("lauf3()", 200);
}
function stop() {
wahl='0';
if(timer != null) {
clearTimeout(timer);
timer=null;
}
}
//-->
</script>
</head>
<body onLoad="start('1')">
<form name="form1">
<input type="text" size=50 name="text1" value=""><br>
<input type="button" value="Start 1" onClick="start('1')"><br>
<input type="button" value="Start 2" onClick="start('2')"><br>
<input type="button" value="Start 3" onClick="start('3')"><br>
<input type="button" value="Stop" onClick="stop()">
</form>
</body>
Erläuterung
Die Funktion "start1" bewirkt das erstmalige Starten der Funktion "lauf1";
Eingabeargument für "start1" ist die Zeichenkette, die als Lauftext
angezeigt werden soll. Die eigentliche Anzeige übernimmt "lauf1".
Am Ende von "lauf1" wird ein Timer gesetzt, der nach 100 Millisekunden
die Funktion "lauf1" erneut aufruft.
Entsprechend arbeiten die Funktionen "start2" und "lauf2" sowie
"start3" und "lauf3" zusammen.
Bei Betätigung des "Stop"-Knopfes wird die Funktion "stop" aufgerufen.
In "stop" wird ein eventuell gesetzter Timer gelöscht; so daß
der Lauftext stehen bleibt.
Übung
Erstellen Sie ein Textfeld, in dem laufend (z.B. alle 3 Sekunden) die aktuelle
Uhrzeit angezeigt wird.
[Lösung]
Referenz
[string-Objekt]
[substring]
[indexOf]
[lastIndexOf]
[charAt]
[toLowerCase]
[toUpperCase]
[setTimeout]
[clearTimeout]
Methode | Beispiel | Wirkung |
---|---|---|
anchor() | "anchor".anchor("anker") | |
big() | "big".big() | |
blink() | "blink".blink() | |
bold() | "bold".bold() | |
fixed() | "fixed".fixed() | |
fontcolor() | "color".fontcolor("#00ff00") | |
fontsize() | "size".fontsize("+2") | |
italics() | "italics".italics() | |
link() | "link zum anker".link("#anker") | |
small() | "small".small() | |
strike() | "strike".strike() | |
sub() | "sub".sub() | |
sup() | "sup".sup() |
Neue Methoden des string-Objektes in
Version 1.2 finden Sie auf
Seite 33.
substring
substring ist eine Methode des string-Objekts. Mittels
substring ist es möglich, aus einer Zeichenkette einen Teilbereich
zu übernehmen. Zum Beispiel:
var str1="Zeichenkette";
var str2=str1.substring(pos1, pos2);
substring benötigt 2 Übergabeparameter: der erste Parameter
ist ein Index auf das erste Zeichen, das zur neuen Zeichenkette gehören soll;
der 2 Parameter ein Index auf das erste Zeichen, das nicht mehr zur
neuen Zeichenkette gehören soll. Die Indizierung beginnt wie üblich
bei 0. Wenn im angegebenen Beispiel für "pos1" der Wert "7" und für
"pos2" der Wert "10" eingesetzt wird, so wird als Ergebnis "ket" geliefert
(Buchstaben-Index 7 bis 9 von "str", wobei Index "0" auf das erste Zeichen zeigt).
Die Parameter "pos1" und "pos2" dürfen auch vertauscht werden: der kleinere
Wert wird immer als Anfang, der größere Wert als Ende interpretiert.
indexOf
indexOf ist eine Methode des string-Objektes. Mittels
indexOf ist es möglich, die Position des (ersten) Auftretens einer
Teilkette innerhalb einer Zeichenkette zu bestimmen. Zum Beispiel:
var str1="Zeichenkette";
var pos1=str1.indexOf("ket");
Es wird in der Zeichenkette "str" nach der Teilkette "ket" gesucht. Das Ergebnis
ist ein Index auf die entsprechende Position, wobei das erste Zeichen den Index
"0" hat. Im angegebenen Beispiel erhält "pos1" den Wert "7".
Wenn die gesuchte Teilkette nicht gefunden wird, so wird als Ergebnis "-1"
zurückgegeben.
Optional kann beim Aufruf von indexOf ein zweiter Parameter mitgegeben
werden; dieser gibt dann an, ab welcher Position die Suche begonnen werden
soll. Wenn z.B. in der Zeichenkette "str1" alle Teilketten "s" gesucht werden
sollen, so geht das mit folgenden JavaScript-Anweisungen:
var str1="das ist ein test";
var kk=0;
var ii;
while((ii=str1.indexOf("s", kk)) >= 0) {
document.write("Position ", ii,"<br>");
kk=ii+1;
}
lastIndexOf
lastIndexOf liefert einen Index auf das letzte Auftreten
der als Argument übergebenen Teilkette in der untersuchten Zeichenkette.
Also z.B.
var str1="das ist ein test";
var kk=str1.lastIndexOf("s");
weist der Variablen "kk" den Wert 14 zu.
Laut Laura Lemay
arbeitet die lastIndexOf-Methode
in Netscape 2.00 fehlerhaft. In der von mir (u.a.) verwendeten Version 2.01
tritt dieser Bug nicht mehr auf.
charAt
Die Methode charAt des string-Objektes liefert ein einzelnes
Zeichen aus einer Zeichenkette. Eingabeargument ist der Index des
gewünschten Zeichens (erstes Zeichen = "0"). Also z.B.
str1="abcdef";
str2=str1.charAt(3);
weist der Variablen "str2" den Wert "d" zu.
toLowerCase, toUpperCase
Diese beiden Methoden dienen dazu, sämtliche in einer Zeichenkette
enthaltenen Buchstaben entweder in Kleinbuchstaben (toLowerCase) oder
in Großbuchstaben (toUpperCase) umzuwandeln.
Auf der nächsten Seite lernen ganze Seiten das Laufen. |
![]() ![]() ![]() |