javascript ist eine sog. Script-Sprache, die in den html-Quelltext eingebettet werden kann.
<script>
und enden mit
</script>
.
<script type="text/javascript">
definiert einen Script-Bereich,
der javascript enthält.
Beispiele:
Noch mehr Beispiele:
Browser unterscheiden:
Der Sinn von javascript besteht darin, die lediglich der Darstellung von Inhalten dienenden html-Sprache um Funktionalitäten zu erweitern, damit Webseiten selbständig auf die Umgebung des Client-Computers oder auf Eingaben des Anwenders reagieren können.
Ein typisches Beispiel besteht darin, daß beim Drücken einer Schaltfläche, die z.B. eine Bestellung an einen online-shop sendet, zuerst geprüft wird, ob die wichtigsten Angaben gemacht wurden. Ist alles ok, wird die Bestellung durchgeführt, ansonsten kann eine Meldung a'la "Bitte geben Sie die Postleitzahl an." erscheinen und der Eingabe-Cursor kann dann automatisch in dem Formularfeld 'Plz' erscheinen.
Eine html-Seite, die javascript-Anweisungen enthält, wird wie jede andere Webseite auch auf Anfrage komplett vom Server an den Client-Rechner übertragen.
Wenn der Webbrowser des Clients die eingebetteten javascript-Befehle versteht, versucht er diese auszuführen.
Javascript kann mit etwas Wohlwollen durchaus als ausgewachsene Programmiersprache bezeichnet werden.
Das bedeutet, daß javascript eine eigene Sprache und eigene Modelle mit sich bringt, mittels derer versucht werden kann, die Eigenschaften der Umgebung (Browser, Bildschirmeinstellungen etc.) zu beschreiben und evtl. auf sie einzuwirken.
Das Erlernen von javascript ist, wie bei jeder anderen Programmiersprache auch, für einen Anfänger oft schwierig.
Auch hier gilt, 'learning by doing', einfache Beispiele finden sich im html-Kompendium selfhtml, das maßgeblich von Stefan Münz ins Leben gerufen wurde.
Alternativ dazu existieren im Internet Unmengen von Informationen für Anfänger und Profis.
Die Syntax von Javascript ist angelehnt an die der (selbständigen)
Programmiersprache C.
Zwischen Groß- und Kleinschreibung wird ausdrücklich
unterschieden.
Einzelne Anweisungen werden in der Regel mit einem Semikolon abgeschlossen.
Zurück zum Anfang dieses Dokumentes.
ist das älteste und einfachste Beispiel in allen Programmier-Sprachen.
Sinn und Zweck dieser Übung ist es, mittels der verwendeten Programmiersprache eine Ausgabe zu erzeugen (typischerweise am Bildschirm), die den Text "Hallo Welt" beinhaltet.
Notiert in einem javascript, das in einem html-Quelltext eingebettet ist, sieht das so aus:
<script type="text/javascript">
alert("Hallo Welt !");
</script>
Die Dialog-Box mit dem Meldungstext "Hallo Welt !" erscheint, wenn Sie im oberen Bereich auf den Link klicken, der zu diesem Abschnitt führt. Zu diesem Zweck ist der Link wie folgt definiert:
<a href="#hallo" onClick="Init();">Hallo Welt</a>Init() ist der Aufruf einer javascript, die in einer ausgelagerten Datei steht (mehr Infos).
alert("Hallo
Welt !");
Mehr dazu steht am Anfang dieses Dokumentes.
Javascript-Anweisungen, die wie das Beispiel Hallo Welt im html-Quelltext stehen, werden vom Browser abgearbeitet, sobald er auf diese Zeilen trifft. Das oben beschriebene Hallo-Welt-Script ist in dieser html-Datei mitten im Quelltext so platziert, daß der Anfang dieses Kapitels gerade im Browserfenster erscheint.
Javascript-Anweisungen, die vor dem Anzeigen eines Web-Inhaltes abgearbeitet werden sollen, werden typischerweise im <head>-Bereich platziert.
Das gilt auch für sog. javascript-Funktionen (Unterprogramme), die teilweise
recht umfangreich werden können.
Nicht nur aus Gründen der Übersichtlichkeit wird häufig empfohlen,
diese Funktionen alle in einem javascript-Block im <head>-Bereich zu
stellen.
In der ursprünglichen Fassung dieses Dokumentes stand im <head>-Bereich folgender javascript-Code:
<script type="text/javascript">
// springe beim Laden dieses Dokumentes erstmal zum internen
Anker 'hallo'.
window.location.href = "#hallo";
// Die Funktion SetzeURL öffnet ein neues Fenster mit einem
dynamisch vergebenen Link-Ziel.
function SetzeURL(lokaleAdresse, webAdresse)
{
if (window.location.protocol == "file:")
window.open(lokaleAdresse);
else
{
if (webAdresse == "")
alert("Sorry, aber dieser Link ist online leider
nicht verfügbar.");
else
window.open(webAdresse);
}
}
// Die Funktion MeineKleineWelt öffnet lediglich eine
Dialog-Box.
function MeineKleineWelt()
{
alert("Hallo, meine kleine Welt !");
}
</script>
Bemerkenswert sind in diesem javascript-Abschnitt folgende Elemente:
//
eingeleitet werden.
window.location.href = "#HALLO";
bewirkt z.B., daß
der Browser beim Einlesen der Datei direkt zum internen Anker "HALLO" springt.
Javascript-Programme, die an einer bestimmten Stelle, z.B. beim Betätigen einer Schaltfläche, ausgeführt werden sollen, werden z.B. in solche Funktionen eingebettet (siehe die Funktion "MeineKleineWelt()"). An der gewünschten Stelle wird dann lediglich die Funktion mit ihrem Namen aufgerufen, und das entsprechende Programm startet. Die Inhalte von Javascript-Funktionen werden in geschweifte Klammern eingefaßt:
function BlaBla()
{
... Javascript-Befehle ...
}
Z.B. kann eine Schaltfläche, die eine javascript-Funktion aufruft, wie
folgt definiert werden:
<input type=submit value="zeige meine kleine Welt"
onClick="MeineKleineWelt();">
erzeugt eine Schaltfläche mit der Beschriftung "zeige meine kleine Welt".
<input type=submit ... >
definiert ein Eingabefeld
in Form einer Absende-Schaltfläche.
value="zeige meine kleine Welt"
definiert den Beschriftungstext
der Schaltfläche.
onClick="MeineKleineWelt();"
definiert einen Ereignis-Handler
für diese Schaltfläche.
Ereignis-Handler sind ein wesentlicher Bestandteil von javascript. In diesem
Fall (onClick="..."
) bedeutet das, daß javascript in der
Lage ist, auf das Ereignis "onClick" zu reagieren, das eintritt, wenn der
Anwender auf diese Schaltfläche klickt.
In unserem Beispiel wird eine javascript-Funktion namens MeineKleineWelt() aufgerufen, die (ursprünglich) in dem javascript-Bereich stand, der sich im <head>-Bereich befand.
Ein Javascript-Funktionsaufruf kann auch in Form eines normalen html-Links
erfolgen: Dieser Link ist notiert
als
<A href="javascript:MeineKleineWelt();">Dieser
Link</A>
und macht dasselbe, wie die obige Schaltfläche.
Zurück zum Anfang dieses Dokumentes.
Der folgende Link öffnet ein neues Browserfenster, daß in Abständen von 4 Sekunden im Stile eines Erdbebens erzittert.
Zurück zum Anfang dieses Dokumentes.
Auf den verwendeten Browser reagieren:
Ein leider sehr häufig auftretendes Problem in der javascript-Programmierung besteht darin, daß Probleme abhängig vom verwendeten Webbrowser unterschiedlich behandelt werden müssen.
Ein Beispiel:
Wie es sich für eine moderne Programmiersprache gehört, verfügt
javascript über ein sog. Objektmodell.
Die darin enthaltenen Objekte verfügen über Eigenschaften und Methoden.
Auf das alltägliche Leben übertragen, könnte man z.B. sagen, es gibt Objekte vom Typ Auto, die über Eigenschaften verfügen (Marke, Typ, Farbe, Preis, Leistung etc.) und auf die man Methoden anwenden kann (kaufen, einsteigen, beschleunigen, bremsen, fahren, anhalten, aussteigen, verschrotten etc.). Dieses Beschreibungsszenario läßt sich auf so ziemlich alle Autos anwenden und wäre geeignet, Teil einer sog. objektorientierten Programmiersprache zu werden, die den Umgang mit Autos ermöglichen soll.
Im folgenden wird der Umgang mit Schildkröten beschrieben, genauer gesagt mit solchen, die als Gif-Grafik in einem <div>-tab eingebunden sind. Dieses Tag ist in html der Version 3.2 die Antwort auf das <layer>-tag, das einen frei platzierbaren Bereich definieren soll. Das <layer>-tag wird allerdings nur von Netscape-Browsern erkannt, das <div>-Tag kann sowohl im Internet Explorer als auch im Netscape benutzt werden. Selbst html-Elemente sind teilweise browser-spezifisch, obwohl html eigentlich entwickelt wurde, um die Grenzen von Rechnerwelten und Betriebssystemen zu überwinden.
Dieses Beispiel beschreibt das Problem Browser-abhängiger javascript-Programmierung anhand der Anforderung, diese Grafik per javascript zu verschieben.
Geschehen kann das, in dem man per javascript der Eigenschaft
left
einen größeren Wert zuweist als den, den es
gerade besitzt. Die Grafik würde dann ein Stück nach rechts
rücken.
Diese Eigenschaft left
ist selbst Teil eines Objektes und genau
da fängt das Problem auch schon an.
Der <div>-tag samt Grafik ist notiert wie folgt:
<div id="schildkroetenlayer" style="position:relative;
left:0px;">
<img src="turtle.gif" width="65" height="39">
</div>
Der Microsoft Internet Explorer ab Version 4 beschreibt die Eigenschaft
left
dieses Layer-Objektes als:
schildkroetenlayer.style.left = ...
Der Netscape Browser ab Version 4 beschreibt die Eigenschaft
left
dieses Layer-Objektes anders:
window.document.schildkroetenlayer.left = ...
Diese Zeilen erzeugen, wenn Sie abgearbeitet werden, einen javascript-Fehler, wenn ein Browser auf jeweils eine der Zeilen trifft, die nicht für ihn gedacht ist.
Um das zu verhindern, kann per javascript z.B. Name und Version des verwendeten Webbrowsers ermittelt und entsprechend reagiert werden.
Die folgenden Angaben werden von javascript ausgegeben und beschreiben den vom Betrachter verwendeten Browser:
<script
language="javascript" type="text/javascript">document.write(navigator.appName)</script>
gibt in der Webseite folgendes aus:
<script
language="javascript" type="text/javascript">document.write(navigator.appVersion)</script>
gibt in der Webseite folgendes aus:
Die folgenden Links verdeutlichen das browser-spezifische sowie das
Browser-unabhängige Bewegen der Grafik:
Dieser Link verschiebt die Grafik im Internet
Explorer 4 um 10 Pixel nach rechts.
Aufgerufen wird eine Funktion namens MoveIE(), die nur eine Befehlszeile
enthält:
schildkroete.style.left = parseInt(schildkroete.style.left) +
10;
Dieser Link erzeugt einen Fehler, wenn Sie einen anderen Browser als den
Internet Explorer verwenden.
Dieser Link verschiebt die Grafik im Netscape
(Version < 6) um 10 Pixel nach rechts.
Aufgerufen wird eine Funktion namens MoveNS(), die nur eine Befehlszeile
enthält:
window.document.schildkroete.left =
parseInt(window.document.schildkroete.left) + 10;
Dieser Link erzeugt einen Fehler, wenn Sie einen anderen Browser als den
Netscape Navigator verwenden.
Dieser Link verschiebt die Grafik in neueren
Browsern, die das Javascript-DOM-Modell verstehen (ab Netscape 6 oder MS-IE 5)
um 10 Pixel nach rechts.
Aufgerufen wird eine Funktion namens MoveDOM(), die eine für dhtml
(nicht nur nach meiner Meinung) typisch beschissene Befehlszeile enthält:
document.getElementById("schildkroete").style.left = parseInt(document.getElementById("schildkroete").style.left) + 10 + "px";
Dieser Link erzeugt einen Fehler, wenn Sie einen älteren Javascript-fähigen Browser verwenden.
Besonders unschön und für mich als Programmierer bezeichnend ist das Zerlegen
des aktuellen Wertes und das erneute Zusammensetzen einer Zeichenkette per
parseInt(...) + 10 + "px";
Dieser Link setzt die Grafik browser-unabhängig um 10 Pixel nach links. Aufgerufen wird eine Funktion namens MoveBack(), die Browser-unabhängig arbeitet und die die für den verwendeten Browser passende javascript-Befehlszeile verwendet:
function MoveBack()
{
switch(navigator.appName)
{
case "Netscape":
window.document.schildkroete.left =
parseInt(window.document.schildkroete.left) - 10;
break;
case "Microsoft Internet Explorer":
schildkroete.style.left = parseInt(schildkroete.style.left)
- 10;
break;
default:
alert("Was haben Sie denn fuer einen Browser, dazu faellt uns
leider gar nichts ein.");
break;
}
}
Es wird der Name des Browsers ermittelt um den passenden Befehl zum Zurücksetzen der Schildkröte zuzuweisen.
* * * *
Ein anderes Beispiel beschreibt das Problem, den Ausdruck einer Webseite z.B. mittels einer Schaltfläche anzubieten.
Netscape hört ab der Version 4.0 auf die Javascript-Anweisung "window.print();".
So steht's auch im SelfHtml-Kompendium (allerdings in der älteren Version.
Was der Author
Stefan Münz
seinerzeit nicht wissen konnte, ist, daß der Microsoft Internet Explorer
ab der Version 5 das auch kann; bei älteren Versionen wird aber ein Javascript-Fehler
ausgelöst, so wie bei diesem Drucken-Link.
Viele Webdesigner haben die jeweils neuesten Browser-Versionen bei sich installiert und stellen
z.B bei der window.print()-Anweisung keinen Fehler fest, obwohl sie die entsprechende Seite sowohl
im NS wie auch im IE getestet haben.
Der Kunde, der die Webseite bezahlt, probiert das vielleicht gar nicht aus, oder die Webdesigner
haben bei ihm bereits neuere Browser installiert.
Feststellen werden das nur die vielen Betrachter der Webseite, die noch einen MS-IE < 5 oder einen anderen Browser als Netscape besitzen, und sich darüber ärgern, daß eine Drucken-Schaltfläche einen Fehler erzeugt.
Wenn man so etwas elegant und richtig lösen will, sollte eine Javascript-Funktion aufgerufen werden, die je nach Browser und Version die Anweisung "window.print();" ausführt oder statt dessen z.B. eine Meldung erzeugt, die den Anwender darauf hinweist, den Druck manuell über die Optionen des Datei-Menüs auszuführen.
Diese Schaltfläche ist so definiert:
<input type="submit" value="richtig Drucken ..." onClick="CheckPrint();">
Die aufgerufene Javascript-Funktion CheckPrint() steht in der Datei javascript.js, die alle Funktionen, die auf dieser Seite benutzt werden, enthält und sieht so aus:
function CheckPrint()
{
// prüft, ob der Browser je nach Typ und Version für den Befehl
window.print() geeignet ist.
var Version = navigator.appVersion.substring(0,1);
if ((navigator.appName == "Netscape" && Version > "3") ||
(navigator.appName == "Microsoft Internet Explorer" && Version >
"4"))
window.print();
else
alert("Ihr Browser " + navigator.appName + " der " + Version + " kann
das leider nicht.\n\nBenutzen Sie zum Drucken bitte die entsprechende Option
im Menü Datei.");
}
Hier wird für die Fälle, daß Netscape in der Version > 3 oder IE > 4 vorliegen, die Javascript-Anweisung window.print(); ausgefährt, ansonsten erscheint eine Meldung.
Zurück zum Anfang dieses Dokumentes.
Links automatisch lokal oder ins Web zeigen lassen:
Der Sinn dieses Beispieles besteht darin, daß Links auf einer html-Seite, die z.B. den schnellen Zugriff auf lokale Dokumente ermöglichen, online im Web gar nicht funktionieren. Auf der lokalen Festplatte funktionieren diese Links wunderbar, nach einem "Upload" wird diese lokale Verlinkung bei jedem anderen online-Betrachter mißlingen.
So sind Hyperlinks auf eine lokale Installation des selfhtml-Kompendiums von
Stefan Münz
durchaus sinnvoll.
Wenig sinnvoll hingegen ist es, das immerhin 6,5 MB große Nachschlagewerk
in den eigenen Webspace zu integrieren.
Dieser Link sollte, wenn die Seite online betrachtet wird, am besten auf
die offizielle Website von selfhtml verweisen.
Für den Webmaster dieser Website ergibt sich dann das Problem, daß dieser Link beim lokalen Betrachten dieser Seiten auch auf die lokale Installation zeigen sollte, um das Kompendium offline benutzen zu können. Werden die Webseiten beim nächsten Upload ins Internet übertragen, sollten z.B. die diversen selfhtml-Links geändert werden.
Damit die für diese Webseite verantwortliche Person nicht jedesmal diesen
Link, der ja online auf eine Web-Adresse zeigen sollte, ändern muß,
kann in dem Attribut HREF anstelle der Angabe einer Sprung-Adresse der Aufruf
einer javascript-Funktion erfolgen.
Diese Funktion soll erkennen, ob die Seite gerade lokal oder online betrachtet
wird und den Anwender entweder zu dem lokalen oder dem online-Dokument
führen.
Dieser Link zeigt auf die lokale Installation, notiert als <a href="file://M:/internet/info/selfhtml/index.htm"
target="_blank">SelfHtml</A>
und öffnet mittels des
Attributes target="_blank"
ein neues Browser-Fenster, das das
Dokument "selfhtml.htm" im lokalen Verzeichnis "c:\eigene
dateien\thomas\selfhtml" darstellt. Das funktioniert online nicht, sondern
nur bei lokaler Betrachtung dieser Seiten auf dem PC.
Dieser Link zeigt auf die offizielle Webadresse des
SelfHtml-Kompendiums.
Notiert als <A href="https://wiki.selfhtml.org/wiki/Startseite"
target="_blank">SelfHtml</A>
öffnet er mittels
des Attributes target="_blank"
ein neues Browser-Fenster, das
den Inhalt der Webadresse "https://wiki.selfhtml.org/wiki/Startseite" darstellt.
Das funktioniert nur online, bei lokaler Betrachtung wird der Dialog zum
Aufbau der DFÜ-Verbindung geöffnet.
Dieser Link
zum SelfHtml-Kompendium
ersetzt die beiden obigen Varianten, in dem das Sprungziel durch eine
javascript-Funktion dynamisch zugewiesen wird. Anstelle einer Dokument-Adresse
im HREF-Attribut wird per vorangestelltem javascript:
eine
javascript-Funktion namens SetzeURL(...)
aufgerufen, die je
nachdem, wo diese Seite betrachtet wird, zu einem lokalen Ziel oder einem
WWW-Link führt. Notiert ist das wie folgt:
<A
href="#" onclick="javascript:SetzeURL('file:///c:/eigene%20dateien/thomas/selfhtml/selfhtml.htm',
'http://de.selfhtml.org');">SelfHtml</A>-Kompendium
Neu ist in diesem Beispiel, daß der aufgerufenen Funktion 2 sog. Parameter mitgegeben werden. Die Funktion selbst wurde auch dementsprechend weiter oben vereinbart:
function SetzeURL(lokaleAdresse, webAdresse)
{
...
}
Im Beispiel-Link werden deshalb dem Namen der aufzurufenden Funktion "SetzeURL()"
zwei Zeichenketten als Parameter in die runden Klammern beigefügt. Diese
Zeichenketten werden jeweils durch einfache Anführungszeichen '
begrenzt, da das Ganze ja Teil einer <A
href="...">
-Link-Anweisung ist, die selbst wiederum in doppelte
Anführungszeichen " gefaßt ist.
Die erste Zeichenkette hat den Inhalt
'file:///c:/eigene%20dateien/thomas/selfhtml/selfhtml.htm'.
Diese Zeichenkette wird in der Funktion SetzeURL unter dem Variablen-Namen
lokaleAdresse entgegengenommen.
Die zweite Zeichenkette hat den Inhalt 'https://wiki.selfhtml.org/wiki/Startseite'.
Diese Zeichenkette wird in der Funktion SetzeURL unter dem Variablen-Namen
webAdresse entgegengenommen.
Die javascript-Funktion prüft erstmal die Eigenschaft 'protocol', die
beim Betrachten einer Webseite die Werte "file:" oder "http:" annehmen kann:
if (window.location.protocol == "file:")
Ist der Wert "file:", wird mittels window.open(lokaleAdresse);
ein neues Browserfenster geöffnet, das den Inhalt eines lokalen Dokumentes
zeigt.
Ansonsten wird geprüft, ob der zweite Parameter "webAdresse" leer, also
identisch mit der Zeichenkette "" ist:
if (webAdresse == "")
alert("Sorry, aber dieser Link ist online leider nicht
verfügbar.");
Ist in der Zeichenkette des zweiten Parameters doch etwas enthalten (hoffentlich
eine korrekte Web-Adresse), wird eben dieser Wert in der folgenden Anweisung
verwendet: window.open(webAdresse);
. Auch hier wird ein neues
Browserfenster geöffnet, das diesmal den Inhalt eines Web-Dokumentes
zeigt.
Der folgende Link verweist auf ein lokales Dokument, das online nicht verfügbar ist, weil es unglaubliche geheime Daten der Windows-Konfiguration der Bea Pfeil enthält.
Notiert ist wie folgt: <A href="#" onclick="javascript:SetzeURL('../../../../../win95/system.ini',
'');">lokales Dokument</A>
.
In der aufgerufenen Funktion SetzeURL wird der zweite, leere Parameter erkannt
durch if (webAdresse == "")
und deswegen wird kein Browserfenster,
sondern nur eine Dialogbox geöffnet:
alert("Sorry, aber dieser Link ist online leider nicht
verfügbar.");
Zurück zum Anfang dieses Dokumentes.
Mehrfach benötigten javascript-Code in eine zentrale Datei auslagern:
Für die Auslagerung von Javascript-Code sprechen hauptsächlich zwei Gründe:
Zum einen ist die Javascript-Funktionssammlung im <head>
-Bereich dieses Dokumentes bereits ziemlich umfangreich geworden.
Zum anderen kann ein hilfreiches Javascript, wie z.B. "SetzeURL(...)" in mehreren Seiten eines Webprojektes benötigt werden.
Erreicht werden kann das durch eine Zeile im <head>
-Bereich, die auf eine zentrale Javascript-Datei verweist.
In einer solchen Datei können einzelne oder auch mehrere Javascript-Funktionen enthalten sein.
Beispiel:
<script src="quadrat.js" type="text/javascript"></script>
verweist auf eine Datei namens 'quadrat.js', die wie folgt aussehen kann:
function Quadrat(Zahl)
{
Ergebnis = Zahl * Zahl;
alert("Das Quadrat von " + Zahl + " = " + Ergebnis);
}
Der Inhalt einer solchen externen Javascript-Datei besteht nur aus reinen Javascript-Anweisungen, also keine html-tags und keine html-Kommentare, um den Inhalt vor älteren Browsern zu verstecken.
Als Beispiel für eine ausgelagerte Javascript-Funktion, die an mehreren Stellen gebraucht wird, soll die Auslagerung der Routine gelten, die das selfhtml-Kompendium von Stefan Münz dynamisch von der lokalen Festplatte oder von der offiziellen Internet-Adresse lädt:
Da die erforderlichen Javascript-Funktionen in eine externe Datei ausgelagert wurden, müssen die Webseiten, die darauf Bezug nehmen sollen, im <head>
-Bereich eine Zeile enthalten, die diese Javascript-Datei referenziert:
<script src="myway/quadrat.js" type="text/javascript"></script>
Der Verweis auf "myway/quadrat.js" wird z.B. in der Startseite dieses Webprojektes "spielwiese.htm" benötigt, um auf die Datei "setzeurl.js" zu verweisen, die sich im Unterverzeichnis "myway" befindet.
An den Stellen eines Dokumentes, an denen wie hier zu SelfHtml verlinkt werden soll, steht jetzt nur noch:
<A href="javascript:GotoSelfHtml();">SelfHtml</A>
An diesen Seiten gibt es diesbezüglich auch in Zukunft nichts mehr zu ändern, unabhängig, ob die Seite lokal oder im Internet betrachtet wird.
Der Inhalt der hoffentlich korrekt referenzierten Javascript-Datei sieht aus wie folgt:
// Die Funktion GotoSelfHtml stellt eine zentrale Anlaufadresse für
den lokalen bzw. Web-Aufruf
// des selfhtml-Kompendiums von Stefan Münz dar.
// Sollte sich eine der Adressen ändern, muß das nur noch einmal
an dieser Stelle vorgenommen werden.
function GotoSelfHtml()
{
SetzeURL("file:///c:/eigene%20dateien/thomas/selfhtml/selfhtml.htm",
"http://de.selfhtml.org");
}
// Die Funktion SetzeURL oeffnet ein neues Fenster mit einem dynamisch vergebenen
Link-Ziel.
function SetzeURL(lokaleAdresse, webAdresse)
{
if (window.location.protocol == "file:")
window.open(lokaleAdresse);
else
{
if (webAdresse == "")
alert("Sorry, aber dieser Link ist online leider nicht
verfuegbar.");
else
window.open(webAdresse);
}
}
Der Aufruf der Javascript-Fuktion "GotoSelfHtml()" führt hier nur noch zum Abarbeiten einer einzigen Anweisungszeile, in der die lokale sowie Web-Adresse vermerkt sind.
Änderungen an diesen Adressen sind dann ebenfalls nur noch an einer einzigen, zentralen Stelle vorzunehmen.
Diese Zeile ruft selbst das weiter oben unter beschriebene Javascript-Programm SetzeUrl() auf, das ja auch für andere Zwecke, als nur den dynamischen Aufruf des self-html-Kompendiums, verwendet werden kann.
Zurück zum Anfang dieses Dokumentes.