2014-02-27 42 views
2

我使用piwik來跟蹤我的網頁訪問,它工作正常。 我只是說我的網頁上這段代碼的JavaScript:piwik setCustomVariable不工作

var _paq = _paq || []; 
     _paq.push(['trackPageView']); 
     _paq.push(['enableLinkTracking']); 
     (function() { 
     var u=(("https:" == document.location.protocol) ? "https" : "http") + "mypiwiklink"; 
     _paq.push(['setTrackerUrl', u+'piwik.php']); 
     _paq.push(['setSiteId', 1]); 
     var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; 
     g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); 
     })(); 
     // end piwik track code 

此代碼有沒有問題。這是標準。 現在我想添加一個自定義變量,用於跟蹤頁面上特定功能的每個調用。 所以函數的代碼裏面,我說:

var selectTableRowHandler = function() { 

     // function code 

     //piwik code inside the function code: 

           var _paq = _paq || []; 
           _paq.push(['setCustomVariable', 
            1, 
            "Visitor", 
            "myfile", 
            "page" 
            ]); 
            _paq.push(['trackPageView']); 
            _paq.push(['enableLinkTracking']); 
            (function() { 
            var u=(("https:" == document.location.protocol) ? "https" : "http") + "mypiwiklink"; 
            _paq.push(['setTrackerUrl', u+'piwik.php']); 
            _paq.push(['setSiteId', 1]); 
            var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0]; g.type='text/javascript'; 
            g.defer=true; g.async=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s); 
            })(); 


// end of function code here 

} 

當我調試,我看到的代碼是沒有錯誤執行,但我看不到任何自定義的儀表板piwik添加varibales。 我在做什麼錯? 謝謝!

+1

你試過了嗎?var _paq = _paq || [];'在函數之外,我不確定,但我認爲它需要與piwik.js –

+0

相同的範圍內......你有沒有在請求中看到'_cvars' GET參數?我建議使用Firebug和'Net'功能。看看從你的機器發送給piwik的請求。對於Piwik的direkt響應以及它看到的內容,可以將piwik請求的位置複製到新選項卡中,在GET參數中的某處添加'debug = 1'並執行它。首先,不要忘記在'path/to/piwik/public/config/config.ini.php'中的某個地方添加'[Tracker] \ r debug_on_demand = 1',您將得到調試輸出。 – atripes

回答

1

函數內部應使用window._paq而不是_paq

+0

這不提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 – Fizzix

+0

我認爲它的確如此。 – quba