Neues Frameset mit Sprungmarken innerhalb der Frames?
Leonhard Schmidt
- javascript
Wie kann ich folgendes Problem lösen:
Ich habe eine Seite mit zwei Frames (Index und Text). Ein Hyperlink soll von dieser Seite eine neue Seite mit zwei Frames (Index und Text) öffnen, wobei der Link sowohl im neuen Index als auch im neuen Text bereits zu einer bestimmten Textstelle "Ziel" führen soll.
Ich möchte aber nicht einfach die neuen Dateien in die beiden Frames laden, sondern ich möchte im Browser auch den neuen Titel und die neue Adresse angezeigt haben.
Folgendes habe ich versucht:
<SCRIPT NAME="JavaScript">
function hyperlink(URLNEU,URL1,URL2)
{top.location.href=URLNEU;
parent.frames[0].location.href=URL1;
parent.frames[1].location.href=URL2;
}
</SCRIPT>
und den Hyperlink wie folgt:
<A HREF="javascript:hyperlink'URLNEU.htm','URL1.htm#Ziel','URL2.htm#Ziel')">...</A>
wobei URLNEU das aus zwei Frames mit den Dateien URL1 und URL2 enthaltene Frameset enthält und in URL1 und URL2 Sprungmarken <A NAME=Ziel> enthalten sind.
Die Funktion öffnet zwar die Datei URLNEU und lädt URL1 und URL2 in die Frames, aber das <A NAME=Ziel></A> in URL1 und URL2 wird nicht angesteuert.
Wo liegt der Fehler?
Hallo Leonhard,
1 -- top.location.href=URLNEU;
2 -- parent.frames[0].location.href=URL1;
3 -- parent.frames[1].location.href=URL2;
der Fehler liegt darin, dass nur 1 ausgeführt wird.
Du lädtst URLNEU in den Browser. Und nun kann das Skript nicht zu Ende ausgeführt werden. Lass diese Zeile doch einfach weg.
Bye,
Manyak Online
Hallo Manyak,
1 -- top.location.href=URLNEU;
2 -- parent.frames[0].location.href=URL1;
3 -- parent.frames[1].location.href=URL2;
der Fehler liegt darin, dass nur 1 ausgeführt wird.
Du lädtst URLNEU in den Browser. Und nun kann das Skript nicht zu Ende ausgeführt werden. Lass diese Zeile doch einfach weg.
Leonhard möchte doch aber die Anzeige der geänderten URL und des neuen Seitentitels im Browser erreichen. Dies wäre bei deinem Vorschlag nicht gegeben.
Viele Grüße
Kess
Hallo Manyak,
1 -- top.location.href=URLNEU;
2 -- parent.frames[0].location.href=URL1;
3 -- parent.frames[1].location.href=URL2;
der Fehler liegt darin, dass nur 1 ausgeführt wird.
Du lädtst URLNEU in den Browser. Und nun kann das Skript nicht zu Ende ausgeführt werden. Lass diese Zeile doch einfach weg.
Leonhard möchte doch aber die Anzeige der geänderten URL und des neuen Seitentitels im Browser erreichen. Dies wäre bei deinem Vorschlag nicht gegeben.
Den Seitentitel kann er doch am Ende des Skripts ändern, oder?
Viele Grüße
Kess
Den Seitentitel kann er doch am Ende des Skripts ändern, oder?
Wie mache ich das?
Den Seitentitel kann er doch am Ende des Skripts ändern, oder?
Wie mache ich das?
Siehe http://www.teamone.de/selfhtml/tecbb.htm#a11
1--Titel ändern
2--neues Doku in Frame 1 laden
2--neues Doku in Frame 2 laden
Hi,
Den Seitentitel kann er doch am Ende des Skripts ändern, oder?
Wie mache ich das?
Siehe http://www.teamone.de/selfhtml/tecbb.htm#a11
Hm, also wenn ich diesen Link anklicke, dann steht dort "Lesen" als
erlaubte Zugriffsmethode auf den Titel ... das reicht nicht.
Viele Grüße
Michael
Hallo Leonhard,
Folgendes habe ich versucht:
<SCRIPT NAME="JavaScript">
function hyperlink(URLNEU,URL1,URL2)
{top.location.href=URLNEU;
parent.frames[0].location.href=URL1;
parent.frames[1].location.href=URL2;
}
</SCRIPT>
mit top.location.href=URLNEU; lädst du das Frameset neu, das seinerseits die Dateien URL1 und URL2 lädt. Damit ist die aktuelle Seite mit dem Link und JavaScript gar nicht mehr aktiv. In dem Moment, wo du top.location.href "überschreibst", endet das Script. Die nachfogendenden Anweisungen werden nicht mehr ausgeführt. Du mußt die Aunsteuerung der Anke in das aufgerufene Frameset URLNEU packen. Dieses muß also ULR1#Ziel1 und URL2#Ziel2 aufrufen.
Viele Grüße
Kess
Hallo Leonhard,
Folgendes habe ich versucht:
<SCRIPT NAME="JavaScript">
function hyperlink(URLNEU,URL1,URL2)
{top.location.href=URLNEU;
parent.frames[0].location.href=URL1;
parent.frames[1].location.href=URL2;
}
</SCRIPT>
mit top.location.href=URLNEU; lädst du das Frameset neu, das seinerseits die Dateien URL1 und URL2 lädt. Damit ist die aktuelle Seite mit dem Link und JavaScript gar nicht mehr aktiv. In dem Moment, wo du top.location.href "überschreibst", endet das Script. Die nachfogendenden Anweisungen werden nicht mehr ausgeführt. Du mußt die Aunsteuerung der Anke in das aufgerufene Frameset URLNEU packen. Dieses muß also ULR1#Ziel1 und URL2#Ziel2 aufrufen.
Viele Grüße
Kess
Daß man die Anker dann ins aufgerufene Frameset packen muß, habe ich soweit verstanden. Nur: dann müßte ich für jeden Verweis ein völlig neues Frameset eröffnen! Bei einem größeren Projekt würde das heißen, dass ich z.B. bei 10 Hyperlinks entsprechend 10 neue Framesets brauche.
Gibt es eine Möglichkeit, die angesteuerten Anker als Parameter bei Aufruf des Framesets zu übergeben, so daß dann ein JS im Frameset diese überprüft und je nachdem welche Parameter vorliegen automatisch die entsprechenden Anker ansteuert?
Viele Grüße und vielen Dank für die guten Tips
Leonhard Schmidt
Hi,
Daß man die Anker dann ins aufgerufene Frameset packen muß,
habe ich soweit verstanden.
Nur: dann müßte ich für jeden Verweis ein völlig neues Frameset
eröffnen! Bei einem größeren Projekt würde das heißen, dass ich z.B.
bei 10 Hyperlinks entsprechend 10 neue Framesets brauche.
Gibt es eine Möglichkeit, die angesteuerten Anker als Parameter bei
Aufruf des Framesets zu übergeben, so daß dann ein JS im Frameset
diese überprüft und je nachdem welche Parameter vorliegen automatisch
die entsprechenden Anker ansteuert?
Du kannst das gesamte Frameset-Dokument mit JavaScript (document.write)
dynamisch erzeugen. Zu diesem Zeitpunkt weißt Du, welche URLs in den
<frame>-Tags drin sein sollen.
Viele Grüße
Michael
Hi,
Daß man die Anker dann ins aufgerufene Frameset packen muß,
habe ich soweit verstanden.
Nur: dann müßte ich für jeden Verweis ein völlig neues Frameset
eröffnen! Bei einem größeren Projekt würde das heißen, dass ich z.B.
bei 10 Hyperlinks entsprechend 10 neue Framesets brauche.
Gibt es eine Möglichkeit, die angesteuerten Anker als Parameter bei
Aufruf des Framesets zu übergeben, so daß dann ein JS im Frameset
diese überprüft und je nachdem welche Parameter vorliegen automatisch
die entsprechenden Anker ansteuert?
Du kannst das gesamte Frameset-Dokument mit JavaScript (document.write)
dynamisch erzeugen. Zu diesem Zeitpunkt weißt Du, welche URLs in den
<frame>-Tags drin sein sollen.
Viele Grüße
Michael
Funktioniert leider auch nicht. Auf diese Weise spreche ich zwar die Anker an, aber das dynamisch erzeugte Frameset wird nur in einem Frame des alten-Frameset erzeugt. Der andere Frame des alten Frameset bleibt unverändert (er sollte eigentlich ganz verschwinden), ebenso die URL und die Titelanzeige im Browser.
Es geht darum: das alte Dokument mit zwei Frames soll durch ein ganz neues mit zwei Frames ersetzt werden, in diesem sollen aber durch den JS-Aufruf bereits Anker angesprochen werden, d.h. die Dokumente in den Frames sollen nicht an ihrem Beginn, sondern gleich an den Ankern geöffnet werden.
(Au weia, da habe ich mir aber was eingebildet....)
Viele Grüße an all die hilfreichen Geister
Leonhard Schmidt