前提・実現したいこと
ページに動的に付与される変数userNumの中身の値を導線バナーをクリックしたとき、別ドメインの次ページへPOSTしたい。
該当のソースコード
HTML
1<div id="btn_topContents"> <!---この導線のdiv記述はインクルードファイルに記述されている---> 2<a href="javascript:void(0);" class="btn_top" id="btn_top" name="btn_top" data-url="https://XXXX" data-val=""><img src="../bnr_top.png" width="100%"></a> 3</div> 4 5<!---以下、導線以外はTOPページに直に記述される---> 6<div id="Cont-form"></div> 7 8<script> 9var userNum = '0000123456'; //システムによりHTML上に自動的に付与 10</script>
js
1$(window).load(function() { 2 $(".btn_top").on("click", function(e) { 3 e.preventDefault(); 4 postContents($(this).attr('data-url'), $(this).attr('data-val')); 5 }); 6 }); 7 8function autoLogIn(e) { 9 10 if(typeof e === "undefined" || e == null || e == "undefined" || e == '') return false; 11 12 var form = document.createElement("form"); 13 var element1 = document.createElement("input"); 14 15 form.method = "POST"; 16 form.action = e.url; 17 form.target = "_blank"; 18 19 element1.value=e.account; 20 element1.name="ACCOUNT"; 21 form.appendChild(element1); 22} 23function postContents(e1,e2) { 24 25 if(typeof e1 === "undefined" || e1 == null || e1 == "undefined" || e1 == '') return false; 26 27 var clicked = document.getElementsByClassName("btn_top")[0]; 28 if(!clicked.classList.contains("clicked")) { 29 clicked.classList.add("clicked"); 30 var form = document.createElement("form"); 31 var element1 = document.createElement("input"); 32 33 form.method = "POST"; 34 form.action = e1; 35 form.target = "_blank"; 36 37 element1.value=e2; 38 element1.name="user_id"; 39 form.appendChild(element1); 40 41 //add form to tag div 42 document.getElementById('Cont-form').appendChild(form); 43 44 form.submit(); 45 46 //remove form to tag div 47 document.getElementById('Cont-form').innerHTML = ""; 48 49 setTimeout(function() { 50 clicked.classList.remove("clicked"); 51 }, 500); 52 } 53} 54 55$(document).ready(function() { 56 $("#btn_top").attr("data-val", userNum); 57 }); 58
試したこと
data-val内に直に値を入れておくと正しくPOSTしますが、
空のdata-valにuserNumを格納してからPOSTさせようとするとうまくいきませんでした。
最終的にはuserNumの値を次ページに引き継げたら良いので、localStorageの方法もためしましたが、userNumが拾えず困っています。
js
1window.onload = function() { 2 setTimeout(function(){ 3 var array = []; 4 var obj = { 5 'user_id': userNum 6 }; 7 array.push(obj); 8 var setjson = JSON.stringify(obj); 9 localStorage.setItem('user_', setjson); 10 },2000); 11}
知識不足で説明に分かりづらい部分あるかもしれませんが、お知恵を拝借できたらうれしいです。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/04 05:29 編集
2019/10/04 05:41
2019/10/04 05:44
2019/10/04 08:13