Durandal谷歌分析跟踪

Durandal Google Analtyics Tracking

本文关键字:跟踪 谷歌 Durandal      更新时间:2023-09-26

我正在使用Durandal 1.2和Durandal路由器插件,并希望通过谷歌分析跟踪SPA中的页面浏览量:window._gaq.push(['_trackPageview', location.pathname + location.search + location.hash]

我知道我可以监听hashchange事件,甚至可以通过Sammy hook into。鉴于Durandal目前正在被重写,以消除对Sammy的依赖,我宁愿不这样做。

我的问题是,有没有一种方法来设置使用Durandal路由器插件?

查看路由器中的onNavigationComplete。你可以覆盖它来做你的分析:

// Store reference to router's onNavigationComplete so you can call it
var onNavigationComplete = router.onNavigationComplete;
router.onNavigationComplete = function (routeInfo, params, module) {
    // Run the default onNavigationComplete
    onNavigationComplete.call(this, routeInfo, params, module);
    // Analytics!
    window._gaq.push(['_trackPageview', location.pathname + location.search + location.hash]
};

显然,您需要在应用程序生命周期早期的某个地方这样做,例如在您的main.js中。

您还可以附加到navigation complete事件,这样您就不必存储路由器的原始功能。

//Update anaytics whenever the router navigates
router.on('router:navigation:complete', function(instance, instruction) {
    window._gaq.push(['_trackPageview', instruction.fragment]);
});