Schwebende Navigations- und Zusatzseiten / automatischer Aufruf
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Das folgende Script-Gemenge bewirkt, daß untergliederte, mit getrennten
Navigationsmenüs geführte Seiten sowohl innerhalb wie außerhalb eines
Framesets funktionieren. Das jeweilige Navigationsmenü kann darüber
hinaus automatisch geladen werden, außerhalb des Framesets als frei
schwebendes Fenster.
Des weiteren werden die Seiten innerhalb und außerhalb von Framesets
automatisch an unterschiedlichen Stellen geöffnet.
Unabhängig davon öffnet es externe Seiten, auch fremde, wiederholt in
immer den selben Fenstern und stellt diese automatisch in den
Vordergrund.
---
Teil 1
¯¯¯¯¯¯
Es wird zu diesem Zweck ein einfaches Frameset erstellt, hier bestehend
aus drei Teilen (frames.htm, menu1.htm und start.htm) und später
beliebig vielen zusätzlichen Inhaltsseiten mit dazugehörigen
Navigationsseiten. Die Namen sind frei wählbar.
1) In der Frameset-Seite (hier "frames.htm") kommen die Zeilen:
Das Frameset
Das Frameset erhält hier so grundsätzlich den Fensternamen "rahmen"; es
besteht hier aus zwei Fenstern mit den Namen "menu" (links, für die
Navigation; Startseite: menu1.htm) und "page" (rechts, für den Inhalt;
Startseite: start.htm).
2) Die Startseite "menu1.htm" erhält in HEAD-Bereich das Script:
Manche Freespace-Anbieter erlauben auf HTML-Seiten keine 'window.open'-
Funktion; dann muß das Script zwischen mit Hilfe eines
normalen Texteditors in eine extra JavaScript-Datei, z.B. "hmenue.js",
geschrieben und anschließend mit den Zeilen:
im HEAD-Bereich der Datei "menu1.htm" aufgerufen werden.
3) Die Startseite "menu1.htm" erhält außerdem den Verweis:
Frames ausschalten
4) Alle weiteren Menü-Seiten (menu2.htm ... menuX.htm) erhalten im
-Tag die Passage:
und darunter den Verweis:
Zurueck zum Inhalt
um auch außerhalb des Framesets eine übergeordnete Navigation zu
erlauben.
5) Die Startseite "start.htm" erhält im -Tag die Passage:
6) und darunter den Verweis:
Frameset aufrufen
7) Die Startseite "start.htm" sowie alle weiteren Inhaltsseiten
(inhalt1.htm ... inhaltX.htm) erhalten im HEAD-Bereich den Scriptaufruf:
Diese ausgelagerte JavaScript-Datei namens "fenster.js" wird mit Hilfe
eines normalen Texteditors (z.B. Notepad) geschrieben und enthält
folgende Zeilen:
1) ohne die --------!
2) ggf. Zeilenumbrüche aus den einzelnen Javascript-Funktionen
herausnehmen!
--------
// Allgemein
function neufenster(url, ziel)
{
dasfocus = window.open(url, ziel, "width=400,height=250,top=50,left=50,resizable=yes,scrollbars=yes,menubar=yes,location=yes,toolbar=yes");
dasfocus.focus();
}
// Speziell für die Inhalt - Seiten
window.name = 'page';
// So erhält die Inhaltsseite immer den Namen page
// Speziell für das ein- oder ausgeschaltete Frameset
function xtra(url, ziel)
{if (top == self)
{
extramenu = window.open(url, ziel, "width=150,height=250,top=50,left=450,resizable=yes,scrollbars=yes,menubar=yes,location=yes,toolbar=yes");
extramenu.focus();
}
else
{
parent.menu.location.href=url;
}
}
--------
So weit, so gut.
8) Die Script-Funktionen werden nun wie folgt aufgerufen:
Jede Inhaltsseite Inhalt1.htm ... InhaltX.htm erhält einen Link, der das
für diese Seite zuständige Navigationsmenü Menu2.htm ... MenuX.htm
aufruft:
Mein Menü
FERTIG.
****
1 -> Nun kann ziemlich hemmungslos herumgezappt werden; man kann die
selben Seiten mit und ohne Frameset anbieten; sie funktionieren immer,
auch im direkten Wechsel mit und ohne Rahmen.
2 -> Jede weitere zusätzliche oder externe HTML-Seite kann außerdem
über:
Was Auch Immer
in jedem gewünschten Fenster angezeigt werden, auch verschiedene in dem
selben; die hier im Script "neufenster" genannte Funktion kann
unabhängig von den anderen Funktionen benutzt werden.
3 -> Um das jeweilige Navigationsmenü automatisch laden zu lassen,
schreibt man für dieses einen Aufruf in den -Tag jeder
Inhaltsseite:
4 -> Die Seiten funktionieren selbst bei abgeschaltetem JavaScript, aber
nicht so bequem, da dann der Benutzer die Größe der Fenster selber
einstellen muß und diese sich u. U. gegenseitig verdecken.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
NACHTRAG 2011
PopUp-Seiten immer sichtbar machen
Das Problem: PopUp-Hilfeseiten erscheinen immer nur beim ersten Aufruf
über der aufrufenden Seite (d.h. im Fokus); beim nächsten Aufruf bleiben
sie unsichtbar darunter, so daß der Besucher den Eindruck eines Fehlers
hat.
Dieses Problem (ein PopUp-Fenster erscheint nur beim ersten Aufruf
sichtbar vor dem Hauptfenster; Beim nochmaligen Anklicken des selben
Verweises geschieht scheinbar gar nichts, da die Seite sich bereits
geöffnet unsichtbar hinter dem Hauptfenster befindet - es sei denn, sie
wurde zwischenzeitlich wieder geschlossen) läßt sich mit dem obigen
"neufenster"- JavaScript beheben - wenn man denn die Seiten vollständig
selber schreiben kann, und sie nicht, wie heute so oft, aus einer
Datenbank generiert werden.
Kann man jedoch auf der Seite wenigstens einige Zeilen JavaScript-Code
zusätzlich unterbringen (direkt auf der Seite oder über eine externe
.JS-Datei), so läßt sich dieses Problem auch manchmal so beheben:
Dabei geschieht Folgendes:
· Die Datei wird nach dem Laden nach spezifischen Verweisen durchsucht;
Hier: nach Bildern (Pfeilgrafiken) mit einem bestimmten Dateinamen (dazu
muß die Seite bereits vom Browser gelesen worden sein- das JavaScript
steht also am Schluß des Quelltextes und nicht wie sonst im HEAD-
Bereich)
· Diese Verweis-Grafiken werden mit einer focus-Funktion belegt,
welche die damit aufgerufenen Seite jedes Mal in den Vordergrund
bringt. Das funktioniert mit den gängigen und auch mit älteren
Browsern.
Allerdings macht der MICROSOFT® Internet Explorer (MSIE) mal wieder eine
Extratour- aber mit einem absichtlich eingebauten Fehler im JavaScript-
Code und der Unterdrückung der Fehlermeldung geht's auch da.
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
Teil 2
¯¯¯¯¯¯
Das Script unten auf den Seiten:
bzw: