実行は jQuery.f() の形式。
プラグインのコード
(function($){
$.extend({
// get cookie
myGetCookie: function(name){
var regexp = new RegExp('; ' + name + '=([^;]*);');
var match = ('; ' + document.cookie + ';').match(regexp);
if(match){
return match[1];
}
},
// set cookie
mySetCookie: function(key, val, validFunc){
var flg = true;
if(validFunc){
if(!validFunc(val)){
flg = false;
}
}
if(flg){
document.cookie= key + '=' + encodeURIComponent(val) + ';path=/;';
}
},
// referrer -> key
classifyReferrer: function(ref){
if('affiliate-b.com/'.indexOf(ref) >= 0){
return 'アフィリエイト';
}else if('google.co.jp/'.indexOf(ref) >= 0){
return 'Google-Organic';
}else if('google.com/aclk'.indexOf(ref) >= 0){
return 'Google-Adwords';
}else if('yahoo'.indexOf(ref) >= 0){
return 'Yahoo-Organic';
}else if('overture.com'.indexOf(ref) >= 0){
return 'Yahoo-Overture';
}else{
return 'その他';
}
}
});
})(jQuery);
呼び出し元
/* conversion tracking */
var CONVERSION_COOKIE_NAME = 'xx_ref';
var CONVERSION_INPUT_NAME = 'xx_ref';
// exec.
if($('body#form-idx').length){
var c;
if(c = jQuery.myGetCookie(CONVERSION_COOKIE_NAME)){
$('form').append('');
}
} else {
if(document.referrer) {
jQuery.mySetCookie(CONVERSION_COOKIE_NAME,
jQuery.classifyReferrer(document.referrer),
function(val){
return (location.hostname.indexOf(val, 0) < 0);
});
}
}
0 件のコメント:
コメントを投稿