要約:
コンテンツスクリプトの使い方を誤解しました。そして、それはこの問題につながります。これがGoogleの公式ドキュメントからの引用です:
実行環境
コンテンツスクリプトは、孤立した世界と呼ばれる特別な環境で実行されます。挿入されたページのDOMにはアクセスできますが、ページによって作成されたJavaScript変数や関数にはアクセスできません。各コンテンツスクリプトは、実行中のページで他のJavaScriptが実行されていないように見えます。同じことが逆にも当てはまります。ページで実行されているJavaScriptは、コンテンツスクリプトで定義された関数を呼び出したり、変数にアクセスしたりすることはできません。
詳細: GoogleAnalyticsによるコンテンツスクリプトの追跡
-
Chrome拡張機能にトラッキングコードを追加しています。しかし、テストすると、_gaq.pushは番号3を返します。テストしたところ、拡張子で_gaq.pushを呼び出すと、番号が増え続けることがわかりました。しかし、コンソールで呼び出すと、すべて問題ありません(すべて同じコード)。
このエラーをより深く追跡するにはどうすればよいでしょうか。
すべての回答をありがとうございました!
アップデート:
_gaqの戻り値をトレースすると、それはまだ配列です。つまり、ga.jsがロードされていないということですよね?
しかし、ga.jsが私のスクリプトにロードされていないようです。コンソールに手動で_gaqと入力しない限り、それはオブジェクトです。これは非常に奇妙です。
DOMを確認したところ、タグがすでに追加されていることがわかりました。
ネットワークパネルを確認したところ、ga.jsがキューにまったくロードされていないことがわかりました。しかし、なぜコンソールを使用して_gaqオブジェクトにアクセスできるのでしょうか。
UPDATE2:
console.logを使用して「window._gaq」の値を追跡しましたが、console.log(window._gaq)の戻り値は、コンソールに「window._gaq」と直接入力する場合とは異なります。それは完全に2つの異なるオブジェクトです。setInterval関数を使用して結果をログに記録すると、期待されるオブジェクトではなく、配列が返され続けます。