JavaScript JavaScript in iFrame "injecten"

Hallo zusammen,

ich hab mal wieder ein Problem, welches mir langsam den Spaß an JavaScript raubt.
Zur Erklärung, ich verwende folgenden "AJAX"-ImageUploader um Bilder zu meiner Seite hinzuzufügen http://www.atwebresults.com/php_ajax_image_upload/.

Habe auch alles soweit ans Laufen bekommen bekommen, jedoch habe ich nun ein etwas größeres Problem denke ich.
Ich öffne die Upload-Seite via JavaScript in einem neuen Fenster und lade dort fröhlich meine Bilder hoch. Jedoch möchte ich, dass sich das Fenster schließt nachdem ich einen Upload gemacht habe.
Ich übergebe in den <div> (der mir das Bild was ich hochgeladen habe anzeigt) ein JavaScript. Alerts etc. funktionieren super.
Sage ich jedoch nun
Code:
window.close()
oder
Code:
window.opener.focus()
oder möchte die Mehrfachauswahl (im Opener sozusagen) aktualisieren via AJAX, sagt mir FireBug immer wieder window sei null.

Hier die "injection":
PHP:
if($imgUploaded){
        $divcontent = '<img src="/images/success.gif" width="16" height="16" border="0" style="marin-bottom: -4px;" /> Success!<br /><img src="'.$image.'" border="0" id="imageupload"/>';
        switch($type){
        case 'news': 
            $divcontent .= "<script type='text/javascript'>
                if (confirm('Do want to upload more pictures to this newsarticle? If you press cancel, this window will be closed! Remember to refresh the picture dropdowns, if you want to choose the new image!')== true)
                {
                
                }
                else
                {
                    window.close();
                }
            </script>";
            break;
            
        case 'events': 
            $divcontent .= "<script type='text/javascript'>alert('This image was saved to this event!');</script>";
            break;    
        }
        echo $divcontent;
    
    }else{
        echo '<img src="/images/error.gif" width="16" height="16px" border="0" style="marin-bottom: -3px;" /> Error(s) Found: ';
        foreach($errorList as $value){
                echo $value.', ';
        }
    }

Ich vermute, dass dies mit dem iFrame zusammenhängt in den in den Inhalt durch den Uploader hinschieße.
Leider habe ich nicht ganz verstanden (muss ich ehrlich gestehen), warum der Autor hier auf einen iFrame zurückgreift und dann den Inhalt dessen in ein <div> schreibt.
Was ich auch probiert hatte war eine Funktion aus meiner ausgelagerten JS-Datei aufzurufen. Auch hier sagt mir FireBug, er könne die Funktion nicht finden.

Vielleicht hat ja einer von Euch einen schlauen Einfall, oder soetwas schonmal umgesetzt.

Vielen Dank schon einmal für die Hilfe!

EDIT 1:
Das hätte zudem den ungemeinen Vorteil, ich könnte z.b. auch MooCrop auf das Bild legen, so dass ich dieses dann cropen kann in dem ImageUpload.
Leider stehen mir - wie o.g. - die JS-Funktionen der eigentlichen Seite nicht zur Verfügung und einen Opener oder Window habe ich scheinbar auch nicht.
 
Zuletzt bearbeitet:
Ich hab zwar jetzt nicht ganz verstanden was genau machst, aber bei den Stichworten JavaScript und iFrame fällt mir sofort die Same origin policy ein (http://en.wikipedia.org/wiki/Same_origin_policy), die aussagt daß du Inhalt in einem iFrame mit fremder Domain mittels JavaScript nicht beeinflußen kannst, was ja sicherheitstechnisch durchaus Sinn macht.
 
Ich versuche heute Abend mal ein verständliches Beispiel zu bauen, sobald ich zuhause bin.

Aber ich denke deine Antwort wird mir auch schon weiterhelfen. Ich bau trotzdem mal was, eventuell sind das auch zwei verschiedene Paar Schuhe, was mir nicht ganu ungelegen käme.

EDIT 1:
Habe es nun hinbekommen, in einem iFrame steht mir natürlich kein opener zur verfügung sondern um an das eigentlich fenster zu kommen musste ich "window.parent.opener" benutzen.
Ähnlich verhält es sich z.B. mit den Funktionen aus dem "Opener" window.parent.opener.funktion().

Danke dir dennoch odigo für deine Hilfe :)
 
Zuletzt bearbeitet:
Zurück
Oben