我的问题与this question基本相同,但是现在6年过去了,似乎那里的答案对今天的浏览器不起作用。
我已实施Google Analytics增强型电子商务跟踪,其代码与this snippet非常相似。该片段为hitCallback函数(异步调用)中的document.location分配了一个新URL。
问题是,在用户进入新页面后,他们的浏览器历史记录不包含上一页,相反,如果他们点击“返回”,他们将返回两页。
我在Chrome和IE9中看到了这个问题。我没有在Firefox中看到它。
我尝试了workaround of using setTimeout in the callback function,但Chrome没有任何区别。
以下是相关代码:
$(document).on('click', 'a.product', function() {
ga('ec:addProduct', {
'id': $(this).data('ean'),
// a few more values, omitted for brevity
});
ga('ec:setAction', 'click', {list: 'Search results'});
var href = $(this).attr('href');
// Send click with an event, then send user to product page.
ga('send', 'event', 'UX', 'click', 'Results', {
hitCallback: function() {
document.location = href; // this line is the problem
}
});
return false;
});
修改 我的页面有很多大图像,我刚刚发现这个问题只发生在用户在所有图像加载完成之前点击产品时。
答案 0 :(得分:0)
我发现只有当用户在所有图片加载完成之前点击产品时才会出现此问题。所以我让图像变得很懒,这应该会大大降低客户遇到这个问题的几率。