现在有很多网站使用 pjax, 包括本站也是。本站主题是从 Typecho 的 hansome 主题移植过来的,在移植过程中就遇到了这个问题:
开启 pjax 后百度分析和谷歌分析之统计首次访问的页面,之后的页面都不会统计。
下面来说一下我是如何解决的。
百度分析
在pjax:complete
添加以下回调:
if(typeof _hmt !== "undefined" && typeof _hmt.push === "function") _hmt.push(['_trackPageview',window.location.pathname]);
谷歌分析
谷歌分析似乎有两种,请根据你引用的 js 库修改:
- ga: 使用
https://www.google-analytics.com/analytics.js
- gtag: 使用
https://www.googletagmanager.com/gtag/js?id=UA-*******
ga
在pjax:complete
添加以下回调:
if(typeof ga === "function") ga('send', 'pageview', window.location.href);
gtag
在pjax:complete
添加以下回调(感谢@FGHRSH):
if(typeof gtag === "function") gtag('event', 'pageview', {page_location: window.location.href});