moinsen moinsen
Wie kann ich verhindern das fremde Links (z.b. von suchmaschine) eine Seite in meinen Web "_top" öffnen und nicht in dem frame in die es gehört.
mit einen javascript (das wäre toll!!!!)
Mit meta robots content noindex... (das ist doch doof)Für die hilfe schon mal danke
Hallo Master Ace,
zunächst einmal läßt sich auf Deiner Seite, angenommen beispiel.html, feststellen, ob sie als _top oder in einen Frame geladen wurde:
<header>
<script language="JavaScript">
if (!top.frames.length)
top.location.href = "index.html";
</script>
</header>
Dieses Script bewirkt, daß die Datei index.html wird geladen, wenn die betreffende Seite nicht in einen Frame eingebettet ist. Index.html könnte wie folgt aussehen:
<html>
<head>
<title></title>
<script language="JavaScript">
var refURL = document.referrer;
</script>
</head>
<frameset cols="150,*" border=0 frameborder=0 framespacing=0>
<frame name="menue" src="menue.html">
<frame name="main" src="home.html">
</frameset>
</html>
Im Frame "main" soll später die Datei beispiel.html angezeigt werden. Mit der Variable refURL wird festgehalten, von welcher URL index.html aufgerufen wurde. refURL enthält den vollständigen Pfad einschließlich Dateiname. Zunächst wird standardmäßig die Datei home.html in den Frame main geladen. Und jetzt wird's noch etwas trickreicher: Die Datei home.html muß nun prüfen, ob in der Variable refURL eine Adresse aus der eigenen Domain (bzw. der von index.html) enthalten ist. Ist dieses der Fall, wird die betreffende Seite in den Frame main geladen.
<header>
<script language="JavaScript">
if (top.frames.length &&
typeof(top.refURL) == 'string' &&
top.refURL != "") {
if (top.refURL != self.location &&
!top.refURL.indexOf(pathname(top.location.href)) &&
filename(top.refURL.toLowerCase()) != "index.html") {
self.location = top.refURL;
}
top.refURL = "";
}
</script>
</header>
Zu beachten ist, daß obiges Script nicht lokal funktioniert, also wenn die Dateien direkt von einem Laufwerk, z.B. C:\irgendwo, in den Browser geladen werden.
Zu bedenken bleibt noch, daß u.U. auch der Inhalt der übrigen Frames auf den Inhalt von "main" synchronisiert werden muß...
Alles klar?
Viel Erfolg
Jörg