当前位置: 首页 > 知识库问答 >
问题:

自定义javascript值不更新在谷歌标签管理器

轩辕晔
2023-03-14

我在GTM中创建了一个自定义JavaScript变量,用于在弹出表单上拉出表单标题。

我使用元素可见性和CSS选择器来识别表单。

这是一个有多个表单的页面,所以我不想有多个标签和触发器,我想在一个页面上完成它,然后动态地改变它。

因此,CJS是:

function() {
return  document.querySelector ('div._form-title').innerText
}

当在控制台中测试时,它工作得很好,但是当我在Google Tag Manager的预览模式下测试它时,第一个工作得很好,但是如果我打开任何其他表单,以前的值会再次显示在新标记中。

好像它拿不到最近的一个。

标记在元素可见上被触发,并观察DOM变化,所以我认为CJS变量会再次为更新的值运行,但事实并非如此。

有什么想法吗?

否则,在自动通过的变量中,当弹出窗口加载时,“单击文本”作为整个表单文本通过。

因此,另一种方法是返回click文本,但要缩短它-您知道如何返回“click text”变量的前25个字符吗?

提前感谢:)

共有1个答案

巫马修为
2023-03-14

在具有多个表单(或与选择器匹配的多个元素)的页面上,这将始终返回第一个匹配项。这正是该文件的特点。querySelector可以工作,而不是GTM特有的(也不要使用自定义HTML来获取DOM节点,使用内置的DOM变量类型-这避免了使用eval,这有利于安全性和性能,并允许使用更严格的内容安全策略(如果这是您的问题)。

如果你说使用点击文本是一个可行的选择,你不需要缩短它(你可以在一个自定义的Javascript变量中这样做,该变量返回{{点击文本}}变量的子字符串,但是因为你不必键入点击文本在任何地方这似乎是不必要的),只需在触发过滤器中使用以条件开头的并匹配前25个字符:

 类似资料:
  • 我想做的是输出基于值的自定义超文本标记语言,这些值是在我的网页上使用谷歌标签管理器确定的,但问题是我不能让我的“自定义超文本标记语言”标签在GTM中在我的网页上开火。标记、宏和规则是专门指GTM中的标记、宏和规则。标签是你希望GTM输出到你的网页上的东西,当这些标签被触发时,规则控制着,宏本质上是可以在标签和规则中使用的变量。我相信那个 将宏(在GTM中创建)设置为等于5。对于宏集,我可以在触发规

  • 我正在实施谷歌标签管理器为Android应用程序V4由我的营销团队要求为未来使用,我从来没有在GTM网站,所以我在这方面很天真。 我已经根据官方网站上的说明创建了帐户、容器和标签。我已经将tag manager与google analytics tracking id链接。我已经根据网站上的说明在我的应用程序中编写了代码,并将容器下载到原始文件夹中。 当我运行我的应用程序时,它会在logcat中给

  • 我正在尝试学习如何在一个新网站上整合谷歌分析和定制事件跟踪。在研究它之后,我似乎无法理解Google Tag Manager和仅仅编写自定义事件跟踪代码之间的区别和关系。 Google Tag Manager是否只是一种更简单的跟踪信息的方法,而无需编写JS?

  • 我有一个关于谷歌标签管理器的问题。我正在使用一个带有以下触发器的自定义html标记- 触发标记后,我希望阻止链接打开,因为a包含href=“some url”。我在想唯一的方法就是使用事件。preventDefault()。然而,它一直告诉我事件是未定义的。 非常感谢你。

  • 我有一个按钮,它有填充,但它是在一个跨度标签包装。我正在使用作为谷歌标签管理器中的触发器。 因此,如果我现在在DOM中单击span而不是按钮元素,那么span是它是被单击的元素,所以现在它不会得到id="gtm-id",因为它不是被单击的元素。 如何让谷歌标签管理器冒泡并从它的包装父元素中获取数据?

  • 我正在尝试做一个简单的标记,用于测量元素被单击的次数。 我遇到了困难,所以我想找一个视频来帮助我,因为标签管理器的布局已经改变了。 我在Udemy上遵循以下免费教程 https://www.udemy.com/google-tag-manager-advanced/ 特别是第8章按钮点击——这是一个免费的章节。它告诉我设置以下选项: 标签配置: 谷歌分析

跟踪ID:{{Tracking ID}}