Hackerboard WikiHaboBlog

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

JavaScript in iFrame "injecten"

Diskussion: JavaScript in iFrame "injecten" im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Hallo zusammen, ich hab mal wieder ein Problem, welches mir langsam den Spaß an JavaScript raubt. Zur Erklärung, ich verwende ...

Antwort
Alt 17.08.10, 22:09   #1 (permalink)
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard 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-Code:
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.

Geändert von reaLInsanity (17.08.10 um 22:26 Uhr)
reaLInsanity ist offline   Mit Zitat antworten
Alt 18.08.10, 09:19   #2 (permalink)
Senior Member
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

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.
odigo ist gerade online   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 18.08.10, 14:16   #3 (permalink)
Themenstarter
 
Benutzerbild von reaLInsanity
 
Registriert seit: 10.01.06
reaLInsanity Leistung: Facit NTK
reaLInsanity eine Nachricht über ICQ schicken reaLInsanity eine Nachricht über AIM schicken reaLInsanity eine Nachricht über Yahoo! schicken
Likes: 0
Standard

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

Geändert von reaLInsanity (18.08.10 um 22:44 Uhr)
reaLInsanity ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » JavaScript JavaScript in iFrame "injecten"
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61