Skip to content

v3版本mainfest配置解析

  • 配置预览

    json
    {
      "name": "My Extension", // 插件名称,字符串类型
      "version": "1.0.0",  // 插件版本号,字符串类型
      "description": "This is my first extension.", // 插件描述,字符串类型
      "icons": {
        "16": "icon16.png",  // 16x16 像素的图标文件路径
        "32": "icon32.png",  // 32x32 像素的图标文件路径
        "48": "icon48.png",  // 48x48 像素的图标文件路径
        "128": "icon128.png" // 128x128 像素的图标文件路径
      },
      "browser_action": {   // 浏览器动作,该字段用于定义当用户单击浏览器操作按钮时执行的操作
        "default_icon": "icon.png", // 默认图标的文件路径
        "default_title": "My Extension", // 鼠标指针悬停在浏览器操作按钮上显示的默认标题
        "default_popup": "popup.html" // 弹出窗口的 HTML 文件路径
      },
      "content_scripts": [ // 内容脚本,该字段定义了将应用于哪些网站,以及应用程序如何与网站交互
        {
          "matches": ["<all_urls>"], // 匹配的 URL,字符串数组。使用“*”通配符匹配所有 URL。
          "js": ["content.js"], // 要注入网页中的 JavaScript 文件列表
          "css": ["style.css"], // 要注入网页中的 CSS 文件列表
          "run_at": "document_idle" // 脚本何时运行。可选值有:document_start、document_end 和 document_idle。
        }
      ],
      "permissions": [ // 权限,该字段定义了插件需要访问的资源和功能,例如浏览器标签、存储、网络等等。
        "tabs", // 访问当前活动标签页
        "storage", // 访问扩展的本地存储
        "http://*/*" // 允许插件访问所有 http 协议的网站
      ],
      "background": { // 后台脚本,该字段在后台长时间运行的脚本,也称为持久化背景页
        "scripts": ["background.js"], // 后台脚本文件列表
        "persistent": false // 是否保持持久化,如果设置为 false,当插件不再需要后台页面时,将自动卸载后台页面
      },
      "options_page": "options.html", // 插件选项页面的 HTML 文件路径
      "manifest_version": 2 // manifest.json 文件版本号。必须设置为2。
    }
  • 配置选项

    • browser_action(可选):定义插件在浏览器工具栏中的操作按钮,例如当用户单击插件在浏览器上显示的按钮时,插件可以打开一个弹出窗口
      • default_icon:默认图标的文件路径
      • default_title:鼠标指针悬停在操作按钮上显示的默认标题
      • default_popup:用于指定点击操作按钮时弹出的页面,应该是一个相对于插件目录的HTML文件路径
    • content_scripts(可选):定义插件在浏览器标签页中注入的JavaScript或CSS代码
      • matches:一个URL模式数组,用于匹配要注入脚本或样式的页面
      • exclude_matches:一个URL模式数组,用于排除要注入脚本或样式的页面
      • css:用户指定要注入的css文件数组,这些文件将按照顺序注入到匹配的页面的DOM中
      • js:用户指定要注入的js文件数组,这些文件将按照顺序注入到匹配的页面的DOM中
      • run_at:定义注入的代码何时执行,可选值为document_start、document_end、document_idle(默认)
      • all_frames:一个布尔值,指定是否在所有框架中注入代码,如果设置为true,代码将在每个子框架中运行一次
      • include_globs和exclude_globs:用于进一步细化匹配规则的 glob 模式数组,这些模式应该只匹配相对 URL,而不是完整的绝对 URL
    • permissions(必须):声明插件要访问哪些浏览器资源和API,常见的权限有:
      • activeTab:允许插件访问当前激活的标签页
      • storage:允许插件访问浏览器存储(包括本地存储和同步存储)
      • cookies:允许插件访问浏览器中的cookie
      • tabs:允许插件访问浏览器标签页并执行某些操作(例如打开新标签页、更新标签页URL、关闭标签页等)
      • notifications:允许插件创建桌面通知
      • webNavigation:允许插件在特定的网页事件(例如页面加载、错误、完成等)发生时,获取或修改其信息
      • identity:允许插件使用Chrome身份验证API,以便用户登录到Google账户
      • contextMenus:允许插件在浏览器上下文菜单中添加自定义菜单项
    • background(可选):声明在插件的后台运行的脚本,与popup不同,后台页面不会显示给用户,他只是在插件安装或浏览器启动时自动打开,并始终在后台运行,常见的一些应用场景包括:监听一些特定事件并根据需要触发其他操作、访问API、执行一些操作(如向服务器发送请求、获取用户数据等)

参考文档

MIT版权,未经许可禁止任何形式的转载