2011-12-25 10 views
2

HTMLを含まない.jsファイルからGoogleアナリティクスのスニペットを実行するにはどうすればよいですか?無HTMLの存在で、私は、コンソールのエラーが表示されます。この は申し訳ありませんHTMLページのないGoogle Analytics

Uncaught TypeError: Cannot read property 'parentNode' of undefined 

解明が非常に不明瞭質問でした。実際のページがなく、宣言されたウェブページで実行されるスクリプトを挿入するChrome拡張機能を作成しました。私は、Googleアナリティクスがスクリプトの使用回数を把握したかったのです。私のソリューションは以下の通りです。

+0

ページにはページ/コンテンツが存在しないところは、Google Analyticsを必要とするのはなぜ? jsファイルを使っている場所を正確に分かりますか?いくつかのコードが役に立ちます。 – Virendra

+0

こんにちは、コードを投稿できますか?または、現在Googleアナリティクスを.jsファイルでどのように使用しているか説明してください。 – Xavi

答えて

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

もしそうなら、私は

...あなたはHTMLを制御することがない場合、Googleアナリティクスのページビューを登録したいと仮定し、ドキュメントのこの小さな作品が、この情報の静かなビットを提供します: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