JS-Menü Dokumentation / Anleitung
Programm und Dokumentation von Ansgar Federhen / Rhein@Net
Programmversion: 1.4.1 deutsch / 22. Februar
2000
JS-Menü im Internet: http://www.Rheinbreitbach.net/js-menue/
(Englisches Original OmenTree von Colin
Tucker / Omensoft)
JS-Menü-Forum: http://www.Rheinbreitbach.net/js-forum/
E-Mail an den Autor: JS-Menue@Rheinbreitbach.net
Benutzer von JS-Menü: http://www.Rheinbreitbach.net/js-menue/links.htm
Meinungen zu JS-Menü: http://www.Rheinbreitbach.net/js-menue/meinung.htm
Übersicht:
- Einleitung
- Was ist JS-Menü?
- Warum sollte ich JS-Menü benutzen?
- Wie kann ich JS-Menü benutzen?
- Wie funktioniert JS-Menü?
- Wie erstelle ich mein JS-Menü?
- Jetzt geht's los!
- Menü-Struktur-Definitionen
- Der Hauptverzeichnis-Eintrag
- Die Verzeichniseinträge
- Die Link-Einträge
- Menü-Layout-Angaben
- Farbdefinitionen
- Weitere Änderungen in der Datei index.htm
- Die FrameSet-Definition
- Die anderen Dateien
- Dateien immer nur zusammen mit JS-Menü anzeigen
- Tipps und Tricks
- Javascript
- JS-Menü-Newsletter und -Forum
- Hinweise zum Update von früheren Versionen
- Lizenzbestimmungen
- Historie
Einleitung
Hallo und willkommen bei JS-Menü (JS steht
dabei für JavaScript).
Ich hoffe, dass Du mit JS-Menü Deine eigene Web-Site (Deinen Web-Bereich)
bereichern kannst! JS-Menü ist konzipiert für Homepage-Besitzer, die noch keine oder nur
wenig Erfahrung mit JavaScript haben. Mit dieser Anleitung sollte Dir Dein eigenes
JS-Menü gelingen; wenn nicht, schreibe mir,
damit ich diese Anleitung verbessern kann.
Abonniere den JS-Newsletter, um über Updates von JS-Menü
oder andere Scripts informiert zu werden, besuche das JS-Forum, um Tipps und
Problemlösungen zu finden oder sieh Dir die Liste der JS-Menü-Benutzer an,
um Anregungen für den Einsatz von JS-Menü zu bekommen. Wenn Du JS-Menü schon
kennst, sieh Dir an, was sich geändert hat.
JS-Menü ist Freeware, aber trotzdem urheberrechtlich geschützt. Wenn Du JS-Menü
verwenden willst, sieh Dir vorher die Lizenzbestimmungen an.
Was ist JS-Menü?
JS-Menü ist eine javascript-basierte hierarchische Navigationsstruktur für
Web-Sites (Web-Bereiche) im Windows-Explorer-Look. Oder anders: Mit JS-Menü kannst
Du in einem Teilfenster des Browsers (Frame) Deine Web-Site in einer Baumstruktur
darstellen.
Hierarchische Menüstrukturen gibt es schon sehr lange. Sagen Dir die Namen Windows
Explorer, Dateimanager oder X-Tree etwas? Natürlich, und genau diese
Programme benutzen hierarchische Menüstrukturen.
Jeder PC-Anwender kennt diese hierarchischen Strukturen; JS-Menü ist dem
Windows-Explorer nachempfunden, so dass Benutzer von Windows 95/98/2000/NT sich
sofort zurecht finden sollten.
Warum sollte ich JS-Menü
benutzen?
Den Studenten, die objektorientierte Programmierung lernen, wird beigebracht, dass
uns hierarchische Strukturen vertraut und natürlich sind - egal ob wir PCs
benutzen oder nicht. Von Geburt an ordnen Menschen alles in Kategorien
("Schubladen") ein, um die Zusammenhänge der Welt zu verstehen. Eine
hierarchische Struktur ist eine einfache Art, sich diese Kategorien vorzustellen und
anderen näher zu bringen.
Komplexe Strukturen (wie z.B. Dateisysteme) werden in einer solchen hierarchischen
Struktur präsentiert - andernfalls wären sie nicht darstellbar und auch nicht mehr
verständlich. Stelle Dir nur einmal vor, Du hättest alle Dateien auf Deiner
Festplatte in einem einzigen Verzeichnis, bei heutzutage mehreren tausend Dateien
unvorstellbar!
JS-Menü erstellt eine solche hierarchische Baumstruktur für Deine Web-Site, wobei
Dateien, Verzeichnisse sowie andere Web-Sites und Internet-Dokumente durch Hyperlinks
(Verweise) bzw. URLs (Universal Resource Locator, Internetadressen) als
Menüeinträge angeboten werden, aber auch E-Mail-Adressen, News-Gruppen sowie
web-basierte Anwendungen (CGI, ASP, Online-Shops usw.) eingebunden werden können. Alles,
was durch eine URL benannt werden kann, kann auch in die logische Baumstruktur von JS-Menü
aufgenommen werden. Diese logische Baumstruktur ist vollkommen unabhängig von der
physikalischen Ablage der Daten.
Wenn Du also JS-Menü benutzt, gibst Du den Besuchern Deiner Web-Site ein
hilfreiches Werkzeug an die Hand, um sich auf Deiner Web-Site zurechtzufinden, besonders,
wenn es sich um einen großen Webbereich handelt oder die Navigation ausschließlich mit
Hyperlinks zu unübersichtlich würde. Aber auch wenn Deine Web-Site nur klein ist, kannst
Du Deinen Besuchern sofort einen tollen Überblick über Deine Web-Angebote bieten; sie
werden begeistert sein!
Und das Besondere an JS-Menü:
Du kannst das Aussehen des Menüs und die einzelnen Menüeinträge Deines JS-Menüs durch
wenige Parameter verändern und anpassen, ohne Dir umfangreiche JavaScript-Kenntnisse
anzueignen. Mit dieser Anleitung sollte es Dir gelingen, ohne Kenntnisse von JavaScript
ein tolles dynamisches Navigationsmenü in Deine Website zu integrieren. Etwas Tipperei
und Ausprobieren ist schon nötig, aber anschließend wirst Du stolz auf Dich und Deine
Arbeit sein!
Wie kann ich JS-Menü
benutzen?
JS-Menü ist ein sehr vielseitiges JavaScript; Du wirst sicherlich viele
Anwendungsmöglichkeiten finden. JS-Menü ist die Lösung zur Darstellung
logischer Strukturen und für verschiedene Präsentationen. Hier einige allgemeine
Vorschläge zur Benutzung von JS-Menü:
- als Web-Site-Menü/Inhaltsverzeichnis -
dies ist sicherlich die meistbenutzte Funktion von JS-Menü. Besucher Deiner
Web-Site können mit JS-Menü in Deinem Web-Bereich navigieren und die Angebote
besser finden. Nutze JS-Menü zur Präsentation Deines Web-Angebots mit einer von
Dir definierten logischen Verzeichnisstruktur!
- als Site-Map - vielleicht die
zweithäufigste Nutzungsart von JS-Menü. Sie ähnelt der vorher angegebenen Art
und Weise (die Definition von 'Site-Map' war eh nie ganz klar), außer dass Site-Maps
nicht unbedingt zur generellen Navigation auf Web-Sites gedacht sind.
- als Dokumenten-Navigationssystem - so wie JS-Menü
diese Dokumentation im Menü anbietet, kannst Du auch andere (längere) Dokumente
präsentieren. JS-Menü bietet eine bequeme Möglichkeit, Links zu
Dokumenten und darin enthaltenen Textmarken (Ankern) einzubinden, so wie mit diesem
Dokument. Der Benutzer kann sich bereits vor dem Lesen des eigentlichen Dokuments einen
Überblick verschaffen und sofort zu der für ihn interessanten Stelle springen, anstatt
sich durch das ganze Dokument zu wühlen. Oder er sieht anhand der Liste der Textmarken,
dass das Dokument für ihn nicht interessant ist und braucht es erst gar nicht zu laden.
- als Link-Liste - ähnlich den Lesezeichen/Bookmarks
(Netscape) und Favoriten (IE) kannst Du mit JS-Menü eine strukturierte
Link-Liste erstellen, sortiert nach eigenen Kategorien. Willst Du den Benutzern Deiner
Web-Site eine große Zahl von Hyperlinks anbieten? Benutze JS-Menü!
- als web-basiertes Anwendungssystem - ja,
auch das ist mit der dynamischen Struktur von URLs möglich. Du kannst mit JS-Menü
web-basierte Anwendungen aufrufen, z.B. im lokalen Intranet. Mit den einzelnen
Menüpunkten werden z.B. Java-Applets, CGI-Scripte und Formulare,
oder halt JavaScript-Befehle aufgerufen - lasse Deiner Fantasie freien Lauf!
- als Navigationsstruktur eines Online-Shops.
E-Business ist ein Zukunftsmarkt, ein Wirtschaftsfaktor. Dabei ist es erforderlich, den
potentiellen Käufer mit ihm bekannten Strukturen an das Angebot heranzuführen. Was liegt
da näher als eine an den Windows-Explorer angepasste Struktur?
Dies sind nur einige von vielen Möglichkeiten, JS-Menü
zu nutzen. Teste ruhig weitere Möglichkeiten, die Dir einfallen. Wenn Du eine auch für
andere Anwender interessante Nutzungsmöglichkeit gefunden hast, teile es anderen
Benutzern im Forum mit.
Wie funktioniert JS-Menü?
Es wäre zu aufwendig, alle Details der JavaScript-Funktionen zu erläutern. Deshalb hier
eine Zusammenfassung:
Die Startdatei index.htm ist so aufgebaut, dass,
- falls der Browser JavaScript versteht,
- per JavaScript eine FrameSet-Definition 'A' erstellt wird mit dem (dynamischen) JS-Menü
(i.d.R. links) und der Startseite (seite.htm, i.d.R. rechts) sowie ggf. noch ein
klappFrame zum Öffnen/Schließen aller Verzeichnisse unterhalb des JS-Menü's
- falls der Browser kein JavaScript versteht,
- eine für diesen Fall spezielle FrameSet-Definition 'B' geladen wird mit dem
(statischen) JS-Menü (nojsmenu.htm, i.d.R. links) und der Startseite (seite.htm, i.d.R.
rechts)
- falls der Browser weder JavaScript noch Frames darstellen kann,
- der in der Datei index.htm zwischen <NOFRAMES> und </NOFRAMES> enthaltene
HTML-Code dargestellt wird.
Im Normalfall (JavaScript=aktiv) ruft also die
Startdatei index.htm eine FrameSet-Definition auf, mit der das
Browserfenster in zwei (bzw. drei) Unterfenster aufgeteilt wird:
- das Menü-Unterfenster (menuFrame): In
diesem Bereich im linken Frame erscheint das JS-Menü
- das Hauptseiten-Unterfenster (seiteFrame):
Auf der rechten Seite wird die Hauptseite seite.htm angezeigt und später die
Dateien, die der Besucher jeweils im Menü auswählt
- und ggf. noch einen kleinen Zusatzframe
unterhalb des Menüs (klappFrame) mit Einträgen zum Öffnen/Schließen aller
Verzeichnisse.
Sobald der Besucher auf einen Verzeichnis- oder
Linkeintrag im JS-Menü klickt, wird die entsprechende Seite im
Hauptseiten-Unterfenster (seiteFrame) angezeigt. Klickt er auf einen Verzeichniseintrag
oder einen Auf-/Zuklappen-Eintrag, wird (zusätzlich) der entsprechende JavaScript-Befehl
aus der Datei index.htm ausgeführt und das Menü-Unterfenster in entsprechend
veränderter Form angezeigt (Verzeichnisbaum auf- bzw. zuklappen).
Wie erstelle ich mein
JS-Menü?
Die wesentlichen Schritte, um ein eigenes JS-Menü zu erstellen:
- Du trägst die einzelnen von Dir gewünschten
Menüpunkte im Bereich Menü-Struktur-Definitionen in das
Original-Script von JS-Menü (index.htm) ein - dies geht relativ einfach, mehr dazu
später;
- Du passt das Aussehen des Menüs durch Verändern
verschiedener Variablen im Bereich Menü-Layout-Angaben des JS-Menü-Scripts
an Deine Vorstellungen an - dies können z.B. Hintergrundfarbe, Textfarbe, Icons o.ä.
sein - , auch dazu später mehr;
- Du passt die Meta-Tags der index.htm an, benennst
Deine Einstiegsseite in seite.htm um, erstellst die Datei nojsmenu.htm und testest alles
ausgiebig (am besten mit verschiedenen Browsern);
- Du kopierst (lädst per FTP) die Dateien auf
Deine Web-Site bzw. in Dein Web-Verzeichnis (Sicherungskopien nicht vergessen!). Außerdem
musst Du noch das Verzeichnis \bilder in Dein Web-Verzeichnis kopieren.
Diejenigen, die sich noch nicht mit JavaScript
beschäftigt haben, werden sicher jetzt schon verzweifeln - aber keine Panik! JS-Menü
wurde bewusst so erstellt, dass von Dir kein komplizierter JavaScript-Code erstellt oder
angepasst werden muss. Selbst wenn Du noch nie etwas über JavaScript gehört hast,
kannst Du Dir Dein eigenes JS-Menü erstellen; Du wirst Schritt für Schritt durch
die gesamte Prozedur geführt. Also - nicht aufgeben, in kurzer Zeit hast Du Dein eigenes JS-Menü
erstellt!
Wenn alles geklappt hat - Du hast das Original-Script angepasst und als index.htm mit den
anderen Dateien in Dein Web-Verzeichnis geladen -, hat sich Deine Web-Site grundsätzlich
verändert! Mit dem Start der index-Datei werden alle Seiten der einzelnen Frames geladen
und das JS-Menü baut sich auf. Das Script wird eine erste Baumstruktur
entsprechend Deinen Definitionen mit dem Hauptverzeichnis und den direkt darin enthaltenen
Menü-Einträgen erstellen.
Durch die JavaScript-Funktionen wird das Menü dynamisch - es erlaubt dem Besucher
Deiner Web-Site, durch Anklicken Verzeichnisse zu öffnen und neue Links und
Unterverzeichnisse zu durchstöbern. Das hört sich komplizierter an, als es ist; aber Du
wirst sehen, wie einfach alles geht.
Jetzt geht's los!
Fangen wir also an, Dein JS-Menü zu erstellen
Du solltest zuerst Sicherungskopien aller JS-Menü-Dateien (und natürlich auch
Deiner eigenen bisherigen Webseiten) machen. Starte dann Deinen Texteditor (z.B.
Notepad.exe. Ja, Du hast richtig gelesen, nicht Frontpage oder Composer oder ein anderes
Programm, wirklich nur einen Texteditor; siehe dazu das Kapitel Werkzeuge)
und öffne die Datei index.htm - ggf. solltest Du das Fenster auf Bildschirmgröße
vergrößern, da manche Zeilen ziemlich lang sind und möglichst kein Zeilenumbruch
eingefügt werden sollte (Besser ist es natürlich, wenn Du zunächst diese Dokumentation
bis zum Ende liest und dann hier weitermachst.).
Was Du jetzt siehst, ist erst einmal der Kopf einer HTML-Datei, wie jede HTML-Datei ihn
hat (wenn man mal von den Copyright-Einträgen absieht). Das JavaScript ist mit allen
Angaben in diesem Kopf ('Header') untergebracht. Im Anschluss an die Meta-Tags wird dazu
erst einmal angegeben, dass jetzt JavaScript-Code beginnt. In Zeile 27 wird dann die
Funktion ladeDaten() definiert. In diesem Bereich machst Du alle für das JS-Menü
erforderlichen Angaben!
Zunächst stehen dort einige erklärende Kommentarzeilen (die Zeilen, die mit // beginnen;
die kannst Du später löschen, damit die Datei kleiner wird) und dann geht es richtig
los.
Du siehst, dass der Bereich der Funktion ladeDaten() in zwei Unterbereiche
unterteilt ist:
- Menü-Struktur-Definitionen und
- Menü-Layout-Angaben.
In diesen zwei Unterbereichen wirst Du
Änderungen vornehmen, um das JavaScript für Dich anzupassen.
Achte bei Deinen Anpassungen auf die genaue Schreibweise: JavaScript ist z.B.
casesensitiv, das heißt, ein Wort mit großen Buchstaben ist nicht das Gleiche wie ein
Wort mit kleinen Buchstaben (Bei der Menü-Struktur-Definition musst Du jede Zeile mit 'mD.neu(new..' anfangen , 'MD.neu(new..' klappt z.B. nicht!).
Achte vor allem auf die Verwendung von Anführungszeichen und Apostrophs!
Wir beginnen also mit den
Menü-Struktur-Definitionen
Zuerst das Wichtigste, damit JS-Menü überhaupt Sinn macht: Die Definition der
Menüstruktur. Bevor wir in dieses Thema einsteigen, kannst Du ja mal einen Blick in
den vorhandenen JavaScript-Code der Datei index.htm werfen und mit der Ansicht im
Browser vergleichen; vielleicht verstehst Du dann ja schon den Aufbau der Einträge.
Die Definitionen der einzelnen Menü-Einträge werden in einer Art Array (feststehender
Begriff in JavaScript und anderen Programmiersprachen, daher nicht übersetzt, bedeutet
etwa Feld oder Tabelle) gespeichert. Es ist aber kein echtes JavaScript-Array. Stattdessen
wird ein Objekt namens Satz benutzt, welches (im Gegensatz zu Arrays) keine feste
Größe hat und auch keinen Index-Wert für jeden Eintrag benötigt.
Jede Zeile im Definitionsbereich entspricht einem Menü-Eintrag (Du solltest keine
Zeilenumbrüche einfügen, das verändert das Menü). Jedes JS-Menü hat genau einen
Hauptverzeichnis-Eintrag (ein Baum hat auch nur einen Stamm), die übrigen
Einträge sind entweder Verzeichnis-Einträge (Zweige) oder Link-Einträge
(Äste).
Der Hauptverzeichnis-Eintrag
Dein Menü muss - wie bereits gesagt - einen Hauptverzeichnis-Eintrag
enthalten, und nur einen! Dieser Eintrag muss an erster Stelle der Liste der
Einträge stehen!
Schreibweise des Hauptverzeichnis-Eintrags:
mD.neu(new
HVE("<NAME>","<TEXT>","<ICON>","<STATUSTEXT>"));
wobei
- <NAME> ein eindeutiger Name zur
Bezeichnung des Hauptverzeichnis-Eintrags ist (ich benutze den allgemein üblichen Begriff
'root' ),
- <TEXT> der Text ist, der im Menü
als Hauptverzeichnis (z.B. 'Mein Webbereich') angezeigt wird (ggf. auch HTML-Code),
- <URL> dieser Parameter wurde mit
Version 1.4 gelöscht (stattdessen URL bei Menü-Layout-Angaben unter Startseite
eintragen),
- <ZIEL> dieser Parameter wurde mit
Version 1.4 gelöscht (für den Hauptverzeichnis-Eintrag wird immer der bei
Menü-Layout-Angaben unter ZielFrame eintragene Frame verwendet),
- <ICON> der Name einer 16x16 Pixel
großen Grafik-Datei aus dem Bilder-Verzeichnis ist, die als Icon vor <TEXT>
angezeigt werden soll (falls leer, wird das Standard-Icon 'globus-0.gif' bzw.
'globus-1.gif' abhängig von der Variablen hgStil angezeigt) und
- <STATUSTEXT> der Text ist, der in
der Statuszeile (anstatt der Linkadresse) und beim 'MouseOver' über das <ICON>
angezeigt wird (falls leer, wird nichts angezeigt).
Achte auf die genaue Schreibweise! Die
Zeichen ( " , ' ) ; sind wichtig für
die Lauffähigkeit des JavaScripts, die spitzen Klammern < und > weglassen!
Verzeichnis-Einträge
Die Definition der Verzeichnis-Einträge erfolgt ähnlich der des Hauptverzeichnis-Eintrags,
hat aber eine geringfügig abweichende Schreibweise. Verzeichnis-Einträge
benötigen einen Bezug zum übergeordneten Verzeichnis (<UEBERGEORDNETER NAME>'),
damit das JavaScript sie richtig in das Menü sortieren kann.
Schreibweise der Verzeichnis-Einträge:
mD.neu(new
VE("<NAME>","<UEBERGEORDNETER
NAME>","<TEXT>","<URL>","<ICON
ZU>","<ICON OFFEN>","<STATUSTEXT>"));
wobei
- <NAME> ein eindeutiger Name zur
Bezeichnung des Hauptverzeichnis-Eintrags ist; stelle sicher, dass kein anderes
Verzeichnis den gleichen Namen hat, sonst kommt JS-Menü durcheinander,
- <UEBERGEORDNETER NAME> der Name des
übergeordneten Verzeichnisses ist; stelle sicher, dass es sich um einen gültigen Namen
handelt, also der Name auch wirklich vorkommt,
- <TEXT> der Text ist, der im Menü
als Verzeichnis angezeigt wird (ggf. auch HTML-Code),
- <URL> die Adresse des Dokuments/der
Datei ist, die beim Anklicken des geschlossenen Verzeichnisses im anderen Frame
(siehe <ZIEL>) angezeigt werden soll,(falls leer, bleibt die bisherige Datei
sichtbar). Das Dokument/die Datei wird also beim Öffnen eines Verzeichnisses angezeigt,
beim Schließen des Verzeichnisses ändert sich im seiteFrame nichts,
- <ICON ZU> der Name einer 16x16 Pixel
großen Grafik-Datei aus dem Bilder-Verzeichnis ist, die als Icon angezeigt werden soll,
solange das Verzeichnis geschlossen ist (falls kein Wert eingetragen ist, wird das
Standard-Icon angezeigt),
- <ICON OFFEN> der Name einer 16x16
Pixel großen Grafik-Datei aus dem Bilder-Verzeichnis ist, die als Icon angezeigt werden
soll, solange das Verzeichnis geöffnet ist (falls leer, wird das Standard-Icon
angezeigt),
- <STATUSTEXT> der Text ist, der in
der Statuszeile (anstatt dem unter Menü-Layout-Angaben in den Variablen VerzAuf
bzw. VerzZu definierten Werten) und beim 'MouseOver' über das <ICON ZU>
oder <ICON OFFEN> angezeigt wird.
Link-Einträge
Jetzt kommen wir zum eigentlichen Sinn und Zweck von JS-Menü: Links (Verweise).
Die Schreibweise ist ähnlich und genauso einfach wie die der anderen Einträge.
Schreibweise der Link-Einträge:
mD.neu(new LE("<UEBERGEORDNETER
NAME>","<TEXT>","<URL>","<ZIEL>","<ICON>","<STATUSTEXT>"));
wobei
- <UEBERGEORDNETER NAME> der Name des
übergeordneten Verzeichnisses ist; stelle sicher, dass es sich um einen gültigen Namen
handelt, also der Name auch wirklich vorkommt,
- <TEXT> der Text ist, der im Menü
angezeigt wird (ggf. auch HTML-Code),
- <URL> die Adresse des Dokuments/der
Datei ist, die beim Anklicken des Eintrags im anderen Frame (siehe <ZIEL>)
angezeigt werden soll,
- <ZIEL> der Ziel-Frame ist, in dem
das Dokument (siehe <URL>) angezeigt werden soll (falls dieser Wert leer
bleibt, wird der unter Menü-Layout-Angaben in der Variablen FrameZiel
definierte Wert übernommen). Wenn Du als Wert '_top' einträgst, wird das gesamte Fenster
zur Ausgabe benutzt, das Menü verschwindet also; wenn Du als Wert '_blank' einträgst,
wird ein neues Fenster geöffnet und zur Ausgabe benutzt,
- <ICON> der Name einer 16x16 Pixel
großen Grafik-Datei aus dem Bilder-Verzeichnis ist, die als Icon angezeigt werden soll
(falls leer, wird das unter Menü-Layout-Angaben in der Variablen LinkBild
definierte Icon angezeigt). Falls Du Icons aus dem Verzeichnis moreicon verwenden
willst, kopiere diese zuerst in das bilder-Verzeichnis.
- <STATUSTEXT> der Text ist, der in
der Statuszeile und beim 'MouseOver' über das <ICON> angezeigt wird. Ist
hier nichts eingetragen, wird der zu <TEXT> oder der zu <URL>
eingetragene Wert angezeigt (je nach Wert bei StatURL).
Ist der bei <TEXT> eingetragene
Text so lang, dass er nicht in den Menü-Frame passt, kann man ihn auch auf zwei
Zeilen verteilen: Dazu werden zwei Linkeinträge erstellt und der Text auf die
beiden <TEXT>-Bereiche verteilt. Damit JS-Menü erkennt, dass es sich um
einen zweiteiligen Link-Eintrag handelt, muss beim zweiten Eintrag für <ICON>
'leer.gif' eingetragen werden, die Werte bei <ÜBERGEORDNETER NAME>, <URL>,
<ZIEL> und <STATUSTEXT> sollten gleich sein. Die beiden
Linkeinträge sehen dann ungefähr so aus:
mD.neu(new LE("<UEBERGEORDNETER
NAME>","erster
Textteil","<URL>","<ZIEL>","<ICON>","<STATUSTEXT>"));
mD.neu(new LE("<UEBERGEORDNETER NAME>","zweiter
Textteil","<URL>","<ZIEL>","leer.gif","<STATUSTEXT>"));
Ein Beispiel dazu siehst Du auch im JS-Menü.
Das waren schon alle Menü-Eintrags-Definitionen. Falls Du noch Probleme damit hast, sieh
Dir noch einmal die ursprünglichen Einträge in der Datei index.htm an, dann wirst
Du wahrscheinlich von alleine darauf kommen, wie es funktioniert.
Menü-Layout-Angaben
Jetzt musst Du in Deinem Texteditor etwas nach unten gehen, um zum Bereich Menü-Layout-Angaben
zu kommen.
Hier kannst Du das Erscheinungsbild Deines Menüs weitgehend beeinflussen, ohne auch nur
einen blassen Schimmer von JavaScript zu haben.
Es werden verschiedene Einstellungen wie z.B. das Erscheinungsbild (Farben,
Schriften) von JS-Menü definiert. (Hinweis für Benutzer früherer Versionen von
JS-Menü: Die Menü-Layout-Angaben hießen bisher 'Benutzerdefinierte Variablen'; die
Namen haben sich weitgehend geändert, siehe Historie).
Die Werte zu den einzelnen Angaben werden jeweils zwischen die beiden Anführungszeichen
geschrieben.
Schauen wir uns jede Variable einzeln an: ([#] bedeutet, dass die Variable leer sein darf,
Anführungszeichen stehen lassen!)
- Layout[#] - reserviert / noch unbenutzt,
nicht verändern
- hgStil - Obwohl nur eine kleine Variable,
hat hgStil eine große Auswirkung auf das Erscheinungsbild. Manche Anbieter von
Web-Sites mögen lieber Internetseiten mit einem dunklen Hintergrund (oft schwarz, ein
schwarzes Menü würde man dann allerdings nicht erkennen), andere mögen's lieber hell
(hier wäre ein weißes Menü nicht sichtbar). Ich will Dir die Gestaltung Deiner Web-Site
nicht vorschreiben, daher liegen die Icons (Grafiken), mit denen das JS-Menü
dargestellt wird, in zwei verschiedenen Versionen bei, einer für dunkle und einer für
helle Hintergründe. Wenn Du also einen hellen Hintergrund benutzt (Standardeinstellung),
lasse den Wert der Variablen auf 0, wenn Du einen dunklen Hintergrund benutzt,
setzte den Wert der Variablen auf 1. Je nach dem, welcher Wert gesetzt wurde,
werden die gif-Dateien im /bilder-Verzeichnis mit der 0 bzw. der 1 im Namen benutzt.
- hgFarbe[#] - Diese Variable bestimmt die
Hintergrundfarbe des Menüs. Der Wert der Variablen ist hexadezimal von '#000000'
(entspricht schwarz) bis '#FFFFFF' (entspricht weiß) anzugeben (siehe dazu die Farb-Übersicht). Wenn Du keine Hintergrundfarbe angibst, solltest Du ein
Hintergrundbild bei hgBild angeben.
- hgBild[#] - Diese Variable bestimmt das
Hintergrundbild des Menüs. Falls Du ein Hintergrundbild verwenden willst, beachte, dass
Du hier den kompletten Pfad bzw. die URL für die Grafik-Datei angibst! Wenn Du hier kein
Hintergrundbild angibst, solltest Du eine Hintergrundfarbe bei hgFarbe angeben.
- KhgFarbe[#] - Diese Variable bestimmt die
Hintergrundfarbe des KlappFrames, Wert wie hgFarbe. Falls hier keine Farbe
angegeben ist, wird der bei hgFarbe angegebene Wert berücksichtigt.
- KhgBild[#] - Diese Variable bestimmt das
Hintergrundbild des KlappFrames, Wert wie hgBild. Falls hier nichts angegeben ist,
wird der bei hgBild angegebene Wert berücksichtigt.
- TextFarbe - Diese Variable bestimmt die
Farbe der Texte im Menü, bei denen kein Link hinterlegt ist (also normalerweise nur Kopf-
und Fußzeile, s.u.); Wertangabe wie hgFarbe.
- LinkFarbe - Die Farbe von Text im Menü,
der mit einem Link hinterlegt ist; Wertangabe wie 'hgFarbe'.
- aLinkFarbe - Diese Variable bestimmt die
Farbe des aktiven Links; Wert wie 'hgFarbe'.
- bLinkFarbe[#] - Die Farbe der bereits
besuchten Links; Wertangabe wie 'hgFarbe'.
- Menubreite - Hier stellst Du die Breite
des Menü-Frames ein (Angabe in Pixel, Standard=180). Das Menü darf einerseits nicht zu
breit sein, damit noch genügend Platz für die eigentlichen Seiten bleibt (denke an
Besucher mit geringer Bildschirmauflösung), andererseits sollte es auch nicht zu schmal
sein, damit die Linkeinträge komplett angezeigt werden (ggf. zweizeilige Linkeinträge
verwenden).
- ZielFrame - Diese Variable bezeichnet den
Namen des Frames (nicht den Namen der Datei!), in den standardmäßig alle Daten
ausgegeben werden. Vorgegeben ist hier der Framename seiteFrame; ändere ihn besser
nicht (siehe FrameSet-Definition).
- BildURL[#] - In dieser Variablen wird der
Pfad zu den für JS-Menü erforderlichen Grafiken (Icons) angegeben.
Standardmäßig ist hier 'bilder/' angegeben; falls Du den Verzeichnisnamen änderst,
musst Du hier den neuen Pfad angeben (T-Online-Benutzer hatten früher z.B. nicht die
Möglichkeit, Unterverzeichnisse anzulegen. Die Grafiken mussten daher im gleichen
Verzeichnis wie die anderen Dateien abgelegt werden. Der Eintrag lautet dann BildURL =
"" ).
- LinkBild[#] - Damit wird das Standard-Bild
(Icon) für Links bestimmt (wird angezeigt, falls unter <ICON> im Linkeintrag nichts
steht).
- Schrift - Diese Variable bestimmt die
Standard-Schriftart des Menü-Frames. Du solltest mehrere alternative Schriftarten -
jeweils getrennt durch ein Komma - angeben; dies ist sinnvoll, weil die gewünschte
Schriftart auf dem Rechner des Besuchers lokal installiert sein muss, und weisst Du, ob
jeder Besucher Deiner Web-Site die von Dir gewünschte Schriftart installiert hat? Die
Variable wirkt sich auf menuFrame und klappFrame aus.
- SchriftGr - Die Größe der im Menü
benutzten Schrift, normalerweise 1 oder 2; größere Werte sind zwar möglich, aber nicht
sinnvoll.
- SchriftSt - Der Schriftschnitt (standard,
fett, kursiv oder fett kursiv) der im Menü benutzten Schrift, wobei 0=standard, 1=fett,
2=kursiv und 3=fett kursiv bedeutet. SchriftSt = "1" hat bei SchriftGr
= "1" i.d.R. keine Auswirkung, da diese Schrift zu klein ist, um fett
angezeigt zu werden.
- Schliessen[#] - Hier bestimmst Du, ob beim
Öffnen eines Verzeichnisses andere geöffnete Verzeichnisse geschlossen werden sollen
(geöffnete Verzeichnisse werden nur geschlossen, wenn das neu zu öffnende Verzeichnis
direkt unterhalb des Hauptverzeichniseintrags liegt, siehe AllesZu): Schliessen
= "1" schließt alle Verzeichnisse; Schliessen = "0" oder ""
lässt andere Verzeichnisse geöffnet.
- AllesZu[#] - Hier bestimmst Du, ob beim
Öffnen eines Unterverzeichnisses andere geöffnete Unterverzeichnisse geschlossen werden
sollen: AllesZu = "1" schließt immer alle anderen Verzeichnisse, AllesZu
= "0" oder "" lässt bereits geöffnete Unterverzeichnisse
offen. Der Parameter hat keine Auswirkung, wenn Schliessen = "0". AllesZu
funktioniert nur bis zu einer bestimmten Verzeichnistiefe, ansonsten gibt's eine
Fehlermeldung (siehe dazu im Original-JS-Menü unter
'Favoriten/Suchmaschinen/Metasuche/englische/zu tiefe Struktur').
- KlapFrame[#] - Mit dieser Variablen
bestimmst Du, ob der KlappFrame angezeigt werden soll oder nicht: KlapFrame =
"1" zeigt den KlappFrame an, andere Werte nicht (Schreibweise nur mit einem
'p' !).
- VerzAuf - Gib hier den Text ein, der
standardmäßig bei geschlossenen Verzeichnissen beim 'Mouseover' in der Statuszeile
angezeigt werden soll (kann auch bei jedem Verzeichnis individuell unter
<STATUSTEXT> angegeben werden).
- VerzZu - Gib hier den Text ein, der
standardmäßig bei geöffneten Verzeichnissen beim 'Mouseover' in der Statuszeile
angezeigt werden soll (kann auch bei jedem Verzeichnis individuell unter
<STATUSTEXT> angegeben werden).
- VerzZuLink[#] - Gibt an, ob die beim
Verzeichnis-Eintrag angegebene URL auch beim Schließen eines Verzeichnisses angezeigt
werden soll: VerzZuLink = "1" zeigt die URL auch beim Schließen an.
- KlappAuf - Gib hier den Text an, der im
klappFrame angezeigt wird, um alle Verzeichnisse zu öffnen. Der Text wird auch beim
'Mouseover' in der Statuszeile angezeigt.
- KlappZu - Gib hier den Text an, der im
klappFrame angezeigt wird, um alle Verzeichnisse zu schließen. Der Text wird auch beim
'Mouseover' in der Statuszeile angezeigt.
- Startseite - Gebe hier den Namen der Datei
(ggf. mit Pfad) an, die als Erstes im rechten Frame (seiteFrame) angezeigt werden soll,
standardmäßig ist das "seite.htm".
- CSS - neu Hier kannst Du eine CSS-Datei (mit Pfad) angeben. CSS
(Cascading Style Sheets) werden von Browsern ab ca. 4.x unterstützt. Wenn Du für das
JS-Menü oder für Deine gesamte Site eine einheitliche Erscheinungsweise wünschst,
erstelle eine entsprechende CSS-Datei. Sieh Dir die beigefügte beispiel.css
an oder trage sie bei CSS ein. Zur Information empfehle ich Dir z.B. SELFhtml oder die Seiten
von B. Friedrich.
- Titel - neu Hier gibst Du den Titel/Namen Deiner Website ein. Dieser
Titel wird automatisch als <Title>-Tag übernommen und auch als Standard-Statuszeilen-Text,
falls StatZeile leer ist.
- StatZeile[#] - Gib hier den Text ein, der
standardmäßig in der Statuszeile angezeigt wird (z.B. den Namen Deiner Homepage). Falls
hier nichts steht, wird der bei Titel angegebene Wert übernommen.
- StatURL - neu Hier steuerst Du, ob bei Link-Einträgen, bei denen
der Wert <STATUSTEXT> leer ist, in der Statuszeile der bei <TEXT> (StatURL
= "0") oder bei <URL> (StatURL = "1")
angegebene Wert angezeigt wird.
- prefixHTML[#] - Hier kannst Du Text oder HTML-Code eingeben, der über dem Menü angezeigt wird
("Kopfzeile"). prefixHTML bietet sich z.B. an, um ein Logo (Grafik,
Werbebanner) oder etwas ähnliches in der linken oberen Ecke einzubinden.
- suffixHTML[#] - Hier kannst Du (wie bei
prefixHTML) HTML-Code eingeben, der unter dem Menü angezeigt
wird ("Fußzeile"). suffixHTML bietet sich z.B. an für kleine
Kommentare, das Datum der letzten Änderung oder einen Zähler (wobei man bei Zählern
vorsichtig sein sollte, da diese oft das Laden der gesamten Seite verlangsamen).
Das waren die Menü-Layout-Angaben. Die
Variablen sollten alle selbsterklärend sein; versuche einfach einmal verschiedene
Einstellungen und beobachte das Ergebnis in einem Browser; mit der Zeit bekommst Du ein
Gefühl für die verschiedenen Werte.
Farb-Definitionen
Eine Übersicht der hexadezimalen Werte für
einzelne (internetsichere) Farben habe ich Dir in der Datei farben.htm beigelegt.
Weitere Änderungen in der
Datei index.htm
Jetzt hast Du das meiste schon geschafft. Ein paar Änderungen solltest Du allerdings noch
an der Datei index.htm vornehmen:
- Anpassung der Meta-Tags und
- Anpassung des <Noframe>-Bereichs.
Du möchtest sicher nicht, dass Deine Webseite in Suchmaschinen unter dem Stichwort
'JS-Menü' auftaucht. Gehe deshalb in Deinem Texteditor noch einmal an den Anfang der
Datei. Dort stehen ab Zeile 12 mehrere Meta-Tags. Das sind verschiedene Informationen
über die Datei wie z.B. Sprache, Autor, Schlüsselwörter usw., die vor allem von
Suchmaschinen ausgewertet werden. Passe sie an Deine Gegebenheiten an (Weitere
Informationen zu Meta-Tags findest Du hier, ein Freeware-Programm für Windows zur Erstellung der Meta-Tags hier).
Anschließend solltest Du noch den <NOFRAMES>-Bereich ganz am Ende der Datei
anpassen.
Die FrameSet-Definition
Eine weitere Stelle, an der noch Änderungen in Betracht kommen könnten, ist die FrameSet-Definition.
Eine FrameSet-Definition unterteilt das Browserfenster in mehrere voneinander unabhängige
Bereiche. In jedem Bereich (Frame) wird eine eigene HTML-Datei angezeigt. Bei JS-Menü
wird das Browserfenster in mindestens zwei Frames aufgeteilt: Links das JS-Menü, rechts
die anzuzeigende Seite und ggf. unter dem JS-Menü noch ein klappFrame.
Seit Version 1.4.1 gibt es zwei FrameSet-Definitionen in der Datei index.htm:
Die erste FrameSet-Definition befindet sich direkt hinter den Menü-Layout-Angaben (im
Original ca. in Zeile 165) und wird dynamisch per JavaScript erzeugt und daher nur
berücksichtigt, wenn der Browser des Besuchers JavaScript unterstützt. Die einzelnen
HTML-Zeilen der FrameSet-Definition sind in den JavaScript-Befehl document.write(' ....') eingebunden.
Einzelne Zeilen sind noch zusätzlich in if(KlapFrame==1){
... } eingebunden. Dadurch kann das Script Deine Menü-Layout-Angaben
berücksichtigen (z.B. ob der klappFrame angezeigt werden soll oder nicht). Eine Änderung
der FrameSet-Definition ist nicht nötig, wenn du ein dreigeteiltes (mit klappFrame) oder
zweigeteiltes (ohne klappFrame) FrameSet benutzen willst. Wenn Du andere
FrameSet-Aufteilungen bevorzugst, solltest Du Dir die Datei fs.htm
ansehen: Dort sind verschiedene FrameSet-Definitionen für das JS-Menü beispielhaft
aufgeführt. Wenn Du eine dieser FrameSet-Definitionen benutzen willst, lade Dir auch die
Datei fs.zip
auf Deinen Rechner, darin sind alle index-Dateien der einzelnen Beispiele als fsxx.htm
enthalten.
Die zweite FrameSet-Definition befindet sich ganz am Ende der Datei index.htm nach
dem </HEAD>-Tag und wird nur berücksichtigt, wenn der Browser kein JavaScript
unterstützt bzw. wenn JavaScript abgeschaltet ist. Sie enthält natürlich keinen
klappFrame, da dieser in einer Nicht-JavaScript-Version keinen Sinn macht.
Wenn Du weitere Frames einfügen willst, musst Du unbedingt auf die korrekte Syntax von
FrameSet-Definitionen achten (siehe fs.htm).
Syntaxfehler bei der FrameSet-Definition erzeugen oft JavaScript-Fehlermeldungen, die
nicht auf Fehler in der FrameSet-Definition schließen lassen! Viele mir gemeldete
angebliche Fehler des JS-Menüs waren auf falsche FrameSet-Definitionen zurückzuführen!
Nutze die Beispiele in der Datei fs.htm, SelfHTML oder andere HTML-Bücher/-Anleitungen, um die richtige Schreibweise zu finden!
Noch ein paar Anmerkungen zu FrameSet-Definitionen:
- Es müssen mindestens zwei Frames
vorhanden sein, um JS-Menü benutzen zu können (es sei denn, das Menü wird in
einem eigenen Fenster angezeigt), sonst verschwindet das Menü bei jedem Aufruf, und das
ist normalerweise nicht gewollt!
- Die Namen der Frames, also menuFrame, seiteFrame
und klappFrame solltest Du möglichst nicht ändern! Die Namen werden z.T.
vom Script verwendet, bei einer Änderung müsstest Du also auch ggf. den JavaScript-Code
ändern! Die Namen der Frames (NAME="..")
haben übrigens nichts mit den Dateinamen (SRC="..") zu tun, die in den
Frames angezeigt werden sollen. Diese Dateinamen kannst Du beliebig ändern, Du musst
allerdings dann ggf. die FrameSet-Definition anpassen.
- Innerhalb des HTML-Tags <FRAMESET>in der
Datei index.htm muss die Funktion start() mit onLoad="start()"
aufgerufen werden, andernfalls wird JS-Menü nie loslegen und ein Menü zaubern.
- Der HTML-Tag <FRAMESET> muss immer mit
einem abschließenden </FRAMESET> beendet werden!
- Gib bei den Menü-Layout-Angaben
unter Startseite die Datei an, die der Besucher Deiner Web-Site als erstes sehen
soll. Standardmäßig ist hier die Seite seite.htm eingetragen. Sie wird
automatisch in das FrameSet übernommen. Beachte: Wenn hier ein ungültiger Eintrag
steht, kann das JS-Menü u.U. nicht geladen werden (z.B. Groß/Kleinschreibung
nicht beachtet)! Am einfachsten ist es, wenn Du Deine Startseite seite.htm nennst.
- Es gibt noch einen dritten kleinen Frame klappFrame
unterhalb des menuFrame, in dem die Funktion zum Öffnen/Schließen aller
Verzeichnisse aufgerufen werden kann. Wenn der klappFrame nicht angezeigt werden soll,
brauchst Du nur in den Menü-Layout-Angaben den Parameter KlapFrame="0"
zu setzen (KlapFrame mit einem 'p').
- Zwischen den einzelnen Frames werden keine Rahmen
(Trennlinien) angezeigt. Wenn Du einen Rahmen (Linie) zwischen dem Menü und der
Hauptseite haben möchtest, ersetzte in der ersten Zeile der Frameset-Definition im Text 'FRAMEBORDER=0 FRAMESPACING=0 BORDER=0'
die 0 durch die von Dir gewünschte Rahmenbreite. Netscape zeigt dann aber manchmal eine
weiße Linie zwischen menuFrame und klappFrame an.
So, das ist alles, was ich Dir über Frames zu
sagen habe, bis auf eins: Sei vorsichtig bei der Dimensionierung (Größenangabe) von
Frames; benutze keinen zu kleinen Frame für das Menü, den der Besucher dann umständlich
selbst vergrößern muss; mache ihn auch nicht zu groß, sonst stehen Besucher mit
niedriger Auflösung/kleinem Bildschirm auf dem Schlauch (die Breite des Menü-Frames ist
mit 180 im Parameter Menubreite bei den Menü-Layout-Angaben
angegeben). Denke auch daran, dass die Browser die Größenangaben u.U. anders
interpretieren. Wenn Du die Möglichkeit hast, probiere Dein persönliches JS-Menü
auf verschiedenen Plattformen mit verschiedenen Browsern aus.
Eine Stelle, die Du nicht ändern solltest, ist der Copyrightvermerk.
Weitere Informationen dazu weiter unten.
Die anderen Dateien
Mit dem eigentlichen JS-Menü, welches durch die Datei index.htm erzeugt
wird, werden noch andere Dateien mitgeliefert:
- seite.htm
Diese Seite wird beim Aufruf der index.htm im rechten Teil des Browserfensters
(im Frame 'seiteFrame') angezeigt. Es ist also sozusagen die Einstiegsseite Deines
Webbereichs. Wenn der Besucher auf einen Link im Menü klickt, verschwindet diese Seite
und die durch den Link aufgerufene Seite wird hier angezeigt. Entweder Du nennst Deine
Einstiegsseite seite.htm oder Du änderst den Dateinamen in den Menü-Layout-Angaben
unter Startseite auf den von Dir gewählten Dateinamen.
- leer.htm
Diese Seite wird beim Aufruf der index.htm im linken Teil des Browserfensters
im Menü und unter dem Menü (im Frame 'klappFrame') angezeigt. Es ist eine leere Seite,
in die von JS-Menü per JavaScript das Menü bzw. die beiden Einträge
zum Öffnen und Schließen aller Verzeichnisse geschrieben werden. Wenn Du möchtest,
kannst Du die Hintergrundfarbe bzw. das Hintergrundbild in der Datei leer.htm an das Menü
anpassen, das ist aber nicht unbedingt notwendig, da sie - wenn überhaupt - nur kurz
angezeigt wird. Du kannst aber auch in dieser Datei die für das Menü benötigten Icons
als 1x1-Pixel große Grafiken angeben unddiese Bilder daher 'vorladen'. Das verzögert den
Menüaufbau etwas, dafür sind aber alle Grafiken bei der Anzeige des Menüs sofort
sichtbar.
- nojsmenu.htm
Diese Datei enthält ein statisches Menü für Browser ohne JavaScript bzw. mit
deaktiviertem JavaScript.
Du solltest solch ein statisches Menü (oder eine andere Navigationsdatei mit dem Namen nojsmenu.htm)
auf jeden Fall erstellen, es ist auch nicht sehr schwer: Lade einfach Deine fertige index.htm
in einen Browser (mit JavaScript-Unterstützung), klicke dann links unten auf 'Alle
Verzeichnisse auf' (bzw. öffne alle Verzeichnisse, falls Du den klappFrame deaktiviert
hast), dann den Quelltext des Menüs anzeigen lassen (rechte Maustaste, 'Rahmenquelltext
anzeigen' bzw. 'Quelltext anzeigen'). Jetzt den angezeigten Text in eine leere Datei des
Editors kopieren (bei Netscape ggf. die erste Zeile mit <BASE HREF ...> löschen),
alle JavaScript-Aufrufe (<A
HREF="javascript: ... :none>) löschen bzw. durch den entsprechenden
Verzeichnislink ersetzen und die Datei dann als nojsmenu.htm speichern. Natürlich
kannst du hier auch ein ganz anderes Navigationsmittel verwenden, z.B. das, welches Du
bisher benutzt hast (ein java- oder javascript-basiertes Menü ist hier natürlich nicht
empfehlenswert).
Dateien immer mit
JS-Menü anzeigen
Erfolgt der Einstieg in Deine WebSite nicht über das Menü (also über die Datei index.htm),
kann durch einen Eintrag in der jeweiligen Datei das Menü nachgeladen werden.
Oft sind mehrere Seiten einer Internetpräsentation in Suchmaschinen gelistet. Wird
dann eine Seite aus einer Suchmaschine heraus aufgerufen, wird normalerweise nur diese
Seite angezeigt, das JS-Menü jedoch nicht. Jetzt kann durch ein kleines JavaScript in
jeder Datei erreicht werden, dass beim Aufruf der Datei das JS-Menü geladen und die
angeforderte Seite im seiteFrame angezeigt wird.
In allen Dateien, die nur mit JS-Menü aufgerufen werden sollen, musst Du folgendes
Script in den Header der Datei, also vor die Zeile mit </HEAD> einfügen:
<SCRIPT LANGUAGE="JavaScript"
TYPE="text/javascript">
<!--
if(parent.location.href==self.location.href){window.location.href='../index.htm?doku/doku.htm'}
//-->
</SCRIPT>
Dabei musst Du den roten und grünen Bereich anpassen:
Anstatt ../index.htm gibst Du den Dateinamen (ggf. mit Pfad relativ zur
aufgerufenen Datei) an, in dem das JS-Menü steht (also normalerweise index.htm),
und
anstatt doku/doku.htm gibst Du den Dateinamen (ggf. mit Pfad relativ zur
JS-Menü-Datei) an.
Achtung: Dies wird offline vom Internet Explorer und Opera nicht immer unterstützt,
online funktioniert es einwandfrei!
Tipps und Tricks
Hier noch ein paar Tipps, um das Erstellen Deines JS-Menüs zu erleichtern:
- Eigentlich ist es egal, in welcher Reihenfolge
die Menü-Eintrags-Definitionen in der HTML-Datei stehen (außer natürlich der Haupt-Verzeichnis-Eintrag,
der muss an erster Stelle stehen!) - JS-Menü liest alle Einträge ein und
sortiert sie anhand dem Wert <UEBERGEORDNETER NAME>, trotzdem ..
Es ist nicht egal, in welcher Reihenfolge die Menü-Eintrags-Definitionen in der
HTML-Datei stehen, wenn innerhalb eines Verzeichnisses eine ganz bestimmte
Reihenfolge angezeigt werden soll. JS-Menü liest die
Menü-Eintrags-Definitionen von oben nach unten und sortiert die Einträge eines
Verzeichnisses in der eingelesenen Reihenfolge. Deshalb werden Einträge eines
Verzeichnisses, die vor anderen in der Datei index.htm stehen, auch vor den anderen
angezeigt.
Um es Dir selbst einfacher zu machen, die Script-Datei zu bearbeiten, solltest Du
eine Reihenfolge wählen, die Du verstehst (jedenfalls nicht alle Einträge wild
durcheinander). Meistens ist dies die Reihenfolge, die auch nachher angezeigt werden soll,
aber das muss nicht so sein.
- Bei Hauptverzeichniseintrag,
Verzeichniseinträgen und Linkeinträgen unter <TEXT> sowie bei prefixHTML und
suffixHTML kannst Du anstatt reinem Text auch HTML-Code eingeben. Im
JS-Menü-Original findest Du unter suffixHTML ein Beispiel, auch der
Hauptverzeichniseintrag ist anstatt Text mit einer Grafik ausgestattet.
Wenn Du bei diesen Parametern HTML-Code eingeben willst, musst Du darauf achten, dass
Anführungszeichen und Hochkommata 'maskiert' werden, weil der JavaScript-Interpreter des
Browsers sonst bei einem Anführungszeichen davon ausgeht, dass der Wert für diesen
Parameter hier endet. Zeichen werden bei JavaScript maskiert, in dem man ihnen einen
Backslash ( \ ) voranstellt. Sieh Dir das Original an,
dann wirst Du es sofort verstehen. Bei der Einbindung von Grafiken solltest Du darauf
achten, dass diese maximal 16 Pixel hoch sind und mit Border=\"0\" und
ALIGN=\"ABSMIDDLE\" angegeben werden.
Du kannst bei prefixHTML und suffixHTML sogar JavaScript-Code eingeben (z.B. für einen
Zähler o.ä.). Allerdings musst Du dabei neben Anführungszeichen und Hochkommata auch
Backslashs (mit einem zusätzlichen Backslash) maskieren; der Sriptende-Tag
(</SCRIPT>) sollte getrennt werden, Zeilenumbrüche im Script erhälst Du mit \n. Du
kannst auch über mehrere Zeilen schreiben, das sieht dann ungefähr so aus:
suffixHTML = "<SCRIPT
LANGUAGE=\"JavaScript\" TYPE=\"text/javascript\">\n<!--\n"+
"document.write(\"dann kommt der eigentliche
JavaScript-Code\")\n"+
"document.write(\"jede Zeile in Anführungszeichen und
die einzelnen Zeilen mit + verbinden\")\n"+
"//-->\n</SC"+"RIPT>\n"
- Benutze die Tab-Taste! Wenn Du die
Menü-Struktur-Definitionen erstellst (und generell beim Programmieren), solltest Du Dir
angewöhnen, mit der Tabulator-Taste die einzelnen Einträge so weit einzurücken, wie sie
auch nachher in der Hierarchie erscheinen (in der Datei index.htm habe ich es Dir
vorgemacht). Das wird Dir vor allem beim späteren Ändern dieser Datei helfen; außerdem
ist es in der Programmierpraxis allgemein üblich, Code durch die Verwendung von
Tabulatoren zu strukturieren und dadurch lesbarer zu machen.
- Benutze kein Frontpage, Frontpage Express
oder ähnliche Programme für Dateien, die JavaScript enthalten, da diese Programme z.T.
den JavaScript-Code verschieben oder zum Teil sogar ändern, so dass JS-Menü
nachher u.U. nicht mehr funktioniert. Ich habe nichts gegen Frontpage & Co., ich
benutze es selbst ab und zu. Aber für JavaScript (und optimalen HTML-Code) sind
Text-Editoren am besten geeignet.
- Denke an die Benutzer Deines JS-Menüs,
wenn Du es erstellst. Sind die Einträge in einer logischen Reihenfolge? Findet
sich der Benutzer zurecht? Sieht das Menü ansprechend aus?
- Wenn Du eigene Icons/Grafiken im Menü
benutzen willst, achte darauf, dass sie 16 x 16 Pixel groß sind und einen transparenten
(durchsichtigen) Hintergrund haben (insbesondere wenn Du ein Hintergrundbild benutzt;
transparenter Hintergrund ist allerdings nur beim Gif-Format möglich, aber das Jpg-Format
ist für diese Icons eh nicht sinnvoll. Wenn Du Dir die mitgelieferten Icons in einem
Grafikprogramm anschaust, siehst Du bei einigen bunte Hintergründe, das ist die
Transparenz-Farbe. Wenn Du Icons aus dem Verzeichnis /moreicon benutzen möchtest, kopiere
sie zunächst in das /bilder-Verzeichnis.
Wenn Du eigene Icons erstellt hast und diese anderen Benutzer zur Verfügung stellen
möchtest, schicke sie mir per E-Mail, ich werde sie dann in die Moreicon-Sammlung (mit
Erwähnung Deines Namens, falls Du möchtest) aufnehmen.
- Die meisten Web-Server laufen unter Unix bzw.
Linux. Bei diesen Betriebssystemen ist es wichtig, bei allen Datei- und Verzeichnisnamen
auf Groß-/Kleinschreibung zu achten, sonst bekommt der Besucher nur
Fehlermeldungen angezeigt. Bei JS-Menü sind alle Dateinamen klein
geschrieben. Manchmal passiert es aber, das das Entpackprogramm die Dateien in
Großbuchstaben entpackt. Ich kann Dir dazu das Programm Properties Plus empfehlen, eine
Erweiterung zum Win-Explorer, mit dem man alle Dateien in Kleinbuchstaben umwandeln kann.
In Datei- und Verzeichnisnamen solltest Du auch Umlaute, Sonderzeichen und Leerstellen
vermeiden! Viele Web-Server kennen auch nur bestimmte Einstiegsseiten, z.B. index.htm,
index.html, default.htm (T-Online akzeptiert z.B. nur index.htm und homepage.htm).
- Du suchst Anregungen zur Gestaltung Deines
JS-Menüs? Dann sieh Dir einfach auf der JS-Menü-Linkseite an, wie
andere es gemacht haben (beachte aber das Urheberrecht!).
- Du möchtest die Datumsfunktion (letzte
Änderung) benutzen? Dann musst Du einen zusätzlichen Eintrag in der jeweiligen
HTML-Datei vornehmen:
An der entsprechenden Stelle muss folgendes stehen:
<script
language="JavaScript">
<!--
parent.datum();document.write(parent.dat)
//-->
</script>
Ausgegeben wird dann das Datum in der Form 13. März 2000.
- Zu guter Letzt: Glaube mir, es ist der Mühe
wert, ein JS-Menü zu erstellen. Wenn Du fertig bist, wirst Du zufrieden sein - mit
Dir und mit Deinem JS-Menü! Und die Besucher mit Deiner Website sowieso.
Javascript / Werkzeuge
Hier noch ein paar Informationen zu JavaScript und Werkzeugen zu JavaScript.
JavaScript-Sprache, HTML-Sprache
JavaScript und HTML zu erklären, würde den Umfang dieser Dokumentation sprengen.
Außerdem gibt es bereits ausführliche Dokumentationen für beide Sprachen; warum soll
ich mir die Arbeit noch einmal machen? Trotzdem ein paar kurze Hinweise:
- JavaScript und HTML sind interpretierte
Sprachen, das heißt, dass der Code nicht kompiliert (in eine Maschinensprache
übersetzt) werden muss. Dies ist für uns von Vorteil, da wir nur die Datei index.htm
mit einem Texteditor ändern müssen und der Browser (das Programm, welches den Code
liest, verarbeitet und dann das Ergebnis auf den Bildschirm bringt) den Rest für uns
erledigt.
Java ist im Gegensatz dazu keine interpretierte Sprache. Java-Applets und
Applications werden vorkompiliert und dann von einer 'Java Virtual Machine' des Browsers
ausgeführt. Java und JavaScript haben bis auf den gleichen Namensbestandteil und gleiche
Schreibweisen einiger Befehle nichts miteinander zu tun. Beide Sprachen hießen
ursprünglich auch anders; Java wurde von Sun, JavaScript hingegen von Netscape
entwickelt. JS-Menü hat also nichts mit Java zu tun.
- Programmiersprachen benutzen in der Regel
englischsprachige Befehle, so auch JavaScript und HTML. Ich konnte daher das Script
nicht komplett in Deutsch schreiben, weil Befehle wie 'function', 'open', 'write' und
viele andere vom Browser (Interpreter) nur dann verstanden werden, wenn sie auch genauso
geschrieben werden.
- So wie es bei den Befehlen ganz bestimmte Schlüsselwörter
gibt, sind für Javascript und HTML auch einzelne Zeichen für ganz bestimmte
Zwecke vorgesehen. Dazu gehören insbesondere < > ( ) ; . { } [ ] \ / ' "
. In einem JavaScript wie JS-Menü solltest Du solche Zeichen nicht löschen
oder hinzufügen bzw. nur dann, wenn Du die Auswirkungen kennst (Ausprobieren ist
natürlich nicht verboten). In Texten (Linkeinträgen) solltest Du möglichst keine
Apostrophs/Hochkommas und Anführungszeichen benutzen! Umlaute (ä,ö,ü,Ä,Ö,Ü,ß) und
Sonderzeichen solltest Du in Scriptanweisungen meiden. JavaScript ist im übrigen
casesensitiv, das heißt, es wird zwischen Groß- und Kleinschreibung unterschieden! Wenn
Du in Texten von Link-/Verzeichniseinträge Sonderzeichen verwenden willst, benutze die
HTML-Notation (Übersicht
aus SelfHTML 77 KB).
- Wenn Du Dich mit HTML und/oder JavaScript
näher befassen willst, solltest Du Dir SelfHTML von Stefan Münz
besorgen, zur Zeit ist Version 7 aktuell, ca. 2,5 MB, wirklich sehr empfehlenswert
und auch als Buch erhältlich (Franzis-Verlag
ISBN 3-7723-7514-6, 98,00 DM)! Ein empfehlenswertes Buch zu JavaScript ist 'JavaScript
1.2' von Stefan
Mintert, Verlag Addison-Wesley, ISBN 3-382731285-X, 69,90 DM. Weitere Links findest Du
im JS-Menü.
Werkzeuge/Programme/Scripte/Links
Hinweise auf Werkzeuge (Editoren) und Programme zu JavaScript, interessante Links zu
JavaScript-Anleitungen und -Archiven u.ä. werde ich zukünftig unter http://JavaScript-Welt.de zur Verfügung stellen.
Unter http://JavaScript-Welt.de/webring/
findest Du auch die Homepage des deutschen JavaScript Webrings mit interessanten
Webadressen zu JavaScript.
JS-Menü-Forum und
-Newsletter
Für Fragen und Diskussionen zu JS-Menü habe ich ein kleines Forum eingerichtet. Wenn Du
Probleme mit oder Fragen zu JS-Menü hast, dann trag diese hier ein, damit vielleicht auch andere,
die ähnliche Schwierigkeiten haben, davon profitieren. Am besten schaust Du erst mal
rein, vielleicht findest Du ja schon eine Antwort. Lob und Kritik sind natürlich auch
willkommen.
Um über neue Versionen und Anderes rund um JS-Menü informiert zu werden, kannst
Du den JS-Menü-Newsletter abonnieren. Schicke einfach eine E-Mail an JS-News-Abo@Rheinbreitbach.net
und gebe im Betreff 'ABOSTART' an. Wenn Du den Newsletter abbestellen möchtest, schicke
eine E-Mail an die gleiche Adresse mit dem Betreff 'ABOSTOP'. Ich werde die Adressen
natürlich nicht weitergeben.
Hinweise zum Update von
Version 1.4 auf Version 1.4.1
Um von der Version 1.4 auf 1.4.1 upzudaten, sind folgende Schritte erforderlich:
- Übernehme die Datei index.htm
der Version 1.4.1 als index.htm.
- Übernehme aus Deiner bisherigen
Datei jsindex.htm (Version 1.4) die Menü-Struktur-Definitionen und die
Menü-Layout-Angaben und füge sie in die neue index.htm ein.
- Füge die neuen Parameter
- CSS = "";
- Titel = "";
- StatURL = "0"
bei den Menü-Layout-Angaben hinzu und gebe ggf. die entsprechenden Werte ein.
- Passe den
<NOFRAMES>-Bereich am Ende der Datei index.htm an Deine Site an.
Anschließend (nach einem Test)
kannst Du die Datei jsindex.htm löschen.
Hinweise zum Update von
Version 1.3 auf Version 1.4
In der Version 1.4 wurden alle Funktionen geändert, die Ladereihenfolge der Dateien, die
Dateinamen und auch die Notation der Verzeichnis- und Linkeinträge hat sich geändert und
nicht zuletzt wurden einige Menü-Layout-Einstellungen umbenannt bzw. neu hineingenommen.
Ich kann Dir daher nur empfehlen, bei einem Wechsel zu Version 1.4 Dein Menü komplett neu
zu erstellen.
Lizenzbestimmungen
JS-Menü ist Freeware, das heißt, Du darfst JS-Menü ohne Zahlung
einer Lizenzgebühr benutzen, wenn Du die Lizenzbestimmungen beachtest..
Freeware heißt jedoch nicht, dass das Urheberrecht von JS-Menü auf Dich übergeht
(Das gilt im übrigen für alle im Internet verwendeten Scripte, Grafiken u.ä.). Das
Urheberrecht für dieses Script bleibt nach wie vor bei mir (zum Urheberrecht in Deutschland, Österreich,
Schweiz).
Wenn Du JS-Menü verwenden willst, musst Du folgende Lizenzbestimmungen
beachten:
- Der im Script (ganz am Anfang und in der Funktion
maleMenu) enthaltene Copyrightvermerk muss unverändert übernommen
werden, Zusätze Deinerseits wie "geändert/angepasst von Charlie Brown" sind
natürlich erlaubt. (Firmen/Webdesigner können auch eine Lizenz
zur Benutzung des Scripts ohne Copyrightvermerk erwerben, das Urheberrecht verbleibt aber
auch in diesem Fall bei mir).
- Du schickst mir eine E-Mail
an js-menue@rheinbreitbach.net
mit der URL/Internetadresse, wo Du JS-Menü einsetzt.
Warum dieses Urheberrechts-Gesülze?
Einerseits möchte ich Dich darauf aufmerksam machen, dass das Internet kein
rechtsfreier Raum ist und Du bei der Übernahme von Daten (Scripts, aber auch Texte und
Grafiken) immer das Einverständnis des Urhebers einholen solltest.
Andererseits habe ich zwar mit JS-Menü-Lizenzen bisher kaum Geld verdient, habe aber
meine JavaScript-Kenntnisse unter Beweis stellen können und dadurch einige Aufträge für
WebDesign u.ä. erhalten.
Historie
Die Entwicklung von JS-Menü ist in der Datei historie.htm
dokumentiert.
So, das ist schon die ganze Dokumentation zu JS-Menü.
Wenn Du trotzdem noch Fragen haben solltest, stelle diese am besten im JS-Menü-Forum. Hier wird nicht nur
der Autor dieser Zeilen antworten, auch andere Benutzer haben dort schon mit vielen Tipps
beigetragen. Außerdem wird Deine Frage vielleicht auch andere Benutzer beschäftigen.
Ich hoffe, JS-Menü gefällt Dir und wird Deine Web-Site aufwerten! Gutes Gelingen
wünscht Dir
Ansgar Federhen
© Rhein@Net