【javascript】特定の参照元からのユーザーにクッキーを渡す方法
自分のサイトに特定の参照元からのアクセスがあった場合、そのユーザーのブラウザにクッキーを渡す方法(javascript)を紹介します。
参照元を取得する
特定の参照元からのアクセスにクッキーを渡すので、まずは参照元を取得しなければなりません。
javascriptで参照元を取得する場合、下のようにreferrerプロパティを使います。
getRef = document.referrer;
例えば、このページから上のスクリプトが記述されているページにアクセスすると、変数「getRef」には「http://ysklog.net/javascript/1708.html」という文字列が代入されます。
なお、URLの直接アクセスやお気に入りからのアクセスの場合、参照元は取得されません。
参照元のチェック
次にreferrerプロパティで取得した文字列の中に、特定サイトのドメインが含まれているかをチェックします。
この場合、indexOfメソッドを利用します。
indexOf("ここに検索する文字列",検索を開始する位置)
indexOfメソッドは、対象文字列の中に指定した文字列があるかどうかを検索します。ない場合は「-1」を、ある場合はその位置を返します。詳細はこちら。
stringCheck = getRef.indexOf("ysklog.net",0);
この場合、変数「getRef」に「ysklog.net」という文字列があるかどうかを検索します。
「getRef」には先ほど取得した「http://ysklog.net/javascript/1708.html」が代入されているとすると、「-1」ではなくその位置(数字)が変数「stringCheck」に代入されます。
クッキーを渡す
次にユーザーのブラウザにクッキーを渡す方法ですが、クッキーを渡す方法と受け取る方法を参照して下さい。
document.cookie = 'キー = 値';
これでユーザーのブラウザに任意のクッキーを渡すことができます。
特定の参照元からのユーザーにクッキーを渡す方法
ということで、以上を参考にしてプログラムを書くとこのようになるかと思います。
<script type="text/javascript"> <!-- if(document.referrer.length !=0){ getRef = document.referrer; if (getRef.indexOf("ysklog.net",0) != -1){ document.cookie = 'data = from-ysklog.net'; } } // --> </script>
ポイント
以下で参照元が取得できているかどうかを確認しています。取得できていれば次の処理に移ります。
if(document.referrer.length !=0)
そして取得した参照元に「ysklog.net」という文字列があるかどうかを確認しています。「-1」じゃなければ文字列の検索ができているので次の処理に移ります。
if (getRef.indexOf("ysklog.net",0) != -1)
最後にユーザーのブラウザに「data = from-ysklog.net」というクッキーを渡します。
document.cookie = 'data = from-ysklog.net';
あわせて読んでほしい!
コメント
まだコメントはありません。