总结:
我误解了内容脚本的用法。这导致了这个问题。以下是谷歌官方文档的引用:
执行环境
内容脚本在称为孤立世界的特殊环境中执行。他们可以访问被注入页面的 DOM,但不能访问页面创建的任何 JavaScript 变量或函数。它查看每个内容脚本,就好像它正在运行的页面上没有执行其他 JavaScript。反过来也是如此:在页面上运行的 JavaScript 不能调用任何函数或访问由内容脚本定义的任何变量。
更多详细信息: 使用 Google Analytics 进行内容脚本跟踪
--
我正在将一些跟踪代码添加到 Chrome 扩展程序中。但是当我测试它时,_gaq.push 返回数字 3。当我测试时,我想如果我在扩展程序中调用 _gaq.push,这个数字会继续上升。但是当我在控制台中调用它时,一切都很好(所有相同的代码)。
我想知道如何才能更深入地跟踪此错误?
非常感谢每一个答案!
更新:
当我跟踪_gaq的返回值时,它仍然是一个数组。这意味着 ga.js 没有加载,对吧?
但似乎 ga.js 从未加载到我的脚本中。除非我在控制台中手动键入 _gaq,否则它是一个对象。这很奇怪。
我检查了 DOM,发现标签已经添加了。
我查看了网络面板,发现队列中根本没有加载 ga.js。但是为什么我仍然可以使用控制台访问 _gaq 对象?
更新2:
我使用console.log跟踪“window._gaq”的值,发现console.log(window._gaq)的返回值与直接在控制台输入“window._gaq”不同。这完全是两个不同的对象。我什至使用 setInterval 函数来记录结果,它一直返回数组,而不是预期的对象。