Andreas Nikisch: I-Frames und Variablen / Funktionen im Hauptdokument = "Zugriff verweigert"?

Hi,

ich hab da ein kleines Problem: Ich würde gerne Aus einem I-Frame beim IE4 auf eine JS Variable zugreifen, die im Hauptdokument definiert wird. Leider quitiert der IE4 mir das mit einem "Zugriff verweigert". Mit dem IE3 oder wenn die Seite Online ist geht es aber (scheinbar) problemlos.

Nun würde ich gerne wissen wie ich korrekt von einem I-Frame aus auf eine Variable/Funktion zugreifen kann. Es sollte nicht mit top.funktion(123); sondern am besten so wie parent.funktion(123); gemacht werden, da die Seite auch in einem Frameset stecken kann.

Ciao,
Andy

  1. Hallo Andreas,

    Nun würde ich gerne wissen wie ich korrekt von einem I-Frame aus auf eine Variable/Funktion zugreifen kann. Es sollte nicht mit top.funktion(123); sondern am besten so wie parent.funktion(123); gemacht werden, da die Seite auch in einem Frameset stecken kann.

    Folgender Workaround funktioniert bei mir einwandfrei:

    Datei 1:

    <HTML>
    <HEAD>
    <SCRIPT LANGUAGE='Javascript'>
    function sage(Text)
    {
    alert(Text);
    }
    </SCRIPT>
    </HEAD>
    <BODY>
    <IFRAME SRC="datei2.htm" WIDTH=600 HEIGHT=300></IFRAME>
    </BODY>
    </HTML>

    Datei 2:

    <HTML>
    <HEAD>
    </HEAD>
    <BODY>
    <A HREF="javascript:parent.sage('geschafft!')">Test</a>
    </BODY>
    </HTML>

    viele Gruesse
      Stefan Muenz

    1. Hallo,

      Nun würde ich gerne wissen wie ich korrekt von einem I-Frame aus auf eine Variable/Funktion zugreifen kann. Es sollte nicht mit top.funktion(123); sondern am besten so wie parent.funktion(123); gemacht werden, da die Seite auch in einem Frameset stecken kann.

      Folgender Workaround funktioniert bei mir einwandfrei:

      Datei 1:

      <HTML>
      <HEAD>
      <SCRIPT LANGUAGE='Javascript'>
      function sage(Text)
      {

      »»  alert(Text);

      }
      </SCRIPT>
      </HEAD>
      <BODY>
      <IFRAME SRC="datei2.htm" WIDTH=600 HEIGHT=300></IFRAME>
      </BODY>
      </HTML>

      Datei 2:

      <HTML>
      <HEAD>
      </HEAD>
      <BODY>
      <A HREF="javascript:parent.sage('geschafft!')">Test</a>
      </BODY>
      </HTML>

      Danke! Jetzt weiß ich auch was nicht klappt :(

      Die "datei2.htm" wird bei mir immer aus dem Netz geladen und die "datei1.htm" wurde im Fehlerfall einfach lokal von der Festplatte gestartet. Beim IE3 klappt das noch. Liegt vermutlich an den Sicherheitseinstellungen im Browser... Kann ich das umgehen? Wahrscheinlich nicht :(

      Ciao,
      Andy

      1. Hallo Andreas,

        Die "datei2.htm" wird bei mir immer aus dem Netz geladen und die "datei1.htm" wurde im Fehlerfall einfach lokal von der Festplatte gestartet. Beim IE3 klappt das noch. Liegt vermutlich an den Sicherheitseinstellungen im Browser... Kann ich das umgehen? Wahrscheinlich nicht :(

        Falls es das sein sollte - nein. An Sicherheitseinstellungen des Anwenders kannst du verstaendlicherweise mit den Programmiermoeglichkeiten einer Webseite nichts aendern.

        viele Gruesse
          Stefan Muenz

        1. Hallo Stefan,

          Die "datei2.htm" wird bei mir immer aus dem Netz geladen und die "datei1.htm" wurde im Fehlerfall einfach lokal von der Festplatte gestartet. Beim IE3 klappt das noch. Liegt vermutlich an den Sicherheitseinstellungen im Browser... Kann ich das umgehen? Wahrscheinlich nicht :(

          Falls es das sein sollte - nein. An Sicherheitseinstellungen des Anwenders kannst du verstaendlicherweise mit den Programmiermoeglichkeiten einer Webseite nichts aendern.

          Hm, also ich konnte die Sicherheitseinstellungen bei mir lokal nicht so verändern, dass es geklappt hätte. Sehr komisch. Eigentlich ist es doch so korrekt. Warum sollte der IE4 das Abfragen von Variableninhalten oder Ausführen von Funktionen durch einen aus dem Netz geladenen I-Frame verhindern?

          Ciao,
          Andy

          1. Hm, also ich konnte die Sicherheitseinstellungen bei mir lokal nicht so verändern, dass es geklappt hätte. Sehr komisch. Eigentlich ist es doch so korrekt. Warum sollte der IE4 das Abfragen von Variableninhalten oder Ausführen von Funktionen durch einen aus dem Netz geladenen I-Frame verhindern?

            also im IE5 hab' ich dazu in der Tag zwei Einstellungen gefunden:
            -> Scripts und Programme in einem IFRAME ausführen
            -> scripting über Domaingrenzen hinweg zulassen

            vielleicht gibt's die beiden ja auch im IE4 (doch saßen einige Sicherheitseinstellungen noch auf der letzn Seite!)

            1. Hi,

              Hm, also ich konnte die Sicherheitseinstellungen bei mir lokal nicht so verändern, dass es geklappt hätte. Sehr komisch. Eigentlich ist es doch so korrekt. Warum sollte der IE4 das Abfragen von Variableninhalten oder Ausführen von Funktionen durch einen aus dem Netz geladenen I-Frame verhindern?

              also im IE5 hab' ich dazu in der Tag zwei Einstellungen gefunden:
              -> Scripts und Programme in einem IFRAME ausführen
              -> scripting über Domaingrenzen hinweg zulassen

              vielleicht gibt's die beiden ja auch im IE4 (doch saßen einige Sicherheitseinstellungen noch auf der letzn Seite!)

              Hm beim 4er hab ich jetzt nichts dementsprechendes gefunden :(

              Wie könnte ich denn die Werte auf andere Weise übergeben, ohne dass ich irgendwelche Sicherheitseinstellungen verletze?

              Ciao,
              Andy