3

IE7 および IE8 で _gaq is undefined エラーが発生します

私のスクリプトは以下です

<script type="text/javascript">
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-XXXXX']);
    _gaq.push(['_setDomainName', 'yyy.com']);
    _gaq.push(['_trackPageview']); 
    (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);
    })();
</script>

_gaq にデフォルト値を割り当てることはできますか? このリンクを参照してください

4

1 に答える 1

7

私のコメントへの返信に基づいて、この質問に対する答えは

Google アナリティクスは、数年前にイベントを処理するための新しい、より最新の方法に移行しました。これにより、ブラウザーは GA サーバーからの応答を待たずに完全なページを読み込むことができます。<script>以前は、Google から提供されたスニペットをページの最後近く (body の終了タグの直前) に配置するように案内されていましたが、現在は<head>HTML のセクションのどこかにタグを含める必要があります。

新しいスクリプト_gaqは、キューのように扱われる配列として JavaScript 変数を定義することによって機能します。追跡したいページビュー、イベント、その他のものは配列にプッシュされ、事実上瞬時に実行されます。時間があれば、GA コードは配列の内容をチェックしてポップし、配列が空になるまで GA サーバーへの要求を処理します。

変数の副作用として_gaq、script タグは、参照される前に HTML に含まれている必要があります。そうしないと、JS エラーが発生します_gaq is undefined

たとえば、Google アナリティクスのイベント トラッキング ガイドに記載されているように、ユーザーがいつサイトで動画を再生したかを次のように知りたい場合があります。

<a href="#" onClick="_gaq.push(['_trackEvent', 'Videos', 'Play', 'Baby\'s First Birthday']);">Play</a>

ここで変数への参照に注意して_gaqください。まだ定義されていない場合は、エラーが発生します。

簡単な答え: async javascript スニペットを<head>HTML に挿入します。

于 2012-11-16T20:38:21.717 に答える