minicrispie: Funktionenaufruf...

Hallo,

hätte mal wieder ne kurze Frage ... und zwar:
wie kann ich auf Funktionen weisen, wie sich innerhalb der Seite eines Frames befinden?
Hintergrund: ich habe eine Hauptseite und bei klick auf ein Feld soll das iFrame geöffnet werden(das bekomme ich hin) und der Inhalt des Feldes dort hineingeladen werden.
Das iFrame hat eine dynamisch erzeugte ID... ich muss sie also erst zusammensetzen.
Alles bekomme ich hin, nur nicht das aufrufen der Frame-internen funktion.
Kann mir jemand helfen?

MfG. Christoph Ludwig

--
Wo die Sprache aufhört, fängt die Musik an...
Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
Go to this
  1. Alles bekomme ich hin, nur nicht das aufrufen der Frame-internen funktion.
    Kann mir jemand helfen?

    Das geht einfach: frameReferenz.funktion();

    Struppi.

    1. Hallo,

      Das geht einfach: frameReferenz.funktion();

      und wie versteh ich ds jetz?
      benötige ich für den Aufruf gar nicht die ID des iFrames?

      MfG. Christoph Ludwig

      --
      Wo die Sprache aufhört, fängt die Musik an...
      Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
      Go to this
      1. Das geht einfach: frameReferenz.funktion();

        und wie versteh ich ds jetz?
        benötige ich für den Aufruf gar nicht die ID des iFrames?

        Du benötigst die Referenz auf das window Objekt des Frames, wie du das ermittelst musst du Wissen.

        Struppi.

        1. Hallo,

          Du benötigst die Referenz auf das window Objekt des Frames, wie du das ermittelst musst du Wissen.

          ja ich denke mal so:

          MeinFrame = //Zusammensetzung aus Variablen
          document.getElementById(MeinFrame).MeineFunktion();

          nur das klappt nicht. Oder wie meinst du das mit Referenz?

          sry für die vielleicht dummen Fragen aber in Sachen 'Frames' ist jedes Brötchen schlauer als ich ;)

          MfG. Christoph Ludwig

          --
          Wo die Sprache aufhört, fängt die Musik an...
          Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
          Go to this
          1. nur das klappt nicht. Oder wie meinst du das mit Referenz?

            was heißt klappt nicht?

            Struppi.

            1. Hallo,

              was heißt klappt nicht?

              mit diesem Beispiel:

              MeinFrame = //Zusammensetzung aus Variablen  
              document.getElementById(MeinFrame).MeineFunktion();
              

              bzw. mit diesem:

              MeinFrame = //Zusammensetzung aus Variablen  
              parent.ocument.getElementById(MeinFrame).MeineFunktion();
              

              zeigt der Browser mir an:

              ... is not defined  (für "..." setzt der den obigen befehl ein)

              und am funktionsnamen kanns nicht liegen, da ich den direkt kopiert habe.

              MfG. Christoph Ludwig

              --
              Wo die Sprache aufhört, fängt die Musik an...
              Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
              Go to this
              1. Mahlzeit minicrispie,

                zeigt der Browser mir an:

                ... is not defined  (für "..." setzt der den obigen befehl ein)

                Dann gibt es ein Element mit der entsprechenden ID wohl nicht in dem Dokument.

                und am funktionsnamen kanns nicht liegen, da ich den direkt kopiert habe.

                Dann liegt's vielleicht am davor stehenden Objekt?

                <http://de.selfhtml.org/javascript/objekte/frames.htm@title=Du weißt schon, wie man in Javascript auf Frames zugreift?>

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Hallo,

                  Dann gibt es ein Element mit der entsprechenden ID wohl nicht in dem Dokument.

                  kann nicht sein, da ich mir den Namen per Alert-Fenster vorher habe geben lassen. Der stimmt ...

                  Dann liegt's vielleicht am davor stehenden Objekt?

                  <http://de.selfhtml.org/javascript/objekte/frames.htm@title=Du weißt schon, wie man in Javascript auf Frames zugreift?>

                  Ja, das hab ich mir auch schon angeguckt. Aber ich benutze weder Name noch Index zur Erkennung sondern eine ID ...

                  MfG. Christoph Ludwig

                  --
                  Wo die Sprache aufhört, fängt die Musik an...
                  Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
                  Go to this
                  1. Mahlzeit minicrispie,

                    Dann gibt es ein Element mit der entsprechenden ID wohl nicht in dem Dokument.

                    kann nicht sein, da ich mir den Namen per Alert-Fenster vorher habe geben lassen. Der stimmt ...

                    Den Namen? Oder die ID?

                    Dann liegt's vielleicht am davor stehenden Objekt?

                    <http://de.selfhtml.org/javascript/objekte/frames.htm@title=Du weißt schon, wie man in Javascript auf Frames zugreift?>

                    Ja, das hab ich mir auch schon angeguckt. Aber ich benutze weder Name noch Index zur Erkennung sondern eine ID ...

                    Dann hast Du nicht genau genug "angeguckt" (vielleicht solltest Du nicht nur angucken, sondern auch lesen? *g*) - Zitat:

                    "Dabei geben Sie den Namen an, der bei der HTML-Definition des Frame-Fenster bei <frame ...> im Attribut name definiert worden ist."

                    MfG,
                    EKKi

                    --
                    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                    1. Hallo,

                      Dann gibt es ein Element mit der entsprechenden ID wohl nicht in dem Dokument.

                      kann nicht sein, da ich mir den Namen per Alert-Fenster vorher habe geben lassen. Der stimmt ...

                      Den Namen? Oder die ID?

                      die ID, mit der ich auch das Frame aufrufen will...

                      Ja, das hab ich mir auch schon angeguckt. Aber ich benutze weder Name noch Index zur Erkennung sondern eine ID ...

                      Dann hast Du nicht genau genug "angeguckt" (vielleicht solltest Du nicht nur angucken, sondern auch lesen? *g*) - Zitat:

                      ja nee... is klar! *mich totlach* -.-

                      "Dabei geben Sie den Namen an, der bei der HTML-Definition des Frame-Fenster bei <frame ...> im Attribut name definiert worden ist."

                      ja, nur das ich nicht mit namen sondern mit ID's arbeite. Ober MUSS das name-attribut vorhanden sein!?

                      MfG. Christoph Ludwig

                      --
                      Wo die Sprache aufhört, fängt die Musik an...
                      Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
                      Go to this
                      1. Mahlzeit minicrispie,

                        Den Namen? Oder die ID?

                        die ID, mit der ich auch das Frame aufrufen will...

                        Wie kommst Du darauf, dass das geht?

                        "Dabei geben Sie den Namen an, der bei der HTML-Definition des Frame-Fenster bei <frame ...> im Attribut name definiert worden ist."

                        ja, nur das ich nicht mit namen sondern mit ID's arbeite. Ober MUSS das name-attribut vorhanden sein!?

                        Was ist so schwer daran, das Zitat zu lesen und zu verstehen? Wenn dort steht, dass man über dieses Objekt Frames auf zwei Weisen ansprechen kann (einmal mittels des numerischen Index und andererseits mittels des Namens des Frames), wie kommst Du dann darauf, dass es über eine nicht erwähnte und auch nicht dokumentierte dritte Weise auch gehen sollte? Namen sind keine IDs und umgekehrt.

                        MfG,
                        EKKi

                        --
                        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            2. Hallo,

              ich habs grad nochmal so probiert:
              document.getElementById(...).contentDocument.MeineFunktion();

              und da zeigt der mir an:

              ... is not a function

              was ist verdammt nochmal so falsch daran!?
              der Name der Funktion stimmt,
              die ID des iFrames stimmt
              und der Seite nach zu urteilen stimmt selbst die Methode

              ich bin langsam echt am verzweifeln ...

              MfG. Christoph Ludwig

              --
              Wo die Sprache aufhört, fängt die Musik an...
              Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
              Go to this
              1. ich habs grad nochmal so probiert:
                document.getElementById(...).contentDocument.MeineFunktion();

                lesen nicht probieren. Du willst auf das window Objekt zugreifen.

                Struppi.

          2. sry für die vielleicht dummen Fragen aber in Sachen 'Frames' ist jedes Brötchen schlauer als ich ;)

            Ich hab auch nicht und hab jetzt mal ca. 10 Sekunden gegoogled und bin auf das gestoßen.

            Struppi.

      2. Das geht einfach: frameReferenz.funktion();

        und wie versteh ich ds jetz?
        benötige ich für den Aufruf gar nicht die ID des iFrames?

        die ID (genauer: document.getElementById) wäre eine Möglichkeit, die du für "frameReferenz" einsetzen kannst

  2. Hallo,

    hab das alles jetzt ein bisschen verändert, so das ich keine funktion aufrufen muss, sondern ein Element ... es klappt jetzt!

    ABER: es klappt nur wenn ich eine alert-Abfrage dazwischen schmeisse:

    var MeinFrame = document.getElementById(...)  
    MeinFrame.contentDocument.getElementById(...).value = "...";
    

    MfG. Christoph Ludwig

    --
    Wo die Sprache aufhört, fängt die Musik an...
    Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
    Go to this
    1. Hallo,

      ABER: es klappt nur wenn ich eine alert-Abfrage dazwischen schmeisse:

      var MeinFrame = document.getElementById(...)

      MeinFrame.contentDocument.getElementById(...).value = "...";

        
      wenn ich die alert-Meldung auskommentiere oder weglasse, dann gibt FF mir eine Fehlermeldung aus:  
        
      MeinFrame.contentDocument.getElementById(...) is null  
        
      Woran liegt das?  
        
        
      MfG. Christoph Ludwig
      
      -- 
      Wo die Sprache aufhört, fängt die Musik an...  
      Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)  
        
      Go to [this](http://home.arcor.de/minicrispie/index.html) 
      
      1. Yerf!

        MeinFrame.contentDocument.getElementById(...) is null

        Woran liegt das?

        Du rufst die Funktion auf bevor der IFrame fertig geladen ist.

        Gruß,

        Harlequin

        --
        <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
        1. Hallo,

          Du rufst die Funktion auf bevor der IFrame fertig geladen ist.

          hmmm ... daran hab ich ja noch gar nicht gedacht(wobei die seite im iFrame nur ein riesengroßes Textfeld und zwei buttons sind ...);

          und wie bekomme ich mit, wenn der iFrame fertig geladen ist?
          mit onload stell ich mir das nicht gerade vor ...

          MfG. Christoph Ludwig

          --
          Wo die Sprache aufhört, fängt die Musik an...
          Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
          Go to this
  3. Hallo,

    juhuuuhhhh ^^
    es funktioniert jetz alles, so wie ich es will *freu*
    danke für eure Hilfe!

    MfG. Christoph Ludwig

    --
    Wo die Sprache aufhört, fängt die Musik an...
    Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
    Go to this
    1. Mahlzeit minicrispie,

      juhuuuhhhh ^^
      es funktioniert jetz alles, so wie ich es will *freu*

      Und wie (fürs Archiv)?

      MfG,
      EKKi

      --
      sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
      1. Hallo,

        juhuuuhhhh ^^
        es funktioniert jetz alles, so wie ich es will *freu*

        Und wie (fürs Archiv)?

        es lag tatsächlich die ganze zeit daran, das das Frame und die darin befindliche Seite einfach noch nicht geladen wurden.
        Mit einer Funktion hab ich also vorher überprüft, ob das gewünschte Element schon vorhanden ist. Danach funktionierte auch alles wunderbar ;)

        MfG. Christoph Ludwig

        --
        Wo die Sprache aufhört, fängt die Musik an...
        Selfcode:  ie:( fl:| br:^ va:| ls:/ fo:| rl:? n4:) ss:) de:] js:) ch:{ sh:) mo:) zu:)
        Go to this