tobstar: Aus PopUp Wert in Array des Openers schreiben

Hallo,

ich versuche gerade den Wert aus einem PopUp mittels JavaScript und Onclick an das "Elternfenster" zu übergeben und diesen Wert in ein Array zu schreiben.

Bislang habe ich es nur geschafft den Wert an ein div oder andere Elemente zu übergeben nicht aber Ihn in das Array zu schreiben.

Hier mal die wichtigen Stellen des Scripts, im PopUp Source hab ich mich mal versucht das irgendwie darzustellen was da passieren soll...

//Elternseite

<script language='javascript' type='text/javascript'>

pic = new Array();

if(pic.length == 0) {

document.write('Bislang wurden noch keine Bilder hinzugef&uuml;gt.')

}else {

for(a=0; a<pic.length; a++) {

document.write('<img src="pfad/zum/bild/thumb_'+pic[a]+'.jpg">');

};
};

</script>

//PopUp

<input class='submit' onclick="opener.pushElement('pic')='Hallo';window.close()" type='submit' value='Bild &uuml;bernehmen'>

  1. Hi,

    <input class='submit' onclick="opener.pushElement('pic')='Hallo';

    1. Was ist opener.pushElement für Funktion?
    2. Wieso willst du dem Ergebnis dieses Funktionsaufrufes einen Textstring zuweisen?

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. opener.pushElement existiert ja auch nicht, sondern soll eigentlich nur verdeutlichen was da passieren soll...

      Durch den Aufruf soll nur der Wert 'Hallo' aus dem PopUp an das Array 'pic' des "Elternfensters" übergeben werden, die Frage ist halt nur wie der richtige Aufruf dazu heißt!

      1. Hi,

        opener.pushElement existiert ja auch nicht, sondern soll eigentlich nur verdeutlichen was da passieren soll...

        D'oh.
        Also suchst du eigentlich die Funktionalität von pushElement, und das es im opener geschehen soll, ist gar nicht dein Problem?
        Dann sag' das doch bitte gleich.

        Durch den Aufruf soll nur der Wert 'Hallo' aus dem PopUp an das Array 'pic' des "Elternfensters" übergeben werden, die Frage ist halt nur wie der richtige Aufruf dazu heißt!

        Wenn du Fragen zum Umgang mit Arrays hast - http://de.selfhtml.org/javascript/objekte/array.htm

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Ok, ich erklär mal besser was genau passieren soll.
          Es geht um ein Upload Script, dabei wird durch einen Button das PopUp geöffnet für den Bild Upload, das Bild wird hochgeladen und dann kommt am Ende des PopUps der Button "Bild übernehmen".

          Wenn man dann auf den Button "Bild übernehmen" klickt schließt sich das PopUp und der Name des Bildes soll an das Elternfenster übergeben werden, am besten aber eben direkt an das Array. Nur weiß ich nicht wie das funktioniert es direkt an das Array zu senden.

          Der Umgang mit einem Array ist mir ansonsten bekannt.

          1. Hallo,

            Der Umgang mit einem Array ist mir ansonsten bekannt.

            Na, dann kennst du ja sicher Array.push(). Das ist die richtige Array-Funktion, um ein neues Element ans Array anzuhängen.

            Durch den Aufruf soll nur der Wert 'Hallo' aus dem PopUp an das Array 'pic' des "Elternfensters" übergeben werden, die Frage ist halt nur wie der richtige Aufruf dazu heißt!

            Das Array heißt also 'pic' und befindet sich im Elternfenster, welches bekanntlich 'opener' heißt. Dann greifst du mit opener.pic auf das Array zu, bzw. hängst mit opener.pic.push('Hallo') dein neues Array-Element dran. Nicht wirklich schwer, oder?
            Gruß, Don P

            1. Danke für die schnelle Antwort.
              Das hatte ich auch schon mal probiert, allerdings wird mir das Bild dann nicht angezeigt, nach dem Upload soll das Bild nämlich in einem DIV angezeigt werden um eine Übersicht zu erhalten.

              Im <head> Tag habe ich den Aufruf des Arrays als pic = new Array();
              In dem DIV steht dann der eigentlich Code zur Anzeige der Bilder:

              <script language='javascript' type='text/javascript'>

              if(pic.length == 0) {
                      document.write('Bislang wurden noch keine Bilder hinzugef&uuml;gt.')
                  }else {

              for(a=0; a<pic.length; a++) {
                          document.write('<img src="Pfad/zum/Bild/thumb_'+pic[a]+'.jpg">');

              };
                  };

              </script>

              Nachdem ich das nun eingebaut habe sollte er mir doch anschließend die Bilder dort auflisten, das tut er aber nicht. Woran kann das liegen?

              1. <script language='javascript' type='text/javascript'>

                if(pic.length == 0) {
                        document.write('Bislang wurden noch keine Bilder hinzugef&uuml;gt.')
                    }else {

                for(a=0; a<pic.length; a++) {
                            document.write('<img src="Pfad/zum/Bild/thumb_'+pic[a]+'.jpg">');

                };
                    };

                </script>

                Ich hab noch nicht mehrere Fenster miteinander reden lassen, aber ich vermute, dass dieser Schnipsel nicht neu aufgerufen wird.
                Kapsle ihn in eine Funktion und rufe sie auf wenn du das Array änderst.

                --
                sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(
              2. Hi,

                for(a=0; a<pic.length; a++) {
                            document.write('<img src="Pfad/zum/Bild/thumb_'+pic[a]+'.jpg

                Nachdem ich das nun eingebaut habe sollte er mir doch anschließend die Bilder dort auflisten, das tut er aber nicht. Woran kann das liegen?

                Daran, dass Zeitreisen auch in JavaScript nicht möglich sind.

                Der gezeigte Code ist beim Laden des Dokumentes ein mal ausgeführt worden.
                Nur dadurch, dass du den Inhalt irgendeiner beliebigen Variablen manipuliert hast, wird er aber nicht wundersamerweise erneut ausgeführt.

                MfG ChrisB

                --
                “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]