You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Chrome扩展Manifest V3如何合法执行动态代码字符串?

Manifest V3 Chrome扩展动态代码执行能力实现相关问题

核心需求与现有约束

开发基于Manifest V3的Chrome扩展时,如需实现类似用户脚本的动态代码字符串执行能力,目前存在以下明确约束:

  • Manifest V3中eval、传入代码字符串的setTimeout、new Function等可执行代码字符串的方法均受安全政策限制,即使相关代码可在本地运行,提交至Chrome网上应用店的扩展若使用这类能力将无法通过审核,所有代码必须在提交时就包含在扩展包内是明确审核规则。
  • 目前官方提供的两个动态执行脚本API chrome.scripting.registerContentScripts、chrome.scripting.executeScript仅支持执行扩展包内预置的文件,不支持直接传入代码字符串执行;原支持代码字符串执行的chrome.tabs.executeScript API已被官方弃用。
  • 此前流传的为TamperMonkey等脚本管理类扩展开放的「用户弹窗授权后可动态注册用户脚本」权限,暂未发布正式官方规则,公开渠道无明确落地说明。

补充疑问

基于文件动态执行脚本的可行性问题

  1. Chrome扩展是否允许向扩展安装目录写入文件?该操作是否会触发安全策略导致扩展被自动卸载失效?
  2. 若扩展可向扩展目录外存储文件,上述两个当前可用的脚本执行API是否能执行这些外部存储的文件?

临时可尝试方案(截至2021年11月13日)

目前暂不存在经官方明确确认、可稳定通过Chrome网上应用店审核的动态代码字符串执行方案,可根据自身场景选择以下临时方案尝试:

  • 结合自身使用场景参考社区开发者@wOxxOm、@hashed tomato的相关实践建议
  • 降级至Manifest V2开发,使用chrome.tabs.executeScript实现需求,该方案仅为临时过渡,Manifest V2已明确会在后续停止支持
  • 尝试开发支持用户自行在扩展内保存脚本的能力,该方案提交Chrome网上应用店是否会被驳回暂无明确结论,且目前暂无可行方式将用户保存的外部文件通过chrome.scripting.registerContentScripts或chrome.scripting.executeScript执行,仍需进一步测试验证

内容的提问来源于stack exchange,提问作者sitcomguy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:24:04