molily: Instanznamen herausfinden

Beitrag lesen

Hallo,

Allgemein: Vermeide globale Variablen, soweit es geht. Vermeide es, Objekte irgendwo öffentlich zu speichern, um auf sie zuzugreifen. Versuche, Funktionalität zu kapseln.

In deinem Fall kommst du m.W. nicht ganz umhin, mit globalen Variablen zu arbeiten. Es ergibt mehr Sinn, eine globale Variable mit festem Namen im iframe zu setzen. Denn im Kontext des Iframes kann es nur eine solche Variable geben, während es im Kontext des Parents viele Objektinstanzen geben kann. Der Iframe weiß ohne weiteres nicht, zu welcher Instanz er gehört. Die Instanz weiß aber, dass ihr das Iframe gehört, verfügt also dediziert darüber. Richtig?

Ich würde im iframe eine Variable setzen und die im Parent auslesen:

Der Iframe:

<iframe id="uploadframe"></iframe>

Beim Starten des Uploads (Absenden des Formulars, submit):

var iframe = document.getElementById('uploadframe');
iframe.onload = function () {
  alert(iframe.contentWindow.imageSrc);
};

Das Dokument im iframe:

<script>
imageSrc = '<?php echo ... ?>';
</script>

Mathias