実現したいこと
パラメーターを設定したい
- サイトに流入する前のパラメーターを付与したい
- サイト内を回遊している場合は、パラメーター情報はサイトに流入する前を保持する(内部サイトの回遊歴はいらない)
- サイトからボタンを押して外部サイトに行く時、サイトに流入する前のパラメーター情報と回遊していたサイトの情報2つ付与したパラメータを次の外部サイトに表示したい
前提
例
A(外部サイト)→B(サイト)
https://aaa.example.com/xxxからhttps://bbb.example.com/にアクセスする際
https://bbb.example.com/?param=xxx
- サイト回遊している場合は、サイト内のパラメータは付与したくない
A(外部サイト)→B(内部サイト)⇄C(内部サイト)
https://aaa.example.com/xxx → https://bbb.example.com/bbb?param=xxx→ https://bbb.example.com/ccc?param=xxx
- [ ]classで指定したボタンを踏んだ場合、前のパラメーター情報を引き継ぐことができユーザーの流れを確認できる
A(外部サイト)→B(サイト)→ B(サイト内ボタンをクリック)→E(内部サイト)
https://aaa.example.com/xxx → https://bbb.example.com/bbb?param=xxx→ https://bbb.example.com/eee?param=xxx&ccc
発生している問題・エラーメッセージ
内部で回遊する際に、内部回遊情報を追加して行ってしまっている。
&が増えていく状態になっている
例
A(外部サイト)→B(サイト)⇄C(サイト)⇄D(サイト)
https://www.aaa/ccc → https://www.zzzz/bbbb.?&bbbb → https://www.zzzz/ccc.?&&bbbb→ https://www.zzzz/dddd?&&&bbbb
該当のソースコード
javascript
1const parameter_path = 2 location.search.replace(/\?/, "&"); 3const parameter_cta = document.querySelectorAll(".ボタンにつけるクラス"); 4 5for (let i = 0; i < parameter_cta.length; i++) { 6 if (parameter_cta[i].href.indexOf("?") == -1) { 7 parameter_cta[i].href = 8 parameter_cta[i].href + "?" + parameter_path; 9 } else { 10 parameter_cta[i].href = 11 parameter_cta[i].href + "&" + parameter_path; 12 } 13} 14 15HTML 16<div class=""> 17 <ul class=""> 18 <li><a href="bbb.html" class="js-url-parameter">bbb</a></li> 19 <li><a href="ccc.html" class="js-url-parameter">ccc</a></li> 20 <li><a href="ddd.html" class="js-url-parameter">ddd</a></li> 21 <li><a href="https://www" target="_blank" class=".ボタンにつけるクラス">外部りんく</a></li> 22 <li><a href="https://www" target="_blank" class=".ボタンにつけるクラス">外部りんく2</a></li> 23 </ul> 24</div> 25 26
試したこと
parameter_cta[i].href + "?code=" + parameter_path;
code=を消してみたが、code=の部分ではない模様。。
parameter_cta[i].href + "?" + parameter_path;
parameter_cta[i].href + "&" + parameter_path;
この部分を消してしまうと多分、パラメーターの情報を保持できないと推測している。。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー