Michi: Ermitteln der URL des Nachbar-Frames

Hallo zusammen,

ich bekomm es nicht hin, die URL des Nachbarframes zu ermitteln.

Verwende (in PHP) dazu versuchsweise die Zeile:

echo "document.write ( parent.document.getElementsByTagName("frameset")[0].location.href.slice(0, 30) );";

Fehler (im Explorer, der Firefox gibt zu JavaScript irgendwie nicht gern Auskunft, nicht mal über den Befehl

javascript:

in der URL-Zeile? Da kommen allerhand blödsinnige HTML(!)-Fehermeldungen der letzten sieben Wochen daher, nur nichts Konkretes zum letzten JavaScript-Fehler? :) ):

'parent.document.getElementsByTagName(...).0.location.href' ist Null oder kein Objekt

Das gleiche, wenn ich z.B. window.location.href oder frame.location.href nehme usw.
Hab natürlich schon allerhand Varianten durchprobiert...

An anderer Stelle ist der Frame zumindest über

parent.document.getElementsByTagName("frameset")[0].rows = "20%,80%"

ansprechbar, also kanns eigentlich nur am location.href-Teil liegen...? Oder ist href gar write-only? Hätte dazu jedoch keinen Hinweis in selfhtml gefunden.

Gruß Michi

  1. Hallo,

    ohne DOM schaff ichs dann doch:

    document.write ( parent.serverframe.location.href.slice(0, 30) );

    ;)

    Gruß Michi

    1. Hallo,

      ohne DOM schaff ichs dann doch:
      document.write ( parent.serverframe.location.href.slice(0, 30) );

      na also - die einfachen Lösungen sind oft die besten. Was du mit dem slice() da hinten anstellen willst, ist mir zwar nicht ganz klar, aber du wirst schon wissen...

      Übrigens solltest du ruhig nochmal einen Blick auf deinen DOM-Ansatz werfen. So schlecht war der nämlich auch nicht. Du hast nur das falsche HTML-Element referenziert. Du wolltest doch nicht das frameset, sondern einen einzelnen frame darin, oder?  ;-)

      So long,

      Martin

      --
      Faulheit ist, mit dem Cocktailshaker in der Hand auf das nächste Erdbeben zu warten.
  2. Hi Martin,

    ohne DOM schaff ichs dann doch:
    document.write ( parent.serverframe.location.href.slice(0, 30) );

    na also - die einfachen Lösungen sind oft die besten. Was du mit dem slice() da hinten anstellen willst, ist mir zwar nicht ganz klar, aber du wirst schon wissen...

    Funktioniert aber leider auch nur im IE.

    Aus irgendwelchen Gründen klappts im Firefox nicht, da kam als Adresse des anderen Frames immer "about:blank" (da war jedoch keine URL von einem Fremdserver oder so im anderen Frame), während im IE die korrekte geliefert wurde. Die URL des eigenen Frames konnte jedoch in beiden Browsern ermittelt werden.

    Ich habs dann irgendwann aufgegeben und durch einen Umbau des Ablaufs anders gelöst und ehrlich gesagt gefällts mir so auch deutlich besser. :)

    Nichtsdestotrotz würd mich aber schon interessieren, warum das mit dem Firefox nicht geklappt hat... Worauf weist "about:blank" hin?

    Die Meldungen im "javascript:"-Fenster des Firefox find ich wie gesagt nicht weiter aufschlussreich. :/ :)

    Gruß Michi

    1. Moin,

      Nichtsdestotrotz würd mich aber schon interessieren, warum das mit dem Firefox nicht geklappt hat... Worauf weist "about:blank" hin?

      darauf, dass du
       a) vielleicht die JS-Anweisung in die Adresszeile eines neuen, leeren Browserfensters (Tabs) eingegeben hast oder
       b) ein Frame ansprechen wolltest, das seinen Inhalt nicht laden konnte oder
       c) immer noch frameset[0].location anstatt frame[0].location ansprichst.
      Such dir was aus.

      Die Meldungen im "javascript:"-Fenster des Firefox find ich wie gesagt nicht weiter aufschlussreich. :/ :)

      Was für Meldungen waren denn das? Und was meinst du mit dem "javascript:" Fenster? Etwa die JS-Konsole? Die ist normalerweise sehr informativ...

      Schönen Tag noch,

      Martin

      --
      "Drogen machen gleichgültig."
       - "Na und? Mir doch egal."