Hallo Ingo,
Hmm... mehr Traffic für den Autor (er muss mehr dateien hochladen), mehr arbeit für den Autor (wenn z.b. die URI der "navigationsleiste" in dem frameset sich ändert), usw.
das trifft in den meisten Fällen aber garnicht zu. Die Regel ist doch, daß seitens der Navigation nur ein Frame mit neuem Inhalt versorgt werden muß und nur bei einem Bereichwechsel zusätzlich in einem zweiten Frame die Subnavigation.
Da es von diesen Bereichen meist nicht mal ein Dutzend gibt, hält sich der Aufwand dann in Grenzen. Dfür hat man jedoch die besagten Vorteile.
OK, man kann es letztenendes drehen, wie man will. Ist ja auch egal, ich nutze sowieso nicht Frames (in dieser Art und weise)...
if(top == self) {
und was ist, wenn ich ohne JS auf diese Seite gehe? Ich sehe hier keinen Unterschied zu einer reinen JS-Lösung.
Oh doch, denn im Frameset findet sich letztenendes kein javaSCript mehr. Was ist, wenn du ohne JS auf die Seite "gehst"? Nichts, es lädt sich kein Frameset und du kannst die Seite sehen, wie sie ist - nur ohne Frame auf der linken seite.
Hier ein Beispiel:
------- Start "egal.html" --------
<html>
<head>
<title>Blabla.de :: Hintergründe zu Versionen</title>
<script type="text/javascript" src="../extra/check.js"></script>
<link rel="stylesheet" type="text/css" href="../css/extra.blue.css" title="Unabhängiges Blau-CSS" />
</head>
<body>
<h1>Hintergründe zu Versionen und Designs</h1>
<a name="1.1"><h2>Vorwort</h2></a>
<p>Langes Vorwort hier</p>
<a name="1.2"><h2>Inhalt</h2></a>
<ol>
<li><a href="#top">Hintergründe zu Versionen und Designs</a>
<ol>
<li><a href="#1.1">Vorwort</a></li>
....
------- Ende "egal.html" --------
------- Start "check.js" --------
if(top == self) {
top.location.replace("/librarys/extra/?title="+escape(document.title)+"&src="+escape(self.location.href+self.location.search));
}
------- Ende "check.js" --------
Was passiert hier? Ein x-beliebiges Dokument wird geladen. In seinem Header ein Script eingebunden. Der Script überprüft, ob die Seite in einem Frameset ist oder nicht. Ist sie es nicht, überschreibt sie den aktuellen History-eintrag (damit die History mittels back-button noch benutzbar ist) zu einem neuen, der auf ein serverseitiges Frameset verweist. Interpretiert der Browser __nicht__ JavaScript, passiert gar nichts und der User bekommt das Dokument zu sehen. Interpretiert er nun JavaScript passiert das gerade gesagte und der Browser bekommt ein in diesem fall von PHP generiertes Frameset, dass hier in diesem fall so aussehen wird:
---------- start "http://server.de/librarys/extra/?title=Blabla.de%20%3A%3A%20Hintergr%FCnde%20zu%20Versionen&src=http%3A//server.de/librarys/umstellung/longinfo.html" -----------
<html>
<head>
<title>Blabla.de :: Hintergründe zu Versionen</title>
</head>
<frameset cols="115,*" frameborder="0">
<frame src="/librarys/extra/index.php?content=frame&buttons=all" name="Infolinks" scrolling="no" />
<frame src="http://server.de/librarys/umstellung/longinfo.html" name="mainframe" />
<noframes>
<h2>blabla.de :: Hintergründe zu Versionen</h2>
<h1>Fehler: Dein Browser kann keine Frames anzeigen</h1>
<p>Zu besseren Navigierungsmöglichkeiten wurden auf dieser Seite Frames eingesetzt. Diese kann dein Browser jedoch nicht darstellen. Daher hier die 2 Links zu den sonst angezeigten Frameinhalten:</p>
- <a href="http://server.de/librarys/umstellung/longinfo.html">Hauptseite (http://server.de/librarys/umstellung/longinfo.html)</a>
<br /> - <a href="/librarys/extra/index.php?content=frame&buttons=all">Informationslinks-Frame (/librarys/extra/index.php?content=frame&buttons=all)</a>
</noframes>
</frameset>
</html>
---------- ende "http://server.de/librarys/extra/?title=Blabla.de%20%3A%3A%20Hintergr%FCnde%20zu%20Versionen&src=http%3A//server.de/librarys/umstellung/longinfo.html" -----------
So wunderbar, nicht wahr? Letztenendes bekommt der Benutzer hier ein Frameset, das 2 Frames hat: Einen kleinen "Informationslinks-Frame" und einen hauptframe, in dem sich das Dokument befindet, das er auch sehen würde, hätte er Javascript ausgeschaltet.
WauWau
ss:) zu:) ls:< fo:~ de:] va:) ch:° n4:# rl:( br:< js:| ie:% fl:| mo:|
WauWau E-Mail: coming soon