最初に現状をお伝えします。
現状は、URLについているパラメータを取得して
"id"というものが付いている部分の値でリンク先のURLの出し分けをしています。
下記がコードになります。
js
1$(function () { 2 // URLのパラメータを取得 3 var urlParam = location.search.substring(1); 4 5 // URLにパラメータが存在する場合 6 if(urlParam) { 7 // 「&」が含まれている場合は「&」で分割 8 var param = urlParam.split('&'); 9 10 // パラメータを格納する用の配列を用意 11 var paramArray = []; 12 13 // 用意した配列にパラメータを格納 14 for (i = 0; i < param.length; i++) { 15 var paramItem = param[i].split('='); 16 paramArray[paramItem[0]] = paramItem[1]; 17 } 18 19 // パラメータidを判断して条件分岐 20 if (paramArray.id == 'aaa') { 21 $('.link').append('<a href="https://text/?id=aaa" target="_blank"><img src="images/regist_off.png" alt=""></a>; 22 } else if (paramArray.pid == 'bbb') { 23 $('.link').append('<a href="https://text/?id=bbb" target="_blank"><img src="images/regist_off.png" alt=""></a>; 24 } else { 25 $('.link').append('<a href="https://text/" target="_blank"><img src="images/regist_off.png" alt=""></a>; 26 } 27 } 28 console.log(urlParam); 29});
html
1<div class="link"></div>
しかし、この場合だと
パラメータが変わってしまったり、パラメータがない場合にリンク先も変わってしまいます。
そこで
最初にアクセスした時に
paramArray.id
をcookieに保存して
// パラメータidがaaaかどうかを判断する
if (paramArray.id == 'aaa') {}
の部分をcookieで判断してリンクの書き換えを行いたいです。
今は
js
1// 用意した配列にパラメータを格納 2 for (i = 0; i < param.length; i++) { 3 var paramItem = param[i].split('='); 4 paramArray[paramItem[0]] = paramItem[1]; 5 } 6 7// cookie 8 document.cookie = 'id=paramArray.id'; //ここでparamArray.idの中身を取りたいのですが、これだと文字列になってしまっています… 9 var cookie = document.cookie; 10 11 // パラメータidを判断して条件分岐 12 if (cookie == 'aaa') {...
となっておりますが、ここから全くわからず進んでいない状態です。
申し訳ありませんがご教示お願いします。
回答1件