■前提・実現したいこと
inputの中身には既にURLが存在していて、そのURLの後ろにパラメータを付与したい。
※javascriptの実行はchromeのブックマークから。
Ex,
https://teratail.com/questions/178966
↓
https://teratail.com/questions/178966?utm_source=xxx&utm_medium=ooo&utm_campaign=△△△_200317_num01&utm_content=link01
■発生している問題
表面的な文字列(value)は変更されているものの、確認画面に飛ぶとパラメータがない状態になる
■試したこと
valueとdefault_valueの値を変える
HTML
1<div class="main"> 2 <div class="url"> 3 <input type="text" class="form"> 4 </div> 5 <div class="url"> 6 <input type="text" class="form"> 7 </div> 8</div>
Javascript
1javascript: 2( 3 function () { 4 if(! document.querySelector(".date").querySelector("input").value) 5 { 6 return; 7 }else{ 8 var rt = prompt('番号を入力', ''); 9 if(rt !== null && rt !== ''){ 10 var fn = ("0" + rt).slice(-2); 11 var dd = new Date(document.querySelector(".date").querySelector("input").value); 12 var yy = dd.getFullYear().toString().slice(-2); 13 var mm = ("0" + (dd.getMonth()+1)).slice(-2); 14 var day = ("0" + dd.getDate()).slice(-2); 15 var i = 1; 16 17 [].forEach.call(document.querySelectorAll(".url > input"), (e, index)=> 18 { 19 var linkUrl = new URL(e.value); 20 var linkParam = new URLSearchParams(linkUrl.search.slice(1)); 21 linkParam.append("utm_source", "xxx"); 22 linkParam.append("utm_medium", "ooo"); 23 linkParam.append("utm_campaign", "△△△_"+yy+mm+day+"_num"+fn); 24 linkParam.append("utm_content", "link"+ ("0" + (i)).slice(-2)); 25 e.focus(); 26 e.value = linkUrl.origin + linkUrl.pathname + "?" + linkParam.toString(); 27 }); 28 }else{ 29 return; 30 } 31 } 32 } 33)();
管理ツール内で実現したいことなので仕様でjavascriptでの書き換えが不可になっているのなら諦めます。
しかしjavascriptの仕様で実現可能であれば挑戦したいと考えています。
javascriptの知識がある方、お力添えいただけませんでしょうか。
よろしくお願いいたします。
--
■追記
仰っている「管理ツール」とはなんのことでしょう
LINEアカウントメディアです。
確認画面に飛ぶとパラメータがない状態
入力画面でjavascriptを実行するとこうなるのですが
![
確認画面に進むとパラメータ付与したはずのURLが
https://teratail.com/questions/178966
https://teratail.com/questions/247673
のようになってしまいます。
あなたの回答
tips
プレビュー