2017-01-26 2 views
-1

私はURL書き込み変数

からutm_parameterの値に入力フィールドの値を設定しようとしています、私はパラメータの値を抽出するために、ページの先頭にこのコードを持っており、フィールドの値を設定する

<!-- Get UTM Parameters Code --> 
<script> 
// Parse the URL 
function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 
// Give the URL parameters variable names 
var source = getParameterByName('utm_source'); 
var medium = getParameterByName('utm_medium'); 
var campaign = getParameterByName('utm_campaign'); 

// Put the variable names into the hidden fields in the form. 
document.getElementsByName("utm_source").value = source; 
document.getElementsByName("utm_medium").value = medium; 
document.getElementsByName("utm_campaign").value = campaign; 
</script> 
<!-- End Get UTM Parameters Code --> 

これはページの本文にあるコードです。

<form> 
<input type="text" name="utm_source" id="utm_source" value=""> 
<input type="text" name="utm_medium" id="utm_medium" value=""> 
<input type="text" name="utm_campaign" id="utm_campaign" value=""> 
</form> 

パラメータは正常に抽出されますが、入力フィールドの値として設定されません。

コードに何か問題がありますか?

document.getElementsByName("utm_source")[0].value = source; 
document.getElementsByName("utm_medium")[0].value = medium; 
document.getElementsByName("utm_campaign")[0].value = campaign; 

document.getElementsByName()を以下

+0

'document.write();を使用しないことをお勧めします。あなたがテスト/デバッグしたいなら、 'console.log();'を使い、ブラウザコンソールを開きます。おそらく、この記事はhttp://stackoverflow.com/questions/20273805/document-write-removes-other-htmlの理解に役立ちます。また、 'getElementsByName()'は、指定された名前を持つドキュメント内のすべての要素のコレクションを返します。NodeListオブジェクト。 – NewToJS

+1

'document.write()'はあなたの考えではありません。 – melancia

+0

私はparmeterが正常に抽出されたかどうかを確認するためにdocument.write()を入れます –

答えて

0

試みは、あなたがそれを配列のような治療を与えなければならないので、ノードリストオブジェクトを返します。 Reference

+1

あなたが行った変更を説明するつもりですか?現在の試行がなぜ機能していないのか、なぜ '[0]'がこれを機能させるのかを理解している人がいます。 – NewToJS

+0

これを試しても動作しません。間違っているかもしれない何か? –

+0

あなたのスクリプトがタグの直前のページの下部にあることを確認してください。 (document.getElementsByName( "utm_source")。length) –

0

大丈夫です。

Iコード

document.getElementsByName("utm_source")[0].value = source; 
document.getElementsByName("utm_medium")[0].value = medium; 
document.getElementsByName("utm_campaign")[0].value = campaign; 

を使用し、閉じる前にヘッダから右にそのコードを移動します。

utmパラメータの値が表示されます

関連する問題