# HTML Seite bei Aufruf in Iframe laden



## Scaryguy (24. März 2004)

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?


----------



## Daddle (24. März 2004)

Hi!

Du musst ihm nur die links in Form von


> a href="name_der_zu_öffnenden_seite.html" target="name_des_iFrame"



in den Quelltext schreiben.


----------



## Scaryguy (26. März 2004)

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?!


----------



## aquasonic (26. März 2004)

Für mich nicht...


----------



## Quaese (26. März 2004)

Hi,

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


```
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:

```
<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


----------



## Scaryguy (26. März 2004)

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!


----------



## Quaese (26. März 2004)

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


----------



## Fabian H (26. März 2004)

Das hier sollte gehen:

```
<script type="text/javascript">

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

</script>
```

In den Head rein.


----------



## Scaryguy (26. März 2004)

Yippeeee! Es hat funktioniert! Is ja voll irre...!

WOW!  

Tausend Dank Quaese!


----------



## qwartz (28. März 2004)

*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 :

```
<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 

```
href='index.php?x=lol
```


----------

