Bohni: per Link auf Frameseite verweisen

Hallo,
ich bin am verzweifeln... habe eine Homepage mit Frames erstellt (Menüleiste + Hauptfenster).

Nun möchte ich einige meiner Seiten als Direkt-Link anbieten. Dabei soll jedoch nicht nur die einzelne html-Seite erscheinen, sondern das ganze Frame (wg. der Menüleiste).

Wie kann ich das umsetzen?

Vielen Dank im Voraus für Eure Hilfe

Bohni

  1. hi,

    ich bin am verzweifeln... habe eine Homepage mit Frames erstellt (Menüleiste + Hauptfenster).

    Nun möchte ich einige meiner Seiten als Direkt-Link anbieten. Dabei soll jedoch nicht nur die einzelne html-Seite erscheinen, sondern das ganze Frame (wg. der Menüleiste).

    suche nach "frameset nachladen" im </archiv/>, um einen javascript-workaround für dein problem zu finden.

    besser: verzichte auf frames.

    gruss,
    wahsaga

  2. Wenn ich das richtig verstanden habe, dann möchtest Du einen Link auf eine beliebige Seite deiner Site setzen und sobald die aufgerufen wird, soll auch das Frameset drumherum geladen werden.

    Ich würde das lösen, indem ich das komplette Frameset mit Javascript schreibe. Das ist natürlich nicht so der Hit, da einige User ganz bewußt Javascript deaktivieren, aber so würde es wohl laufen.

    Die index.html:
    <<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

    <html>
    <head>
     <title>Unbenannt</title>

    <script language="javascript">
    <!--
    var mine = 1;
    var zielframe = 'datei_1.html';

    if(self.location.href.indexOf('?') != -1)
    {
     teil = self.location.href.indexOf('?');
     zielframe = self.location.href.substring(teil +1);
    }

    //-->
    </script>

    </head>

    <script type="text/javascript">
    <!--
      document.write('<frameset cols="200,*" frameborder="0" border="0">');
      document.write(' <frame src="navi.html" name="navig">');
      document.write(' <frame src="'+zielframe+'" name="unten">');
      document.write('</frameset>');

    //-->
    </script>

    </html>

    und in der entsprechenden Datei dann eine Abfrage. Gibt es top.mine nicht, dann wird das Frameset geladen und der Name der Seite übergeben:

    if(!top.mine)
    {
     self.location.href = 'index.html?datei_2.html';
    }

    Also, d.h. per default würde bei dem Frameset die datei1.html ins linke Frame geladen.
    In die Datei datei2.html schreibe ich den obigen Code und in eine datei3.html würde ich auch den obigen Code in den head setzen - nur mit dem Unterschied, daß ich da datei3.html an den URL anhänge statt datei2.html.

    Hat man das jetzt in etwa verstanden? Falls nicht, am Besten mal rauskopieren und selber testen...

    1. hi,

      Ich würde das lösen, indem ich das komplette Frameset mit Javascript schreibe. Das ist natürlich nicht so der Hit, da einige User ganz bewußt Javascript deaktivieren,

      die methode disqualifiziert sich dadurch doch eigentlich schon von selbst.

      gruss,
      wahsaga

    2. Wenn ich das richtig verstanden habe, dann möchtest Du einen Link auf eine beliebige Seite deiner Site setzen und sobald die aufgerufen wird, soll auch das Frameset drumherum geladen werden.

      Ich würde das lösen, indem ich das komplette Frameset mit Javascript schreibe. Das ist natürlich nicht so der Hit, da einige User ganz bewußt Javascript deaktivieren, aber so würde es wohl laufen.

      ja, so würde es laufen, wenn es laufen würde.

  3. Good Morning Deutschland!

    Läuft bei Dir PHP auf dem Server? Falls ja:

    Die folgenden Zeilen dürfen NICHT in der Framesets-Seite geladen werden (also nur im Menü und in deinen Unterseiten):

    <?php

    if (!isset($HTTP_REFERER) || !$HTTP_REFERER == "http://www.deineDomain.de/frameset.html"){
    header ("LOCATION: http://www.deineDomain.de/frameset.html");
    }
    else{

    ##Mal zum Testen wie deine Referer-Seite heißt
    print ("$HTTP_REFERER");
    }
    ?>

    Achtung. Der Referer deiner Startseite (also wenn du dein Frameset als index-Datei auf deinem Hauptverzeichnis liegen hast, kann der Referer unterschiedlich aussehen ("http://domain.de/","http://www.domain.de",auch "" (leer!!!!))

    Das ist natürlich auch nur ne bedingt gute Lösung, da der Referer manipuliert werden kann, aber für die "normale" Homepage eine durchaus vertretbare Lösung. Ich hab das auch schon mal bei mir so gebaut. Es funzt bei den meisten, aber ganz klar: Nicht bei allen!

    Noch ne andere Lösung mit php:

    <frameset cols="150,*">
    <frame src="menu.html">
    <frame src="<?php print $page; ?>">
    </frameset>

    und diese Frameset ruft Du dann mit
    http://www.domain.de/deinFrameset.php?page=unterseite.html

    oder mit Unterverzeichnis:

    <frameset cols="150,*">
    <frame src="menu.html">
    <frame src="<?php print $verzeichnis."/".$page; ?>">
    </frameset>

    Aufruf mit:
    http://www.domain.de/deinFrameset.php?verzeichnis=Ordner1&page=unterseite.html

    Dann kannst Du beliebig verlinken.

    Genug gesabbelt.

    Greets Tom1tk

  4. Hallo Bohni,

    das Nachladen des Framesets bringt, egal wie du es anstellst, immer wieder neue mögliche Probleme.

    Ich habe mich eine Weile damit beschäftigt, diverse Möglichkeiten getestet und dabei jeweils versucht, die Nachteile wieder zu kompensieren, wodurch das dann immer komplizierter wurde und wieder neue Probleme auftraten.

    Jetzt verzichte ich entweder auf die Frames oder,
    ich versehe jede Seite mit einem Link (mit target="_top") auf meine Frameseite.
    Wer wirklich genau diese Seite sehen will, wird nicht durch mein Frameset belästigt, die komplette Seite inklusive Navigation ist aber mit einem Klick erreichbar.

    MFG
    Detlef

    --
    - Wissen ist gut
    - Können ist besser
    - aber das Beste und Interessanteste ist der Weg dahin!
  5. Hallo,

    Nun möchte ich einige meiner Seiten als Direkt-Link anbieten. Dabei soll jedoch nicht nur die einzelne html-Seite erscheinen, sondern das ganze Frame (wg. der Menüleiste).

    Wenn die Zahl der Seiten überschaubar ist, kannst Du Dir jeweils ein neues Frameset aufbauen, das im Content die gewünschte Seite enthält. Wenn Du dann die Seiten auch noch ins Hauptverzeichnis legst/legen kannst, hast Du Unterverzeichnisse mit leicht zu merkendem Pfadaufruf.

    Gruß
    Ines

  6. Hallo,
    ich bin am verzweifeln... habe eine Homepage mit Frames erstellt (Menüleiste + Hauptfenster).

    Nun möchte ich einige meiner Seiten als Direkt-Link anbieten. Dabei soll jedoch nicht nur die einzelne html-Seite erscheinen, sondern das ganze Frame (wg. der Menüleiste).

    Wie kann ich das umsetzen?

    Wieso bist Du am Verzweifeln? Die Lösung liegt doch auf der Hand, oder suchst Du nach speziellen Lösungen. Wenn nicht, muss einfach für jede Seite ein Frameset angelegt werden (eins haste ja schon), ist gar nicht so aufwendig, wie es klingt und muss vor allem nur einmal gemacht werden. Es gibt genug Beispiele dafür, dass dies zufriedenstellend und zuverlässig funktioniert:

    http://solid-nuernberg.de
    http://www.suedpol-nbg.de

    Falls Du nach einer nichthändischen Lösung gesucht hast; einen HTML-Befehl für dein Problem gibt es nicht, es gibt nur eine JavaScript-"Lösung" aber wichtige Dinge wie die Navigationsfrage sollte man nicht so einem unzuverlässigen Vehikel wie JavaScript anvertrauen.