Nachladen von Frames nach Ausbrechen aus fremdem Frame
Andreas Arnold
- javascript
0 fastix0 fastix0 Linksetzer0 Andreas Arnold0 Mathias Bigge0 Andreas Arnold
0 fastix
Ich benutze das nachfolgende Skript, um mein Navigationsframe nachzuladen, falls ein direkter Aufruf oder ein Aufruf in einem fremden Frame erfolgt.
http://selfaktuell.teamone.de/artikel/javascript/dyn-frames/index.htm
Ich bräuchte allerdings target="_top", um auch mitsamt des nachgeladenen Framesets aus dem fremden Frame ausbrechen zu können.
Kann mir jemand helfen, wie ich das target in das o.a. Java-Skript bekomme.
Vielen Dank für Eure Hilfe.
Viele Grüße,
Andreas
Hallo!
Schau Die mal den Link und die Quelltexte an:
Da ist Dein Problemchen dabei :)
fastix
Der Link war fehlerhaft...
fastix
Hallo
http://aktuell.de.selfhtml.org/artikel//javascript/dyn-frames/index.htm#a1
Genau dieses Frame wollte ich ja einsetzen. Wenn allerdings meine content Seite innerhalb eines fremden Frames geladen wird, wird mein Navigationsframe leider innerhalb dieses Frames nachgeladen.
Was ich irgendwie hinbekommen möchte, ist, dass meine Seiten aus dem fremden Frame ausbrechen und das Navigationsframe nachladen, wenn man es so will, sollte das Nachladen mit target=_top erfolgen.
Grüße,
Andreas
Hallo Andreas
Was ich irgendwie hinbekommen möchte, ist, dass meine Seiten aus dem fremden Frame ausbrechen und das Navigationsframe nachladen, wenn man es so will, sollte das Nachladen mit target=_top erfolgen.
Genau das leistet das Script. Irgendwas hast Du falsch gemacht. Poste doch mal Deinen Code und die Frame-Definition.
Viele Grüße
Mathias Bigge
Genau das leistet das Script. Irgendwas hast Du falsch gemacht. Poste doch mal Deinen Code und die Frame-Definition.
Code der Frameset-Seite (default.htm):
...
<SCRIPT language="JavaScript">
<!--
function checkFramecall() {
var Adressanhang=location.search;
if(Adressanhang)
frames.content.location.href=Adressanhang.substring(1,Adressanhang.length);
}
//-->
</SCRIPT>
</head>
<frameset rows="108,*" onLoad="checkFramecall()" frameborder="0" framespacing="0" border="0">
<noframes></noframes>
<frame src="html/nav/nav.htm" scrolling="no" name="nav" noresize>
<frame src="html/content/start.php" noresize name="content">
</frameset>
...
Code der Content-Seite (muskelaufbau.php):
...
<SCRIPT language="JavaScript">
<!--
function checkFrameset() {
if(!parent.nav)
location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;
}
//-->
</SCRIPT>
</head>
<body onLoad='checkFrameset()' leftmargin="0" topmargin="0" link="#000000" alink="#000000" vlink="#000000">
...
Öffne ich die Content Seite direkt, läd sich das Framesetz nach. Wird es in einem fremden Frame geöffnet, läd es ebenfalls nach, nur leider innerhalb des fremden Frames.
Beispiel:
Wenn man auf http://www.bodysearch.de in das Forum geht und in der Suchfunktion nach "_self" suchen lässt, gelangt man über den ersten Link "Re_Trainingsdauer" auf ein Posting, das auf die Seite muskelaufbau.php verweist. Das Skript ist dort wie oben angegeben eingebaut.
Vielleicht kann man es nachvollziehen, wenn man auch die Umgebung kennt.
Vielen Dank.
Grüße,
Andreas
location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;
----->>> ungetestet, deshalb zwei Versionen
parent.frames.location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;
oder
window.location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;
sollte gehen... Du musst dem Browser noch mitteilen, in welchem Frame er die Seite öffnen soll, sonst nimmt er halt die aktuelle.
fastix
Nachtrag: hättest Du den Quelltext auf meinen Seiten gelesen, dann hättest Du eigentlich drauf kommen müssen. Wozu schreibe ich die ganzen Kommentare..
Dein Script hätte dann so aussehen können:
test1=top.frames.length;
test2=this.frames.length;
if ( test1 != test2 )
{
open("http://http://www.arnold-fitness.de/default.htm?" + location.pathname",""),
}
Diese Lösung öffnet Deine Seite in einem neuen Browserfenster, das vorstehende benutzt das alte (ist etwas unfein...)
fastix
Hallo,
die Lösung von Orlando scheint mir besser zu sein.
Diese Lösung öffnet Deine Seite in einem neuen Browserfenster, das vorstehende benutzt das alte (ist etwas unfein...)
Warum, schließlich hat das Fenster doch seinen Frame gekapert!
Viele Grüße
Mathias Bigge
Nachtrag: hättest Du den Quelltext auf meinen Seiten gelesen, dann hättest Du eigentlich drauf kommen müssen. Wozu schreibe ich die ganzen Kommentare..
Deine Seiten ließen sich leider nicht öffnen, so dass ich gezwungen war, mich als erfolgloser Autodidakt zu outen ;)
Herzlichen Dank an alle für die Hilfe. Ich setze jetzt parent.frames ein und es funktioniert prächtig.
Viele Grüße und eine schöne Woche,
Andreas
Hi, Andreas
Öffne ich die Content Seite direkt, läd sich das Framesetz nach. Wird es in einem fremden Frame geöffnet, läd es ebenfalls nach, nur leider innerhalb des fremden Frames.
Probier's mal so:
function checkFrameset() {
if(!parent.nav)
top.location.href="http://www.arnold-fitness.de/default.htm?" + location.pathname;
^^^
}
LG Orlando
--
SELF-TREFFEN 2002
http://www.rtbg.de/selftreffen/
http://www.megpalffy.org/temp/penneninhh.html
3. Versuch mit dem Link...
http://fastix.dyndns.org/tutor/Javascript/fenster.html