iFrame nachladen

hackcp19

Grünschnabel
Hallo erstmal

Ich habe ein Problem und benötige Hilfe...

ich möchte kurz eine Sache vorweg schieben:
Ich habe jetzt zwei Duzend Forum und Blogs durchsucht und mindestens 8 scripte ausprobiert, aber nichts hat geklappt. Ich kenn mich mit JS nicht aus, und kann deswegen auch einen vorhandenen Code nur schlecht umschreiben oder Fehler analysieren...

Ich kenne auch die Problematik mit Frames - aber ich bin der Meinung, dass ein iFrame bei meiner Seite die beste Lösung ist.

Nun zu meinen Problem:

Ich habe eine Startseite (index.html) in die ein iFrame eingebettet ist.
Als Startseite im iFrame wird start.html angezeit.
Als Beispiel soll noch eine weitere Seite genannt werden die in dem iFrame angezeit werden soll: news.html

So - wie der Titel bereits verrät, will ich, dass der iFrame nachgeladen wird, wenn die Start.html oder die news.html ausserhalb des iFrames angezeigt wird.

Ich habe bisher nur hinbekommen, dass wenn eine Seite ausserhalb des iFrames geöffnet wird, eine Weiterleitung auf die index.html erfolgt. Nur bringt mir das relativ wenig, da dort dann wieder nur die start.html im iFrame angezeigt wird, und nicht (z.B.) die news.html

Nach den letzten drei Tagen belesen, habe ich zwei Möglichkeiten rausgelesen, wie man dieses Problem beheben kann:

1. in der index.html ist ein Script, welches erkennt, von welcher Seite weitergeleitet wurde, und diese wird dann im iFrame dargestellt

2. ein Script in jeder Seite, der DIREKT den iFrame anspricht

Ich hoffe ich habe mir verständlich genug ausgedrückt... Ich habe keine Ahnung wie ich das machen soll.

Ich hoffe mir kann jemand helfen - BITTE
 
Moin,

Eingangs:hast du bei dir PHP verfügbar, das würde die Sache ein wenig komfortabler gestalten(geht aber auch ohne).
 
PHP geht auch - aber auch davon hab ich keine Ahnung

Ich kann das Problem auch nochmal genauer schildern:

die Weiterleitung von einer Seite ausserhalb des iFrames zur index.html (die mit dem Frame) klappt. Nur wird dort immer die voreingestellte Startseite angezeigt...

hier mal der Code von der index.html
Code:
<SCRIPT language="JavaScript">
<!--
 function checkFramecall() {
  var Adressanhang=location.search;
  if(Adressanhang)
  frames.iFrame.location.href=Adressanhang.substring(1,Adressanhang.length);
 }
//-->
</SCRIPT>

</head>

<body onLoad="checkFramecall()">

<iframe src="Start.html" name="iFrame" id="iFrame"></iframe>

Wenn mich richtig belesen habe, muss das onload="checkFramecall" in den Body Tag da es sich um einen iFrame handelt... aber es geht trotzdem nicht...
 
Ok, hier mal nen Beispielcode(ist so einsetzbar ;))
PHP:
<?php
  
  $pages=array('/start.php','/news.php');
  if(in_array($_SERVER['PHP_SELF'],$pages))
    {
      $pages=array_flip($pages);
      echo '<script type="text/javascript">if(self==top)location.replace("/index.php?page='.$pages[$_SERVER['PHP_SELF']].'");</script>';
    }
   else
    {
      $iframe=((isset($_GET['page']) && array_key_exists($_GET['page'],$pages))?$pages[$_GET['page']]:$pages[0]).'?f';
    }
  
?>
Diesen Code tust du in alle Dateien, die davon betroffen sind,sowohl die, die im iFrame erscheinen sollen, als auch die, in welchen sich das iFrame befindet(beachte, dass dies alles PHP-Dateien sein müssen, damit der PHP-Code auch interpretiert wird.)

Mag erstmal verwirrend aussehen, aber ist es garnicht :-)

Anzupassen ist da nur eines:
Code:
$pages=array('/start.php','/news.php');

In diesen Array kommen die Pfade(ausgehend vom Basisverzeichnis...idR. htdocs) aller Dateien, welche im iFrame angezeigt werden sollen.

Bei den ganzen Seiten, die im iFrame angezeigt werden sollen, ist nichts weiter zu tun.
Bei den Seiten, welche das iFrame beinhalten(also die index.php)....da bindest du dein iFrame so ein:
Code:
<iframe src="<?php echo $iframe;?>" name="iFrame" ></iframe>

fertsch :)

Um zu Erläutern, was passiert:
Erstmal wird beim Laden im Array geguckt, obdie Seite in ein iFrame gehört.
Wenn ja, wird JS-Code eingebunden, der prüft, ob die Seite in einem Frame geladen wurde.
Falls ja, passiert nix.
Falls nein, wird zu index.php umgeleitet, wobei ihr ein Parameter page mitgegeben wird, an dem sie erkennt, was sie als src in das <iframe> schreiben soll. Das wars schon.
 

Neue Beiträge

Zurück