Kleines Problem in Frame Nachladescript
Michael
- javascript
0 Ingo Turski0 molily
1 wahsaga
Hallo,
ich habe da folgenden Code um Frames nachzuladen. Dieser funktioniert ganz gut, nur es gibt ein Problem, wenn er eine Seite nachladen sollte, die ein "?" in der Url enthält.
Das ist der Code für das Frameset (index.php):
<script language="JavaScript">
setTimeout("such()", 200);
function such()
{
adresse = document.location.href;
teile = adresse.split('?');
if(teile.length==2) {
parent.rechts.document.location.href=teile[1]; }
}
</script>
<title>titel</title>
<frameset cols="110,*" framespacing="0" border="0" frameborder="0">
<frame name="links" scrolling="no" marginwidth="0" marginheight="0" noresize target="middle" src="links.php">
<frameset rows="120,*">
<frame name="oben" src="oben.php" scrolling="no" marginwidth="0" marginheight="0" target="_blank" noresize>
<frame name="rechts" src="rechts.php" scrolling="auto" marginwidth="0" marginheight="0" target="_self">
</frameset>
<noframes>
<body>
<p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
</body>
</noframes>
</frameset>
</html>
Und das ist der Code für die Datei, die nachgeladen werden sollte (content.php):
<script language="JavaScript">
if(parent.frames.length==0) {
location.href="/index.php?"+document.URL
}
</script>
Wenn die Url, die nachgeldaten werden sollte, folgende Form hat, funktioniert alles einwandfrei:
z.B. http://www.meineseite.com/content.php
Wenn aber die Url, die nachgeladen werden sollte, folgende Form hat, wird die nachzuladende Seite nicht mehr nachgeladen, sondern es leitet nur auf die rechts.php weiter.
z. B. http://www.meineseite.com/content.php?id=1
Kann mir da wer helfen, damit auch Seiten nachgeladen werden, die ein "?" in der Url enthelten`?
Danke vielmals!
Schöne Grüsse,
Michael
Hi,
<script language="JavaScript">
hier fehlt der type.
setTimeout("such()", 200);
Der Timeout ist Unsinn.
adresse = document.location.href;
document hat kein Unterobjekt href.
nein, weiter lohnt es sich glaube ich nicht, dieses Script zu begutachten. Du solltest Dir besser ein fehlerfreies Script suchen (bei meinen Tips findest Du z.B. eines).
freundliche Grüße
Ingo
hi,
ich habe da folgenden Code um Frames nachzuladen. Dieser funktioniert ganz gut, nur es gibt ein Problem, wenn er eine Seite nachladen sollte, die ein "?" in der Url enthält.
hast du versucht zu analysieren, warum das so sein könnte?
if(parent.frames.length==0) {
location.href="/index.php?"+document.URL
hier wird die adresse im query string weitergegeben - bei deiner beispiel-adresse
http://www.meineseite.com/content.php?id=1
wird daraus aber
/index.php?http://www.meineseite.com/content.php?id=1
Kann mir da wer helfen, damit auch Seiten nachgeladen werden, die ein "?" in der Url enthelten`?
vorher encodeURIComponent() auf das argument, welches per query string weitergegeben werden soll, anzuwenden könnte weiterhelfen.
bin mir gerade nicht sicher, ob dann auf der zielseite wiederum ein dekodieren notwendig wird - im zweifelsfalle ausprobieren.
gruß,
wahsaga