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

| C: 2 | TB: 0

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" );
	}
}

トラックバック(0)

TB URL: http://megad.heteml.jp/mt42/mt-tb.cgi/144

コメント(2)

おお、これちゃんと回避したんですね。某案件では、Safari向けにポップアップブロックをOFFにするように注意書きを書くことで、クライアントOKもらっちゃってました。このへん、Flash標準で回避してほしいですよねぇ。

これ、わりと面倒ですよね。Flash標準での回避は自分も望みます。

コメントする

HOMEライブラリ / フレームワーク > Safariでのポップアップウィンドウ対策