2016-10-16 10 views
1

私は多くを見回しましたが、これについて最善の方法を見つけることができないようです。このコードの末尾にあるURLに変数値(p1、p2、p3)を入力するにはどうすればよいですか?javascript変数を埋め込みアンケートフォームに渡します

"+"をスペースでフォーマットした変数を "%20"をスペースとしてフォーマットしています。この埋め込み型フォームに使用されているこのコードの一番下にあるリンクに渡します。

<script type="text/javascript">// <![CDATA[ 
function getParameterByName(name, url) { 
if (!url) url = window.location.href; 
name = name.replace(/[\[\]]/g, "\\$&"); 
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
results = regex.exec(url); 
if (!results) return null; 
if (!results[2]) return ''; 
return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

var p1 = getParameterByName('p1') 
var p2 = getParameterByName('p2') 
var p3 = getParameterByName('p3') 

p1 = p1.replace(/\+/g, "%20"); 
p2 = p2.replace(/\+/g, "%20"); 
p3 = p3.replace(/\+/g, "%20"); 
// ]]></script><script type="text/javascript">// <![CDATA[ 
function getParameterByName(name, url) { 
if (!url) url = window.location.href; 
name = name.replace(/[\[\]]/g, "\\$&"); 
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
results = regex.exec(url); 
if (!results) return null; 
if (!results[2]) return ''; 
return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 

var p1 = getParameterByName('p1') 
var p2 = getParameterByName('p2') 
var p3 = getParameterByName('p3') 

p1 = p1.replace(/\+/g, "%20"); 
p2 = p2.replace(/\+/g, "%20"); 
p3 = p3.replace(/\+/g, "%20"); 
// ]]></script> 

<!-- Change the width and height values to suit you best --> 
<div class="typeform-widget" data-url="https://eatforklore.typeform.com/to/XPDPsx?p1=xxxxx&amp;p2=xxxxx&amp;p3=xxxxx&amp;p4=xxxxx" data-text="Mo. 1 Product Reviews" style="width:100%;height:500px;"></div> 
<script>(function(){var qs,js,q,s,d=document,gi=d.getElementById,ce=d.createElement,gt=d.getElementsByTagName,id='typef_orm',b='https://s3-eu-west-1.amazonaws.com/share.typeform.com/';if(!gi.call(d,id)){js=ce.call(d,'script');js.id=id;js.src=b+'widget.js';q=gt.call(d,'script')[0];q.parentNode.insertBefore(js,q)}})()</script> 
+0

はあなたのP1、P2、およびP3は、予期しない値を返すか、あなただけのタグのurlプロパティを更新する方法を知っておく必要がありますでしょうか? –

+0

私はタグのurlプロパティを更新しようとしていると思います。私は、javascriptから変数を取ってhtmlで使う方法を理解していないと思います。それを呼び出すために必要なことはありますか?そして、はい、それをurlプロパティに入れます。 –

+0

document.querySelector( ".format-widget")。dataset.url = urlVariable; –

答えて

0

あなたgetParameterByName関数は2つの引数が必要ですが、一つだけを与えています。 divdata-urlプロパティには、.dataset.urlを使用して渡す必要があります。

function getParameterByName(name, url) { 
 
    if (!url) url = window.location.href; 
 
    name = name.replace(/[\[\]]/g, "\\$&"); 
 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
 
    results = regex.exec(url); 
 
    if (!results) return null; 
 
    if (!results[2]) return ''; 
 
    console.log('The value of ' + name + ' is: ' + results[2].replace(/\+/g, " ")); 
 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
 
} 
 

 
var p1 = getParameterByName('p1', document.getElementsByClassName('typeform-widget')[0].dataset.url) 
 
var p2 = getParameterByName('p2',document.getElementsByClassName('typeform-widget')[0].dataset.url) 
 
var p3 = getParameterByName('p3', document.getElementsByClassName('typeform-widget')[0].dataset.url) 
 

 
p1 = p1.replace(/\+/g, "%20"); 
 
p2 = p2.replace(/\+/g, "%20"); 
 
p3 = p3.replace(/\+/g, "%20");
<!-- Change the width and height values to suit you best --> 
 
<div class="typeform-widget" data-url="https://eatforklore.typeform.com/to/XPDPsx?p1=p1valuehere&amp;p2=p2valuehere&amp;p3=p3valuehere&amp;p4=xxxxx" data-text="Mo. 1 Product Reviews" style="width:100%;height:500px;"></div>

関連する問題