brauchbar.de - WebDesign, Programmierung,Development in HTML, CSS, Javascript, PHP, Perl und mehr

[ Startseite | Artikel : HTML · JavaScript · CSS · Perl · Usability · Sonstiges | Services | Über ]


verwandte Artikel und Seiten

Framekiller I -- JS

von Thomas Salvador.

Frames werden insbesondere dann gerne verwendet, wenn keine "höheren Technologien" verfügbar sind. Es soll an dieser Stelle nicht diskutiert werden, ob man Frames verwenden soll oder nicht, wie es geht steht jedenfalls im Framestutorial.

Ein besonders beliebter Verlinkungsfehler führt dazu, dass externe (also fremde) Sites in das eigene Frameset geladen werden. Und so etwas macht man einfach nicht, ist kurzgesagt böse, wenn man mit dem Besitzer der fremden Site keine spezielle Vereinbarung darüber hat oder er das per se erlaubt.

Was oft nun ein Fehler ist, weil man es nicht besser wußte, wird natürlich auch in voller Absicht. In keinem Fall ist es rechtfertigbar.

Glücklicherweise kann man mit Hilfe von JavaScript erkennen, ob man in einem Frameset dargestellt wird und dies auch unterbinden. Da JavaScript zwar nicht bei allen, aber doch bei dem absoluten Großteil aktiv ist, hat man so schon einen netten Blocker.

Der Source

Der Source ist so kurz wie effektiv:

<body onload="if (top!=self) { top.location=self.location; }">

Die Dokumentation

self ist man selbst, also das Dokument. Ein Browser stellt eine Hierarchie von HTML-Dokumenten dar. Wird man in einer Nicht-Frame-Site dargestellt, so ist man das einzige Dokument, welches der Browser darstellt und man befindet sich somit auf der obersten Hierarchiestufe top.

Wird man in einer Frame-Site dargestellt, so kann man nicht auf der höchsten Hierarchiestufe sein - es gibt mindest eine höhere. Dies ist parent (die Vaterstufe), welche das Frameset enthält.

Die Schlußfolgerung daraus ist also: Bin ich auf top, bin ich allein (es kann nur einer top sein) und hänge nicht in einem Frameset. Bin ich es nicht, wurde ich in ein Frameset geladen.

Die Zuweisung top.location=self.location sorgt dafür, das Dokument auf die höchste Hirarchiestufe zu bringen, mit dem Nebeneffekt, dass Frames aufgelöst werden. Es entspricht einer HTML-Referenz <a href="..." target="_top">

Wird es so in den <body onload> eingehängt, wie hier gezeigt, wird es nach Übertragung der HTML-Seite ausgeführt. Alternativen sind denkbar.


Verwandte Artikel und Seiten



brauchbar web
Diese Site anlinken. Artikel zu CSS | HTML | JavaScript | Perl | Usability | Sonst. | nach Ausgabe.

Copyright © 1999-2015 Thomas Salvador und brauchbar.de . Alle Rechte vorbehalten. Gehostet bei all-inkl.
Reproduktion, ganz oder in Teilen, nur mit schriftlicher Zustimmung von Thomas Salvador. Impressum · Datenschutzerklärung · Kontakt.

zum Inhaltsverzeichnis der 25. Ausgabe.

Linken Sie bitte zu der festen Adresse http://www.brauchbar.de/wd/artikel/85.html .