我正在尝试从URL中提取GCLID参数(例如:https://www.example.com?gclid=CjwKCAjwiMj2BRBFEiwAYfTbCjQ-LBlWhBymAH4piPD3FalPCbl24kE7VQ4JtNJ4Jfj8XPE)并将其插入Squarespace隐藏字段中。
理想情况下,我想通过GTM脚本执行此操作,但是我也可以通过站点范围内的页脚代码注入将其直接添加到Squarespace中。所有Squarespace隐藏字段均以前缀“ SQF”开头(在我的情况下,隐藏字段为:SQF_GCLID
我一直在玩这样的游戏:
`<script>
window.Squarespace.onInitialize(Y, function() {
/**
* Get the URL parameters
* source: https://css-tricks.com/snippets/javascript/get-url-variables/
* @param {String} url The URL
* @return {Object} The URL parameters
*/
var getParams = function (url) {
var params = {};
var parser = document.createElement('a');
parser.href = url;
var query = parser.search.substring(1);
var vars = query.split('&');
for (var i=0; i<vars.length; i++) {
var pair = vars[i].split('=');
params[pair[0]] = decodeURIComponent(pair[1]);
}
return params;
};
/**
* Get UTM parameters from the current URL, insert them into correspondingly-named Squarespace form hidden fields.
*/
var params = getParams(window.location.href);
var param;
var paramMatch;
var paramBase;
var formFields;
var i;
for (param in params) {
paramMatch = param.match(/^gclid(.*)/i);
if (!paramMatch) {
continue;
}
paramBase = paramMatch[1];
formFields = document.getElementsByName("SQF_GCLID");
i = formFields.length;
while (i--) {
if (formFields[i]) {
formFields[i].value = params[param];
}
}
}
});
</script>`
基于找到的代码here。
没有其他要传递的参数(仅gclid)。
<script>
window.Squarespace.onInitialize(Y, function() {
/**
* Get the URL parameters
* source: https://css-tricks.com/snippets/javascript/get-url-variables/
* @param {String} url The URL
* @return {Object} The URL parameters
*/
var getParams = function (url) {
var params = {};
var parser = document.createElement('a');
parser.href = url;
var query = parser.search.substring(1);
var vars = query.split('&');
for (var i=0; i<vars.length; i++) {
var pair = vars[i].split('=');
params[pair[0]] = decodeURIComponent(pair[1]);
}
return params;
};
/**
* Get UTM parameters from the current URL, insert them into correspondingly-named Squarespace form hidden fields.
*/
var params = getParams(window.location.href);
var param;
var paramField;
for (param in params) {
paramField = document.getElementsByName("SQF_" + param.toUpperCase())[0];
if (paramField) {
paramField.value = params[param];
}
}
});
</script>