我在manifest.json中定义了一个内容脚本如下:
"content_scripts": [
{
"matches": [
"https://*/*"
],
"js": [
"cs.js"
]
}
]在cs.js中,我想作为模块加载另一个JS (mark.js):
// cs.js
import Mark from './lib/mark.es6.min.js'
window.onload = (event) => {
console.log(Mark)
}当我访问任何页面时,控制台中都会出现错误。
Uncaught SyntaxError: Cannot use import statement outside a module目录结构如下所示:
manifest.json
cs.js
lib/mark.es6.min.js加载mark.js以便在我的内容脚本中使用的最佳方式是什么?
发布于 2021-12-15 06:37:30
不完全是您所要求的,但请注意,您可以从背景页面生成不同的脚本:
chrome.tabs.executeScript(tabId, {
file: "./content_scripts/script1.js",
});
chrome.tabs.executeScript(tabId, {
file: "./content_scripts/script2.js",
});然后,在script1.js中声明的函数可以在script2.js中使用
发布于 2021-12-18 03:59:04
感谢1j01、沃克松和尼古拉-西蒙蒂的好建议(分别是我可以在Chrome扩展的不同部分之间共享代码吗?、如何在Chrome扩展的内容脚本中导入ES6模块和https://stackoverflow.com/a/70359345/725306 )。
最后,我只将content_scripts用作:
"content_scripts": [
{
"matches": [
"https://*/*"
],
"js": [
"lib/mark.es6.min.js",
"cs.js"
]
}
]然后在我的cs.js中使用它
// cs.js
window.onload = (event) => {
console.log(Mark)
}https://stackoverflow.com/questions/70359140
复制相似问题