AS3 での window.open 関数

[ AS3.0, javascript ] 2009年3月 1日 23:21

かなりはまってしまったのでメモ。

Flash の中からポップアップウインドウをどうしても開きたくて、ExternalInterface.call(); を使用して js の定義済関数や window.open を直接呼びだしてポップアップウインドウを開いてたんだけど、どうしても Safari だけは window.open 自体が殺されてしまっていた。
AS2 単独で getURL に直接 window.open(url); とかだと問題ないんだけど、AS3 になると全く駄目で、AS3 の swf に AS2 の swf を読みこんで LocalConnection で接続して getURL を呼び出しても駄目でした。
これって AVM2 で実行してると、クリックが Safari 側でとれてなくて、window.open を殺してしまってるんだろうか・・・・。

しょうがないので、Safari だけは navigateToURL("hoge.html", "_blank"); みたいにして、_blank で開いて、 js でリサイズすることにした。
まぁ、今後は設計の段階で Flash からポップアップは基本なしにしたほうがよさそうだ。

ってかこれは、AVM2 のバグなのか、Safari のバグなのか仕様なのかはっきりしてもらいたいところ。

トラックバック(0)

このブログ記事を参照しているブログ一覧: AS3 での window.open 関数

このブログ記事に対するトラックバックURL: http://blog.cellfusion.jp/mt/mt-tb.cgi/512

コメント(2)

このエントリを拝見して、まったく同じ問題でハマったのを思い出しました。その時はどうしようもなくなり、クライアントに相談して"_blank"に逃げてしまいました。検証した感じだと、Safari側の問題っぽいですよねぇ……。

ですねー。でも今後はこういう問題があるので、デザイン段階で注意をすれば事前に防げると思うので、まぁ大丈夫かなーと思ってます。

コメントする