首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在内容脚本的JS文件中使用另一个JS文件

如何在内容脚本的JS文件中使用另一个JS文件
EN

Stack Overflow用户
提问于 2021-12-15 06:13:45
回答 2查看 369关注 0票数 0

我在manifest.json中定义了一个内容脚本如下:

代码语言:javascript
运行
复制
    "content_scripts": [
        {
            "matches": [
                "https://*/*"
            ],
            "js": [
                "cs.js"
            ]
        }
    ]

cs.js中,我想作为模块加载另一个JS (mark.js):

代码语言:javascript
运行
复制
// cs.js
import Mark from './lib/mark.es6.min.js'
window.onload = (event) => {
  console.log(Mark)
}

当我访问任何页面时,控制台中都会出现错误。

代码语言:javascript
运行
复制
Uncaught SyntaxError: Cannot use import statement outside a module

目录结构如下所示:

代码语言:javascript
运行
复制
manifest.json
cs.js
lib/mark.es6.min.js

加载mark.js以便在我的内容脚本中使用的最佳方式是什么?

EN

回答 2

Stack Overflow用户

发布于 2021-12-15 06:37:30

不完全是您所要求的,但请注意,您可以从背景页面生成不同的脚本:

代码语言:javascript
运行
复制
chrome.tabs.executeScript(tabId, {
  file: "./content_scripts/script1.js",
});

chrome.tabs.executeScript(tabId, {
  file: "./content_scripts/script2.js",
});

然后,在script1.js中声明的函数可以在script2.js中使用

票数 0
EN

Stack Overflow用户

发布于 2021-12-18 03:59:04

感谢1j01沃克松尼古拉-西蒙蒂的好建议(分别是我可以在Chrome扩展的不同部分之间共享代码吗?如何在Chrome扩展的内容脚本中导入ES6模块https://stackoverflow.com/a/70359345/725306 )。

最后,我只将content_scripts用作:

代码语言:javascript
运行
复制
    "content_scripts": [
        {
            "matches": [
                "https://*/*"
            ],
            "js": [
                "lib/mark.es6.min.js",
                "cs.js"
            ]
        }
    ]

然后在我的cs.js中使用它

代码语言:javascript
运行
复制
// cs.js
window.onload = (event) => {
  console.log(Mark)
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70359140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档