Frames nachladen (kleiner Schönheitsfehler)
Chris
- javascript
0 MudGuard
Hallo
Beim laden einer Datei (hier inhalt.php) überprüfe ich mit der Funktion checkFrameset(), ob diese sich in einem Frameset befindet. Ist dies nicht der Fall wird das Frameset mit Hilfe der Funktion checkFramecall in der Datei index.php nachgeladen. Dies klappt eigentlich auch prima.
Das Ganze hat jedoch einen Schönheitsfehler. Wenn ein das Frameset nachgeladen werden muss, zeigt es zuerst alle Seiten an die standardmässig angzeigt werden bzw. mit src definiert wurden. Erst danach wird aufgerufene Seite ins gewünschte Frame (hier inhalt2 geladen).
Auf mein Beispiel bezogen bedeutet dies folgendes. Ich rufe die Datei inhalt.php auf, das Frameset wird nachgeladen und zeigt die Dateien navigation.php (navigation) titel.php(titel) und meisterschaft.php(inhalt2) an (titel.php und meisterschaft.php befinden sich in einem weiteren Frameset in der Datei index2.php). Danach wird die aufgerufene Datei (inhalt.php) in das Frame mit dem Namen inhalt2 geladen, wo zuvor die Datei meisterschaft.php angezeigt wurde. Wie bringe ich das Script nun dazu direkt die Datei inhalt.php in Frame inhalt2 zu laden ohne zuvor die Datei meisterschaft.php laden zu müssen? Unten seht ihr den für die Lösung des Problems relevanten Quellcode der einzelnen Dateien. Ich bedanke mich schon im voraus für jeden Ratschlag!
Gruss Chris
Datei inhalt.php
----------------
<html>
<head>
function checkFrameset() {
var site = location.pathname;
if(!top.navigation)
location.href="index.php?" + site;
}
</head>
<body onLoad="checkFrameset();">
...
</body>
</html>
Datei index.php
---------------
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
function checkFramecall() {
var URI=location.search;
if(URI)
frames.inhalt1.inhalt2.location.href=URI.substring(1,URI.length);
}
//-->
</script>
</head>
<frameset cols="161,*" border="0" framespacing="0" frameborder="NO" onLoad="checkFramecall();">
<frame src="../navigation.php" name="navigation" noresize>
<frame src="index2.php" name="inhalt1" noresize>
</frameset>
...
Datei index2.php
----------------
...
<frameset rows="80,*" border="0" framespacing="0" frameborder="NO">
<frame src="../root/titel.php?id=meisterschaft" name="titel" scrolling="NO" noresize marginwidth="0">
<frame src="meisterschaft.php" name="inhalt2" noresize>
</frameset>
...
Hi,
laß Dir per PHP jeweils das passende Frameset zusammenstellen.
Andreas