Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/450.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌标签管理器点击事件未向家长弹出_Javascript_Google Analytics_Google Tag Manager - Fatal编程技术网

Javascript 谷歌标签管理器点击事件未向家长弹出

Javascript 谷歌标签管理器点击事件未向家长弹出,javascript,google-analytics,google-tag-manager,Javascript,Google Analytics,Google Tag Manager,我正在一个客户的网站上设置谷歌标签管理器,但我在启动点击事件标签时遇到了麻烦 我已将触发器设置为在按钮的CSS选择器上触发 按钮本身有一些子元素,包括svg图标。单击svg时,单击会在数据层中注册,但不会触发标记。标记仅在我选择按钮本身时激发 我还尝试在我自己的脚本中删除附加到这些按钮的事件侦听器,以防返回false或e.stopPropagation()阻止了它,但这并没有改变任何事情 我的理解是,GTM侦听文档中出现的点击事件。如果是这种情况,我的标签应该在点击孩子时触发,对吗?还是我误解了

我正在一个客户的网站上设置谷歌标签管理器,但我在启动点击事件标签时遇到了麻烦

我已将触发器设置为在按钮的CSS选择器上触发

按钮本身有一些子元素,包括svg图标。单击svg时,单击会在数据层中注册,但不会触发标记。标记仅在我选择按钮本身时激发

我还尝试在我自己的脚本中删除附加到这些按钮的事件侦听器,以防
返回false
e.stopPropagation()
阻止了它,但这并没有改变任何事情

我的理解是,GTM侦听文档中出现的点击事件。如果是这种情况,我的标签应该在点击孩子时触发,对吗?还是我误解了什么

或者,我是否应该在脚本中将事件推送到数据层,而不是使用单击触发器

10 gtm。单击
正确触发标记

9 gtm.click
是没有


最后一个屏幕截图是我的触发器的触发规则。

我经常遇到这种类型的问题。这种情况也发生在glyph图标之类的
标记上。只需添加CSS
指针事件:无到该SVG(除非您要求该SVG是可单击的,而不仅仅是父元素)。SVG上的
指针事件:none
意味着当单击它时,单击事件会在父元素上注册

最好的方法是让客户端开发人员添加JS。更黑客的方法是通过GTM在自定义HTML标记中运行类似的东西


jQuery('a.link-youre-tracking svg').css('pointer-events','none)

使用的解决方案/想法:

pointer-events:none
但是当你有一个复杂的div(里面有20个类和15个元素)并且你用一个链接


如前所述,“Just Links”触发器将冒泡到父级
以获取更多信息。

您的目标标记类型是什么?它是一个锚,还是一个div或按钮或其他东西?您是如何配置单击触发器的?它是在所有点击时触发还是仅仅在链接时触发?目标元素是一个div。点击触发器是为所有点击设置的,带有一个“click element”过滤器以匹配CSS选择器。好的,我想我在他们的列表中找到了答案。我需要将目标更改为锚点,然后将触发器更改为“仅链接”。“所有元素”将冒泡出子信息,而“仅链接”将提供父锚点信息。是的,这是正确的,如果您对非锚点元素使用“所有链接”启用码,您还可以使用自定义JS变量执行其他操作。非常好。这就是GTM成为
GTM的原因。单击我的
场景的直接父级
,这类似于包装
svg
等。我有
内容。Chrome认为我点击了
,但FF认为我点击了
<代码>指针事件:无点击
tad解决这个问题,所有浏览器现在都认为我点击了
我相信如果GTM设置为跟踪该触发器的“仅链接”,它将冒泡到
@slothluvchunk不幸的是,它没有。我刚刚尝试过,链接点击没有被触发:-有趣-我在大量触发器上使用此解决方案,关闭指针事件允许我跟踪触发所基于的
,而不是实际点击的元素。你的触发器是通过CSS选择器过滤的吗?这方面的一个例子是音频播放器,其中我跟踪单击以播放/暂停图标,但希望根据实际的
的CSS选择器触发,而不是实际被单击的
svg
,它的单击区域非常小/不一致。
<a class="track-this-click-by-gtm" href="url">
  <div style="pointer-events:none">
    extra unwanted div
    <i></i>
    <p>hello</p>
    <ul><li>hello2</li></ul>
    <date>2019</date>
    lorem
  </div>
</a>