1. Einführung ... 15
1.1 ... Was mache ich mit JavaScript? ... 15
1.2 ... Was kann JavaScript nicht? ... 16
1.3 ... Browser und mobile Browser ... 17
1.4 ... ECMAScript ... 17
1.5 ... Aufbau des Buchs ... 17
1.6 ... Einrichten der Arbeitsumgebung ... 19
1.7 ... Eine erste HTML-Datei ... 19
1.8 ... Einige Sonderzeichen ... 22
1.9 ... JavaScript innerhalb einer HTML-Datei ... 23
1.10 ... JavaScript aus externer Datei ... 25
1.11 ... Kommentare ... 26
1.12 ... Kein JavaScript möglich ... 27
2. Grundlagen der Programmierung ... 29
2.1 ... Speicherung von Werten ... 29
2.2 ... Berechnungen durchführen ... 37
2.3 ... Verschiedene Zweige eines Programms ... 42
2.4 ... Programmteile wiederholen ... 53
2.5 ... Fehler finden, Fehler vermeiden ... 63
2.6 ... Programme zerlegen mit eigenen Funktionen ... 71
2.7 ... Objektunabhängige Funktionen nutzen ... 83
3. Eigene Objekte ... 85
3.1 ... Objekte und Eigenschaften ... 85
3.2 ... Methoden ... 87
3.3 ... Objekt in Objekt ... 89
3.4 ... Vererbung ... 91
3.5 ... Operationen mit Objekten ... 94
3.6 ... Klassen in ECMAScript 2015 ... 100
3.7 ... Objekte in JSON ... 101
4. Ereignisse ... 103
4.1 ... Techniken der Ereignisbehandlung ... 103
4.2 ... Klassische Ereignisbehandlung ... 104
4.3 ... Ereignisse als Eigenschaften ... 115
4.4 ... Das Ereignisobjekt ... 118
4.5 ... Event Listener ... 121
5. Das Document Object Model (DOM) ... 127
5.1 ... Baum und Knoten ... 127
5.2 ... Knoten abrufen ... 129
5.3 ... Kindknoten ... 131
5.4 ... Knoten hinzufügen ... 133
5.5 ... Knoten ändern ... 136
5.6 ... Knoten löschen ... 139
5.7 ... Eine Tabelle erzeugen ... 141
6. Standardobjekte nutzen ... 143
6.1 ... Felder für große Datenmengen ... 143
6.2 ... Zeichenketten verarbeiten ... 160
6.3 ... Zahlen und Mathematik ... 168
6.4 ... Datum und Uhrzeit nutzen ... 177
7. Browserobjekte nutzen ... 193
7.1 ... Das Browserfenster, Objekt »window« ... 193
7.2 ... Die Historie, Objekt »history« ... 201
7.3 ... Die Adresse, Objekt »location« ... 202
7.4 ... Das Dokument, Objekt »document« ... 208
7.5 ... Alle Anker, Eigenschaft »anchors« ... 209
7.6 ... Alle Hyperlinks, Eigenschaft »links« ... 211
7.7 ... Alle Bilder, Eigenschaft »images« ... 213
7.8 ... Alle Formulare, Eigenschaft »forms« ... 219
7.9 ... Der Bildschirm, Objekt »screen« ... 236
8. Ajax ... 237
8.1 ... Hallo Ajax ... 238
8.2 ... Parameter senden ... 241
8.3 ... XML-Datei lesen ... 244
8.4 ... JSON-Datei lesen ... 252
9. Cascading Style Sheets (CSS) ... 257
9.1 ... Aufbau und Regeln ... 258
9.2 ... Position und verwandte Eigenschaften ... 266
9.3 ... CSS und JavaScript ... 272
9.4 ... Animation ... 287
10. Zweidimensionale Grafiken und Animationen mit SVG ... 297
10.1 ... Eine SVG-Datei erstellen ... 297
10.2 ... Grundformen ... 300
10.3 ... Pfade ... 304
10.4 ... Animationen ... 308
10.5 ... Rotationen ... 312
10.6 ... Zugriff auf SVG-Elemente mit JavaScript ... 314
10.7 ... Erzeugen von SVG-Elementen mit JavaScript ... 316
11. Dreidimensionale Grafiken und Animationen mit Three.js ... 321
11.1 ... Eine erste 3D-Grafik ... 322
11.2 ... Eine Animation ... 327
11.3 ... Position, Perspektive und Licht ... 328
11.4 ... Verschiedene Formen ... 330
12. jQuery ... 337
12.1 ... Aufbau ... 338
12.2 ... Selektoren und Methoden ... 340
12.3 ... Ereignisse ... 344
12.4 ... Animationen ... 347
12.5 ... Beispiel: sinusförmige Bewegung ... 351
12.6 ... jQuery und Ajax ... 353
13. jQuery UI ... 357
13.1 ... Aufbau ... 357
13.2 ... Elemente verschieben ... 358
13.3 ... Elemente zu einem Ziel verschieben ... 359
13.4 ... Elemente im Raster verschieben ... 361
13.5 ... Menü mit Untermenü ... 362
13.6 ... Bereiche auf- und zuklappen ... 364
14. jQuery mobile ... 367
14.1 ... Aufbau ... 367
14.2 ... Bereiche auf- und zuklappen ... 370
14.3 ... Ereignisse auf mobilen Geräten ... 372
14.4 ... Reaktionstraining ... 375
14.5 ... Formulare senden ... 376
14.6 ... Elemente eines E-Mail-Formulars ... 379
14.7 ... Weitere Formularelemente ... 381
15. Cookies ... 387
15.1 ... Cookies schreiben ... 387
15.2 ... Cookies lesen ... 388
15.3 ... Cookies löschen ... 390
15.4 ... Werden Cookies akzeptiert? ... 390
15.5 ... Beispiel für die Nutzung ... 391
16. Beispielprojekte ... 395
16.1 ... Geldanlage ... 396
16.2 ... Fitnesswerte ... 396
16.3 ... Volkslauf ... 397
16.4 ... Nummer der Kreditkarte prüfen ... 398
16.5 ... Patience ... 398
16.6 ... Memory ... 399
16.7 ... Snake ... 400
16.8 ... Kopfrechnen ... 401
17. HTML5 ... 403
17.1 ... HTML5-Fähigkeit testen ... 403
17.2 ... Allgemeine Formularelemente ... 404
17.3 ... Elemente für Zahlen ... 410
17.4 ... Elemente für Zeitangaben ... 414
17.5 ... Validierung von Formularen ... 418
17.6 ... Audiodateien abspielen ... 421
17.7 ... Videodateien abspielen ... 425
17.8 ... Zeichnungen im Canvas ... 426
17.9 ... Bild im Canvas ... 431
17.10 ... Text im Canvas ... 433
17.11 ... Standortdaten nutzen ... 435
17.12 ... Waytracking ... 439
17.13 ... Lagesensoren nutzen ... 442
17.14 ... Beschleunigungssensoren nutzen ... 446
Anhang ... 451
A.1 ... Installation des Pakets »WAMP Stack« ... 451
A.2 ... Liste der Schlüsselwörter ... 452
Index ... 453