无法将任何Chrome API用于收听活动

时间:2016-08-25 08:09:50

标签: javascript google-chrome-extension google-chrome-devtools

当然,这个问题太疯狂了,但我找不到任何解决方案。

我的代码详情:

的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天前就被困住了。对我的任何帮助对我的生活都有很大的帮助。

抱歉我的英语不好。谢谢观看。

1 个答案:

答案 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)
    •   
    • 存储
    •   
  •   

您需要有backgroundevent脚本才能为您处理。如果您需要对其做出反应,或者从内容脚本中启动某些内容,那么带有背景的messaging就是答案。