当然,这个问题太疯狂了,但我找不到任何解决方案。
我的代码详情:
的manifest.json
"content_scripts": [{
"js": [ "ct.js" ],
"matches": [ "<all_urls>" ]
}],
"permissions": [ "management","storage","proxy", "*://*/*" ],
ct.js
chrome.management.onInstalled.addListener(function (info) {
console.info(info);
});
chrome.management.onEnabled.addListener(function (info) {
console.info(info);
});
我在控制台
中收到错误结果ct.js:58 Uncaught TypeError: Cannot read property 'onInstalled' of undefined
我在控制台
中记录chrome
变量
{
app: Object
csi: function()
loadTimes: function()
runtime: Object
webstore: Object
__proto__: Object
}
我从2天前就被困住了。对我的任何帮助对我的生活都有很大的帮助。
抱歉我的英语不好。谢谢观看。
答案 0 :(得分:2)
您无法使用chrome.management.*
API(或者就此而言,chrome.runtime.onInstalled
事件)from a content script;这是一个不太特权的背景。
但是,内容脚本有一些限制。他们不能:
- 使用chrome。* API,但以下情况除外:
- 扩展名(getURL,inIncognitoContext,lastError,onRequest,sendRequest)
- I18N
- 运行时(connect,getManifest,getURL,id,onConnect,onMessage,sendMessage)
- 存储
您需要有background或event脚本才能为您处理。如果您需要对其做出反应,或者从内容脚本中启动某些内容,那么带有背景的messaging就是答案。