2011-12-25 117 views
2

如何從不包含HTML的.js文件運行Google Analytic的片段?隨着不存在HTML我收到的控制檯錯誤:沒有HTML頁面的Google Analytics(分析)

Uncaught TypeError: Cannot read property 'parentNode' of undefined 

澄清 很抱歉,這是一個非常不清晰的問題。我創建了一個Chrome擴展程序,該擴展程序沒有實際的頁面,而是插入腳本以在聲明的網頁上運行。我希望谷歌分析公司能夠記錄劇本使用的時間。我的解決方案如下。

+0

爲什麼你需要谷歌分析哪裏有頁面上沒有頁/內容?你能澄清你到底在使用js文件嗎?一些代碼會有所幫助。 – Virendra 2011-12-25 07:26:26

+0

你好,你可以發佈你的代碼?或者說明您目前如何在.js文件中使用Google Analytics? – Xavi 2011-12-25 07:28:26

回答

3

問題是沒有頁面元素,因爲腳本正在被注入。

這裏是修復:

window.onload = function() { 

    var head = document.getElementsByTagName("head")[0]; 

    var code = document.createElement('script'); 
    code.text = "var _gaq = _gaq || [];\n_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);\n_gaq.push(['_trackPageview']);"; 

    var ga = document.createElement('script'); 
    ga.type = 'text/javascript'; 
    ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 

    var s = document.getElementsByTagName('script')[0]; 

    head.appendChild(code); 
    code.parentNode.insertBefore(ga, s); 
}; 
0

我假設你要註冊在谷歌Analytics(分析)網頁瀏覽時,你不必在HTML控件...

如果是這樣,這個小片的文檔提供了有關這個安靜一點的信息:http://code.google.com/apis/analytics/docs/tracking/asyncUsageGuide.html

這是允許遠程腳本被加載並調用的函數:

function() { 
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
} 

這是告訴分析來跟蹤功能:

_gaq.push(...); 

這將創建一個異步腳本元素,該元素將加載所有分析代碼。任何推到_gaq陣列上的東西都會被分析處理。從那裏開始,由您決定推動該陣列。也許這會幫助你:http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gaq.html

相關問題