Sicherstellen, dass Parent-Frame geöffnet ist
the-pooh
- javascript
Hi,
ich überlege, eine Page mit Frames zu gestalten. Nun frage ich mich aber, wie ich es am elegantesten löse, dass das Frameset auf jeden Fall aufgebaut wird. Einzelne Seiten, wie z.B. der Kopf oder das Menü machen ja keinen Sinn.
Ich habe versucht, aus den "Child"-Seiten eine JS Funktion aufzurufen, die das testet:
function checkParentFrame()
{
if(self != top)
return;
top.location.replace("./index.htm");
}
Das klappt ja auch einigermaßen. Nun wollte ich aber auch erreichen, dass danach ein bestimmtes Child-Fenster geladen wird. Also konkret, wenn z.B. die Kontaktseite alleine aufgerufen wurde, soll die index.htm geladen werden und im Inhaltsframe kontakt.htm, anstatt der Begrüßung. Ich wollte so etwas machen, aber das klappt nicht:
function checkParentFrame(contentPage)
{
if(self != top)
return;
top.location.replace("./index.htm");
top.content.location.replace(contentPage);
}
Jemand eine Idee? Ich habe auch mal drüber nachgedacht, mit location.search in index.htm zu arbeiten, fine ich aber nicht so schön.
Nabend,
ich überlege, eine Page mit Frames zu gestalten.
Lasse von dieser Idee ab und wende dich serverseitigen Techniken zu.
Nun frage ich mich aber, wie ich es am elegantesten löse, dass das Frameset auf jeden Fall aufgebaut wird.
Geht nicht. Entweder habe ich einen Browser, der mir keine Frames anzeigt oder JS ist nicht erlaubt. In beiden Fällen hast du ein Problem, denn deine Seite wird nicht angezeigt und ich komme nicht wieder.
aber das klappt nicht:
"Klappt nicht" war noch nie eine ausreichende Fehlerbeschreibung.
Jemand eine Idee?
Ja, wie immer das </archiv/>; viele fragen dort nach diesem Frameset-Nachladen-Problem.
Bis denne,
Hallo,
Nachdem das:
top.location.replace("./index.htm");
ausgeführt wurde, wird diese Stelle:
top.content.location.replace(contentPage);
gar nicht mehr erreicht, weil ja jetzt die index geladen ist. Diese müßte dann wiederum den richtigen content nachladen. Dafür muß sie aber wissen, was der "richtige" content ist...
Wenn Du wirklich dabei bist, _neue_ Seiten zu erstellen, fang erst gar nicht mit Frames an. Anfangs ist das so verlockend einfach, aber Du siehst jetzt schon, in was für einen Schlamassel Du Dich da reinreitest, und die Sache mit dem Nachladen ist noch mit das harmloseste Problem.
Gruß
Roland
Hi,
Das klappt ja auch einigermaßen. Nun wollte ich aber auch erreichen, dass danach ein bestimmtes Child-Fenster geladen wird. Also konkret, wenn z.B. die Kontaktseite alleine aufgerufen wurde, soll die index.htm geladen werden und im Inhaltsframe kontakt.htm, anstatt der Begrüßung.
Also z.B. wie hier:
http://www.vampirehost.de/gruft/coding/sysvars.htm
Link auf sysvars.htm, und wenn Link von einem "fremden" Server, wird index.htm geladen, welches ein Frameset definiert mit sysvars.htm als Inhaltsframe.
Kann/soll der Browser dies nicht (kein JavaScript oder kein Aufruf von einem "fremden" Server), dann wird nur ein Button dargestellt, mit dem man das Frameset manuell laden kann.
Die Lösung funktioniert mit location.search, aber ...
Jemand eine Idee? Ich habe auch mal drüber nachgedacht, mit location.search in index.htm zu arbeiten, fine ich aber nicht so schön.
... du kannst die Daten natürlich auch anders übergeben (z.B. in top.window.name - ggf. müssen hier aber die Daten codiert werden!).
Gruß, Cybaer
PS: Und natürlich ergeben Frames einen Sinn, bzw. haben durchaus Vorteile für den Surfer ... 8-)
Hallo Cybaer,
PS: Und natürlich ergeben Frames einen Sinn, bzw. haben durchaus Vorteile für den Surfer ... 8-)
Für den Surfer? Na welche denn?
Gruß
Roland
Hi,
Für den Surfer? Na welche denn?
In erster Linie der Grund, warum Frames wohl am häufigsten eingesetzt werden: Strikte Trennung von Navigation und Inhalt.
Zwar kann man bei aktuellen (inkl. IE 6 ;->) Browsern zumindest beim Druck die Navigation ausblenden, aber zumindest für unerfahrenere Surfer ist es deutlich einfacher, mit einer feststehenden, immer sichtbaren Navigation zu arbeiten (was die Mehrheit der aktuell eingesetzten Browser nicht unbedingt schafft).
Auch wenn dies erfahrenere Surfer, die wir hier wohl alle sind, verwundern mag ...
Gruß, Cybaer
Hallo,
aber zumindest für unerfahrenere Surfer ist es deutlich einfacher, mit einer feststehenden, immer sichtbaren Navigation zu arbeiten
da stimme ich Dir voll zu und mache noch nicht einmal die Einschränkung auf unerfahrene Surfer. Solange man NS4x noch berücksichtigen will/muß, geht das m.E. in der Tat nicht ohne Frames.
Davon abgesehen, läßt sich eine fixierte Navigation in halbwegs modernen Browsern mit CSS realisieren. Wenn man das ordentlich macht,
ist es für den Surfer zumindest gleichwertig.
Der Aufwand für den Autor ist leider höher, insbesondere bzgl. der Browserkompatibilität. Aber das kann dem Surfer ja egal sein:-)
Gruß
Roland