Michael: Kleines Problem in Frame Nachladescript

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

  1. 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

    1. adresse = document.location.href;
      document hat kein Unterobjekt href.

      Beckmesser ;)

      Mathias

  2. 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

    • dass so kein korrekter URI aufgebaut ist, sollte klar sein.

    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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }