javascript - 我可以将 Google Analytics 添加到没有 popup.html 的 Chrome 扩展程序吗?

标签 javascript google-chrome google-chrome-extension google-analytics

我的 Chrome 扩展程序正在识别特定选项卡的 URL,然后在单击图标时修改该事件选项卡的内容。 我想以某种方式衡量它的用法。这是扩展的逻辑:

- manifest.json [injecting jquery & jquery plugin]
- background.js [ on extension's icon click, it executes content_script.js and tracking.js]
- icon
- content_script.js [ it modifies page content ]
- tracking.js (GA code, as provided by google Analytics then modified according to https://davidsimpson.me/2014/05/27/add-googles-universal-analytics-tracking-chrome-extension/ );
<小时/>

我想看看扩展程序的按钮被点击了多少次。我尝试向manifest.json添加适当的权限:

  "content_security_policy": "script-src 'self' https://www.google-analytics.com; object-src 'self'"

并将 Analytics 代码添加到单独的 .js 文件 (tracking.js),并在单击扩展程序的图标时执行它,如下面的 background.js 中所指定:

chrome.browserAction.onCLicked.addListener(
function(tab) {
chrome.tabs.executeScript(null, {file:
"content_script.js"});
chrome.tabs.executeScript(null, {file:
"tracking.js"});
});

..它不起作用,因为 Google Analytics 告诉我“未安装跟踪”,而且我想不出另一种添加它的方法。

如何查看此扩展程序的使用情况?

最佳答案

您想要做的是将跟踪作为内容脚本注入(inject)到选项卡中。

通过添加另一个 <script> 来进行跟踪。标记到页面中,这会将其从您的 content script's isolated context 中踢出并进入页面的上下文。这就是为什么您的脚本看不到启用的跟踪(并且您可能也破坏了页面自己的跟踪)。

您需要在后台页面安装跟踪代码并从那里发送事件。为此,只需包含 tracking.js到后台脚本列表;之后,以通常的GA方式发送事件。

关于javascript - 我可以将 Google Analytics 添加到没有 popup.html 的 Chrome 扩展程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29865334/

相关文章:

javascript - 改变 `this.state` 然后立即调用 `setState` 如何中断?

javascript - 如何选择这个 Jquery

html - Safari 不承认 "required"属性。如何解决?

javascript - Chrome 扩展程序 - content_script.js 未正确加载

javascript - 扩展程序页面中的 Chrome 图标

javascript - JavaScript 中可能存在的 XSS 攻击

Javascript 搜索表并保留找到匹配项的完整表行

javascript - Service Worker 的在线状态

javascript - Chrome 扩展 - popup.html 中的按钮

javascript - 检测一个扩展是否是从另一个扩展安装的