Javascript Fragen zu Frames und windows

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Javascript Fragen zu Frames und windows

    Hallo Leute,
    ich hab 2 kleine Fragen:

    1. Ich habe eine Seite, auf der 3 iframes sind, der mittlere Iframe soll beim laden den unteren Iframe neu laden. Allerdings erscheint dabei die Meldung, dass der Iframe Null oder kein Objekt ist. Der Iframe der im HTML darüber liegt kann aber ohne probleme erkannt werden, woran liegt das?
    P.S.: Das Problem besteht nur in opera und IE

    2.
    PHP-Code:
    function openwin(window_id)  {
       
    winpop window.open('start.html','win_num_' window_id'toolbar=no,
                       width=450,height=300,directories=no,status=no,scrollbars=no,
                       resize=no,menubar=no'
    )
       
    winpop.focus(); } 
    Ich habe die Funktion oben und möchte bevor ein Fenster geöffnet wird, feststellen, ob dass Fenster schon offen ist. Da mehrere Fenster geöffnet werden können, habe ich in den Fensternamen eine ID rein gebaut, damit ich die Fenster einzeln erkennen kann. Mein Problem ist jetzt allerdings, wie ich die ID mit der anderen Variable wieder zusammensetzen kann um zu testen ob das fesnter offen ist. Beispiel:

    variable für fenster "4" sähe so aus: "win_num_4"

    aber wie mach ich aus der übergeben window_id-variablen einen test, ob das fenster mit dieser ID offen ist?

    MfG thebrain
    EDIT:
    linebreak sponsored by asp2php. Bitte zukünftig selbst dafür sorgen, dass man beim lesen nicht scrollen muss
    Zuletzt geändert von asp2php; 28.09.2004, 07:46.
    nein?

  • #2
    zu 1: der quelltext wird zeilenweise geladen. wenn iframe 2 da ist und den 3. anspricht, ist dieser dem browser noch nicht bekannt. setz einfach den aufruf für den 3. frame als javascript-block ans ende des html-codes.

    zu 2: benutz mal die suche, war schon mal thema hier.
    Kissolino.com

    Kommentar


    • #3
      Original geschrieben von Wurzel
      zu 1: der quelltext wird zeilenweise geladen. wenn iframe 2 da ist und den 3. anspricht, ist dieser dem browser noch nicht bekannt. setz einfach den aufruf für den 3. frame als javascript-block ans ende des html-codes.

      zu 2: benutz mal die suche, war schon mal thema hier.

      zu 1.: Hat das dann also nichts damit zu tun, dass der parent frame schon vorher ganz geladen ist, sondern nur damit, dass der 2te Frame beim geladen werden nicht weiss, dass es auch nen 3ten gibt?


      zu 2.: Kannst du mir nen tipp gegen wie man sowas nennt, ich hab alles mögliche an suchen ausprobiert, aber find nichts...

      Vielen dank schonmal..

      thebrain
      nein?

      Kommentar


      • #4
        Vielleicht stell ich die Frage mal anders, wie kann ich am besten mehrere Fenster öffnen die später ohne Probleme auch ansprechen und identifizieren kann?
        nein?

        Kommentar


        • #5
          Vielleicht stell ich die Frage mal anders, wie kann ich am besten mehrere Fenster öffnen die später ohne Probleme auch ansprechen und identifizieren kann?
          Den richtigen Ansatz hast Du ja schon, indem du das geöffnete Fenster der Variable Winpop zuweist. Wenn Du jetzt noch jedes Fenster einer jeweils anderen Variable zuweist, bist du am Ziel.

          Kommentar


          • #6
            Ja, dass hab ich ja im Prinzip auch, aber dann weiss ich ja eben nicht, wie ich sie hinterher wieder ansprechen kann....
            nein?

            Kommentar


            • #7
              Original geschrieben von thebrain
              Ja, dass hab ich ja im Prinzip auch, aber dann weiss ich ja eben nicht, wie ich sie hinterher wieder ansprechen kann....
              du hast die Variable, welche den Handler des Popups enthält, warum kannst du es nicht ansprechen? Wie sprichst du sonst ein stink normal geöffnetes Hauptfenster an? Mach genauso mit der Var.

              Kommentar


              • #8
                sag mir bitte mal nen Beispiel, vielleicht denke ich ja auch einfach zu kompliziert...
                nein?

                Kommentar


                • #9
                  Hauptvoraussetzung: du hast winpop als globale Variable definiert.

                  Voraussetzung für mein Bsp.: im Popup gibt es ein Formular namens _form und ein input-Element namens _input, welches einen Wert enthält.

                  Im Hauptfenster kannst du mit:
                  alert(winpop.document._form._input.value);
                  den Wert im Popup anzeigen.

                  Kommentar


                  • #10
                    Ja gut, dass ist mir schon klar.... Aber ich muss ja nen eigenen Fensternamen festlegen, damit ich mehrere Fenster öffnen kann. Das hab ich dadruch gelöst, dass ich eine Variable in den Namen des Fensters eingebaut habe, alles kein Problem, nur wenn ich dann versuche das Fenster wieder anzusprechen, weiss ich nicht weiter, weil:

                    PHP-Code:
                    win_num_window_id +.document._form._input.value 

                    Das geht wohl kaum
                    nein?

                    Kommentar


                    • #11
                      du weisst, dass window.document... Objekte sind? Also wie willst du den mit der Zeile irgendwas ansprechen können?

                      eval ist dein Freund.

                      Kommentar


                      • #12
                        um genau zu sein, muss ich später testen können ob ein bestimmtes Fenster auf und wenn nicht: öffnen, wenn ja muss ein Frame in dem window neu geladen werden, dass ist alles.
                        nein?

                        Kommentar


                        • #13
                          Mit eval() kannst Du nummerierte Variablen erzeugen, die dann jeweils für ein bestimmtes, mit der Öffner-Funktion gestartetes Popup stehen. Ob ein solches Popup noch geöffnet ist, kannst Du z.B. mit "if variablenname.document" prüfen.

                          Kommentar


                          • #14
                            Mhmmm, aber ich muss ja trotzdem das Fenster ansprechen können um den frame dahinter neuladen zukönnen....
                            nein?

                            Kommentar

                            Lädt...
                            X