谷歌扩展开发教程(四)manifest配置项参数说明
扩展manifest向浏览器提供有关扩展的信息,例如最重要的文件和扩展可能使用的功能。当有新的manifest版本时,扩展平台功能会发生变化。
Manifest V3 专注于该愿景的三大支柱:隐私、安全和性能,同时保留和改进我们的能力和网络基础。 配置
chrome 插件的版本 "manifest_version": 3,
插件 名称 "name": "ChromeName",
插件 版本号 "version": "1.0.0",
插件 描述 , 132个字符以内 "description": "插件描述内容",
默认语言 (如果当前浏览器设置的语言不存在多语言配置文件,则默认中文),Chrome插件的多语言只能根据当前浏览器设置的语言来设定,无法通过代码更改语言 "default_locale": "zh_CN",
key ,发布插件后会给一个key,把那个key的值放这里,通常不需要使用此值。 "key": "xxx",
icon,浏览器扩展程序管理里面的 图标 、浏览器右侧插件图标点开的下拉菜单展示的已开启插件的图标、以及插件详情页的标签卡的那个小图标 "icons": { "16": "static/img/logo-16.png", "19": "static/img/logo-19.png", "38": "static/img/logo-38.png", "48": "static/img/logo-48.png", "128": "static/img/logo-128.png" },
内容 安全政策 ,V2的value是字符串,V3是对象
extension_pages :此政策涵盖您的扩展程序中的页面,包括 html 文件和service workers。
sandbox :此政策涵盖您的扩展程序使用的任何沙盒扩展程序页面。
script-src, object-src 和 worker-src 指令只能具有以下值: self none 任何 localhost 源、( http://localhost 、 http://127.0.0.1 或这些域上的任何端口) "content_security_policy": { //原文:此政策涵盖您的扩展程序中的页面,包括 html 文件和服务人员;具体不是很明白,但是参数值得是self,即当前自己 "extension_pages": "script-src "self"; object-src "self"", //原文:此政策涵盖您的扩展程序使用的任何[沙盒扩展程序页面];具体不是很明白,但是参数值得是self,即当前自己 "sandbox": "sandbox allow-scripts; script-src "self"; object-src "self"" },
常驻后台脚本 ,后台脚本引入,v2是scripts:[xxx,xxx],可以引入多个js文件,v3是service_worker:"xxx",只能引入一个js,v3版最大的改动应该就是这里了,扩展程序管理界面的插件的那个"背景页"也将变成"Service Worker",改动之后background.js将和浏览器完全分离,即无法调用window和ducoment对象。后面课程将详细进行介绍和演示。
" Service Worker 是您的浏览器在后台运行的脚本,与网页分开,为不需要网页或用户交互的功能打开了大门。" 这项技术可以实现类似原生的体验,例如推送通知、丰富的离线支持、后台同步和开放网络上的"添加到主屏幕"。 "background": { "service_worker": "background.js" },
注入 内容脚本 ,值是个数组对象,可以有多个对象;
内容脚本是在网页上下文中运行的文件。通过使用标准文档对象模型(DOM),他们能够读取浏览器访问的网页的详细信息,对其进行更改,并将信息传递给其父扩展。 js :字符串数组; 可选的。 要注入匹配页面的 JavaScript 文件列表。这些是按照它们在这个数组中出现的顺序注入的。 css :字符串数组; 可选的。 要注入匹配页面的 CSS 文件列表。在为页面构建或显示任何 DOM 之前,它们按照它们在此数组中出现的顺序被注入。 matches :字符串数组 必需的。指定此内容脚本将被注入到哪些页面。有关这些字符串的语法的更多详细信息 match_about_blank :布尔值 可选的。脚本是否应该注入about:blank父框架或开启框架与matches. 默认为假 exclude_matches : 字符串数组 可选的。排除此内容脚本将被注入的页面。有关这些字符串的语法的更多详细信息 include_globs : 字符串数组 可选的。之后应用matches以仅包含那些也匹配此 glob 的 URL。 exclude_globs : 字符串数组 可选的。之后应用matches以排除与此 glob 匹配的 URL。 "content_scripts": [ //每个对象代表一个注入的配置 { //需要在指定页面注入的js脚本文件 "js": [ "xxx.js", "xxx.js", ], //需要注入js脚本文件的指定页面 "matches": [ "https://*.csdn.net/*", "https://*.xxx.com/*" ], //不允许注入js脚本文件的指定页面 "exclude_matches": ["https://*.xxx.com/*"], //什么时候注入的js脚本,document_start=页面加载开始时,document_end=页面加载结束时 "run_at": "document_end" } ],
API权限 ,需要使用某些API时需要设置该API权限才行 "permissions": [ "contextMenus", //自定义创建右键菜单API "tabs", //tab选项卡API "storage", //缓存API "webRequest", //监听浏览器请求API ... ],
action : 控制 Google Chrome 工具栏中的扩展程序图标。必填选项。
为了使用 chrome.action API,您需要指定 "manifest_version" 等于 3 或更高,并将 action 密钥包含在您的清单文件中。 { "name": "Action Extension", ... "action": { "default_icon": { // 可选 "16": "images/icon16.png", // 可选 "24": "images/icon24.png", // 可选 "32": "images/icon32.png" // 可选 }, "default_title": "Click Me", // 可选, 显示在工具提示 "default_popup": "popup.html" // 可选 }, ... }
web_accessible_resources 通过网络 访问的资源 ,v2是提供一个数组,v3得提供数组对象,每个对象可以映射到一组资源到一组 URL 或扩展 ID "web_accessible_resources": [{ //允许访问的资源路径,数组传多个参数 "resources": ["*/img/xxx.png", "*/img/xxx2.png"], //允许访问资源的页面 "matches": [ "https://*.csdn.net/*", "https://*.xxx.com/*" ] }]manifest.json{ //chrome插件的版本 "manifest_version": 3, //插件名称 "name": "ChromeName", //插件版本号 "version": "1.0.0", //插件描述 "description": "__MSG_Plugin_Desc__", //默认语言(如果当前浏览器设置的语言不存在多语言配置文件,则默认中文),Chrome插件的多语言只能根据当前浏览器设置的语言来设定,无法通过代码更改语言 "default_locale": "zh_CN", //内容安全政策,V2的value是字符串,V3是对象 "content_security_policy": { //原文:此政策涵盖您的扩展程序中的页面,包括 html 文件和服务人员;具体不是很明白,但是参数值得是self,即当前自己 "extension_pages": "script-src "self"; object-src "self"", //原文:此政策涵盖您的扩展程序使用的任何[沙盒扩展程序页面];具体不是很明白,但是参数值得是self,即当前自己 "sandbox": "sandbox allow-scripts; script-src "self"; object-src "self"" }, //key,发布插件后会给一个key,把那个key的值放这里 "key": "xxx", //icon,浏览器扩展程序管理里面的图标、浏览器右侧插件图标点开的下拉菜单展示的已开启插件的图标、以及插件详情页的标签卡的那个小图标 "icons": { "16": "static/img/logo-16.png", "19": "static/img/logo-19.png", "38": "static/img/logo-38.png", "48": "static/img/logo-48.png", "128": "static/img/logo-128.png" }, //背景页,后台脚本引入,v2是scripts:[xxx,xxx],可以引入多个js文件,v3是service_worker:"xxx",只能引入一个js,v3版最大的改动应该就是这里了,扩展程序管理界面的插件的那个"背景页"也将变成"Service Worker",改动之后background.js将和浏览器完全分离,即无法调用window和ducoment对象 //可以看介绍: //1、//developer.chrome.com/docs/extensions/mv3/intro/mv3-migration/#background-service-workers; //2、//developer.chrome.com/docs/extensions/mv3/migrating_to_service_workers/ "background": { "service_worker": "background.js" }, //注入脚本,值是个数组对象,可以有多个对象 "content_scripts": [ //每个对象代表一个注入的配置 { //需要在指定页面注入的js脚本文件 "js": [ "xxx.js", "xxx.js", ], //需要注入js脚本文件的指定页面 "matches": [ "https://*.csdn.net/*", "https://*.xxx.com/*" ], //不允许注入js脚本文件的指定页面 "exclude_matches": ["https://*.xxx.com/*"], //什么时候注入的js脚本,document_start=页面加载开始时,document_end=页面加载结束时 "run_at": "document_end" } ], //API权限,需要使用某些API时需要设置该API权限才行 "permissions": [ "contextMenus", //自定义创建右键菜单API "tabs", //tab选项卡API "storage", //缓存API "webRequest", //监听浏览器请求API ... ], //主机权限,在背景页backgroud.js里面或者popup页面走请求时,请求域名的白名单权限,如果没添加的则请求会失败 "host_permissions": [ "https://*.csdn.net/*", "https://*.xxx.com/*" ], //动作API,原文:在 Manifest V2 中,有两种不同的 API 来实现操作: `"browser_action"` 和 `"page_action"` . //这些 API 在引入时扮演了不同的角色,但随着时间的推移它们变得多余,因此在 Manifest V3 中,我们将它们统一为单个 `"action"` API; //配置上action:{},可以是空对象,但是action这个配置得有,不然的话扩展程序管理界面的"Service Worker"将显示无效, //且无法点开"Service Worker"的开发者工具控制台以及点击插件图标时触发的这个方法会报错chrome.action.onClicked.addListener, "action": { }, //通过网络访问的资源,v2是提供一个数组,v3得提供数组对象,每个对象可以映射到一组资源到一组 URL 或扩展 ID "web_accessible_resources": [{ //允许访问的资源路径,数组传多个参数 "resources": ["*/img/xxx.png", "*/img/xxx2.png"], //允许访问资源的页面 "matches": [ "https://*.csdn.net/*", "https://*.xxx.com/*" ] }] }
iQOONeo5S和iQOONeo5SE到底有什么不同?iQOONeo5还值得购买吗?iQOO在年底选择更新了Neo系列,我本以为会推出iQOONeo6,没想到iQOO跟5这个数字杠上了,不仅推出了iQOONeo5S还连带推出一款LCD屏的iQOONeo5SE。那么
宝可梦GO庆祝游戏推出五周年官方分享5张全新插画宠物养成对游戏宝可梦GO官方为庆祝发售五周年,在7月举办了庆典活动,今日官方在推特公开了5张游戏的全新艺图,这是邀请了5位插画家分别绘制的,作者包括SUSHIO浅野TAO田中寛崇。
打开一本书,就是一个神奇的世界有一天,学校给一年级的孩子留了一个画画作业,孩子刚刚学过一篇课文四个太阳,老师为了让孩子们更好地理解四季的特点,布置了一个有趣的作业画出心中的太阳,让同学们充分发挥想象力,会画出什
来到白鹿原眼睛湿润了,终于明白它获茅盾文学奖之坎坷今天上午高速驱车来到了白鹿原。这里虽不是本次旅行的目的地,但是让我内心是十分激动,影视里的镜头一幅幅画面不断在我脑海里滚动,五味杂陈涌上心头。有感而发一片土黄色的大地上,攒满了土黄
爸爸去哪儿5位爸爸,4个翻车,只有森碟爸爸口碑好五位爸爸通过这档亲子节目和孩子们的互动中建立了浓厚的父子感情,八年里他们也都长大了,家庭生活也都各自的变化,五个爸爸,两个爸爸离婚,两个爸爸口碑受损。只有森碟爸爸田亮口碑最好一家四
神秘买家6亿元拍走,乐视大厦究竟归谁?2014这一年,贾跃亭还是人生得意,乐视系估值高达3000亿元,贾跃亭去了趟美国决定造车构筑更大的生态,双胞胎女儿降生,老贾还买下了一处大楼,冠名乐视大厦。不同于其他互联网公司要么
刘润边界感的本质,是对所有权的认知底层逻辑是润米咨询创始人微软前战略合作总监5分钟商学院主理人刘润提出的概念。他认为,只有掌握了环境背后的底层逻辑,探寻到了万变中的不变,才能在千变万化的世界中看清本质,学会批判性思
侵犯专利被罚1。6亿扯下格力遮羞布,董明珠该反省了格力提起格力大家会想到什么?核心技术,国产骄傲,制造业标杆一系列的印象都在提醒你格力在技术上的强大。但是事实果真如此吗?随着格力被奥克斯起诉专利侵权并被判赔偿1。67亿之后,格力以
股市崩盘有三个前兆每一轮牛市都是人性的疯狂见顶正当人们疯狂的买进追涨杀高往往是危机开启之时但凡有10年以上的交易经验的都经历过两轮牛熊交替两波市场行情历历在目对于散户来说是否能够完全逃离其实在某些征
我国喜马拉雅山是怎样形成的耸立在青藏高原南缘的喜马拉雅山,是世界上最高大雄伟的山脉。它东西绵延2450千米,南北宽200350千米,是由4列平行山脉组成的略向南凸的巨大弧形山系。中国科学家在珠穆朗玛峰地区考
解读细胞死亡续一杨毅编译(接续上一期)用一种特殊的试剂盒,可以测定能量释放时的化学发光量,从而定量分析ATP和ADP的比值。此外,还可用荧光的方法来定量探测细胞毒性。一家分子生物学公司开发了一种双染色的试