Neues Frameset und darin eine Frameseite mit Anker laden
hirse
- javascript
Hallo,
ist es möglich mit Javascript ein neues Frameset zu laden (_top) und dabei einen Wert (Name einer html-Seite mit einem Anker) zu übergeben der dafür sorgt daß eine Seite im zu ladenden Frameset mit diesem Anker erscheint?
Irgendwie in der Art:
<a href="frameset.html?inhalt.html#anker01">url</a>
Dann:
<frameset cols="80,*">
<frame src="(menue.html)" name="menue" noresize>
<frame src="inhalt.html#anker01" name="inhalt" noresize>
</frameset>
Nun fehlt nur noch die Funktion für das ersetzen des Frames inhalt.
Hoffentlich habe ich mich verständlich ausgedrückt.
Vielen Dank im voraus für Eure Hilfe
Gruß Hirse
hallo ebenfalls,
ist es möglich mit Javascript ein neues Frameset zu laden (_top) und dabei einen Wert (Name einer html-Seite mit einem Anker) zu übergeben der dafür sorgt daß eine Seite im zu ladenden Frameset mit diesem Anker erscheint?
Ja, prinzipiell ist das möglich.
Irgendwie in der Art:
<a href="frameset.html?inhalt.html#anker01">url</a>
Dann:
»» <frameset cols="80,*">
naja, auf die Art gehts nicht. Du kannst es mit so einem Ansatz versuchen:
function openframe () {
document.open("text/html");
document.write('<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">');
document.write('<meta http-equiv="Content-Language" content="de">');
document.write('<title>Titel</title>');
document.write('</head>');
document.write('<frameset framespacing="0" frameborder="0" cols="*,85%">');
document.write('<frame name="links" scrolling="no" src="links.htm">');
document.write('<frame name="main" src="main.htm">');
document.write('</frameset>');
document.write('</body>');
document.write('</html>');
document.close();
}
Das Ganze als Javascript-Funktion im Header deiner Seite ablegen und nach Belieben mit onLoad oder über einen button aufrufen. Funktioniert anstandslos.
Christoph S.
Hallo Christoph,
danke für Deinen Tip, aber...
function openframe(anker) {
document.open("frameset02.html");
document.write('<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">');
document.write('<meta http-equiv="Content-Language" content="de">');
document.write('<title>Neu</title>');
document.write('</head>');
document.write('<frameset framespacing="0" frameborder="0" cols="150,*">');
document.write('<frame src="menu02.html" name="menue" noresize>');
document.write('<frame src=anker name="inhalt" noresize>');
document.write('</frameset>');
document.write('</body>');
document.write('</html>');
document.close();
alert(anker);
}
Warum wird der Wert von Anker bei "document.write" nicht verwendet, beim "alert" aber schon?
Der Aufruf lautet bei mir:
onload="openframe('inhalt02.html#Anker03')"
Gruß Hirse
(*dummsei*)
nochmals hallo;
also, der Fehler liegt hier:
document.open("frameset02.html");
bitte lies mal nach, was "document.open" wirklich macht.
Und der zweite Fehler:
Der Aufruf lautet bei mir:
onload="openframe('inhalt02.html#Anker03')"
die Datei in der Klammer wird nicht erkannt. Korrekt wäre der Aufruf onload="openframe()".
alert wirkt halt anders als ein selbst vergebener Name für eine Funktion. Und dadurch, daß du deinen alert-Befehl auch _nach_ "document.close" gesetzt hast, kann alert natürlich das abbilden, was in der Klammer steht. Mach dir bitte den Unterschied zwischen Javascript-Befehlen und selbst vergebenen Namen klar.
Grüße aus Berlin
Christoph S.
<hallo/>
Ich hoffe, ich habe dein Problem richtig verstanden: Du willst von einer Vollbildseite in ein Frame wechseln. Wenn ja, dann geht das ziemlich einfach:
Irgendwie in der Art:
<a href="frameset.html?inhalt.html#anker01">url</a>
Tja so gehts wirklich nicht. Du wirst dich wohl oder übel von allem nach (und inkl.) Fragezeichen verabschieden müssen. Denn in frameset.html steht ohnehin:
<frameset cols="80,*">
<frame src="menue.html" name="menue" noresize>
<frame src="inhalt.html#anker01" name="inhalt" noresize>
</frameset>
Das heisst, der Brauser springt sowieso zur Textmarke "anker01"!! Geschickt gemacht, wie ?
<a href="frameset.html" target="_top"> reicht völlig aus!
Nun fehlt nur noch die Funktion für das ersetzen des Frames inhalt.
von menu.html aus den Inhalt von "inhalt" ändern:
// parent.frames['inhalt'].location.href="neueDatei.html"
Wenn du allerdings mehr zwischen dem Ur-Fenster und dem Frameset herumlinken willst, solltest du dich eher an die Variante von Christoph halten.
<grüsse>
Bernhard
</grüsse>
<frameset cols="80,*">
<frame src="menue.html" name="menue" noresize>
<frame src="inhalt.html#anker01" name="inhalt" noresize>
</frameset>Das heisst, der Brauser springt sowieso zur Textmarke "anker01"!! Geschickt gemacht, wie ?
<a href="frameset.html" target="_top"> reicht völlig aus!
Danke für Deine Begutachtung.
Mein Wunsch ist das o.g. Frameset aufzurufen und die Seite inhalt mit einem bestimmten Anker erscheinen zu lassen. Diesen Anker möchte ich als Wert übergeben. Oben ist er fest eingegeben, das ist klar.
Gruß