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