javascript in html:

javascript ist eine sog. Script-Sprache, die in den html-Quelltext eingebettet werden kann.

Beispiele:

Noch mehr Beispiele:

Browser unterscheiden:


Allgemein:

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 von Stefan Münz , 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.


Hallo Welt:

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).
Eine einzige javascript-Anweisungszeile erzeugt diese Dialog-Box: alert("Hallo Welt !");

Mehr dazu steht am Anfang dieses Dokumentes.


Und noch ein bißchen mehr:

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:

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.


Ein Erdbeben per Javascript:

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 des SelfHtml-Kompendiums.
Notiert als <a href="file://M:/internet/info/selfhtml/index.htm" target="_blank">SelfHtml</A> öffnet er 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 der Bea Pfeil.

Dieser Link zeigt auf die offizielle Webadresse des SelfHtml-Kompendiums.
Notiert als <A href="http://de.selfhtml.org"  target="_blank">SelfHtml</A> öffnet er mittels des Attributes target="_blank" ein neues Browser-Fenster, das den Inhalt der Webadresse "http://de.selfhtml.org" 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 'http://de.selfhtml.org'.
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.

Zurück zur Startseite