我正在编写一个 chrome 扩展程序,主要用于学习目的,如果安装了 Google Analytics,它将向我显示 Google Analytics 跟踪 ID (UA-xxxxxx-x)。
我了解我需要使用 sendRequest 到页面中的内容脚本来检索信息,并且已成功实现该功能
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
// analytics request check GA and send back
if(request.requestDetail == "analytics") {
console.log(window._gaq);
console.log(window._gaq._getAsyncTracker()._getAccount());
// unknown response, send back nothing!
} else {
sendResponse({});
}
});
侦听器正在接收请求,Google Analytics 肯定安装在我正在测试的网页上,window._gaq 和 window._gaq._getAsyncTracker()._getAccount() 都可以通过控制台访问并返回我所期望的。
为什么通过监听器访问时 window._gaq 未定义?我应该如何从 chrome 扩展程序访问它?
我知道这是出于安全原因,因此还尝试修改清单以包含以下内容,但仍然没有运气
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
我想第二个问题是:
是我试图以我使用的方式实现的可能吗(我已经设法在页面内容上使用正则表达式匹配获得了类似的结果,但想直接访问对象)