Seite im Frame laden

16.09.2001


Stellen Sie sich vor, eine Ihrer Seiten wird separat aufgerufen,
beispielsweise vom Link einer Suchmaschine.
Diese Seite wird separat dargestellt und nicht wie gewollt in einem Frame.

Diese Lösung zeigt, wie man das Laden in einem bestimmten
Frame erzwingen kann.

Testen Sie es, indem Sie diesen Link aufrufen.
Diese Seite wird in einem neuen Fenster aufgerufen,
wird jedoch in den richtigen Frame geladen.

 

Inhalt der index.htm:
<html>
<head>
<title>Frame erzwingen</title>
</head>
<script language="JavaScript">
<!-- Begin
	if (self == top)
	{
   		var FrameURL = location.search.substring(1);
	}
	else
   	{	
   		top.location.href = location.href;
   	}
// End -->
</script>
<SCRIPT LANGUAGE="JavaScript">
<!--
	var MainFrameURL;
        if (FrameURL == '')
       	{
        	MainFrameURL = 'haupt.htm';
        }
        else
        {
        	MainFrameURL = FrameURL;
        }
document.writeln('<frameset rows="96,*">');
document.writeln('  <frame name="Oben" scrolling="no" noresize target="Oben" src="oben.htm">');
document.writeln('  <frameset cols="262,*">');
document.writeln('    <frame name="Links" target="Hauptframe" src="links.htm">');
document.writeln('    <frame name="Hauptframe" src="' + MainFrameURL + '">');
document.writeln('  </frameset>');
document.writeln('  <noframes>');
document.writeln('  <body>');
document.writeln('<p>Diese Seite verwendet Frames.<br>');
document.writeln('Frames werden von Ihrem Browser leider nicht unterstützt.</p>');
document.writeln('</body></noframes></frameset>');
//-->
</SCRIPT><NOSCRIPT>
</html>
 

Inhalt aller Seiten, die im Frame dargestellt werden sollen:

<html>
<head>
<title>Testseite</title>
<script src="setframe.js"></script>
</head>
<body>
<p><font face="Verdana" size="2"><b>Testseite</b></font></p>
</body>
</html>
 
Inhalt der setframe.js:
  if(!parent.Hauptframe) 
  	location.href="index.htm?" + location.pathname;
 
Beachten Sie den Namen des Frames !
In der index.htm und in der setframe.js muss dieser übereinstimmen
(siehe rote Markierung)

Erklärung:

Durch das Einbinden der setframe.js wird überprüft,
ob sich die Seite im Frame namens Hauptframe befindet.
Ist dies nicht der Fall, wird die index.htm mit Hilfe einer Übergabe aufgerufen:
index.htm?testseite.htm

Diese Übergabe wird anschließend in der index.htm ausgewertet
und der entsprechende Frameset zusammengesetzt:
document.writeln('    <frame name="Hauptframe" src="' + MainFrameURL + '">');

 
 
Download - 2 KB