我正在使用Durandal 1.2和Durandal Router Plugin,并希望通过Google Analytics(分析)跟踪SPA中的页面浏览量:window._gaq.push(['_trackPageview', location.pathname + location.search + location.hash]
我知道我可以监听hashchange事件,甚至可以通过Sammy挂入。鉴于Durandal当前正在使用rewritten来消除对Sammy的依赖,所以我不愿意这样做。

我的问题是,有没有办法使用Durandal Router Plugin进行设置?

最佳答案

看一下路由器中的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

关于javascript - Durandal Google Analytics(分析)跟踪,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16951388/

10-11 23:33