【发布时间】:2017-06-11 22:39:02
【问题描述】:
我正在尝试将输入字段的值设置为来自 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.write();。如果您想测试/调试,请使用console.log();并打开浏览器控制台。也许这篇文章会帮助你理解stackoverflow.com/questions/20273805/… 还有getElementsByName()返回文档中所有元素的集合,具有指定的名称 - NodeList 对象。 -
document.write()不是你想的那样。 -
我放了document.write()只是为了看看参数是否提取成功
标签: javascript variables input-field