Anker zur einer Frame bzw. iFrameseite
MG
- javascript
Hallo zusammen,
das Problem ist folgendes. Ich möchte einen iFrame oder einen Frame verwenden. Hierbei gibt es eine Seite (dessen Namen ich nur in der
jeweiligen Seite kenne) wir nennen sie mal start.htm anzeigen möchte.
Dies ist auch alles noch kein Problem. Wenn jedoch die Seite Start.htm
von einer Suchmaschine gefunden wird,so wird nur diese Seite ohnen den
Frame dargestellt.
Damit man von der Unterseite in die Hauptseite gelangt habe ich zur Zeit schon auf jeder Unterseite des Frames mit einen HOME-Link auf die Seite index.htm ausgestattet. Aber es zeigt sich (laut Statistik) das die Anwender diesen nicht annehmen.
Nun könnte ich diese von einer Unterseite automatisch auf die Hauptseite
abwerfen. Dies könnte man mit dem folgenden JavaScript leicht machen:
<!-- Umleitung zum Index wenn genau ein Frame bestehen muss -->
<script language="JavaScript">
if (top.frames.length != 1 )
{
top.location.href="./index.htm"
}
</script>
Dies klappt ja auch Prima, hat aber zwei Probleme:
1.) Der Anwender sieht zuerstmal nicht den Beitrag den er gefunden
hat im Frame Fenster. Dies finde ich sehr unschön und ich mag
solche Seiten im Internet nicht. Man gelngt auf den Index wo die
Suchworte nicht zu finden sind.
2.) Es funktioniert nur bei der Aktivierung der JavaScript
Mit Punkt 2.) könnte ich noch leben dann gibt es halt neben der
schönen JavaScript - Methode noch einen HOME-Link zu dem Idex auf
jeder Unterseite.
Nun stelle ich mir aber die Frage wie zeige ich die zuletzt besuchte
Unterseite sofort an?
Meine erste Idee ist einen Anker mitzugeben, da mir in der Unterseite der gewünschte Anker (aktuelle Seite) bekannt ist:
<!-- Umleitung zum Index -->
<script language="JavaScript">
if (top.frames.length != 1 )
{
top.location.href="./index.htm#start.htm"
}
</script>
Nun ist in der Index-Seite der Parameter (#start.htm) im Frame
darzustellen.
Dies könnte dann so oder ähnlich aussehen:
<script type="text/javascript">
Frame=eval("parent."+"mainframe");
Frame.location.href = document.[<erster Parameter>];
</script>
Eigentlich würde es gehen wenn ich den Parameter nun dem
Frame.location.href zuweisen könnte in der Index - Seite
sofern ein Parameter mit übergeben wird.
Hat jemand eine Idee wie ich an den Parameter komme?
Danke für die Mühe.
Gruss
MG
Hallo,
ich erspare Dir jetzt mal eine Gardinenpredigt zum Thema Frames, denn entscheidende Nachteile hast Du ja gerade selbst entdeckt.
;)
Hat jemand eine Idee wie ich an den Parameter komme?
Du solltest den Wert nicht als Anker an die URL hängen, sondern als GET-Parameter: index.html?page=foo.html
Und dann kommst Du ganz leicht an den Parameter dran über window.location.search.
Siehe: http://de.selfhtml.org/javascript/objekte/location.htm#search.
Den Wert - im obigen Beispiel "foo.html" - kannst Du per regulärem Ausdruck (Stichwort "match()") oder durch Auftrennen des GET-Strings (Stichwort "split()") bekommen.
Hallo,
und nun geht es wie gewünscht.
Erweiterung in der Datei : index.htm
<script type="text/javascript">
if (window.location.search != "")
{
Frame=eval("parent."+"mainframe");
var arg = window.location.search.split("?");
Frame.location.href = arg[1];
}
</script>
Erweiterung in den Unterseiten:
<!-- Umleitung zum Index -->
<script language="JavaScript">
if (top.frames.length != 1 )
{
top.location.href="./index.htm?./start.htm"
}
</script>
Super Danke Mr. Horse