2009-08-21 3 views
1

Ich versuche, ein Popup-Fenster von Flex zu starten, aber das Popup-Fenster muss bestimmte Eigenschaften haben, wie man normalerweise mit dem JavaScript window.open angeben kann. Zum Beispiel sollte das Popup-Fenster keine Browser-Symbolleiste oder URL-Box haben.Wie erstelle ich ein Popup von Flex ohne eine Browser-Symbolleiste?

Ich habe versucht, navigateToURL, das funktioniert gut, aber ich finde keine Möglichkeit, die Eigenschaften des Popup-Fensters angeben.

Ich habe versucht mit ExternalInterface.call, aber das Popup wird geblockt, wenn window.open direkt aufrufen, oder sogar eine benutzerdefinierte JS-Funktion erstellen, die window.open aufruft.

Hilfe!

Danke!

+2

Bitte nur nicht. Pop-ups ohne Toolbar/Adressleiste sind ein Sicherheits-und Usability-Desaster, weshalb einige Browser es jetzt nicht vollständig machen lassen. Die meisten Dinge, für die früher chromfreie Popups verwendet wurden, werden heutzutage in der Regel mit In-Page-Popup-Elementen erstellt. – bobince

Antwort

1

Ich glaube nicht, dass es sogar möglich ist, die Browser-Toolbar oder URL-Box in vielen Browsern zu deaktivieren (ich erlaube es auf keinem der von mir verwendeten Browser).

Wenn Sie navigateToURL verwenden, warum kann die zu öffnende Seite nicht die JS ausführen, um die Symbolleiste und die URL zu deaktivieren? Ich denke, Sie können auch Attribute an die URL anhängen, wenn Sie Eigenschaften über senden wollten.

+0

Ich bin mir ziemlich sicher, dass die meisten JS-kompatiblen Browser die Popup-Formatierung über die window.open-Methode unterstützen, aber Flex scheint das nicht zu unterstützen ... und ich bin mir nicht sicher, wie ich das im Handumdrehen machen könnte (nachdem das Fenster geöffnet wurde) –

+0

Werfen Sie einen Blick auf diese Seite: http://www.adobe.com/cfusion/communityengine/index.cfm?event=showdetails&productId=2&postId=5221 Sie können JavaScript-Parameter an das Fenster übergeben .open() - Funktion. Ersetzen Sie sie einfach durch die, die Sie verwenden möchten. Auch diese Funktionalität (Entfernen von Adressleisten usw.) funktioniert nicht mehr für jeden Browser, den ich verwende. – CookieOfFortune

0

Sie können die PopUpManager-Klasse von Flex zum Erstellen benutzerdefinierter Popup-Felder verwenden.

Dieses Beispiel kann Ihnen helfen. Custom PopUp

+0

Ich bin nicht auf der Suche nach einem In-Flex-Popup ... Ich suche nach einem Popup im Browserfenster. –

0

Schauen Sie sich AndrewT Blog über die Überprüfung auf Popup-Blocker. Wenn nicht blockiert, dann verwenden Sie ExternalInterface; Ansonsten verwende das Flex-Popup.

Detecting Popup Blockers

Oder noch besser, verwenden SWFAddress v2.3 (JavaScript und AS3) Module. Der AS3 hat eine SWFAddress :: popup() -Fassade, die den Poup-Aufruf an das Javascript weiterleitet. Sie können die SWFAdress.js-Popup-Funktion ändern, um die Logik von Andrew zu verwenden und einen Status zurückzugeben. Dies wäre eine bewährte Methode: Sie können die Superlative SWFAddress-Bibliothek von Flex für Deeplinking, Google Analytics und Popups nutzen.