Manifest 之韵:插件的 “身份证”

如果把插件比作一个 APP,manifest 就是它的‘身份证’—— 记录着名字(name)、版本(version)、头像(icons)等基础信息,让浏览器一眼认出它;同时,它也是‘操作手册’—— 告诉浏览器‘我需要哪些权限’(permissions)、‘在哪里干活’(service_worker/background)、‘能调用哪些工具’(web_accessible_resources)。少了它,插件就成了‘黑户’,连浏览器的大门都进不去。

一份“优雅”的配置

{
  "manifest_version": 3, 
  "name": "My Extension",  
  "version": "1.0.0", 
  
  "icons": {
    "16": "icons/icon16.png",  
    "48": "icons/icon48.png",   
    "128": "icons/icon128.png"  
  },
  "description": "一款帮助你管理标签页的Chrome扩展", 
  "default_locale": "en", 
  
  "action": {
    "default_icon": {
      "16": "icons/icon16.png",
      "32": "icons/icon32.png"
    },
    "default_title": "My Extension",  
    "default_popup": "popup.html"    
  },
  
  "background": {
    "service_worker": "background.js"  
  },
  
  "content_scripts": [
    {
      "matches": ["https://*.example.com/*"], 
      "js": ["content.js"],                 
      "run_at": "document_end"        
    }
  ],
  
  "permissions": [
    "https://api.example.com/*",
    "tabs",      
    "activeTab",    
    "scripting",    
    "storage",       
  ]
}

这时候你可能就要疑问了,这些配置都是干什么用的?咱们接着往下看。

配置详解

基础元信息 --- 必填

  1. "manifest_version"

指定Manifest文件的版本,目前Chrome要求使用3。

  1. "name"

扩展程序的名称,显示在Chrome扩展管理页面和商店中。

  1. "version"

扩展程序的版本号。

视觉与本地化 --- 强烈推荐的配置项

  1. "icons"提供多尺寸图标资源,适配不同使用场景。
  2. "description"

简明扼要地描述插件功能,这将出现在扩展管理页面和应用商店中,是用户了解插件的第一印象。

  1. "default_locale"

指定默认语言环境,可以配合 _locales 目录实现国际化支持。

  1. "action"

用户交互配置,用于定义工具栏图标的外观与行为。

按需必选 --- 根据扩展功能需求添加

  1. "service_worker"

持续运行的后台脚本,在 Manifest V3 中取代传统的 background scripts它按需运行,适用于监 听事件(如通知、消息传递、定时任务)等后台操作。

  1. "content_scripts"

用于向匹配的网页注入 JavaScript 或 CSS,实现对页面内容的读取、修改与增强。

  1. "permissions"

明确请求运行所需的权限,务必遵循“最小权限原则”,仅申请实际需要的权限。

常见的权限类型有

权限

说明

"https://api.example.com/*"

允许向指定域名发起网络请求

"tabs"

获取标签页列表、读取 URL、执行跳转等完整控制

"activeTab"

临时授予对当前激活标签页的有限访问权(更安全)

"scripting"

使用 chrome.scripting API 动态注入脚本(V3 中必需)

"storage"

使用 chrome.storage进行结构化数据持久化

更多权限配置,可参考官方文档https://developer.chrome.com/docs/extensions/reference/permissions-list?hl=zh-cn

从零探索Chrome插件开发,手把手教你构建实用功能,开启浏览器扩展创作之旅。

全部评论
3
1 回复 分享
发布于 2025-08-02 20:32 河南
点赞 回复 分享
发布于 2025-08-09 23:47 江苏
点赞 回复 分享
发布于 2025-08-09 20:27 江苏
点赞 回复 分享
发布于 2025-08-03 14:21 广东
感谢大佬
点赞 回复 分享
发布于 2025-08-02 20:36 河南
自从看了大佬的专题,我学到了很多
点赞 回复 分享
发布于 2025-08-02 20:36 河南

相关推荐

2025-12-12 19:01
南京航空航天大学 C++
秋招没咋投,准备 wxg 转正之后摆烂了。结果不堪字节 HR 的骚扰还是面了一下字节。之前想去字节的时候怎么面都挂。现在想着随便面一下结果三面技术面都意外顺利还有加面。十月中旬字节发了意向,wxg 转正结果无响应。十月底字节拉了保温群,wxg 口头通过,系统显示考核中。十一月初和字节 ld 交流之后得知 base 居然能选海外,甚至能小 wlb 一下,wxg 无响应无人联系。十一月中旬把字节 base 转到了海外,wxg 流程灰了,一问超时忘处理了,过两天又变考核中了。十一月下旬字节换了海外 HR 对接,问了期望薪资,wxg 考核终于显示通过,无 HR 保温,无其他保温。十一月底给字节报了个天价,想吓吓他们,同时告诉微信字节要开了,微信无响应。同样十一月底字节 HR 告诉我确实给不到那么高,但是能拿期权补上,问能不能接受。微信无响应。同样十一月底字节 HR 告知了具体方案,符合预期。 微信无响应。十二月上旬催 wxg 不开我就盲拒了,wxg HR 火急火燎的打电话问情况,问期望。我给了一个不算夸张的总包数字,因为今年市场在涨,过了三天还不联系我,我再催,约时间下午打电话,非得在我给出的数字上压下去几万,微信又不差这点,为什么不能满足我,让我没有拒绝的理由呢?一番纠结抗争,求稳还是追求挑战,最终选择接受迎接新的挑战,因为堂吉诃德永远不会停下脚步!回想起来,在 wxg 谈薪的阶段,我认为并没有给予我一定的重视,即使 HR 表示我在实习期间的表现和之前的面评都很靠前。也没有感觉到想要争取我,虽然我表示拒了 offer 之后要给我加面委定 t6 再涨,但我三个月没面试让我面面委那就是白给,还是算了。有缘再见了我亲爱的 wxg,再见了曾经的梦中情厂,再见亲爱的 mt,再见亲爱的朋友们。也再见,北京的一切。我想润了。秋招结束,卸载牛客,下一个三年,下一个五年,下一个十年后再来看看。
面试中的大熊猫爱吃薯...:我嫉妒得狗眼通红
点赞 评论 收藏
分享
评论
8
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务