Einleitung
Sprachkonstrukte
Anwendungen
JavaScript
VBScript
ECMA-Script
LiveScript
Version 1.0 zunächst in Netscape 2.0
jetzt auch in MS Internet-Explorer
JScript entspricht etwa Version 1.0
aktuelle Version 1.2
Standardisierung als ECMA-Script
(European Computer Manufacturer Association)
Interpretierte Sprache in Web Browsern
Syntax ähnlich C++, Java, "objektbasiert"
Programtext wird in HTML-Seiten eingebettet
Erweiterungen zur Interaktion mit dem Browser
Mouse-Clicks, Form-Input, Seitennavigation
Verwendung von JavaScript durch Einbettung in HTML Seiten.
<script type="text/javascript" language="JavaScript"> <!-- to hide script contents from old browsers ... JavaScript ... // end hiding contents from old browsers --> </script>oder auch:
<script type="text/javascript" language="JavaScript" src="vorles.js"></script>
Benutzung von JavaScript Funktionen in HTML Tags.
<input type=... value=... onclick="jsfunc('arguments');">
Ausgabe von "Hallo ...
" in einer HTML Seite.
<HTML> <HEAD> </HEAD> <BODY> <SCRIPT TYPE="text/javascript" LANGUAGE="JavaScript"> document.write("Hallo von JavaScript !") </SCRIPT> Das war's auch schon. </BODY> </HTML>Das war's auch schon.
Syntax ähnlich C++, Java,"objektbasiert"
Konversion von Zahlen in Strings falls ein Operand ein String.
Umkehrung nur mit speziellen Funktionen:
parseInt
, parseFloat
, eval
.
Keine Deklarationspflicht für Variablen.
var x = "Hallo !\n"
Operatoren und Ausdrücke wie in C. y += x--
Verwendung in HTML: width="&{JSvar};"
Statements, Expressions,
{
Statement-Folge }
if-Statement
if (condition) { statements1 } [ else { statements2 } ]
for-Statement
for ([initial-expression]; [condition]; [increment-expression]) { statements }
while-Statement
while (condition) { statements }
for-in-Statement
for (variable in object) { statements }
Zum Beenden bzw. Abkürzen von Schleifen.
break
bzw. continue
Es gibt einen Datentyp Boolean.
toBoolean
JavaScript Objekte
Array
Boolean
Date
Function
Image
Math
Number
String
Verwenden von Objekten
objectName.propertyName objectName[´property´]
this this.propertyName
Funktionen
function funktionsName ( param1 [,param2] ...[,paramN] ) { ... return( ... ); }
Beispiel:
function show_props(obj, obj_name) { var result = ""; for (var i in obj) result += obj_name + "." + i + " = " + obj[i] + "\n"; return result; }
Konstruktor für Objekte.
function objectType ( param1 [,param2] ...[,paramN] ) { this.property1 = param1; ... this.propertyN = paramN; }
Erzeugen von Objekten.
objectName = new objectType ( param1, ...[,paramN] )
Methoden und Funktionen.
objectName.methodName = function_name
objectName.methodName(params);
Prototypen.
new ObjectName(); ObjectName.prototype.pName = wert; objectName = new ObjectName(); x = objectName.pName;
Beispiel:
function alter() { var today = new Date(); return( today.getYear() - this.baujahr ); } function Auto(modell, baujahr) { this.modell=modell; this.baujahr=baujahr; this.alter = alter; } ford = new Auto("Fiesta", 1995); document.write("Alter = ", ford.alter());
Es gibt diverse eingebaute Objekte und Funktionen. Öffnen und schließen von Windows, Alert Meldungen und Confirmations.
onAbort (Image)
onBlur (Window, Frame, Select, Text, Textarea)
onChange (Select, Text, Textarea)
onClick (alles ausser: APPLET, BASE, BASEFONT, BDO, BR, FONT, FRAME, FRAMESET, HEAD, HTML, IFRAME, ISINDEX, META, PARAM, SCRIPT, STYLE, TITLE)
onError (Image, Window)
onFocus (Window, Frame, Select, Text, Textarea)
onLoad (Image)
onMouseOut (Area, Link)
onMouseOver (Area, Link)
onReset (Form)
onSelect (Text, Textarea)
onSubmit (Form)
onUnload (Window)
Beispiel:
function validate(obj, lowval, hival) { if ((obj.value < lowval) || (obj.value > hival)) alert("Value must be greater than " + lowval + " and less than " + hival + ".") }
<INPUT TYPE = "text" NAME = "age" SIZE = 3 onchange="validate(this, 18, 99)" />
Bitte Alter eintragen und Fenster anklicken.
Document Object Model, DOM
Browser Objekte
Objekthierarchie
Beispiel für die Objekte eines Dokuments.
<TITLE>A Simple Document</TITLE> <BODY> <FORM NAME="myform" ACTION="FormProc()" METHOD="get" > Enter a value: <INPUT TYPE="text" NAME="text1" VALUE="blahblah" SIZE=20 > Check if you want: <INPUT TYPE="checkbox" NAME="Check1" CHECKED onclick="update(this.form)"> Option #1 <P> <INPUT TYPE="button" NAME="Button1" VALUE="Press Me" onclick="update(this.form)"> </FORM> </BODY>
Dann sind unter anderem folgende Objekte definiert.
document.title = "A Simple Document" document.myform document.myform.Check1 document.myform.Button1 document.myform.Button1.value = "Press Me" document.myform.Button1.name = Button1
w = window.open(url [,name,options])
w.close()
alert(mitteilung)
jein = confirm(frage)
antwort = prompt(frage)
Feldinhaltsprüfungen in Formularen: <br> <script type="text/javascript" language="JavaScript"> <!-- hide from strangers function checkForm(frm) { if (frm.my_name.value.length > 0) return true else { alert("Please enter your name.") return false } } //--> </script>
<form action="http://trumpf-2.rz.uni-mannheim.de/cgi-bin/ex2.cgi" onSubmit="return checkForm(this);"> Mein Name: <input type="text" name="my_name" size=20> <p> Mein Status: <input type="radio" name="my_status" value="student">Student <input type="radio" name="my_status" value="employee" checked>Mitarbeiter <input type="radio" name="my_status" value="professor">Professor <p> <input type="reset" value="Reset"> <input type="submit" value="Send"> </form> <p>
In diesem Formular werden die Eingaben (hier nur vom Textfeld "my_text") auf Richtigkeit geprüft, bevor die Daten an das CGI-Script ".../ex2.cgi" geschickt werden.
Debuging von JavaScript Programmen mit
javascript:
Bestimmung von Unix Dateirechten
Stilmodifikationen mit Javascript
Animation mit
HTML, CSS, JavaScript und DOM
Dateien:
HTML,
CSS,
JavaScript.
Beispiele von Gamelan.
Sicherheit
DOM
ECMA-Script Components
LiveConnect zu Java
LiveWire
JavaScript auf der Server Seite
© Universität Mannheim, Rechenzentrum, 1998-2002.
Heinz Kredel Last modified: Mon Oct 1 11:12:35 CEST 2001