小编Leo*_*eon的帖子

dataLayer.push()肯定会在锚点上触发时向谷歌发送数据吗?

这可能看起来像一个简单的问题,但似乎没有任何我能找到的答案.

我正在编写一个onClick事件处理程序,只需dataLayer.push()在单击锚点时调用.

dataLayer.push()同步操作吗?

是否肯定会发送谷歌的GET请求,即使浏览器已经卸载了请求的页面,因为链接被跟踪?

一些浏览器显示连接被取消,一些显示它成功.

我的问题是,如果计算机速度慢,是否可以在发送请求之前卸载页面?

这就是为什么我假设谷歌开始使用该eventCallback属性在链接被跟踪后重定向用户.例如 https://developers.google.com/tag-manager/enhanced-ecommerce#product-clicks

此源代码不包含单击处理程序,但暗示该onClick事件应停止传播并eventCallback设置该函数document.location.

但是,一旦取消该活动,其所有信息都已消失.

这(在我看来)只是错误的做法.例如(CTRL或COMMAND)+ Click在浏览器上打开一个新选项卡.除非onClick事件处理程序允许prorogation继续,否则这将不起作用.

依赖eventCallback也意味着如果google scrips没有加载其中的一个原因(但仍然不太可能),你的链接不起作用.而且你的网站坏了.

因此,这为onClick事件处理程序提供了正确的方法,以允许事件传播并返回true.

这也意味着dataLayer.push()在发送GET请求之后需要返回以使其中的任何一个正常工作.

代码示例:注意:您将在混合环境中获得混合结果.

<a href="/somewhere-else">Link</a>


$(document).on('click', 'a', function(event) {

    // Is dataLayer.push() guaranteed to fire a GET ?
    // data set externally
    dataLayer.push(data);

    return true;
Run Code Online (Sandbox Code Playgroud)

});

是否有人可以保证GET请求将被解雇到谷歌服务器?

谷歌开发者忘记了什么吗?

编辑:更新标题与问题更相关.

javascript jquery events google-tag-manager

6
推荐指数
1
解决办法
3144
查看次数

标签 统计

events ×1

google-tag-manager ×1

javascript ×1

jquery ×1