IE に表示した Flash でリファラが取れない問題の回避方法


IE 6/7 に表示された Flash で navigateToURL を呼ぶとリファラが取れない (document.referrer === “” //true) 問題の回避方法。

アンカーエレメントをクリックしたことにする

アンカーエレメントを作って click イベントを呼べば、リファラを取ることができる。

ActionScript

ExternalInterface.call("navigateToURL", "hoge.html");

JavaScript

IE ではアンカーエレメントを生成し、IE 以外では location.href を書き換える。

function navigateToURL(url) {
if (!!document.all) {
var body = document.getElementsByTagName("body")[0];
var dummyLink = document.createElement("a");
dummyLink.href = url;
body.appendChild(dummyLink);
dummyLink.click();
body.removeChild(dummyLink);
} else {
location.href = url;
}
}
カテゴリー: Flash, JavaScript   パーマリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>