Frage

Situation: Sie haben eine .swf in einer HTML-Seite eingebettet bekommen, und wenn man auf etwas in der .swf klicken, braucht es ein chromeless Fenster Popup. Normalerweise wäre dies recht einfach sein - aber bedenken Sie Safari, die vollständig alle ‚window.open‘ Funktionalität, während sein Popup-Blocker aktiviert ist deaktiviert (es macht eine Ausnahme, wenn die Funktion Onclick ausgelöst wird, aber es funktioniert nicht Klicks in Flash-count) . Wie man etwas schaffen kann, die anmutig degradiert (bietet eine alternative und etwa gleichwertige Erfahrung) für Browser, die nicht window.open ausgeführt wird?

(. Hinweis: Diese AS3 ist und Safari 3 für PC oder Mac wir reden - aber im Großen und Ganzen mehr ein Browser, der nicht unterstützt oder sich weigert, die Javascript window.open Funktion zu ermöglichen)

War es hilfreich?

Lösung

Wenn Sie Ihre SWF verwendet wmode='opaque' oder wmode='transparent' geladen, dann könnten Sie die SWF-Ausgabe JavaScript-Code, der eine leere <div> schaffen würde, die über die SWF-Bereich positioniert ist. Das <div> könnte dann das onclick Ereignis behandeln und die Popup-Fenster anstatt der Flash-Code erstellen.

Andere Tipps

die div Overlay war komplizierter, als das Projekt verdient - check out code.google.com/p / popupfromflash für den Code kam ich mit.

Es wird versucht, ExternalInterface Setup eine window.open Funktion zu nutzen, und wenn die (vor allem in Safari) versagt er ruft zurück in Flash und fordert sie eine navigateToURL zu tun, um das Fenster normalerweise um Pop-up (statt chromlessly)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top