MCTimotheus18 Geschrieben 17. August 2004 Teilen Geschrieben 17. August 2004 Hallo Leute, ich stehe vor folgendem Problem. Und zwar habe ich eine Seite, die aus 3 Frames besteht, einem oberen, einem linken und einem MainFrame. Nun habe ich das Problem, wenn ich z.B. auf einer externen Seite einen Link auf eine Seite von mir setze, z.B. auf die Seite Impressum, öffnet sich ja nur diese Seite, jedoch möchte ich, das sich der obere sowie auch der linke Frame mitöffnen, damit der User weiter in meiner Homepage navigieren kann und nicht nur die Impressum Seite sieht. Wie kann ich das realisieren ? Danke schonmal im voraus, MFG Timm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
geloescht_JesterDay Geschrieben 17. August 2004 Teilen Geschrieben 17. August 2004 jedoch möchte ich, das sich der obere sowie auch der linke Frame mitöffnen, damit der User weiter in meiner Homepage navigieren kann und nicht nur die Impressum Seite sieht. "Mitöffnen" geht so nicht. Du könntest es über PHP oder Javascript lösen. Indem du den "Referer" prüfst, also die Seite von wo der Surfer kommt. Dieser Referer sollte eine deiner Seiten sein. Ist das nicht der fall, leitest du auf deine Index-Seite um, die ja das Frameset definiert. Hier könntest du dann noch über eine Parameterübergabe (index.php?page=impressum o.ä.) mitbekommen welche Seite eigentlich angezeigt werden soll und die Frames entsprechend füllen. Müsste mit Javascript auch gehen. Allerdings: Der Referer ist nicht immer zuverlässig und kann auch ausgeschalten werden. Am sinnvolsten wäre es, keine Deeplinks ausserhalb irgnedwo zu setzen, sondern nur links zu deiner Hauptseite. Bei Zeitungen z.B. (die das deeplinking ja auch nich so gern haben) ist es öftermals so, das ein Link auf eine Seite gleich wieder zur Hauptseite führt (ohne das "umleiten" oben). Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
*I C Q* Geschrieben 17. August 2004 Teilen Geschrieben 17. August 2004 Indem du den "Referer" prüfst Eine weitere Möglichkeit wäre die Abfrage von top.location bzw. self.location, also in der "Unterseite": if (top.location==self.location) //Seite ist nicht im Frameset geladen { top.location.href = "index.html?frameseite=self.location.href"; } [/PHP] EDIT: Hab's nochmal getestet, da war was falsch! *grummel* Und in Deiner Frameset-Seite: [PHP] function pruef() { if (top.location.search.indexOf("frameseite") >= 0) { top.inhalt.location.href = top.location.search.substring(top.location.search.indexOf("frameseite")+11,top.location.search.length); } } und beim frameset ein onload="pruef();" reinpacken! Sollte so funktionieren, wenn nicht, meld Dich einfach wieder! ICQ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 17. August 2004 Autor Teilen Geschrieben 17. August 2004 Moment ... wo muss ich jetzt was reinprogrammieren ? Ich muss das leider für meine Cheffin machen @JesterDay, die möchte das unbedingt haben. @ICQ kannst du mir bitte nochmal detailiert sagen wo ich jetzt was rein coden muss? Danke für eure Mühe, Ihr seid immer wieder meine Rettung :-) MFG Timm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Manitu71 Geschrieben 17. August 2004 Teilen Geschrieben 17. August 2004 hier wirste fündig. hatte mal selbiges Prob http://forum.fachinformatiker.de/showthread.php?t=61668 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
*I C Q* Geschrieben 18. August 2004 Teilen Geschrieben 18. August 2004 @ICQ kannst du mir bitte nochmal detailiert sagen wo ich jetzt was rein coden muss? Klar, kein Problem! ;-) den ersten Quellcode packst Du in jede Unterseite Deines Framesets (also alles, was nicht das Frameset definiert *g*) zwischen die <HEAD>-Tags, also so: ... <head> <title>bla</title> <script type="text/javascript"> <!-- if (top.location==self.location) //Seite ist nicht im Frameset geladen { top.location.href = "index.html?frameseite=self.location.href"; //Frameset öffnen! } //--> </script> </head> ...[/PHP] Der zweite Quellcode kommt in Deine Frameset-Definitionsseite (in meinem Beispiel die index.html) zwischen die <HEAD>-Tags, also so: [PHP]... <head> <title>BlaBla</title> <script type="text/javascript"> <!-- function pruef() { if (top.location.search.indexOf("frameseite") >= 0) //wenn Übergabeparameter "frameseite" vorhanden { top.inhalt.location.href = top.location.search.substring(top.location.search.indexOf("frameseite")+11,top.location.search.length); //Unterseite mit übergebener Frameseite laden } } //--> </script> </head> ... "inhalt" ist im Übrigen der Name des Frames, den Du austauschen willst - also bei Dir wohl wahrscheinlich Dein MainFrame - und muss ausgetauscht werden. Desweiteren erweiterst Du dann Dein erstes <FRAMESET>-Tag um einen onload-Eventhandler, damit das Skript aufgerufen wird, sobald das Frameset geladen ist. <frameset cols="100,*" onload="pruef();"> ... </frameset>[/php] Wenn das bei Dir erstmal läuft, können wir eventuell drüber diskutieren, ob Du vor dem Laden des Framesets eine Meldung an den Benutzer ausgeben willst, dass die Seite zu einem Frameset gehört und er selber entscheiden könne ob er das Frameset sehen will. HTH, ICQ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 19. August 2004 Autor Teilen Geschrieben 19. August 2004 Hi, ich dachte gestern ich habe es gelöst, und zwar so wie ICQ es oben beschrieben hat: http://www.ibs-scherer.de/home.php Nur wenn ich das Skript in andere Seiten einfüge öffnet er zwar auch das Frameset nach, aber immer mit der Home Seite drin und nicht mit der Seite, die eigentlich aufgerufen wurde: http://www.ibs-scherer.de/aktionen/second_hand/second_hand.php Was muss ich hier ändern ? Den Pfad nach der index.html habe ich angepasst: <script type="text/javascript"> <!-- if (top.location==self.location) //Seite ist nicht im Frameset geladen { top.location.href = "../../index.html?frameseite=self.location.href"; //Frameset öffnen! } //--> </script> Bitte um Hilfe meine Cheffin drängelt schon Gruß, Timm Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
U-- °LoneWolf° Geschrieben 19. August 2004 Teilen Geschrieben 19. August 2004 Du müsstest variablen übergeben nur weis ich nicht ob das wirklich geht so das du deinem Frameset sagst lade die seite in der variable xy. Aber das einfachste wäre die seite framelos zu bauen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
*I C Q* Geschrieben 19. August 2004 Teilen Geschrieben 19. August 2004 Was muss ich hier ändern ? top.[B]MainFrame[/B].location.href = top.location.search.substring(top.location.search.indexOf("frameseite")+11,top.location.search.length); [...] <frame src="home.php" name="[b]mainFrame[/b]"> Versuch mal top.mainFrame.location.href=... JavaScript arbeitet nämlich soweit ich weiss Case-Sensitiv, d.h. Gross- und Kleinschreibung ist wichtig! ICQ EDIT (weil zu spät gesehen): Ausserdem muss es richtig heissen: top.location.href = "../../index.html?frameseite="+self.location.href; Man beachte die Anführungszeichen! EDIT2: Oooops, ich seh grad, das ist bei mir auch schon falsch gewesen! Komisch, in meiner Testseite war's richtig... *wunder* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
MCTimotheus18 Geschrieben 19. August 2004 Autor Teilen Geschrieben 19. August 2004 Hi, habe jetzt folgenden Code in der index.html (www.ibs-scherer.de/index.html): <script type="text/javascript"> <!-- function pruef() { if (top.location.search.indexOf("frameseite") >= 0) //wenn Übergabeparameter "frameseite" vorhanden { top.mainFrame.location.href = top.location.search.substring(top.location.search.indexOf("frameseite")+11,top.location.search.length); //Unterseite mit übergebener Frameseite laden } } //--> </script> [/PHP] und in der second_hand.php (http://www.ibs-scherer.de/aktionen/second_hand/second_hand.php): [PHP] <script type="text/javascript"> <!-- if (top.location==self.location) //Seite ist nicht im Frameset geladen { top.location.href = "../../index.html?frameseite="self.location.href; //Frameset öffnen! } //--> </script> Nun öffnet er aber nur die second_hand.php und nicht den gesamten Frameset. STOP: Habe das + Zeichen oben vergessen, jetzt geht es !!! JUHU wieder einmal mehr eine glückliche Cheffin !! JUHU Thx @ all Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.