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

Chrome扩展从Manifest V2迁移至Manifest V3相关问题咨询

Manifest V3 迁移修改步骤

1. Manifest.json 配置修改

你需要对原有配置做以下调整:

  • 将manifest_version字段值从2修改为3
  • MV3已废弃browser_action字段,将该字段名替换为action,字段内部的default_icon、default_popup、default_title配置无需改动
  • 新增permissions字段,声明复制功能需要的clipboardWrite权限
  • (可选)如果你的扩展后续需要请求外部接口,需要新增host_permissions字段声明对应的域名权限

修改后的完整Manifest示例:

{
    "action": {
        "default_icon": "img/icon_active.png",
        "default_popup": "html/popup.html",
        "default_title": "Title here"
    },
    "description": "description here",
    "icons": {
        "128": "img/icon_128.png",
        "16": "img/icon_16.png"
    },
    "manifest_version": 3,
    "name": "Title here",
    "version": "1.0.1",
    "permissions": ["clipboardWrite"]
}

2. popup.js 代码修改

原有代码使用的document.execCommand("copy")已经被标准废弃,随时可能在后续Chrome版本中被移除,建议替换为官方推荐的异步Clipboard API,逻辑更简洁稳定性也更高。
修改后的代码示例(保留原有jQuery事件绑定逻辑):

$(document).on("click", ".copy-me", async function(ev) {
    const rel = $(this).attr("rel");
    const text = $("#"+rel).text();
    try {
        await navigator.clipboard.writeText(text);
        // 此处可以自行添加复制成功的提示逻辑
    } catch (err) {
        // 此处可以自行添加复制失败的提示逻辑
        console.error('复制失败:', err);
    }
});

迁移注意事项

  • 确认所有在Manifest中声明的本地资源(图标、popup.html等)路径和实际项目路径完全一致,MV3对资源路径的校验更严格
  • 如果你的扩展后续需要新增后台逻辑,不能再使用MV2的background_page或者持久化background脚本,需要改用MV3的service_worker,且service_worker不能访问DOM,相关DOM操作要移到popup或者内容脚本中
  • popup页面的执行上下文会在popup弹窗关闭后立即销毁,不要在popup中执行需要长时间运行的任务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:18:03