2013-06-05 101 views
8

我使用迪朗達爾1.2和Durandal Router Plugin和想要跟蹤通過谷歌Analytics(分析)的SPA頁面訪問量: window._gaq.push(['_trackPageview', location.pathname + location.search + location.hash]迪朗達爾谷歌Analytics(分析)跟蹤

我知道我可以聽的hashchange事件,甚至掛接到通過Sammy 。我寧願不這樣做,因爲杜朗達爾目前正在rewritten刪除對薩米的依賴。

我的問題是,有沒有辦法使用Durandal路由器插件進行設置?

回答

5

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

4

您也可以附加到navigation complete事件,以便您不必存儲路由器的原始功能。

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