我是GTM的新手,试图创建一个自定义的JavaScript变量来返回一个动作/事件是否在网站的页脚或主体中。我想用它来区分GTM中的触发器,如链接点击/表单提交等。
自定义javascript变量代码:
function() {
var e = {{Form Element}};
return e[0].indexOf("#footer");
}
在表单提交时,在数据层中显示为undefined:
但如果我把.indexOf("#footer")
拿掉
function() {
var e = {{Form Element}};
return e[0];
}
它在数据层中显示为:
所以我不知道为什么.indexOf()
不工作,但如果我尝试在GTM中将触发器更改为我们的contains "#footer"
逻辑,则不匹配。
我可能做错了很多事情,但我甚至不知道足够的GTM知道该问什么问题。
请帮帮我
1条答案
按热度按时间7rtdyuoh1#
e[0]
不是一个字符串,而是一个HTMLInputElement
。转换为字符串只由UI完成,而且,据我所知,不是标准的。如果你想检查一个元素是否包含在另一个元素的子树中,使用
.contains()
:您可能需要将
'footer'
替换为'footer-router'
或类似的东西,因为在元素的路径中实际上看不到#footer
本身。我还将
e[0]
更改为e
,因为表单的第一个输入元素和表单本身将位于同一个子树中,即使表单本身的ID为footer
。