Zum Inhalt springen

Komplette Seite öffnen


MCTimotheus18

Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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).

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

@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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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! :rolleyes:

Komisch, in meiner Testseite war's richtig... *wunder*

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...