HTML Seite bei Aufruf in Iframe laden

Status
Nicht offen für weitere Antworten.

Scaryguy

Grünschnabel
Ich habe folgendes Problem:

I habe eine Index-Seite mit einem Iframe "main". Ich möchte gerne das sämtliche Unterseiten meiner Website beim direkten Aufruf in diesen Iframe auf der Index-Seite geladen werden. Gibts dazu irgendein Script?
 
das mit den Links ist mir klar.

Das Problem ist aber, wenn man eine Unterseite über den Link eines Suchergebnisses bei Google direkt öffnet, dann lädt sie sich ja nicht im Iframe.

Deswegen brauche ich ein Script oder so, welches bemerkt, wenn die Seite nicht im iframe geladen wird und in diesem Falle die entsprechende Seite nochmals im iframe nachlädt.

Ist das überhaupt verständlich, was ich da soeben geschrieben habe?! :-)
 
Hi,

zunächst musst Du im Head jedes Dokuments, das im iFrame angezeigt wird,
den folgenden Code einfügen:

Code:
if(!(top.document.title == 'SeitenTitel'))
    window.location.href = 'relativer_pfad_zur_index.html?' +  location.href;

Wobei als SeitenTitel der Titel der IndexSeite stehen muss.
relativer_pfad_zur_index.html ist der relative Pfad zur IndexDatei von diesem
Dokument aus.

Im IndexDokument gibst Du beim Aufruf des iFrames folgendes an:
Code:
<script language="javascript" type="text/javascript">
<!--
if(window.location.search != ''){
    strSearch = String(location.search);
    intLength = strSearch.length;
    strSearch = strSearch.substring(1,intLength);
    document.write('<iframe name="contentFrame" src="' + strSearch + '"  width="100" height="100">Ihr Browser unterstützt leider keine iFrames</iframe>');
}else{
    document.write('<iframe name="contentFrame" src="start_document.html"  width="476" height="303">Ihr Browser unterstützt leider keine iFrames</iframe>');
}
-->
</script>
<noscript>
    <iframe name="contentFrame" src="start_document.html" width="476" height="303">Ihr Browser unterstützt leider keine iFrames</iframe>
</noscript>

start_document ist das Dokument, das Du zu Beginn angezeigt bekommen
willst.

Ciao
Quaese
 
Hab es ausprobiert, funktioniert aber leider nicht...

Wenn ich die URL der Unterseite in der Adresszeile eingebe, versucht der Browser die Indexseite erfolglos zu laden.
In der Adresszeile steht daraufhin zuerst die URL der Indexseite und gleich darauf die der Unterseite. Also z.B. so:

http://www.meinewebsite.com/index.htmlhttp://www.meinewebsite.com/unterseite.html

Ich versteh das nicht....:(

Muss ich den Code, der in den <Head> aller Unterseite kommt, mit <script> tags einklammern?

Also so:

<script language='JavaScript'>

if(!(top.document.title == 'SeitenTitel'))
window.location.href = 'relativer_pfad_zur_index.html?' + location.href;

</script>


Gibt es allenfalls auch ein Beispiel, wo ich das online anschauen kann?

Vielen Dank für die Hilfe! :)
 
Hi,

ich habs Dir mal in den Anhang gepackt. Bei mir funktioniert das wunderbar.

Wenn Du jetzt statt der index.html die home.html oder die projekte.html aufrufst,
wird sie dennoch im iFrame angezeigt.

ciao
Quaese
 
Zuletzt bearbeitet:
Das hier sollte gehen:
Code:
<script type="text/javascript">

if (window == window.top) {
    window.location = 'mitframe.html';
}

</script>

In den Head rein.
 
noch ein vorschlag in php

Hallo,
deine bisherige Lösung erwartet ja immer vom Client Java-Script aktiviert zu haben.
Da es sich ja aber um dein MENÜ handelt sollte das eigentlich bei jedem gehen ?!
Ich hatte erst kürzlich eine Ähnliche Aufgabe zu lösen link
der php Code :
PHP:
<IFRAME frameborder="0" src=" 
<?php 
	if (empty($x) && empty($x2) && empty($x3)) 
		{$inc = "lol.php";}
	if ($x=="lol") 
		{$inc = "lol/lol.php";}
echo("$inc"); 
?>
  " width=660 height=270 >
</IFRAME>
Weis nicht ob dir damit geholfen ist aber GL
Achso
der Link dazu
PHP:
href='index.php?x=lol
 
Status
Nicht offen für weitere Antworten.
Zurück