littlepad blog

Safari でのポップアップウィンドウ対策

FLASH からポップアップウィンドウを開く際、ExternalInterface.call を使用するが、どうも Safari だとこれが利かないらしい。

そこで、Safari の場合のみ navigateToURL を使用して _blank でウィンドウを開くことにする。
しかしFLASHでは標準でブラウザ判定をすることができないので、JSProxy というライブラリを使用する。
コードはこんな感じ。

import com.rails2u.bridge.JSProxy;

public function LinkBtn() {
    addEventListener(MouseEvent.CLICK, pageLink);
}

private function pageLink(e:MouseEvent):void {
    var browser:String = JSProxy.proxy.navigator.$userAgent;
    if (browser.search("Safari") == -1) {
        //Safariでない場合、固定ウィンドウを開く
        ExternalInterface.call("window.open", _url, "_blank", "width=820, height=520");
    } else {
        //Safariの時は通常ウィンドウを開く
        navigateToURL( new URLRequest(_url), "_blank" );
    }
}
モバイルバージョンを終了