gpt4 book ai didi

javascript - Google Analytics 会干扰 Android 浏览器中的 history.back() 吗?

转载 作者:太空狗 更新时间:2023-10-29 14:18:26 27 4
gpt4 key购买 nike

我有一个 html5 移动应用程序,其中所有内容都在一个页面上,我使用 history.back/popstate/etc 来更改页面的内容(通过 jQuery Mobile)。我正在使用 Google Analytics 跟踪各种事件,并在一个页面上跟踪用户是否通过特定按钮退出:

$('#my-back-button').bind('tap', function() {
_gaq.push(['_trackEvent', 'mycategory', 'myaction']);
history.back();
return false;
});

在 android 2.2 浏览器中 history.back() 被调用但 onpopstate 没有被触发并且页面没有改变。如果我把 window.onpopstate = function() { alert("!"); }; 就在 history.back() 之前,我没有看到任何警报。

如果我颠倒这两行(首先是 history.back(),然后是 _gaq.push),它似乎可以工作,但我不能在我的代码中依赖这种顺序。

没有抛出异常。它在 iOS 和桌面版 Chrome 中运行良好。

为什么 history.back() 在谷歌分析调用后不起作用?有什么想法吗?

最佳答案

尝试将对 _gaq.push() 的调用包装在 0 的异步超时中:

$('#my-back-button').bind('tap', function() {
setTimeout(function() {
_gaq.push(['_trackEvent', 'mycategory', 'myaction']);
}, 0);
history.back();
return false;
});

这将允许 history.back() 在 Google Analytics 可能影响历史堆栈之前首先执行。

关于javascript - Google Analytics 会干扰 Android 浏览器中的 history.back() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8102392/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com