Javascript

Transcription

Javascript
Übungen Informatik I
Javascript
http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/Tutorial
Helga Gabler
Übungen Informatik 1
1
6.
JavaScript
Linkliste
¾
http://www.heise.de/ct/browsercheck/js.shtml
¾
http://java.rrzn.uni-hannover.de/javascript/index.html
¾
„Voodoo JavaScript Tutorial“ und andere Einführungen:
http://rummelplatz.uni-mannheim.de/~skoch/js/script.htm (deutsch)
http://web.urz.uni-heidelberg.de/Ausbildung/Unterlagen/JavaScript/einleit.html (dt)
http://www.stars.com/Authoring/JavaScript/Tutorial/ (englisch)
¾
Selfhtml:
http://www.teamone.de/selfhtml/ (deutsch)
¾
Netscapes neueste JavaScript-Referenz:
http://developer.netscape.com/tech/javascript/index.html (englisch)
¾
Webbuilding:
http://www.cnet.com (englisch)
Helga Gabler
Übungen Informatik 1
2
6.
JavaScript
Literatur
Frentzen, J. und H. Sobotka:
JavaScript Annotated Archives
Berkley, CA, USA: Osborne/McGraw-Hill. 1998
Goodman, Danny:
Dynamic HTML: The Definitive Reference
Sebastopol, CA, USA: O‘Reilly & Associates, Inc.
Holzner, Steven:
McGraw-Hill 1998
JavaScript Complete
Koch, Stefan
JavaScript – Einführung, Programmierung und Referenz
2., aktualisierte und erweiterte Auflage. dpunkt-Verlag, 1999
Münz, Stefan und Wolfgang Nefzger:
HTML Referenz: Grundlagen, Alternativen und Erweiterungen
Feldkirchen: Franzis Verlag 1997
Seeboerger-Weichselbaum, Michael:
Kaarst: bhv Verlag 1999
Helga Gabler
Einsteiger Seminar JavaScript
Übungen Informatik 1
3
6.
JavaScript
Anwendung in Browsern
JavaScript wird client-seitig (zur Laufzeit vom Web-Browser ) interpretiert.
ÍÎ über CGI-nutzbare Sprachen (Perl, Java-Servlets, PHP) werden
serverseitig ausgeführt.
Dazu besitzen moderne Web-Browser entsprechende InterpreterSoftware), d.h. der Client muss nur das Ausgabeformat der Skripte
(HTML) oder Bildformate (gif / jpg) verstehen.
JavaScript:
-
-
-
-
hat ähnliche Syntax wie Java Î das hier erlernte fast direkt übernehmen.
ist ansatzweise objektorientiert
(Methodenaufrufe von Objekten; Vererbung fehlt)
ist ursprünglich von Netscape
JavaScripts-Programme werden wahlweise direkt in der HTML-Datei oder
in separaten Dateien notiert.
Helga Gabler
Übungen Informatik 1
4
6.
JavaScript
JavaScript - Versionen
JavaScript - Versionen Í Î
ƒ JavaScript 1.0
ƒ JavaScript 1.1
ƒ JavaScript 1.2
ƒ JavaScript 1.3
ƒ JavaScript 1.4
ƒ JavaScript 1.5
Browser - Versionen
Netscape 2.0 / InternetExplorer 3.0
Netscape 3.0 / InternetExplorer 4.0
Netscape 4.0 / InternetExplorer 4.0(teilweise)
Netscape 4.6 / InternetExplorer 5.0
Netscape 6.0
Netscape 6.0
ƒ hierzu Testprogramm:
Helga Gabler
Übungen Informatik 1
5
6.
JavaScript
JavaScript – Beispiel: was kann mein Browser?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>
JavaScript: Browserfähigkeit testen
</title>
</head>
<BODY>
<SCRIPT TYPE="text/javascript">
document.write ("<BR><b>Browserinformationen: </b>");
document.write ("<BR>", navigator.appCodeName);
document.write ("<BR>", navigator.appName);
document.write ("<BR>", navigator.appVersion);
document.write ("<BR>", navigator.userAgent);
</SCRIPT>
<NOSCRIPT>
Sie brauchen JavaScript
</NOSCRIPT>
</body>
</html>
Helga Gabler
Übungen Informatik 1
6
6.
JavaScript
Layout von Quellcode
Richtlinien der Java Code Convention:
Einrücken von Absätzen
Setzen von Klammern
Æ geschweifte Klammern am Ende der gleichen Zeile, die die
Klammer notwendig macht
Ablegen von Quellcode:
</script language=“javascript“>
<!- alert (“Hallo Welt!“);
// - ->
</script>
oder
<script src=“quadrat.js“ type=“text/javascript“>
</script>
Helga Gabler
Übungen Informatik 1
7
6.
JavaScript
Sprachelemente: Variablen
Durch eine Variablen wird Speicherplatz für einen innerhalb des Programms
veränderbaren Wert reserviert. Um die Variable später referenzieren zu können,
haben sie einen Namen.
Für die Vergabe von Namen gelten folgende Regeln:
ƒ Namen müssen mit einem Buchstaben (Groß oder Klein) oder
Unterstrichzeichen (_) beginnen.
ƒ für weitere Zeichen sind erlaubt:Buchstaben, Ziffern, Unterstrich_);
(keine: Leerzeichen, deutsche Umlaute od. ß,...)
ƒ JS ist casesensitve, d.h. zwischen Groß-/Kleinschreibung wird
unterschieden (Bsp.: halloWelt, hallo_welt, hallo123 )
ƒ dürfen keine reservierten Wörtern (Bsp.: if, function, while) sein
ƒ Namen sollten maximal 32 Zeichen lang sein.
Jede Variablendeklaration wird mit einem Semikolon abgeschlossen
Helga Gabler
Übungen Informatik 1
8
6.
JavaScript
Variablen: Wertzuweisung
Variablen brauchen in JS nicht definiert werden, um damit arbeiten zu können
Î nicht ratsam, weil:
1. kein sauberer Programmierstil
2. unterschiedl. Resultate mit unterschiedl. Browsern sind möglich
(in Zukunft evtl. Abbruch)
Es gibt numerische Variablen (Zahlen Î Rechenoperationen) und Variablen
für Zeichen bzw. Zeichenketten (Texte, Extrahieren einer Zeichenkette).
Mögliche Zuweisungen sind:
x = 42;
Zuweisung eines festen Werts (Zahl) (num. Variable)
x = “42“;
Zuweisung eines festen Werts (Text) (Zeichenketten)
x = 6*7;
Zuweisung der Lösung einer Berechnung
x = y;
Zuweisung der Lösung aus anderen Variablen
x = summe (6,7);
Zuweisung der Lösung aus einer Funktion
Helga Gabler
Übungen Informatik 1
9
6.
JavaScript
Anweisungen
- steuern
den Programmfluss
- werden mit Semikolon “;“ beendet
(in JavaScript nicht zwingend, aber unbed. einhalten, da so einige
Fehlinterpretationen vermieden werden können, Æ Java)
Bsp.: x = 42;
Zuweisung eines Werts an eine Variable
if (x == 42) y = 1;
Überprüfung einer Bedingung
alert (“Hallo Welt“);
Aufruf einer Funktion
Anweisungsblöcke
- beginnen mit einer geschweifter Klammer-auf {
enden mit geschweifter Klammer-zu }
(ohne {} nur 1 Anweisúng)
Bsp.:
if (Zahl > 1000)
{
Zahl = 0;
alert (“Variable wurde zurückgesetzt“);
}
Helga Gabler
Übungen Informatik 1
10
6.
JavaScript
Datentypen
Zahlen:
Ganzzahlen:
dezimal var a = 4.2e1;
Î 42
oktal
var b = 052;
Î 42
hexadeziaml
var c = 0x2A;
Î 42
Gleitkommazahlen
var a = 1000.4e0 Î 1000.4
Strings:
Stringkonstante = Kette von Zeichen in „“ oder ‚‘
var Zeichen = ‘1‘;
Α1‘
var Ergebnis = Zeichen + Zeichen
Î ‘11‘
Boolesche Werte
true / false
Objekte
kapseln Variablen und Funktionen in eine Struktur zusammen
Steuerzeichen und Zeichenketten
Helga Gabler
Übungen Informatik 1
11
6.
JavaScript
Zeichenketten
Helga Gabler
Zeichen
Name
Wirkung
\b
backspace
\n
new line
je nach System wird eine neue Zeile an der
aktuellen Position oder am linken Rand
begonnen.
\r
carriage
return
je nach System wird an den linken Rand in der
aktuellen Position oder einer neuen Zeile
positioniert.
\f
form feed
ein Seitenvorschub für Drucker wird eingebaut
\t
tab
es wird bis zum nächsten Tabulator eingerückt
\“
quote
\‘
single quote
\\
backslash
links davon stehendes Zeichen wird gelöscht
steht für ein Anführungszeichen innerhalb von “...“
steht für Apostroph innerhalb von “...“
erzeugt das Zeichen \ selbst
Übungen Informatik 1
12
6.
JavaScript
Operatoren
ƒ Operatoren sind Zeichen, die verwendet werden, um Verknüpfungen oder
Vergleiche zw. Variablen herzustellen.
ƒ eine Operation erzeugt immer einen Ergebniswert
ƒ eine Operation arbeitet mit einem oder mit zwei Î unäre / binäre Operatoren
Man unterscheidet;:
ƒVergleichsoperatoren
ƒBerechnungsoperatoren
ƒKonkatenationsoperatoren
ƒlogische Operatoren
ƒBitoperatoren
ƒZuweisungsoperator
Helga Gabler
Datentyp
Zahlen, Strings (Zeichenketten)
Zahlen
Strings (Zeichenketten)
boolesche Werte
Zahlen, boolesche Werte
alle
Übungen Informatik 1
13
6.
JavaScript
Vergleichs-Operatoren
Helga Gabler
==
!=
<
>
<=
>=
===
!= =
gleicher Wert
ungleich
kleiner als
größer als
kleiner oder gleich
größer oder gleich
exakt gleicher Wert und Typ(ab JavaScript 1.2)
Wert oder Typ sind nicht gleich (ab JavaScript 1.2)
x = = 42;
x > 42;
x >= 42;
x != 42;
x = = = "42"
...
x gleich 42?
x größer 42?
x größer gleich 42
x ungleich 42
ist x gleich 42 und vom Typ string?
Übungen Informatik 1
14
6.
JavaScript
Berechnungsoperatoren
Berechnungsoperatoren:
+
Addition
Subtraktion
*
Multiplikation
/
Division
%
Modulo-Operator
++
Inkrement
--
Helga Gabler
Dekrement
Bsp
2+2
5–1
3*6
27 9
7%4
x = 10
++x
x = 10
--x
Übungen Informatik 1
Erg
4
4
18
3
3
11
9
15
6.
JavaScript
Anfüge- / Konkatenationsoperator +
Der Operator + zwischen zwei Strings bewirkt die Verkettung zu
einem einzigen String.
Er kann jedoch auch eine Typenumwandlung bewirken, wenn einer der beiden
Operanden eine Zahl ist. Mangels explizierter Typkonvertierung (JavaScript
verlangt keine Typzuweisung bei der Deklarierung) versucht JavaScript stets zu
erst eine Konvertierung in einen String durchzuführen und dann zu berechnen.
Die implizite Typumwandlung führt beim Programmieren oft zu Fehlern!
Anfügeoperator Wirkung
Ergebniswert
+
Aneinanderreihung
„Georg“ + „Schmidt“
var Zeichen = ‚1‘;
var Ergebnis = Zeichen + Zeichen
Î ‚1‘
Î ‚11‘
Helga Gabler
Beispiel
Übungen Informatik 1
„Georg Schmidt“
16
6.
JavaScript
Logische Operatoren
Für komplexere Bedingungen bietet JavaScript die Operatoren && als
logisches "und", ! als logisches "nicht“ und || als logisches "oder".
Leider gibt es kein exklusives "oder".
&&
und
( beide Bed. müssen erfüllt sein)
||
inkl. oder
(nur eine Bed. muss erfüllt sein)
!
nicht
Beispiel:
x = = 3 || y = = 4
ist x gleich 3 oder y gleich 4?
x != 2 && y != 10
ist x ungleich 2 und y ungleich 10?
Sonderverknüpfungen:
! (A&&B)
! (A || B)
NAND
NOR
!A&&B || A&&!B
XOR
A&&B || !A&&!B
XNOR
Helga Gabler
NICHT-UND-Verknüpfung
nur falsch, wenn A und B wahr
NICHT-ODER -Verknüpfung „weder...noch“
nur wahr, wenn A und B falsch
exklusives ODER
„entweder ... oder ... “ (Antivalenz)
wahr, wenn nur A oder nur B falsch
exklusives NICHT-ODER „aus... folgt ...
wahr, wenn A und B übereinstimmen
Übungen Informatik 1
17
6.
JavaScript
Bit-Operatoren
Die Bitoperatoren », «, &, | und ^ sind sehr kompliziert und
kaum gebräuchlich, daher werden sie hier nicht erklärt.
a=x&y
b=x|y
c=x^y
d = x >> y
e = x << y
Und-Bedingung in Bitmaske
Oder-Bedingung in Bitmaske
exkl. Oder-Bedingung in Bitmaske
verschiebt die Bitmaske um 1 Bit nach rechts
(füllt mit 0 auf)
verschiebt die Bitmaske um 1 Bit nach links
(füllt mit 0 auf)
Beispiel:
Dezimal: x = 25; y = 26
binär:
x = 0001 1001
y = 0001 1010
a=x &yÎ
a = 0001 1000
b=x|y Î
b = 0001 1011
c=x^y Î
c = 0000 0011
Helga Gabler
Übungen Informatik 1
18
6.
JavaScript
Zuweisungsoperatoren (Kurzschreibweise)
Operator
=
+=
+=
‘Eidotter‘
-=
*=
/=
%=
&=
^=
|=
<< =
>> =
>>> =
Helga Gabler
Wirkung
Einfache Wertzuweisung
Addition und Zuweisung
Addition und Zuweisung
A=5
AÆ 5
A += 5 A Æ 10
‚Ei += ‚dotter‘
Subtraktion und Zuweisung
Multiplikation und Zuweisung
Division und Zuweisung
Modulo-Operation und Zuweisung
Bitweises „UND“und Zuweisung
Bitweises „Exklusiv-Oder“und Zuw.
Bitweises „ODER“ und Zuweisung
Bitweises „Linksverschieben“ und Zuw.
Bitweises „Rechtsverschieben“ und Zuw.
Null-Fill-Rechtsverschiebung und Zuw.
A -= 2
A *=2
A /= 2
A %= 3
A &= 3
A ^= 5
A != 5
A <<= 2
A >>= 2
A >>>=2
Übungen Informatik 1
AÆ8
A Æ 16
AÆ8
AÆ2
AÆ2
AÆ4
AÆ5
A Æ 20
AÆ5
AÆ1
19
6.
JavaScript
andere Operatoren
einfacher Bedingungsoperator
Operator Wirkung
Beispiel
Ergebniswert
?:
Bedingung
true ? „yes“ : „no“
„yes
false ? „yes“ : „no“
„no“
Typenkonvertierung und typeof-Operator:
Helga Gabler
Übungen Informatik 1
20
6.
JavaScript
Rangfolge der Operatoren
Rangstufe
Oper.-Zeichen
(1 höchste Prior.)
1
() []
2
!
3
++ -4
5
~
6
*
7
/
8
%
9
+
10
+
11
12
<<
13
>>
14
>>
Oper.-Name
Oper.-Typ
Klammer
Gruppierung
Nicht
Log. Oper.
Inkr. / Dekr
Berechn.Oper.
Negation
Berechn.Oper
Nicht
Bit-Oper.
Multipl.
Berechn.Oper.
Division
Berechn.Oper.
Modula-Operator
Berechn.Oper.
Aneinanderreihung Konkaten.Oper.
Addition
Berechn.Oper.
Subtraktion
Berechn.Oper.
Linksversch.
Bit-Oper.
Rechtsversch
Bit-Oper.
Null-fill-Rechtsversch Bit-Oper.
mit Klammern können Sie die Rangfolge bei den Operatoren beeinflussen
Helga Gabler
Übungen Informatik 1
21
6.
JavaScript
Bedingte Anweisung IF
Die if-Schleife ist die einfachste Form der Bedingung. JavaScript kennt kein
then, jedoch ist else möglich. Ihre Syntax lautet
if (Bedingung)
{
Anweisung1 oder Anweisungsblock1
}
else
{
Anweisung2 oder Anweisungsblock2
}
auch:
verschachtelte Bedingungen,
mehrstufige Bedingungen
if { … if {… if {… }}}
if { … else if { … else { …}}}
möglich
Beispiel:
if (x > y) alert (“x ist groesser als y.“); else alert (“x ist nicht groesser als
y.“); PasswortEingabe.html
Helga Gabler
Übungen Informatik 1
22
6.
JavaScript
if Schleife – Beispiel 1
<html>
<head>
<title>Beispiel zur if-Schleife</title>
</head>
<body >
<p>
<script language="javascript">
<!-var a = 2;
if (a == 2)
{
alert(a);
}
//-->
</script>
</p>
</body>
</html>
Helga Gabler
Übungen Informatik 1
23
6.
JavaScript
Entweder-Oder-Abfrage
Beispiel 1:
„Zeitausgabe mit P.M. oder A.M.“
Time = ‚2‘ + (Stunden > 12) ? ‚P.M.‘ : ‚A.M.‘;
Beispiel2: ges: „größte Zahl von x,y,z“
(ternärer /dreifach Operator)
var x,y,z;
document.write ("<BR>Die gr&ouml;&szlig;te Zahl lautet ",
(x>y) ? ((z>x) ? z:x) : ((z>y) ? z:y)
(x>y ) ?
(x>y)
( (z>x) ? z:x) :
ja
nein
(z>x)
( (z>y) ? z:y) )
ja
z
nein
x
(z>y)
ja
z
nein
y
Î GrößteVon3Zahlen.html
Helga Gabler
Übungen Informatik 1
24
6.
JavaScript
Entscheidungen
Sind die folgenden Aussagen wahr oder falsch?
a)
var a=5, b=18
if (a>0 && b!=18)
1
b)
&&
0
var zahl=10, wert=100
if (zahl != 0 || zahl > wert || wert-zahl == 90)
0
c)
||
0
||
||
1
1
var x=1.0, y=5.7
if (x >= .9 && y <= 5.8)
1
d)
0
&&
1
var n1 = 1, n2 = 17
if (n1 > 0 && n2 > 0 ||
1
Helga Gabler
&&
1
1
||
||
n1 > n2 &&
0
&&
0
Übungen Informatik 1
n2 != 17)
0
25
6.
JavaScript
switch/case
Auch neu in der Version 1.2 ist die switch/case-Anweisung. Mit ihr lassen sich
komplizierte Konstrukte wie
if
else
if
else
deutlich verkürzen. Ihre Syntax lautet:
switch(variable)
{
case Möglichkeit1: Anweisung1;break;
case Möglichkeit2: Anweisung2;break;
.
.
default: default-Anweisung;break;
}
Helga Gabler
Übungen Informatik 1
26
6.
JavaScript
switch/case –Beispiel 2
<script language="javascript">
<!-var i = 2;
switch (i)
{
case 1: alert('erste Möglichkeit');break;
case 2: alert('zweite Möglichkeit');break;
case 3: alert('dritte Möglichkeit');break;
default:alert('Nicht passend');break;
}
//-->
</script>
Helga Gabler
Übungen Informatik 1
27
6.
JavaScript
while und do-while Schleifen
Die while-Schleife sieht beispielhaft so aus:
while (x < 10) { x++; a = b*x; }
Bedingung steht wieder in ( ).
Wenn sie erfüllt ist wird die Schleife durchlaufen
Seit der Version 1.2 unterstützt JavaScript nun auch die do/while-Schleife
(vorher nur die while-Schleife). Auch mit ihr lassen sich Aktionen wiederholen
bis ein bestimmter Ausdruck wahr wird. Ihre Syntax lautet:
do
{
Anweisung oder Anweisungsblock
}
while (Bedingung)
Helga Gabler
Übungen Informatik 1
28
6.
JavaScript
do / while Schleifen – Beispiel 3
<html>
<head> <title>Beispiel zur do/while-Schleife</title>
</head>
<body>
<p>
<script language="javascript">
<!-var i = 0;
do
{
document.write(i);
document.write('<br>');
}
while (++i <= 2);
//-->
</script>
</p>
</body>
</html>
Helga Gabler
Übungen Informatik 1
29
6.
JavaScript
for Schleife
Mit der for-Schleife lassen sich Anweisungen wiederholen bis ein bestimmter
Ausdruck wahr wird. Sie eignet sich auch sehr gut, um Arrays zu durchlaufen.
Die Syntax lautet:
for (Initialisierung; Test; Aktualisierung)
{
Anweisung oder Anweisungsblock
}
Helga Gabler
Übungen Informatik 1
30
6.
JavaScript
for Schleife Beispiel 4
<html>
<head>
<title>Beispiel zur for-Schleife</title>
</head>
<body >
<p>
<script language=“JavaScript">
<!-for (var i = 0; i <= 2; i++)
{
document.write('<p>');
document.write(i);
document.write('<br>');
}
//-->
</script>
</p>
</body>
Helga Gabler
Übungen Informatik 1
31
6.
JavaScript
Break- und Continue-Anweisungen
Möglichkeit um einen Schleigfendurchlauf abzubrechen
Break:
continue:
Beispiel:
Helga Gabler
stoppt den Schleifendurchlauf;
beginnt mit der Anweisung, die der abgebrochenen
Schleife unmittelbar folgt
beendet den aktuellen Schleifendurchlauf,
beendet aber die Schleife nicht, sondern fährt mit
dem nächsten Schleifendurchlauf fort.
Vorsicht: Gefahr von Endlosschleife
JavaScript/JS-BreakContinue.html
Übungen Informatik 1
32
6.
JavaScript
Funktionen
ƒ Funktionen entsprechen Prozeduren aus anderen Sprachen
ƒ zeigen am deutlichsten den Unterschied zwischen Java und JavaScript.
ƒ Sind Anweisungsblöcke, die separat aufgerufen werden können.
Funktionen werden durch
Funktionsname ( ) { Anweisungsblock }
definiert und durch Funktionsname (Parameter) aufgerufen.
Dieser Aufruf kann
ƒ aus einem Skript, ( Î Beispiel)
ƒ aus einer anderen Funktion (Î Beispiel)
ƒ aus einem Event-Handler ( ÎBeispiel)
ƒ aus einem HTML-Tag (ÎBeispiel)
heraus erfolgen.
Helga Gabler
Übungen Informatik 1
33
6.
JavaScript
Funktionen Definition
Bsp.:
function summieren ( )
{
...
}
• Funktion muss einen Namen haben (s.o.)
• Namen schreibt man vor Anweisungsblock, der die Funktion
implementiert
• reserviertes Wort ”function” wird vor den Namen gestellt (für
Interpreter)
• nach dem Namen muss (!) ein rundes Klammerpaar gesetzt werden
• evtl. Parameterkennungen werden in dem Klammerpaar eingebaut
• nach den runden Klammern kommt der Anweisungsblock:
beginnt mit geschweifter Klammer-auf {
endet mit geschweifter Klammer-zu }
Helga Gabler
Übungen Informatik 1
34
6.
JavaScript
Funktionen mit Parameter
• Werte mit denen ein Funktion rechnen soll werden über
Parameterliste übergeben
• Definition der Parameter:
in den runden Klammern bei der Funktions Deklaration
• Variablen, die innerhalb einer Funktion deklariert werden
sind lokale Variable
Î existieren nur innerhalb dieser Funktion (s.o.)
Helga Gabler
Übungen Informatik 1
35
6.
JavaScript
Funktionen - Aufruf mit Rückgabewerte
eine Funktion kann einen Rückgabewert liefern (=Zahl oder Text):
return rueckgabewert;
Bsp.:
function summieren (summand1, summand2;) {
rueckgabewert = summand1 + summand2;
return rueckgabewert;
}
Aufruf der Funktion: meineZahl = summieren (6,7)
(der Variablen meineZahl wird der Wert von rueckgabewert zugewiesen)
Helga Gabler
Übungen Informatik 1
36
6.
JavaScript
Bsp.5a: Funktion mit Parameter in einem Script
<html> <head>
<title>Beispiel zum Funktionsaufruf aus einem Skript
</title>
</head>
<body> <p>
<script language="javascript">
<!-function Quadrat(zahl)
{
alert(zahl*zahl);
}
Quadrat(3);
//-->
</script>
</p>
</body>
</html>
Helga Gabler
Übungen Informatik 1
37
6.
JavaScript
Bsp.5b: Fkt. mit Parameter und Rückgabewert in einem Script
<html>
<head> <title>Funktionen</title>
</head>
<body> <p>
<script language="javascript">
<!-function Produkt (x,y)
{
var Ergebnis = x*y;
return Ergebnis;
}
var MeinProdukt = Produkt (3,4);
document.write (MeinProdukt);
//-->
</script>
</p>
</body>
</html>
Helga Gabler
Übungen Informatik 1
38
6.
JavaScript
Bsp.6: Funktionsaufruf in einer Funktion
<html> <head>
<title>Beispiel zum Funktionsaufruf aus einer anderen Funktion
</title> </head>
<body>
<script language="javascript">
<!-function Schreibe(irgendwas)
{
document.write('<p>');
document.write(irgendwas);
}
function Quadrat(zahl)
{
var quad = (zahl*zahl);
Schreibe(quad);
}
Quadrat(4);
//-->
</script>
</body> </html>
Helga Gabler
Übungen Informatik 1
39
6.
JavaScript
Bsp.7: Funktionsaufruf über Event Handler
<html>
<head> <title>Beispiel zum Funktionsaufruf durch einen Event-Handler</title>
<script language="JavaScript">
<!-function gehauf (inhalt)
{
alert(inhalt);
}
//-->
</script>
<noscript></noscript>
</head>
<body>
<h3> <a href="funktionen3.html" onmouseover="gehauf('beliebiger Text');">
Fahren Sie über den Link!</a> </h3>
</body>
</html>
Helga Gabler
Übungen Informatik 1
40
6.
JavaScript
Bsp.8: Funktionsaufruf über HTML-Tag
<html>
<head> <title>Beispiel zum Funktionsaufruf aus einem Tag</title>
</head>
<body>
<script language="JavaScript">
<!-function Meldedich(text)
{
alert(text);
}
//-->
</script>
<h3>
<a href="javascript:Meldedich('Hallo');">Klicken Sie bitte hier!</a> </h3>
</body>
</html>
Helga Gabler
Übungen Informatik 1
41
6.
JavaScript
Regeln für selbstvergebenen Namen - Konventionen
ƒ Variablennamen sollten klein geschrieben werden
ƒ sollten ausdrücken, welche Bedeutung eine Variable / Funktion hat,
wozu sie verwendet wird
ƒ Name aus mehren Worten = ein Wort ohne Unterstrich z.B.:
summeJahreswerte, nameKunde,...
ƒ Namen aus einem Buchstaben haben immer die gleiche Bedeutung:
i,j,k,l, usw. z.B. für Zählvariablen
x,y,z, usw. für Koordinaten
r, g, b für Rot- Grün und Blauanteil von Farben
Helga Gabler
Übungen Informatik 1
42
6.
JavaScript
Kommentare
Einzeiliger Kommentar beginnt mit
Mehrzeiliger Kommentar beginnt mit
endet mit
//
/*
*/
Wichtig um Informationen für Entwickler abzulegen
•
welche Aufgabe hat die Funktion oder
•
Bedingung unter der die Funktion arbeitet
Beachte:
Keine sensitive Informationen (Passwörter), da im Quelltext für jeden
sichtbar
Helga Gabler
Übungen Informatik 1
43
6.
JavaScript
lokale / globale Variablen
Es gibt globale Variablen und lokale Variablen.
• Globale Variablen sind im gesamten Dokument gültig und stehen
jederzeit zur Verfügung. Auf sie kann auch in einer Funktion
zugegriffen werden.
• Lokale Variable werden innerhalb einer Funktion deklariert.
Î Ihr Gültigkeitsbereich ist auf die Funktion beschränkt
Î außerhalb der Funktion kann nicht auf sie zugegriffen werden.
Parameter, die einer Funktion übergegeben werden, werden ebenfalls als
lokale Variablen behandelt
Helga Gabler
Übungen Informatik 1
44
6.
JavaScript
Variablen: Definitionen, Initialisierung, Zuweisung
Variablen können gleich bei der Definition einen Wert zugewiesen
bekommen = Initialisierung
Es können mehrere Variablen auf einmal (durch Kommata getrennt) definiert
werden
var y;
var y wird deklariert (vereinbart)
x = 25;
var x wird deklariert und initialisiert
var y=234; var y bekommt einen Wert zugewiesen
(Zuweisung kann zu jeder Zeit erfolgen, egal ob die Variable
bereits initialisiert ist, oder nicht)
var y=“Jetzt kommt Text“;
Einer numerischen Variablen kann auch später eine Zeichenkette
zugewiesen
werden
Inhalt einer Variable ist immer von einem best. Typ, aber die Variable
kann bel. oft den Typ wechseln
Î Typenwechsel sind kein guter Programmierstil!
Helga Gabler
Übungen Informatik 1
45
6.
JavaScript
lokale / globale Variablen - Beispiel
var Hinweis = "Gleich werden Quadratzahlen ausgegeben";
alert(Hinweis);
function SchreibeQuadrate() {
var SinnDesLebens = 42;
var i, x;
var Satzteil = "Das Quadrat von ";
for(i=1; i <= SinnDesLebens; ++i) {
x = i * i;
document.write(Satzteil + i + " ist " + x +
"<br>");
}
// Ende for
}
// Ende function SchreibeQuadrat
lokale Variablen hier: SinnDesLebens, i, x und Satzteil
globale Variablen hier: Hinweis
Helga Gabler
Übungen Informatik 1
46
6.
JavaScript
eingebaute Funktionen
folgende Funktionen sind in JS bereits vorhanden. Die Funktionsnamen
sind reserviert.
eval (Zeichenkette)
alert (x = eval („3 + 4 * 6“));
Î27
escape (Zeichenkette)
liefert den hex. Wert der Steuerzeichen
(mit ASCII-Wert von 0 bis 31
unescape (Zeichenkette)
führt das Gegenteil aus
IsNaN (Wert)
is not a number = ist keine Zahl (zum testen)
Î true /false
IsFinite (Wert)
testet, ob der übergebene Wert innerhalb des
Zahlenbereichs liegt, den JS verarbeiten kann
Î true / false
parseFloat (Zeichenkette)
wandelt Zeichenkette in eine Zahl um
(NaN, wenn nicht möglich)
parseInt (Zeichenkette)
wandelt Zeichenkette in eine ganze Zahl um
(Bsp: c = parseInt(A) + parseFloat(b);
Helga Gabler
Übungen Informatik 1
47
6.
JavaScript
Objekte
Objekte bilden die grundlegende Datenstruktur in der OOP.
Es sind Programmmodule, die aus Methoden und Daten bestehen
können. Die Daten dürfen nie direkt manipuliert werden, sondern
müssen immer über Methoden angesprochen werden.
Daten, z.B. Variablen, von JavaScript können auch direkt
angesprochen werden und verletzen so das Prinzip der
"Datenkapselung".
Zusätzlich benutzt JavaScript sog. Unterobjekte, die in einer
baumähnlichen Stuktur aufrufbar sind.
Helga Gabler
Übungen Informatik 1
48
6.
JavaScript
Objekte
Was ist ein Objekt?
Objekt ist ein Verbund aus Informationen über Daten und
Informationen – oder :
Objekt besitzt
- Eigenschaften, die durch Variablen gekennzeichnet sind
- Funktionen (also Methoden), mit denen das Objekt
(oder seine Eigenschaften) manipuliert werden kann
Helga Gabler
Übungen Informatik 1
49
6.
JavaScript
Methoden
Methoden:
erlauben den Zugriff/ Manipulation auf die Daten eines Objektes
( "Datenkapselung“)
-
werden durch den Punktoperator aufgerufen
-
enden immer mit Klammern.
-
In den Klammern können Parameter übergeben werden
Beispiel:
Helga Gabler
document.write():
document.write('Dieser Text ist ein String-Parameter');
Übungen Informatik 1
50
6.
JavaScript
Eigenschaften
Eigenschaften
sind Daten bzw. Variablen, die einem bestimmten Objekt anhängen.
speichern z.B. Namen / Größe / Farbe eines Objekts.
können boolesche Werte, Strings (URLs), enthalten.
können innerhalb jederzeit ausgelesen, und in vielen Fällen auch
geändert werden
(Î Zuweisung eines neuen, gültigen URL-Adresse an ein im BrowserFenster angezeigtes Dokument. Î der WWW-Browser springt
dadurch zu der zugewiesenen URL-Adresse ausführt, entspr. Klick auf
, einen entsprechenden Verweis)
selbstdefiniertes Objekt „Mensch“
Î mögliche Eigenschaften
„ Name, Alter, Geschlecht und Muttersprache
(Î selfhtml: JavaScript ÆObjekte, Eigenschaften und Methoden)
vordefinierte Objekt:
„Math„ :
Î Eigenschaft "PI„
Î Math.PI
window
Î Eigenschaft „innerHeight“ Îwindow.innerHeight
Helga Gabler
Übungen Informatik 1
51
6.
JavaScript
Eigenschaften – Beispiel „Schiff“
Eigenschaften können in jeder Instanz unterschiedliche Werte haben. Instanzen sind
„Vertreter“ einer Objektart.
Beispiel: SCHIFF
Schiff „Anna II“ = Vertreter der Schiffe allgemein.
1. Objektdefinition für Schiffe:
Eigenschaften für alle Instanzen sind: „Name“ und „Farbe“:
Konstruktor-Funktion legt diese 2 Eigenschaften für alle
Schiff
Instanzen fest.
function Schiff (NM, FB)
{
Name
Farbe
this.Name = NM;
this.Farbe = FB;
}
Schlüsselwort this definiert die Eigenschaft Name und Farbe
2. Initialisierung von Objekten: var annaII = new Schiff (‚Anna II‘, ‚rot‘);
Helga Gabler
Übungen Informatik 1
52
6.
JavaScript
Eigenschaften - Beispiel „Schiff“
Erweiterung des Beispiels: Schiff: „Schiff bekommt Kapitän“
Person
Î Objektdefinition von Personen:
function Person (NM, VN) {
this.Name = NM;
Name Vorname
this.Vorname = VN;
}
Instanziierung von Kapitän über Konstruktor:
var kirk = new Person (“Kirk“, “James“);
Schiffobjekt wird um Kapitän erweitert + Schiff wird instanziiert:
function Schiff (NM, FB, KP) {
this.Name = NM;
enterprise
this.Farbe = FB;
this.Kapitaen = KP;
}
Kapitaen
weiss
var enterprise = new Schiff (“Enterprise“, “weiss“, kirk);
Enterprise
Helga Gabler
Übungen Informatik 1
53
6.
JavaScript
Methoden – Beispiel „Schiff“
Methoden werden den Objekten als Eigenschaften zugewiesen.
function untergehen (Meter) {
document.write (“Das Schiff soll „ + Meter + “ sinken!“);
}
document.write (untergehen);
Zugriff auf Eigenschaft des Objekts: mit this
(Referenz auf das aktuelle Objekt, wenn Funktion als Methode in
Objektdefinition deklariert wird!)
function untergehen (Meter)
{
this.Tiefe -= Meter;
document.write (this.Name + “ ist “ + Meter + “ Meter auf “ +
this.Tiefe + “ Meter gesunken!“);
}
Beispiel 9: Titanic.html
Beispiel 10: Halloween.html
Helga Gabler
Übungen Informatik 1
54
6.
JavaScript
Methoden – Beispiel „Halloween“
<HTML>
<HEAD>
<TITLE> Objekte </title>
<SCRIPT TYPE="text/javascript"
<!—
function Halloweengast (Name, Haarfarbe, Augenfarbe)
{
this.Name = Name;
this.Haarfarbe = Haarfarbe;
this.Augenfarbe = Augenfarbe;
this.KleidetSich = KleidetSich;
}
function KleidetSich (Tag)
{
document.write ("Am " + Tag + " hatte " + this.Name + " " +
this.Haarfarbe + "es Haar und " +
this.Augenfarbe + "e Augen.");
}
function Halloween()
{
Tag = "31_Okt_2000";
Hans = new Halloweengast ("Hans", "gruen","rot");
// Hans.Haarfarbe = "blau";
Hans.KleidetSich (Tag);
}
// -->
</SCRIPT>
</head>
<BODY>
<SCRIPT TYPE="text/javascript">
<!-Halloween ();
//-->
</SCRIPT>
Helga Gabler
Übungen Informatik 1
</body> </html>
55
6.
JavaScript
Vordefinierte Objekte
in JS eingebaute Objekte, die häufig benötigte Funktionen als Methoden
beinhalten:
ƒ
ƒ
ƒ
ƒ
ƒ
mathem. Funktionen
Methoden zur Berechnung/Verwendung von Uhrzeiten/Kalendertagen
Abspeicherung von Variablenlisten
Satz von Funktionen zur Zeichenkettenverarbeitung
seit Version 1.2: Objekte Screen (Kapselung von Eigenschaften des
Bildschirms des Benutzers)
ƒ seit Version 1.2: Objekt RegExp. Konzept der regulären Ausdrücke
Helga Gabler
Übungen Informatik 1
56
6.
JavaScript
Vordefinierte Objekte
Objekte sind fest umgrenzte Datenelemente mit Eigenschaften und oft auch mit
objektgebundenen Funktionen (Methoden).
JavaScript = Erweiterung von HTML , wegen den vordefinierten Objekten
Die JavaScript-Objekte sind in einer Hierarchie geordnet:
Beispiel:
window
(Fenster haben Eigenschaften wie einen Titel, eine Größe usw. )
document
(Das im Fenster angezeigte Dokument, i.d.R. HTML-Datei)
forms, ...
(Inhalt einer HTML-Datei in diesem Fenster, i.d.R. HTML-Tags
z.B. Formulare, Verweise, Grafikreferenzen )
elements
Helga Gabler
(Inhalte dieser HTML-Tags, z.B. Eingabefeldern, Auswahllisten
oder Buttons zum Absenden bzw. Abbrechen)
Übungen Informatik 1
57
6.
JavaScript
hierarchisches Objekt-Modell
Neben den hierarchisch geordneten JavaScript-Objekten
gibt es auch solche, die nicht in die Hierarchie passen.
Das sind zum Beispiel Objekte für
Datums- und Zeitrechnung
Date
mathematische Aufgaben
math
Zeichenkettenverarbeitung
string
Ketten von Variablen
Array
Ja/nein-Werte
Boolean
JavaScript-Funktionen
Function
Browser-Informationen
navigator
MimeType-Informationen
mimeTypes
vorhandene Plugins
plugins
numerische Werte
Number
reguläre Ausdrücke
RegExp
Bildschirm-Informationen
Screen
ÎJavaScript Objekt-Referenz von Selfhtml:
ÎHierarchie.pdf
Helga Gabler
Übungen Informatik 1
58
6.
JavaScript
Zeichenkettenverarbeitung: Vordefiniertes Objekt „string“
Bsp:
Eigenschaft length
(selfhtml:)
Eingabe = window.prompt ("Irgendetwas eingeben", "");
alert ("Eingegebene Zeichen: " + Eingabe.length);
Die Eigenschaften und Methoden des Objektes string können auf alle
Zeichenketten angewendet werden. So können in einer Zeichenkette z.B.
alle darin enthaltenen Kleinbuchstaben in Großbuchstaben umgewandelt,
oder HTML-Formatierungen auf die Zeichenkette anwenden.
Helga Gabler
Übungen Informatik 1
59
6.
JavaScript
Objekte string – Beispiel „zitat“
Beispiel:
Variable zitat
mit der Zeichenkette
„Sein oder nicht sein ...“
Helga Gabler
Übungen Informatik 1
60
6.
JavaScript
numerische Werte: Vordefiniertes Objekt „number“
Zugriff auf Eigenschaften numerischer Werte. So können Sie ermitteln, ob
ein Wert eine gültige Zahl ist, oder welches die maximale positive oder
negative Zahl ist, die in einer numerischen Variablen gespeichert werden
kann.
Beispiel:
groessteZahl = Number.MAX_VALUE;
Helga Gabler
Übungen Informatik 1
61
6.
JavaScript
Objekt number – Eigenschaften und Methoden
Helga Gabler
Übungen Informatik 1
62
6.
JavaScript
Reguläre Ausdrücke - Objekt RegExp
Reguläre Ausdrücke dienen dazu, Suchausdrücke zu formulieren, um in
Zeichenketten danach zu suchen und um gefundene Stellen durch andere
zu ersetzen. (Î selfhtml)
Reg. Expr. = Werkzeug um Strings zu verarbeiten
Verendung, Sie können überprüfen ob:
ƒEingabe einer E-Mail-Adresse in einem Formular gültig sein kann
ƒeine Telefonnummer die korrekte Formatierung hat
ƒ...
Instanzen aus regulären Ausdrücken erzeugen:
var re = /pipapo/;
Var re wird reg. Ausdruck pipapo zugewiesen
var re = /pipapo/gi;
g : global (nach dem ersten Treffer weitersuchen)
i : Suche ohne Rücksicht auf Groß-/Kleinschreibung
var re = /\bpipapo\b/; \b: Wortgrenze (Metazeichen)
Suche nach den Zeichen . [ ] * ? { } ( ) ^ $ mit \
var re = /\D:\\Daten\\Grafiken\\Apfel\.GIF/i;
Æ findet den Pfad:
G:\DATEN\Grafiken\apfel.gif
Helga Gabler
Übungen Informatik 1
63
6.
JavaScript
Interpretierbare Metazeichen – Tabelle1
Helga Gabler
Übungen Informatik 1
64
6.
JavaScript
Interpretierbare Metazeichen – Tabelle2
Helga Gabler
Übungen Informatik 1
65
6.
JavaScript
Objekt RegExp - Methoden
Methoden
compile („\bpipapo\b“, „gi“);
exec („pipapo“);
anwenden
test („pipapo“);
Suchmuster in das Objekt kompilieren
reg. Ausdruck auf Zeichenkette (hier:pipapo)
Î „null“, wenn Suchmuster nicht gefunden
sonst: gefundene Stelle in Eigenschaft „index“
OriginalString in Eigenschaft „input“
Î true, wenn Treffer gefunden (=>e-mailtest)
Eigenschaften eine Instanz des reg.Ausdrucks
global
true / false
ignoreCase
true / false
lastIndex
ab welcher Stelle soll die Suche beginnen (Beginn =
0)
source
Suchmuster als string (ohne beide Schrägstriche)
RegExp-MethodeTest.html
Helga Gabler
Übungen Informatik 1
66
6.
JavaScript
Vordefiniertes Objekt Array
Das Objekt Array ist als "Container" für Ketten gleichartiger Variablen
gedacht. In der Programmierersprache spricht man auch von einem
"Vektor". Wenn Sie beispielsweise die 16 Grundfarben speichern wollen,
brauchen Sie keine 16 Variablen, sondern ein Array-Objekt, in dem Sie 16
gleichartige Werte (im Beispiel: Farbwerte) speichern können.
Objektname = new Array();
Î Objektinstanz von Array mit dem (selbst vergebener Namen)
Objektnamen
Instanz von Objekt Array wird gebildet mit
= new Array
new =reserviertes Wort
Array = Objektfunktion
Helga Gabler
Übungen Informatik 1
67
6.
JavaScript
Objekt Array – Instanzen bilden
Anzahl der Elemente im Variablenvektor unklar:Î
Objektname = new Array();
MeineFrauen = new Array();
Anzahl der Elemente im Variablenvektor bekannt:
Objektname = new Array(Zahl);
MeineFrauen = new Array(100);
Definition und Initialisierung des Vektors
Objektname = new Array(Element0, Element1, ..., element_n);
MeineFrauen = new Array("Anita","Bettina","Christa","Doris");
Helga Gabler
Übungen Informatik 1
68
6.
JavaScript
Objekt Array – Beispiel „obstNamen“
var meineVarliste = new Array();
var obstNamen = new Array(95);
Definition
Länge des Arrays wird definiert
Beispiel: Abspeichern von 5 Obstsorten:
obstNamen[0] = “Apfel”;
obstNamen[1] = “Birne”;
obstNamen[2] = “Kirsche”;
obstNamen[3] = “Pflaume”;
obstNamen[4] = “Orange”;
oder:
var obsNamen = new Array
(“Apfel”,”Birne”,”Kirsche”,”Pflaume”,”Orange”);
Helga Gabler
Übungen Informatik 1
69
6.
JavaScript
Objekt Array - Programmbeispiele
Array:
Der Index beginnt in JavaScript bei 0
Initialisierung erfolgt über Index (in eckiger Klammer)
Eigenschaft length enthält die Größe des Feldes
ein neues Array wird mit dem Operator new erzeugt
Beispiele hierzu:
Helga Gabler
arrays1.html
arrays2.html
arrays3.html
ObjektArray-MethodeSort.html
Navigationsleiste.html
Übungen Informatik 1
70
6.
JavaScript
Objekt Date
Systemzeit über Date-Objekt:
Instanzen von Date:
Î aktuelles Datum
Î können für Kalendertage und Uhrzeiten erzeugt werden
JavaScript intern:
nur Uhrzeiten und Kalendertage
nach dem 1.1.1970 um 0:00 Uhr
Î alle Methoden beziehen sich auf den Zeitpunkt,
der seitdem vergangen ist.
Helga Gabler
Übungen Informatik 1
71
6.
JavaScript
Objekt Date: Zeitangaben abfragen und setzen
var Jetzt = new Date();
Î setzt Zeit auf Systemzeit
zur Zeit der Ausführung
var MeineErsteUhrzeit = new Date (“Monat Tag Jahr
Stunde:Minute:Sekunden”);
( Datum als String in engl. Zeitnotation, Format genau einhalten!)
var MeineZweiteUhrzeit = new Date (Jahr, Monat Tag);
Zahlenwerte für Jahr,Monat und Tag, hier =0, da Werte fehlen
var MeineDritteUhrzeit = new Date (Jahr, Monat,Tag,Stunde,
Minute,Sekunden”);
aktuelle Systemuhrzeit wird gesetzt (zusätzlich)
Helga Gabler
Übungen Informatik 1
72
6.
JavaScript
navigator-Objekt: Eigenschaften
navigator-Objekt beschreibt Eigenschaften des Browsers
Beispiel: Navigator.html
Helga Gabler
Übungen Informatik 1
73
6.
JavaScript
window-Objekt
window-Objekt steht an der Spitze der Objekthierarchie
(~ "Container" für alles, was im Anzeigefenster des WWW-Browsers
angezeigt werden kann)
ÎDokumentfenster abfragen und kontrollieren.
Î neue Fenster definieren. (dabei sind Fenstereigenschaften frei bestimmbar)
reservierten Fensternamen window oder self :
Î ansprechen des nicht selbst erzeugten, vorhandenen Hauptanzeigefensters
des WWW-Browsers.
Î alle Eigenschaften und Methoden des window-Objekts lassen sich auf
window und self anwenden.
Î window / self können weggelassen werden
self
Helga Gabler
Referenz auf sich selbst
Übungen Informatik 1
Bsp.: open.html
74
6.
JavaScript
Unterobjekte des window-Objekts
document
Inhalt, der im Browser-Fenster angezeigt wird:
z.B. Links,Anker,Bilder,Formulare)
event
Einzelinformationen zu Anwenderereignissen wie Mausklicks
oder Tasteneingaben ermitteln und weiterverarbeiten
z.B genaue Position ermitteln, wo ein Mausklick erfolgte,
oder bei einem Tastendruck die gedrückte Taste abfragen.
history
Zugriff auf die besuchten WWW-Seiten des Anwenders
massgeblich History-Liste
location
Zugriff auf die vollständige URL-Adresse der aktuell
angezeigten WWW-Seite. URL-Adresse oder Teile davon
können zur Weiterverarbeitung abgefragt und geändert werden.
Beim
ändern führt der WWW-Browser einen Sprung zu einer neuen
URL-Adresse aus, genau so wie bei einem Verweis.
Helga Gabler
Übungen Informatik 1
75
6.
JavaScript
wichtige Methoden des window-Objekts
alert(Text)
blur ()
clearTimeout (TimeoutID)
close ()
confirm(Text)
öffnet ein Dialogfenster
Browserfenster in Hintergrund
hält laufende Stoppuhr an
schließt das Browserfenster
öffnet ein Dialogfenster mit Text als
Meldung, und Buttons “OK” und
“Abbrechen”
focus()
holt Browserfenster in Vordergrund
open(“URL”, “Name”, “Optionen”)
öffnet neues Browserfenster
WindowOpen.html,
EingangsScreen.html
prompt (“Text”,”Vordefinition”)
öffnet Dialogfenster mit Text und
Aufforderung zur Eingabe
setTimeout(“JavaScript-Ausdruck”,Millisekunden)
setzt einen Countdown, führt nach den an=
angebenen Millisekunden den Ausdruck aus
Helga Gabler
Übungen Informatik 1
76
6.
JavaScript
wichtige Eigenschaften window-Objekts
defaultStatus
voreingestellter Text in der Statuszeile des Browsers
opener
Referenz auf das Fenster, das dieses Fenster geöffnet hat
self
Referenz auf sich selbst
status
derzeit dargestellter Text in der Statuszeile des Browsers
locationbar
URL-Adreßzeile
scrollbars
Scroll-Leisten
toolbar
Werkzeugleiste
Helga Gabler
Übungen Informatik 1
Bsp.: open.html
77
6.
JavaScript
Frames -Objekt
Zugriff auf Frames, also auf ein Frame-Set und seine Frame-Fenster,
die in einer HTML-Datei definiert sind (Jedes Frame-Fenster stellt aus Sicht
des Browsers ein eigenes Fenster dar)
Î Variante des window-Objekts
Rahmen eines Framesets finden sich im frames-Array wieder.
frames-Array = Eigenschaft des windows-Objekts
enthält alle frames-Objekte, in der Reihenfolge, wie sie
im Frameste angelegt wurden
Beispiel:
Framesets.html
Unterobjekte
document
event
history
location
Helga Gabler
Übungen Informatik 1
78
6.
JavaScript
Frames -Objekt
Ansprechen von Frames:
durch Namen (name=) oder frames-Array
Îwindow.frames[“anzeige”] = window.frames[2]
(aus Beispiel)
Eigenschaften von Objekt frames:
parent
self
top
Helga Gabler
Referenz auf Frame, der in der Hierarchie eine Stufe höher steht
Referenz auf sich selbst
Referenz auf den hierarchisch höchsten Frame
(Browser-Fenster, indem alle Frames dargestellt werden)
Übungen Informatik 1
79
6.
JavaScript
location -Objekt
über die Eigenschaft des location-Objekts lassen sich Informationen über den
URL des geladenen Dokuments abrufen:
window.location.protocol
window.location.hostname
window.location.port
window.location.pathname
window.location.search
window.location.hash
window.location.href
window.location.host
Helga Gabler
“http:”
“www.beispiel-site.de”
“80” (TCP/IP-Portnr. des Servers
Pfadangabe (alles was zw. Port und “#” steht
String, der Parameter für CGI-Programme
enthält “?suche=test”
enthält Anker, falls im URL vorhanden
“#Anker”
enthält kompletten URL
entspricht hostname:port
Übungen Informatik 1
80
6.
JavaScript
location –Objekt - Beispiele
if (top.frames.length > 0) top.location.href = self.location;
Îverhindert, daß eine Frame in fremde Frames eingesperrt wird.
Beispiel: Suchmaschinen findet einen Link auf eine HTML-Seite, die nur in einem
Frameset Sinn macht (z.B. Navigationsleiste).
if ( (top.frames.length == 0) || parent.name != “Hauptfenster”))
top.location.href = “frame.html”;
Lösung: beim Aufruf der Seite wird das komplette Frameset geladen.
Helga Gabler
Übungen Informatik 1
81
6.
JavaScript
history -Objekt
history-Objekt verwaltet eine Liste der zuletzt besuchten URLs wie einen
Stapel. (Vor, zurück.Taste)
Methoden:
window.history.back()
window.history.forward()
Î Browser soll vorheriges Dokument laden
Î lenkt den Browser wieder vorwärts
(nach einem back()
window.history.go(Schritte) Î lädt den URL, der in der History
Schritte (- / +) weit entfernt liegt
Eigenschaft
length
Helga Gabler
Anzahl der Einträge in der History des Browsers
Übungen Informatik 1
82
6.
JavaScript
document –Objekt: Eigenschaften
document-Objekt beschreibt mit seinen Eigenschaften:
- die Attribute des body-Tags
- den Titel des Dokuments
- die Elemente des geladenen HTML-Dokuments
Eigenschaften von document-Objekt:
bgColor
Hintergrundfarbe (kann nach dem Laden der
Webseite verändert werden)
fgColor
Textfarbe, kann nicht mehr verändert werden
linkColor Farbe eines noch nicht besuchten Links im Text
alinkColor
Farbe eines “aktiven Links” (bereits geklickt, aber
dessen URL noch nicht geladen ist)
vlinkColor
Farbe eines zuvor schon besuchten Links im Text
lastModified
Datum, an dem das Dokument zuletzt verändert wurde
(kann nicht verändert werden.)
Helga Gabler
Übungen Informatik 1
83
6.
JavaScript
document –Objekt Eigenschaften/Methoden
Eigenschaften von document-Objekt:
Methoden von window.document
Helga Gabler
Übungen Informatik 1
84
6.
JavaScript
image –Objekt
Zugriff auf alle Grafiken, die in einer HTML-Datei definiert sind.
Dabei können Sie auch vorhandene Grafiken dynamisch durch andere
ersetzen.
Es stehen folgende Arten zur Verfügung, mit JavaScript eine bestimmte
Grafik anzusprechen:
document.images[#].Eigenschaft
document.images[#].Methode()
Hoehe = document.images[0].height;
oder
document.BildName.Eigenschaft
document.BildName.Methode()
Hoehe = document.Portrait.height;
Lichter.html
Lauflichter.html
Navigationsleiste.html
Helga Gabler
Übungen Informatik 1
85
6.
JavaScript
forms –Objekt
Zugriff auf Formulare, die in einer HTML-Datei definiert sind.
ÎSelfhtml
Formulare werden durch forms-Objekte und zusätzlich durch f
orms-Arrays repräsentiert
einzelne Formularelemente sind elements-Arrays
Objekte in den element-Arrays besitzen Eigenschaften wie:
name oder
wieder ein options-Array
Helga Gabler
Übungen Informatik 1
86
6.
JavaScript
forms –Objekt : Beispiel
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>
JavaScript Formular entwerfen:
</title>
<SCRIPT TYPE="text/javascript" SRC="./Formular.js">
/SCRIPT>
</head>
<BODY>
<P>
<FORM NAME="Anfrage" action="mailto:helga.gabler@fh-karlsruhe.de"
method="post">
Ihre Frage:&nbsp;
<INPUT TYPE="text" NAME="frage" VALUE="News" SIZE="25">
<BR>
Abo?:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<INPUT TYPE="checkbox" NAME="abo" CHECKED ONCLICK="info(this)">
<BR>
<INPUT TYPE="button" NAME="ok" VALUE="Fertig" ONCLICK="info(this)">
<BR>
<INPUT type=submit value="Bewertung abschicken">
<INPUT type=reset value="Eingaben l&ouml;schen"> </TD>
</FORM>
</P>
<A HREF="http://www.home.fh-karlsruhe.de/~gahe0001"> Zum mir</A>
</body>
Helga Gabler
</html>
Übungen Informatik 1
87
6.
JavaScript
forms –Objekt : Funktion „Formular.js“
function info(obj) {
var infoWnd = window.open("","docProps","status.resizable")
infoWnd.document.open()
infoWnd.document.write ("<HTML><HEAD>")
infoWnd.document.write ("<TITLE>Dokumentobjekte</TITLE>")
infoWnd.document.write ("<\/HEAD><BODY>")
infoWnd.document.write ("document.bgColor,"<BR>")
infoWnd.document.write ("document.linkColor,"<BR>")
infoWnd.document.write ("document.title,"<BR>")
infoWnd.document.write ("document.URL,"<BR>")
infoWnd.document.write ("document.referrer,"<BR>")
infoWnd.document.write ("document.forms[0].action,"<BR>")
infoWnd.document.write ("document.Anfrage.method,"<BR>")
infoWnd.document.write ("document.Anfrage.length,"<BR>")
infoWnd.document.write ("document.Anfrage.frage.value,"<BR>")
infoWnd.document.write ("document.Anfrage.frage.defaultValue,"<BR>")
infoWnd.document.write ("document.Anfrage.abo.defaultChecked,"<BR>")
infoWnd.document.write ("obj.name,"<BR>")
infoWnd.document.write ("document.Anfrage.ok.name,"<BR>")
infoWnd.document.write ("obj.value,"<BR>")
infoWnd.document.write ("dokument.links[0].href,"<BR>")
infoWnd.document.write ("dokument.links[0].protocol,"<BR>")
infoWnd.document.write ("<\/BODY><\/HTML>")
infoWnd.document.close()
Helga Gabler}
Übungen Informatik 1
88
6.
JavaScript
Auslesen und Setzen von Formulardaten
Um an Formulardaten zu kommen, um z.B. diese auf Richtigkeit zu
prüfen, ruft man das entsprechende Element der HTML-Seite auf:
Lesend:
x = document.Testformular.Eingabe.value;
Schreibend:
document.Testformular.Eingabe.value = “Das was rein soll.“;
Î Formular.html
Helga Gabler
Übungen Informatik 1
89
6.
JavaScript
Auslesen und Setzen von Formulardaten
Î Formular.html
Helga Gabler
Übungen Informatik 1
90
6.
JavaScript
Event-Handler
¾ stellen das Bindeglied zwischen HTML und JavaScript dar
¾ reagieren auf bestimmte Tastur- und Mausereignisse
¾ werden als Attribute in HTML-Tags geschrieben
¾ beziehen sich auf das entsprechende HTML-Element.
¾ sind HTML 4.0 Standard
¾ beginnen immer mit on, zum Beispiel onClick=
Hinter dem =-Zeichen notieren Sie in Anführungszeichen, eine JavaScriptAnweisung. z.B.
onClick="Umrechnen()“ oder
<a href="funktionen3.html" onmouseover="gehauf('beliebiger Text');">
Fahren Sie über den Link!</a>
Helga Gabler
Übungen Informatik 1
91
6.
JavaScript
Event-Handler: Einige Beispiele zur Anwendung
onBlur
onMouseover
onLoad
onUnload
onDblClick
onmouseclick
Der Mauszeiger wurde über einen Bereich bewegt
Die linke Maustaste wurde gedrückt
onLoad
ÎPasswort-Eingabe.html
onMoseOver, onMouseOut)
ÎBildFarbeAendern.html
(OnLoad,OnMouseOver, OnMouseOut ÎHintergrundFarbeAendern.html
Helga Gabler
Übungen Informatik 1
92
6.
JavaScript
Event-Handler
Weiteres oft genutzes Feature: Verweis auf javaScript-Funktion
(kein Event-Handler im eigentlichen Sinne, aber Alternative für Buttons)
Beispiel:
<a href = “javascript:history.back ()“> Eine Seite zur&uuml;ck </a>
javascript:history.back())
Î HintergrundFarbeAendern.html
javascript:void(opener.location.href)
ÎFernbedienung/JS-Projekt.html (zweites Fenster
Helga Gabler
Übungen Informatik 1
93
6.
JavaScript
Event-Handler - Beispiele
Beispieldateien für Event Handler:
Beispiele.html
Helga Gabler
Übungen Informatik 1
94
6.
JavaScript
Beispiel : Guthaben.java
public class Guthaben {
public static void main(String[] args) {
int guthaben = 1000;
System.out.println("Guthaben = " + guthaben);
int einzahlung = 500;
System.out.println("Einzahlung = " + einzahlung);
guthaben = guthaben + einzahlung;
System.out.println("Guthaben = " + guthaben);
}
}
Helga Gabler
Übungen Informatik 1
95
6.
JavaScript
Aufgabe „Steuerberechnung“
Gegeben sei ein Betrag in Euro ohne Mehrwertsteuer.
a) Berechnen Sie den Bruttobetrag
b) ziehen Sie davon 2% Skonto ab
Helga Gabler
Übungen Informatik 1
96
6.
JavaScript
Übung 10
Erstellen Sie ein HTML-Formular, in welches Vorname, Nachname,
Geburtsdatum und E-Mail-Adresse eingetragen werden kann.
Testen Sie browserseitig die Vollständigkeit der Eingaben soweit dies
möglich ist.
(z.B. kommt das Zeichen @ in der E-Mail-Adresse vor).
Das Formular soll nur bei vollständigen Eingaben abgeschickt werden.
Helga Gabler
Übungen Informatik 1
97