всплывающие окна из встроенного кросс-браузера .swf - PullRequest
3 голосов
/ 23 ноября 2008

Ситуация: у вас есть .swf, встроенный в html-страницу, и когда вы нажимаете на что-то в .swf, он должен открыть окно без хрома. Обычно это было бы довольно просто - но рассмотрим Safari, который полностью отключает все функциональные возможности «window.open», пока включен его блокировщик всплывающих окон (он делает исключение, если функция запускается по щелчку, но не учитывает щелчки во флэш-памяти) , Как вы можете создать что-то, что изящно ухудшает (обеспечивает альтернативный и примерно эквивалентный опыт) для браузеров, которые не будут запускать window.open?

(примечание: это AS3 и Safari 3 для ПК или Mac, о которых мы говорим - но в более широком смысле - любой браузер, который не поддерживает или отказывается разрешить использование функции javascript window.open.)

Ответы [ 2 ]

1 голос
/ 24 ноября 2008

Если ваш SWF-файл загружен с использованием wmode='opaque' или wmode='transparent', то у вас может быть выходной JavaScript-код SWF, который создаст пустой <div>, расположенный в области SWF. Затем <div> может обработать событие onclick и создать всплывающее окно, а не код Flash.

0 голосов
/ 26 февраля 2010

оверлей div был более сложным, чем проект заслуживал - посмотрите code.google.com / p / popupfromflash для кода, который я придумал.

Он пытается использовать ExternalInterface для настройки функции window.open, и, если это не удается (особенно в Safari), он вызывает флэш-память и предлагает сделать navigateToURL для обычного всплывающего окна (а не хрома)

...