document.referrer によってページの飛び先を変更したい


リファラー(参照元)を取得して、例えば検索エンジン

「電卓」と検索して訪れた人はcalc.htmlに、

「デンタク」と検索して訪れた人はdentaku.htmlに、

「dentaq」と検索して訪れた人はabout.htmlに、それぞれ飛び先を変更したいという場合。


var keywords= [
{
id:'01',
keyword: '電卓',
url :'calc.html'
},
{
id: '02',
keyword: 'デンタク',
url :'dentaku.html'
},
{
id: '03',
keyword: 'dentaq',
url :'about.html'
}
];
function load(){
//リファラー(参照元)情報を取得
var ref = document.referrer;
//0〜キーワード数(keywords.length)の間ループ処理する
for(var i=0; i<keywords.length;i++){
//キーワード文字列を配列から取得
var str = keywords[i].keyword;
//キーワード文字列をURLエンコード
var encstr = encodeURI(str);
//URLエンコードしたキーワードを正規表現オブジェクトに変換
var pattern = new RegExp(encstr);
//URLエンコードしたキーワードがリファラー(参照元)と一致したら対応するurlへ飛ばす
if(ref.match(pattern))
location.href=keywords[i].url;
}
};
//ロード時に実行するイベントリスナーを追加
(function(){
if(document.addEventListener){ // opera,safari,mozilla向け
document.addEventListener("DOMContentLoaded", load, false);
} else if(window.attachEvent){ // IE向け
window.attachEvent("onload",load);
} else {
window.onload = load;
}
})();

上記スクリプトをheaderのなるべく読み込みが早い行に配置します。

キャンペーン用のランディングページなどで使用シーンがあるかと思います。