Bei Aufruf einer Unterseite Frameset mit laden!?1

Mr. FISHMAN

Erfahrenes Mitglied
Hi,
ich weiß das s dieses Tut hier schon gibt!
Aber ich finde es nicht mehr,
habe fast eine Stunde gesucht... die ganzen letzten Themen durchgeschaut :(
*bin ich blind?!*

Weiß einer von euch noch wo es war?
oder kann mir einer das noch mal posten?

4HLP

Grtz MrF
 
das ist eigentlich nen Fall fürs JS-Forum ;)
Der simpelste Weg
Code:
<script type="text/javascript">
<!--
if(self==top){document.location='frameset.php';}
//-->
</script>
Das Skript muss in alle "Unterseiten", "frameset.php" ist dabei die Seite,die das frameset definiert.
 
Du könntest das von fatalus noch ein bisschen verändern, indem du der index.php die aktuelle Seite übergibst, dann muss der Besucher sich nicht wieder dahin-klicken:

PHP:
//beliebige Seite:
<script type="text/javascript">
if (self == top) {
    window.location = "index.php?page=" + window.location;
}
</script>

//index.php:
<?php
$sPage = (isset($_GET['page']))?$_GET['page']:"home.php";
?>
<html>
    <head>
        <title>Deine Seite</title>

        <frameset cols="20%,80%" frameborder="0" framespacing="0">
            <frame src="menu.php" name="oMenu" noresize="noresize">
            <frame src="<?=$sPage?>" name="oMain" noresize="noresize">
        </frameset>
      </head>
    <body>
        Ihr Browser unterstützt keine Frames, bla bla bla
    </body>
</html>

Zusätzlich könntest du das ganze noch etwas "schöner" machen, indem du externe Adresse als Übergabeparameter nicht gelten lässt:
PHP:
//index.php
<?php
$sPage = (isset($_GET['page']))?$_GET['page']:"home.php";
if (strtolower(substr($sPage, 0, 7)) == "http://") {
    $sPage = "home.php";
}
?>

[...]

hth
 
Zurück