如何在可上架Chrome Web Store的MV3打包扩展中运行用户动态JS脚本?
Chrome Extension MV3 打包版实现用户脚本全局注入的可行性
核心结论
直接让扩展动态执行用户输入的任意脚本,无法通过Chrome Web Store审核上架,因为这违反了商店的安全政策,属于高风险行为。
合规的替代实现思路
如果要兼顾需求和上架要求,只能走受限的合规路线:
- 脚本模板化:只允许用户修改预定义模板里的参数(比如DOM选择器、替换文本这类),扩展内部用固定逻辑处理参数,不执行用户写的完整脚本。
- 基于预存脚本+配置:把核心逻辑打包在扩展的预存脚本里,用户输入的内容只作为配置存在
chrome.storage.local中,预存脚本读取配置后执行对应逻辑,全程不动态解析执行用户输入的代码字符串。
为什么直接方案行不通
- 商店政策卡死:Chrome Web Store严禁扩展执行未预先打包在安装包内的任意代码,不管是用
eval、new Function还是远程加载,都会被审核打回。 - MV3本身限制:MV3砍掉了旧版里直接注入字符串代码的API,
chrome.scripting.executeScript只允许注入扩展包内的文件或预定义函数,根本没法直接跑用户输入的代码。
内容的提问来源于stack exchange,提问作者Kritidipto Ghosh
相关产品推荐
相关产品推荐

