javascript - 如何在 GTM 中使用自定义变量
问题描述
仅当页面包含特定图像名称时,我才使用 GTM 触发 Google Analytics。为此,我将用户定义变量用作 mll_banner 并在其中使用了自定义 javascript。我的自定义javascript如下。
function () {
var mllBanner = document.querySelectorAll('[class="p-panel p-p-b-lg position-left-top style-repeatx"]')[0].style.backgroundImage;
if (mllBanner === "url(\"/clientimg/schneider-electric/LOResource/a23d051e-55ca-4b40-88a7-90c8768e167d_coverImage.png\")") {
alert("Return is True");
return true;
}
else {
alert("Return is False");
return false;
}
}
如果我将上述代码作为具有正确 JS 函数名称的通用 JS 运行,它可以在浏览器控制台上运行并返回 true 作为值。当我试图在 GTM 中使用它并想要验证它是否可以触发我使用的触发器时,如下所示,
扳机
这既不会触发真也不会触发假,但如果我让它不等于,那么它会同时触发两者。
谁能帮助如何在 GTM 中将 Javascript 用于用户定义的变量并将该变量用于触发器?先感谢您!
解决方案
如果您在页面视图中使用此变量,则它既不是true
,也不是false
,而是undefined
。这是因为您尝试在呈现 DOM 之前访问 DOM 元素的属性(这意味着您的 queryselector 将返回 null,并且 null 没有样式属性)。
我不得不承认这是一个有根据的猜测,并假设一个标准的 GTM 安装(即页面头部的片段),但是你可以进入预览模式并在窗口加载事件中检查变量的值。
我还建议您不要使用查询选择器,而是使用 GTM 的内置 DOM 变量类型,因为这样您就可以独立于函数的其余部分来调试 DOM 元素。
此外,丢失 GTM 内的警报呼叫。
推荐阅读
- java - 错误:找不到方法实现()
- python - 绘图线下方的所有网格线 - 带有双 x 轴 [Matplotlib]
- javascript - React js:图像上传在 CKEditor 中不起作用
- css - 动画反应模态
- arrays - 如何在MATLAB中为数组创建一个减法循环?
- sql - Where 子句 PL/SQL 上的标识符无效
- python - 为什么是“从 CAUSE 中引发异常”,而不是“从 CAUSE 中引发异常”?
- arrays - 检查特殊数组方程的子集总和
- amazon-dynamodb - DynamoDb 从 Node.js 更新项目
- rest - Microsoft Graph:假设 plannerTask.id 和 plannerTaskDetails.id 始终相同是否安全?