我正在构建一个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"
}
}
你知道会发生什么吗?
谢谢
1条答案
按热度按时间y4ekin9u1#
在对@wOxxOm的建议做了一些进一步的挖掘之后,我能够弄明白。
内容脚本没有显示在build文件夹中,脚本API在该文件夹中查找它作为相对导入的来源。
为了解决这个问题,我将内容脚本放在
/public
文件夹中,以便在构建项目时将其放在/dist
文件夹中。暂时管用了谢谢!