JS / jQuery パラメータで指定された計測用コードをページ内のaタグ全てに付与する方法

アフィリエイトやアクセス解析で利用する計測用のパラメータがURLに付与されている場合に同ページ内の全てのaタグに強制的に付与する方法メモ。

ページ内のaタグ全てに指定パラメータを付与する

<script>
//現在ページURLのプロトコルとホスト情報(ホスト名とポート番号)を結合する
base_url = location.protocol+'//'+location.host;

//
var arg  = new Object;

//URLからパラメータを取得し配列に格納する
url = location.search.substring(1).split('&');

//forでループ
for(i=0; url[i]; i++) {
    //変数 k に urlを = で区切り配列に分割する
    var k = url[i].split('=');

    //オブジェクトargに連想配列として格納する
    arg[k[0]] = k[1];
}

//
対象パラメータ取得
affi_code = arg.affi_code;

//
対象パラメータが存在する場合に処理する
if (affi_code !== undefined) {
    jQuery('a').each(function() {
        var href = jQuery(this).attr('href');

        if ( href.indexOf(base_url) !== -1) {
            //プロトコルからリンクが設定されている場合
            jQuery(this).attr("href", href+'?affi_code='+affi_code);
        } else {
            var first_str = href.slice( 0, 1 );
            if (first_str==='/') {
                //スラッシュ「/」からリンクが設定されている場合
                jQuery(this).attr("href", href+'?affi_code='+affi_code);
            }
        }
    });
}
</script>

コメント

タイトルとURLをコピーしました