chrome 扩展:未捕获的类型错误:无法读取未定义的属性(读取“onClicked”)

我一直在创建一个 chrome 扩展,它应该在扩展点击的特定选项卡上运行某个脚本(index.js)。

service_worker.js

// action on extension click
chrome.browserAction.onClicked.addListener(function (tab) {
    chrome.tabs.executeScript({
        tabId: tab.id,
    }, { file: "index.js" });

});

我也试过

chrome.action......

browser....

但没有任何效果,我正在使用清单 v3。

清单.json

{
    "name": "Meet scraper",
    "version": "0.1",
    "author": "Naveenkumar M",
    "description": "Scrapes meet data from meetup.com",
    "manifest_version": 3,
    "permissions": [
        "activeTab",
        "tabs"
    ],
    "background": {
        "service_worker": "service_worker.js"
    }
}

我的 index.js 文件是

console.log("Hello world")

我收到错误 enter image description here

如果我错了,请纠正我

stack overflow chrome extension: Uncaught TypeError: Cannot read properties of undefined (reading 'onClicked')
原文答案
author avatar

接受的答案

清单V2

必须在清单中声明以下键以使用此API。

browser_action

检查此链接以获取更多详细信息

https://developer.chrome.com/docs/extensions/reference/browserAction/

更新1:

清单V3

您需要在清单文件中添加操作

{
  "action": { … }
}

然后你可以这样称呼

chrome.action.onClicked.addListener(tab => { … });

答案:

相关问题