Flashpopup und IExplorer

Seebär

Mitglied
Hallo,
ich wende mich an Euch, da ich einfach nicht weiter komme. Und glaubt mir, ich habe wirklich alles durchsucht.
Also mein Problem:
Ich habe eine swf-Datei, welche über eine html-Datei in einen iframe eingebettet ist.
In der Flash-Datei ist ein Button, welcher über Javascript ein Popup öffnen soll.
Klappt auch soweit wunderbar. Das Problem:
Die Datei mit dem iframe und die Flash-Datei liegen auf unterschiedlichen Servern (leider gibt es keine andere Möglichkeit) und der IExplorer weigert sich dieses Popup auszuführen. Netscape, Firefox oder Opera führen dieses ohne Probleme aus.

Habe mal drei Links zur Veranschaulichung:

1. Link1
hier liegen iframe und Flash auf dem gleichen Server==> keine Probleme

2. Link2
hier liegen iframe und Flash auf verschiedenen Server==> IExplorer will nicht

3. Link3
wie 2. nur, das eine einfache html-Datei mit einem Popup eingebunden ist==> keine Problem im IExplorer

Hatte gelesen, dass es eine Sicherheitseinstellung des IExplorer sein könnte, Javascript aus extern eingebundenen Dateien nicht auszuführen. Dem widerspricht aber Link3.
Denke, es muss also irgendwie am Flash in Kombination mit dem IExplorer liegen. Weiss aber echt nicht mehr, wo ich suchen soll.
Vielleicht kennt einer von euch dieses Problem und hat es lösen können.

Habe auch schon mehrere Möglichkeiten der Javascripteinbindung probiert. Alle laufen Problemlos nur unter o.g. Konstellation geht es nicht.

Der vollständigkeithalber noch einmal die letzte Version der Popupgenerierung.

Code:
 _global.javascript = new Object(); // _global javascript object..

function openWindow(url, title, w, h, paras) {
	var p = "width=" + w + ",height=" + h + "," + paras;
	var fn = "window.open('" + url + "', '" + title + "', '" + p + "');";
	trace(fn);
    getURL("javascript:" + fn + ";void(0);");
}

but.onPress = function() {
	openWindow("", "POPUP", 320, 200, "scrollbars=no");
}

Schon mal danke für eure Mühe
 
Hi,

probier mal, die Funktion zum Öffnen des Popups im html-Code zu wrappen:
HTML:
<script type="text/javascript">
function popup(url, w, h, p) {
    p = (p.length > 0)? "," + p : p;
    window.open(url, "popup", "width=" + w + ",height=" + h + p);
}
</script>
Aufruf in AS:
Code:
getURL("javascript:popup('http://www.bla.de/blubb.htm', 640, 320, 'scrollbars=no')");

Gruß
.
 
Hi Tobias,
danke für den Vorschlag. Doch das hatte ich vorher auch schon ausbrobiert.

Hier mal der Link zu deiner Version
Link4

Gleiche Ergebnis, alle machen es, nur der IE weigert sich.

Hatte nun überlegt, dass ich den Flashbutton in html nachbaue und als Layer über das
Flashmovie lege. Aber das Movie setzt sich immer dominant in den Vordergrund, so
dass diese Möglichkeit wohl auch ausscheidet.

Aber vielleicht hat noch jemand von Euch einen Lösungsansatz
 
Hi,

bei mir öffnet z.B. der Firefox das Popup weder auf der verlinkten Seite, noch wenn ich den Iframe direkt öffne (der IE tuts zumindest beim Direktaufruf des Iframes).

Ich vermute, dass es sich eher um ein html- denn um ein Flashproblem handelt: Hast Du das ganze schon mal ohne Flash mit einem html-Link probiert?
 
Hi,
erstmal danke für Deine Mühe.

Wenn man den Link aus dem iframe direkt aufruft geht es auch im IExplorer,
da die html und Flashdatei auf dem gleichen Server liegen.
Bei o.g. Link3 habe ich das ohne Flash gemacht. Nur html-code auf verschiedenen Servern.
Das geht auch im IExplorer.
Nur wenn die Iframedatei und die Flashdatei auf verschieden Servern liegen, geht es einfach nicht.
Habe auch schon versucht, über die Flashdatei eine Datei auf dem Server der Iframedatei
zu öffnen. Geht leider auch nicht.
Firefox öffnet bei Dir nichts? Also bei mir geht es in allen anderen Browsern.

Hoffe, ich bekomme das Problem irgendwie noch gelöst.
 
Hi,

stimmt - ich habe es eben mal selbst ausprobiert. Es könnte sich um eine Sicherheitsvorkehrung des Flashplayers handeln, oder um einen Fehler (da es im ersten Fall dann wohl kaum im FF funktionieren würde). JavaScriptaufrufe per getURL werden in extern eingebetteten Frames im IE scheinbar nicht ausgeführt.

Ein Workaround dafür fällt mir im Moment nicht ein - vielleicht könnte man per localConnection was tricksen; Versuche in diese Richtung dürften allerdings den Sicherheitsrichtlinien des Flashplayers zum Opfer fallen.

EDIT: Ich habe es mal eben per fscommand versucht: LINK - im FF und im IE scheint es zu funktionieren; ich meine mich aber zu erinnern, dass andere Browser (Opera) Probleme mit fscommand/JS hatten. Probiers halt mal aus. ;)

Gruß
.
 
Hi Tobias,
es geht tatsächlich. Nur leider in Netscape und Opera nicht. Aber ist ja ein Anfang.
Da ich nicht der Flashprofi bin: Könntest Du mir Deinen Code zur Verfügung stellen.
Werde ihn dann anpassen und eine Browserabfrage dazufügen.

Vielen dank bis hierher.
 
Hi,

den Code siehst Du, wenn Du Dir den Quelltext im Iframe zu Gemüte führst - im Prinzip ist das nur das, was Flash automatisch erstellt, wenn Du unter "Veröffentlichen -> html" "Flash mit FSCommand" wählst. Auf dem Button in der SWF steht nur folgendes:
Code:
on(release) {
	fscommand("popup.htm", "320,240");
}
Damit übergebe ich die Ziel-URL als Command und die Fenstermaße (durch Komma getrennt) als Parameter (daher trenne ich den args-String mit split am Komma).

Um alle Browser zu bedienen, könntest Du eine php-Browserweiche verwenden, oder probieren, zusätzlich das Popup per getURL zu öffnen: Wenn Du bei beiden Attempts den selben Fenstertitel angibst, sollte generell nur ein Fenster geöffnet werden.

Gruß
.
 
Zurück