自定义 javascript 变量 GTM 中的解析错误
Parse error in custom javascript variable GTM
如何基于 2 个独立的当前变量创建新变量。主要条件是检查数组或小部件选择器是否存在,然后return它的值:
function() {
var array = Array.prototype.slice.apply(document.querySelectorAll("div.widget-message.active.active-target a"));
var length = array.length;
var x = array.map(function(cn, index) {
var nameId = cn.href.split("?")[0].split("/").slice(-1)[0].replace("-", " ");
var urlParams = {{cjs - utility - url params}}(cn.href);
var name = urlParams.promo_name;
var creative = urlParams.promo_content;
return {
"name": "Widget - Personal - " + name,
"id": "Widget - Personal - " + nameId + "-" + index,
"position": "" + (index + 1) + "/" + length,
"creative" : creative,
"metric3": 1
}
});
return {
'ecommerce': {
'promoView': {
'promotions': x
}
}
}
}
第二个是
function() {
var array = document.querySelector('[class="btn-new btn-fullwidth popup-trigger"]');
return {
'ecommerce': {
'promoView': {
"name": "Widget - Personal - " + array.dataset.targetId
}
}};
}
可以通过检查第一个选择器的结果中的 array.length
来组合这两个函数。
function() {
var array = Array.prototype.slice.apply(document.querySelectorAll("div.widget-message.active.active-target a"));
var x = array.map(function(cn, index) {
var nameId = cn.href.split("?")[0].split("/").slice(-1)[0].replace("-", " ");
var urlParams = {{cjs - utility - url params}}(cn.href);
return {
"name": "Widget - Personal - " + urlParams.promo_name,
"id": "Widget - Personal - " + nameId + "-" + index,
"position": "" + (index + 1) + "/" + array.length,
"creative" : urlParams.promo_content,
"metric3": 1
}
});
if (array.length > 0) {
return {
'ecommerce': {
'promoView': {
'promotions': x
}
}
}
}
array = document.querySelector('[class="btn-new btn-fullwidth popup-trigger"]');
return {
'ecommerce': {
'promoView': {
"name": "Widget - Personal - " + array.dataset.targetId
}
}
};
}
查看 array.length > 0
。如果找到该选择器,它将 return 使用 x
的促销。否则代码继续并找到另一个选择器。
如何基于 2 个独立的当前变量创建新变量。主要条件是检查数组或小部件选择器是否存在,然后return它的值:
function() {
var array = Array.prototype.slice.apply(document.querySelectorAll("div.widget-message.active.active-target a"));
var length = array.length;
var x = array.map(function(cn, index) {
var nameId = cn.href.split("?")[0].split("/").slice(-1)[0].replace("-", " ");
var urlParams = {{cjs - utility - url params}}(cn.href);
var name = urlParams.promo_name;
var creative = urlParams.promo_content;
return {
"name": "Widget - Personal - " + name,
"id": "Widget - Personal - " + nameId + "-" + index,
"position": "" + (index + 1) + "/" + length,
"creative" : creative,
"metric3": 1
}
});
return {
'ecommerce': {
'promoView': {
'promotions': x
}
}
}
}
第二个是
function() {
var array = document.querySelector('[class="btn-new btn-fullwidth popup-trigger"]');
return {
'ecommerce': {
'promoView': {
"name": "Widget - Personal - " + array.dataset.targetId
}
}};
}
可以通过检查第一个选择器的结果中的 array.length
来组合这两个函数。
function() {
var array = Array.prototype.slice.apply(document.querySelectorAll("div.widget-message.active.active-target a"));
var x = array.map(function(cn, index) {
var nameId = cn.href.split("?")[0].split("/").slice(-1)[0].replace("-", " ");
var urlParams = {{cjs - utility - url params}}(cn.href);
return {
"name": "Widget - Personal - " + urlParams.promo_name,
"id": "Widget - Personal - " + nameId + "-" + index,
"position": "" + (index + 1) + "/" + array.length,
"creative" : urlParams.promo_content,
"metric3": 1
}
});
if (array.length > 0) {
return {
'ecommerce': {
'promoView': {
'promotions': x
}
}
}
}
array = document.querySelector('[class="btn-new btn-fullwidth popup-trigger"]');
return {
'ecommerce': {
'promoView': {
"name": "Widget - Personal - " + array.dataset.targetId
}
}
};
}
查看 array.length > 0
。如果找到该选择器,它将 return 使用 x
的促销。否则代码继续并找到另一个选择器。