[an error occurred while processing this directive]

Multimediakurs Leinfelder: Inhalt/Modul 7 "JavaScript in Handarbeit"/Modul 7.1 "JavaScript-Basics"

(© copyright)     Letzte Änderungen:07.04.2003


Modul 7: JavaScript "in Handarbeit": Möglichkeiten mit JavaScript, Verwendung verfügbarer JavaScripts, andere Skriptsprachen und Java, Syntax von JavaScript.

Position innerhalb des Kurses

Zum Durcharbeiten dieses Moduls sollten Sie unbedingt folgendes Vorwissen mitbringen:

Modul 7:

JavaScript "in Handarbeit"

 

 

7.0.

Gesamtzusammenfassung und "Schnellbleiche" zu diesem Modul

Modul 7.1:

Einführung: Was sind Script-Sprachen? Was kann man damit machen? Ist JavaScript unsicher? Was ist der Unterschied zu Java?

Modul 7.2:

"Level 1": verfügbare JavaScripts in eigene Webseiten einbauen (mit Beispielen)

Modul 7.3:

"Level 2": JavaScript-Bausteine und Regeln verstehen, verfügbare JavaScripts anpassen und einfache Skripte selbst schreiben (umfassendes Kapitel, aus mehreren Teilmodulen bestehend, mit kommentierten Beispielen)

Modul 7.4:

"Level 3": JavaScript-Syntax komplett verstehen; vereinfachte JS-Referenz, Syntax-Ergänzungen, JV-Sripte selbst schreiben (mit kommentierten Beispielen)

Modul 7.5:

"Level 4": komplexes JavaScripting (u.a. Einführung Cookies, Probleme bei dhtml und DOM)

Anhang zu Modul 7:

Sämtliche im Multimediakurs erarbeiteten bzw. vorgestellten JavaScript-Beispiele (mit Erläuterungen) zur eigenen Verwendung oder Änderung



Kursanlagen zu diesem Thema

Anlage 6:

Grundlagen und Schwierigkeiten von dhtml

Anlage 10:

Test auf Quicktime, Flash, JavaScript, dhtml, CSS und Java-Verfügbarkeit

Anlage 13:

Immer Frames, nie Frames: Wie vermeide ich, dass Seiten außerhalb ihrer Framesets aufgerufen werden, bzw. wie verhindere ich den Aufruf von Seiten in Framesets.
Anlage 13b: Troubleshooting zu "Immer-mit-Frames" und Vermeidung von Webnapping
Anlage 13c:Force-Frame nur benutzerdefiniert aufrufen

Anlage 14:

Clientseitige Datenweitergabe und - speicherung : Cookies und Alternativen (seit 4.5.2002)
Ergänzt durch Anlage 14b - Cookies für Fortgeschrittene: Cookies mit der Split-Methode auslesen, mehrere Cookies gleichzeitig anlegen, lokale Cookies anlegen.

Modul 7.1: JavaScript-Einführung

  1. JavaScript: eine persönliche Einführung
  2. Was sind Skript-Sprachen? Was kann man damit machen?
  3. Ist JavaScript unsicher?
  4. Was ist der Unterschied zu Java?

oder lieber zuerst zur Gesamtzusammenfassung und "Schnellbleiche" zu diesem Modul


a. JavaScript: eine sehr persönliche Einführung

Als allererste Einführung in JavaScript möchte ich Ihnen kurz die eigenen Erfahrungen schildern. JavaScript faszinierte den Kursleiter seit dessen Erscheinen (d.h. mit Auftauchen des Netscape Navigators vers. 2.0, 1995; damals noch als LiveScript bekannt; Näheres zur Geschichte und Versionen von JavaScript siehe Modul 7.4). Es war (und ist??) aber gleichzeitig eine Hassliebe, insbesondere aus den folgenden Gründen:

Wenn Sie nach dieser kleinen persönlichen Einführung immer noch vorhaben, sich näher mit JavaScript zu befassen (was ich hoffe), versuche ich Ihnen JavaScript in unterschiedlichen "Nutzer-Levels" näherzubringen:

Sie müssen einiges Grundsätzliche zu JavaScript wissen, was Sie in diesem Teilmodul erfahren. Danach können Sie sich überlegen,

Bei "Level 4" lässt Sie der Kursleiter überwiegend alleine und verweist Sie u.a. auf das oben empfohlene Buch. Der Kursleiter selbst ordnet sich irgendwo in "Level 3" ein, wobei zwar manchmal auch komplexere "Level-4"-Skripte gelingen, ab und an bei komplexeren, nicht klar strukturierten Skripten auch ein Abrutschen in "Level-2" passieren kann.

Was wir Ihnen hier nicht zur Verfügung stellen, ist eine Fülle von direkt verwendbaren JavaScripts. Wir werden uns hier auf (ab Level-2 umfassend kommentierte) Beispiele beschränken, da Sie sich ansonsten aus vielen im Web verfügbaren Ressourcen bedienen können. Etliche Links hierzu werden wir angeben. In weiteren Kursmodulen (Modul 8: Animationen, Modul 9: Interaktive Webseiten) werden wir noch weitere JavaScript-Beispiele angeben bzw. verwenden. Das Gesamtbeispielverzeichnis finden Sie im Anhang zu diesem Kursmodul.

Also, legen wir los:


b. Was sind Skript-Sprachen? Was kann man damit machen?

Was sind Skript-Sprachen?

Skript-Sprachen unterscheiden sich von sonstigen Programmiersprachen insbesondere dadurch, dass man nach dem Erstellen des Programm-Codes keine Kompilierung vornehmen muss. Dies bedeutet, dass man keine spezielle Programmierumgebung sowie keinen Compiler, d.h. kein spezielles Software-Programm zum Programmieren und Kompilieren benötigt. Die entsprechenden Skriptprogramme laufen deshalb auch nur in bestimmten "Umgebungen" ab und verwenden die Möglichkeiten dieser "Umgebung".
Eine Skriptsprache für ein umfassendes Animations- bzw. sog. Autorenprogramm wie Adobe-Director (mit dem man z.B. selbstlaufende CD-Spiele oder Lernprojekte erstellen kann) laufen nur innerhalb der Director-Umgebung (die entsprechende Script-Sprache nennt sich Lingo). Die Skriptsprache zu Flash, einem vektorbasierten Animationsprogramm (siehe Modul 8) bringt eben nur innerhalb von Flash-Projekten zusätzliche Möglichkeiten (missverständlicherweise nennt sich die entsprechende Flash-Script-Sprache ActionScript, was Verwechsungsmöglichkeiten mit GoLive bringt, bei dem die eingebauten Anwendungen ebenfalls als ActionScripts bezeichnet werden, aber eben in JavaScript geschrieben sind).

Skriptprogramme für Webseiten laufen dann eben in der Webbrowser-Umgebung ab. Damit greifen Sie auch auf die Möglichkeiten der Webbrowser sowie die html-"Objekte" zurück. Werden z.B. für JavaScript-Programme Dialogboxen vorgesehen oder neue Fenster definiert, entsprechen diese Dialogboxen bzw. die Fenstermenus eben denen, die der Browser zur Verfügung stellt. Sie werden nicht extra programmiert (und können dies auch nicht werden). Damit ist die Programmierung deutlich weniger aufwändig. Außerdem werden sämtliche html-Inhalte, wie z.B. Fenster, Seiten, Links, Tabellen etc. als vorhandene "Objekte" aufgefasst, die man eben dann mit Hilfe von JavaScript modifizieren bzw. auch definieren kann (siehe unten sowie Modul 7.3).

Der Browser bringt dann auch einen sog. Interpreter mit. Dies bedeutet, dass er beim Aufruf des JavaScript wie gewünscht die programmierten Aktionen umsetzt, ohne dass das Programm zuvor kompiliert worden wäre. Dazu muss der Browser natürlich eine sog. Laufzeit-Umgebung (runtime-interpreter) mitbringen. Die modernen Browser haben dies, d.h. sie können JavaScripte ausführen. Dieser runtime-interpreter kann aber in den Voreinstellungen des Browsers vom Benutzer leider auch ausgeschaltet werden.

Viele Skriptprogramme, so auch die unter JavaScript, können, weil sie eben nicht kompiliert werden müssen, direkt in einem Texteditor (also wie auch html-code) erstellt werden.

JavaScript ist die zu bevorzugende Skriptsprache für Webbrowser, da sie prinzipiell browserunabhängig und plattformunabhängig ist (zu Einschränkungen siehe unter 7.2 und 7.3). Man kann aber theoretisch auch andere Skriptsprachen verwenden, die Browser dann umsetzen. Hierzu zählen insbesondere VBScript (Visual Basic Script) sowie Active X. Beides sind jedoch Eigenentwicklungen von Microsoft und werden auch nur im InternetExplorer umgesetzt (d.h. andere Browser haben keine entsprechende Laufzeitumgebung). Ich empfehle deshalb, diese Script-Sprachen nicht zu verwenden.

Auch JavaScript war und ist eine Eigenentwicklung von Netscape. Da sie jedoch grundsätzlich plattform- und browserunabhängig angelegt war, hat sie sich so rasch verbreitet, dass die entsprechende Laufzeitumgebung bald auch in andere Browser (Internet Explorer, Opera etc.) implementiert wurde. Allerdings müssen verschiedene Versionen berücksichtigt werden. Die aktuelle JavaScript-Version 1.5 wird z.B. bislang von nur wenigen Browsern korrekt umgesetzt, man sollte also eher ältere Versionen bevorzugen, die auch in den neuesten Browsern laufen. (Näheres hierzu in den nachfolgenden Modulen). Es gibt auch sog. "Dialekte". So hat Microsoft im Internet-Explorer den Dialekt JScript eingebaut. Ein normales JavaScript gab dann oft eine Fehlermeldung. Dies wird allgemein als Versuch von Microsoft angesehen, den Gebrauch von JavaScript einzuschränken und Microsoft-Entwicklungen zu bevorzugen. Mittlerweile hat hier Microsoft jedoch überwiegend eingelenkt, so dass in aller Regel JavaScripte auch unter den Versionen 5 und höher des Internet-Explorers korrekt laufen.

JavaScript ist also der defacto-Standard für Browserskriptsprachen.

Wer es genau wissen will: Die unabhängige "Webaufsichtsbehörde" das sog. W3C (WordWideWeb-Consortium) hat JavaScript nicht als Standard definiert. Allerdings hat sie ein weiteres Konsortium, das sog. ECMA-Konsortium beauftragt, derartiges zu erstellen. Inzwischen gibt es die Spezifikation eines sog. ECMA-Skriptes als Standard. Dies ist jedoch keine weitere Skriptsprache, sondern definiert nur die sog. Objekte und Methoden, die ECMA-kompatible Browserskriptsprachen verwenden müssen. Das ganze ist etwas schwammig und ändert leider nicht sehr viel an der Situation. JavaScript ist seit der Version 1.3 annähernd kompatibel zu den ECMA-Skript-Vorgaben. Sie sollten also, wenn Sie Ihre Webseiten mit Skript-Funktionalität versehen wollen, unbedingt auf JavaScript bauen bzw. ansonsten Java verwenden (s.u.).

Was kann ich mit JavaScript alles machen?

Wenn Sie Modul 6.2.2 (GoLive-dhtml) sowie 6.2.3 (GoLive-Script-Actions) durchgearbeitet haben, haben Sie bereits einen guten Eindruck davon gewonnen, was mit JavaScript alles erreichbar ist.

Insgesamt haben Sie unter anderem folgende Möglichkeiten:

Probieren Sie doch einfach mal unsere Beispiel-Seite mit ein paar JavaScript-Aktionen aus.

Wir werden später auf diese und andere Beispiele zurückkommen. Ihr Browser- und Ihre Bildschirmauflösung wurden nicht etwa in html eingegeben, sondern durch JavaScript von ihrem Computer "ausgelesen" und per JavaScript in die html-Seite bzw. das extra-Fensterchen geschrieben. Der Willkommensgruß beim ersten Aufruf der Seite bzw. das Zählen Ihrer bereits auf der Seite getätigten Besuche erfolgt über ein Cookie. Auch die anderen Beispiele sind mit JavaScript erstellt.

Hier noch ein geobiologisches Beispiel (ein "Selbsttest"). Sie sehen, JavaScript kann wirklich nützlich sein.

Soviel fürs erste an Beispielen.

Für diejenigen, die schon ein bisschen mehr wissen wollen: Grundsätzlich definieren html-Seiten statische Inhalte. Textinhalt, Textauszeichnung, Tabellen und viele andere Optionen (z.B. horizontale Linien, Farben, Anker, Links, Formulare) sind direkt im html-Dokument definiert und können, wenn die Seite einmal geladen ist, mit html nicht verändert werden. Abbildungen und andere multimediale Objekte (Ton, Videos, Flash-Objekte, Applets) sind in die Webseiten via Pfadangaben "eingebettet" und werden ebenfalls sofort nach dem Laden dargestellt. Die einzige Möglichkeit ohne den Wechsel von Seiten, Inhalte upzudaten, sind die Verwendung von Frames (wobei aber auch html-Seiten ausgetauscht werden, jedoch nicht der komplette Inhalt des Browserfensters), die Verwendung von Zusatzfenstern mit dem Target-Attribut sowie (dererst unter Modul 11 behandelte) Austausch von Formularinhalten.

JavaScript fasst sämtliche html-Definitionen und Inhalte, wie z.B. Fenster, Seiten, Links, Tabellen etc. als vorhandene "Objekte" an, die man dann mit Hilfe von JavaScripten modifizieren bzw. auch definieren kann (näheres siehe Modul 7.3). Damit kann z.B.aufgrund bestimmter Bedingungen Text generiert werden (z.B.: "Sie sollten einen anderen Browser benutzen"), spezielle Ausgaben auf Benutzereingaben gegeben werden (z.B. "Ihre Antwort ist falsch") bzw. spezielle Webseiten ausgesucht werden (z.B. Aufruf einer deutschsprachigen Seitenversion für Benutzer deutschsprachiger Betriebsysteme). Etliche Möglichkeiten haben Sie ja oben schon gesehen.


c. Ist JavaScript unsicher?

Immer wieder findet man in der Tagespresse Artikel zur Unsicherheit des Internets. Scriptsprachen sollen hierfür insbesondere verantwortlich sein. Nicht nur soll das komplette Ausspähen des eigenen Computers möglich sein, derartig ausgespähte Daten sollen auch heimlich über Email oder sonstige Internetübertragung weitergegeben oder gar Verzeichnisse auf der eigenen Festplatte überschrieben bzw. gelöscht werden können. Diese Einschätzung kann zumindest für JavaScript als vollkommen falsch angesehen werden. Wie oben geschildert, kann JavaScript ausschließlich innerhalb der Browserumgebung ausgeführt werden. Angaben zum verwendeten Betriebssystem, zu den verwendeten Bildschirmcharakteristika, zum verwendeten Browser, zur aktuellen Uhrzeit, auch zu den vorhergehend besuchten Seiten können zwar von JavaScript ausgelesen werden. Allerdings können diese Angaben ausschließlich auf der Seite des Benutzers in eine html-Seite eingelesen werden und mit JavaScript alleine nicht weitergegeben werden. Die IP-Nummer sowie die Email-Adresse des Benutzers können durch JavaScript nicht ausgelesen werden, geschweige denn weitergegeben werden.

Durch JavaScript erstellte Cookies werden als besonders kritisch angesehen. In Cookies können in einer vom Browser definierten Datei oder Verzeichnis (sog. Cookie-Datei bzw. Cookie-Verzeichnis) kleine Informationen, die von JavaScript ausgelesen werden können, gespeichert werden. Die Cookies werden also auf der Festplatte des Benutzers gespeichert und können ebenfalls nicht automatisch weitergegeben werden. Sie dienen, wie z.B. in obigem Beispiel dazu, zu registrieren, ob ein Benutzer bereits auf einer Seite war. Steuert er diese Seite wieder an, könnte er z.B. automatisch auf eine andere Seite geleitet werden (es könnte ihm z.B. eine bereits bekannte Begrüßungsseite "erspart" werden). Für kommerzielle Webseiten wird dies fleißig verwendet. Wenn Sie in einem Internet-Kaufhaus z.B. kräftig die "Abteilung" für CD-Bestellung besucht haben, könnte es sein, dass Sie durch ein entsprechendes Cookie auf Ihrem Rechner beim nächsten Besuch gleich zur CD-Abteilung "durchgeleitet" werden. Hierbei hat aber das Webkaufhaus nicht auf seinen Servern gespeichert, dass Sie kräftig CD-Seiten besucht haben (zumindestens nicht aufgrund des Cookies), sondern ein Cookie auf Ihrer Festplatte hat in Verbindung mit einem entsprechenden JavaScript diese vollständig anonyme Weiterleitung bewerkstelligt. Cookies können übrigens in den Voreinstellungen abgeschaltet werden, bzw. jederzeit wieder gelöscht werden.

Hinweis: Sicherlich surfen Sie nicht für private Zwecke auf Ihrem Dienstcomputer. Wenn aber doch, könnte Ihr Arbeitgeber druch die Cookie-Dateien relativ leicht herausbekommen, wo Sie so überall herumsurfen. Dies kann er jedoch auch noch einfacher erreichen (s.u.).

Es ist allerdings richtig, dass über das Web doch recht viele Benutzerdaten vielleicht von Ihnen ungewollt übermittelt werden können. Schuld hat hier aber nicht JavaScript, sonder eher das Ausfüllen und Abschicken von Webformularen. Die Verwendung solcher Formulare (deren Erstellung und Anbindung wir in Modul 9 behandeln) ist von der Webbenutzung nicht mehr wegzudenken, aber dadurch können ggf. kritische Daten übermittelt werden. Schicken Sie ein Formular ab, wird in der Regel ein spezielles Verarbeitungsprogramm (CGI-Programm) auf dem Server aufgerufen, welcher neben den von Ihnen ausgefüllten Daten auch andere, für Sie nicht sichtbare Daten, wie z.B. die IP-Nummer des Benutzers abspeichern kann. Näheres hierzu erfahren Sie in Modul 9. Hier können z.B. auch von JavaScript ausgelesenen Daten, wie Browserversion etc. in sog. unsichtbare Formularfelder eingetragen werden und bei Abschicken durch den Benutzer mitverschickt werden. So könnte eine Software-Firma also nicht nur an Ihren Namen und Ihre Email-Adresse kommen (aber nur, wenn Sie diese selbst im entsprechenden Formular eintragen), sondern auch noch Aufschluss über Ihr Betriebssystem, die von Ihnen verwendete Browserversion, Ihre Bildschirmauflösung und ggf. sogar über die zuvor besuchten Seiten bekommen. Wenn Ihnen dies kritisch erscheint, sollten Sie entweder nie Formulare ausfüllen und abschicken oder aber zuvor den Source-Code der Seite auf sog. versteckte Eingabe-Felder <input type="hidden"> untersuchen. Dies sind die wirklich kritischen Bereiche im Web. Ihr Provider, ggf. auch Ihr Arbeitgeber, hat übrigens immer Angaben über die von Ihnen besuchten Webseiten parat, da diese Benutzerdaten in der Log-Datei des Servers automatisch gespeichert werden.

Einige andere Browserskriptsprachen, insbesondere Active-X, ggf. auch VBScript scheinen aber wirklich kritische Sicherheitslücken aufzuweisen, da sie anscheinend auch über die aktuelle Browserumgebung hinaus auf Ihre Festplatte zugreifen können und ggf. derartig ermittelte Daten über versteckte Formularfelder weitergeben können. Am gefährlichsten sind jedoch Computerviren, die Sie sich insbesondere durch Email-Attachments auf den eigenen Rechner holen können. JavaScript ist im Vergleich dazu meiner Einschätzung nach absolut harmlos (auch wenn ich dafür natürlich keine Garantie geben kann ;-)

Tipp: wir werden im nächsten Teilmodul noch lernen, wie Sie mit JavaScript Ihre Seiten sogar sicherer machen können!


d. Was ist der Unterschied zu Java?

JavaScript und Java haben einige Ähnlichkeiten, aber auch grundsätzliche Unterschiede.

Unterschiede:

Ähnlichkeiten:


>> Modul 7.2: "Level 1": verfügbare JavaScripts in eigene Webseiten einbauen

<< Modul 6.2.3: Script-Actions mit Golive