将内容脚本注入Chrome选项卡(清单V3)时出现问题

a1o7rhls  于 2023-01-10  发布在  Go
关注(0)|答案(1)|浏览(308)

我正在构建一个Chrome扩展,它需要检测用户在录制会话期间切换到或打开的任何选项卡上的DOM事件(点击、鼠标悬停等)。最合适的方法似乎是使用scripting API注入一个脚本,该脚本设置适当的事件侦听器,并可以将消息发送回chrome.runtime API以收集数据。
但是,我无法成功地注入内容脚本。我的项目是Vue3 + Vite + Manifest V3 Chrome扩展,在我的background.js中,在我正在执行的相应chrome.tabs侦听器上:

chrome.scripting.executeScript({
    target: { tabId },
    files: ['src/content_scripts/events.js']
  });

文档明确指出需要从根目录开始的相对路径,但是无论我如何构造该路径,它都说找不到该文件。
我收到的确切错误是:

Uncaught (in promise) Error: Could not load file: 'src/content_scripts/events.js'.

另外,我的manifest.js文件是:

{
  "manifest_version": 3,
  "name": "walkthrough.ai capturer",
  "version": "1.0.0",
  "icons": {
    "16": "icons/icon16.png",
    "32": "icons/icon32.png",
    "48": "icons/icon48.png",
    "128": "icons/icon128x128.png"
  },
  "permissions": [
    "desktopCapture",
    "tabCapture",
    "scripting",
    "activeTab",
    "tabs"
  ],
  "host_permissions": ["https://*/*", "http://*/*"],
  "action": {
    "default_icon": {
      "16": "icons/icon16.png",
      "32": "icons/icon32.png"
    },
    "default_title": "Open Options"
  },
  "background": {
    "service_worker": "src/background/index.js",
    "type": "module"
  }
}

你知道会发生什么吗?
谢谢

y4ekin9u

y4ekin9u1#

在对@wOxxOm的建议做了一些进一步的挖掘之后,我能够弄明白。
内容脚本没有显示在build文件夹中,脚本API在该文件夹中查找它作为相对导入的来源。
为了解决这个问题,我将内容脚本放在/public文件夹中,以便在构建项目时将其放在/dist文件夹中。
暂时管用了谢谢!

相关问题