使用chrome.tabs.captureVisibleTab的屏幕截图

Chr*_*son 4 javascript google-chrome-extension

我正在尝试使用chrome.tabs.captureVisibleTab捕获页面的可见区域.以下是拨打电话的代码:

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) {
    if (request.name == 'screenshot') {
        chrome.tabs.captureVisibleTab(null, null, function(dataUrl) {
            sendResponse({ screenshotUrl: dataUrl });
        });
    }
});
Run Code Online (Sandbox Code Playgroud)

但是当我尝试捕获选项卡时,我收到此错误:

运行tabs.captureVisibleTab时未经检查的runtime.lastError:'activeTab'权限无效,因为尚未调用此扩展.

这是我的清单文件:

   {
  "manifest_version": 2,

  "name": "Empathy",
  "version": "0.1",

  "description": "Simulate accessibility issues for websites.",

  "browser_action": {
    "default_icon": "empathy19.png",
    "default_title": "Empathy!"
  },

  "permissions": [
    "activeTab",
    "contextMenus",
    "desktopCapture",
    "tabCapture",
    "tts" // Text-to-speech
  ],

  "background":   {
    "scripts": [
      "boot.js"
    ],
    "persistent": false
  },

  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "js": [
        "src/helpers.js",
        "src/colorblindness.js",
        "lib/colorvision.js",
        "lib/html2canvas.js"
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)
  • 我有活动的标签权限
  • 该调用是通过后台脚本进行的
  • 我很匹配 <all_urls>

为什么我会收到这个错误?

Chr*_*son 5

有些东西可以说<all_urls>是匹配的东西,但我遗漏的是<all_urls> 许可.我添加权限后,它工作.