【教程向】从零开始创建浏览器插件(二)深入理解 Chrome 扩展的 manifest.json 配置文件

第二步:深入理解 Chrome 扩展的 manifest.json 配置文件

上一次我们已经着手完成了一个自己的浏览器插件,链接在这里:我是链接

在本篇博客中,我们将更详细地探讨 Chrome 扩展中的 manifest.json 文件。这个文件是每个浏览器扩展不可或缺的核心,它不仅定义了扩展的基本元数据,而且还规定了扩展的行为和权限。我们将深入探讨各种常用配置,并提供具体的代码示例以帮助您更好地理解和运用这些配置。
在这里插入图片描述

manifest.json 基本结构

每个 Chrome 扩展的 manifest.json 文件都必须包含以下基本字段:

  • manifest_version (必需):指明 manifest 文件的版本。目前版本为 3。
  • name (必需):扩展程序的名称。
  • version (必需):扩展程序的版本号。

一个简单的 manifest.json 文件看起来像这样:

{"manifest_version": 3,"name": "Sample Extension","version": "1.0"
}

常用配置详解

描述和图标

  • description:对扩展功能的简短描述。
  • icons:一个对象,定义了一系列图标,这些图标将在扩展目录、地址栏旁的扩展按钮以及其他界面中使用。
"description": "A simple Chrome extension example.",
"icons": {"16": "icon16.png","48": "icon48.png","128": "icon128.png"
}

背景脚本

  • background:包含 service_worker 指向的脚本在扩展安装后立即持续运行,通常用于处理事件监听和维持扩展的生命周期。
"background": {"service_worker": "background.js"
}

弹出页面

  • action:定义扩展的默认弹出行为,包括弹窗页面路径与默认图标。
"action": {"default_popup": "popup.html","default_icon": "icon48.png"
}

权限

  • permissions:扩展请求访问的 API 权限和其他特权。
"permissions": ["storage","tabs","http://*/*","https://*/*"
]

内容脚本

  • content_scripts:定义在特定页面自动注入的脚本和CSS。你可以指定脚本和CSS应应用到的网页URL模式。
"content_scripts": [{"matches": ["http://*.example.com/*", "https://*.example.com/*"],"js": ["content.js"],"css": ["style.css"]}
]

选项页面

  • options_pageoptions_ui:指定一个HTML文件,用于配置扩展的选项。
"options_ui": {"page": "options.html","open_in_tab": true
}

主机权限

  • host_permissions:允许扩展访问列表中的网站。
"host_permissions": ["http://*/*","https://*/*"
]

小结

manifest.json 文件是浏览器扩展的核心,通过它可以精细地控制扩展的各种行为和权限设置。了解并正确使用这些配置项将帮助你高效地开发功能复杂的扩展程序。记得根据扩展的特定需求选择合适的配置项,以确保功能的实现和用户的安全。

希望这篇文章能帮助你更深入地理解和使用 manifest.json,并创建出功能强大、用户友好的 Chrome 扩展!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/11154.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker容器实现https访问

前言: 【云原生】docker容器实现https访问_docker ssl访问-CSDN博客 一术语介绍 ①key 私钥 明文--自己生成(genrsa ) ②csr 公钥 由私钥生成 ③crt 证书 公钥 签名(自签名或者由CA签名) ④证书&#xf…

C入门笔记

1. c文件执行过程 C语言程序的执行过程可以分为四个基本步骤:预处理、编译、汇编和链接。下面是这些步骤的简要概述: 预处理:在这个步骤中,预处理器将源代码中以 # 开头的指令进行处理,例如 #include 和 #define。预…

一般社保测试

SI 分析和 PI 分析主要有以下区别: SI 分析: 主要关注信号在传输过程中的质量,如信号的失真、反射、串扰等问题。 侧重于确保信号的准确传输和接收,以实现可靠的数字或模拟信号通信。 PI 分析: 着重于电源分配网络…

STM32快速入门(定时器之输出PWM波形)

STM32快速入门(定时器之输出PWM波形) 前言 本节主要讲解STM32利用通用定时器,利用CCR和CNT寄存器,输出指定占空比和频率的PWM波形。其功能的应用有:实现LED呼吸灯的效果、控制步进电机、控制直流电机转速等。 导航 …

Java 类加载过程

什么是类加载 Java 类加载是指将 Java 字节码文件加载到 Java 虚拟机(JVM)中,并将其转化为可以执行的可执行代码的过程。当 Java 程序在运行时引用某个类时,JVM 会首先检查是否已经加载该类,如果没有加载,则…

ue5地编模块学习记录

ue5网站功能3d溜溜网下载模型https://anyconv.com/max-to-fbx-converter/3dmax转换fbx模型解决问题记录 一、光源 搜索光源搜索不到的时候可以点击 窗口> 对场景内的光照进行处理

【Java】数组训练案例

训练案例1 需求描述: 定义一个含有五个元素的数组,并为每个元素赋值,求数组中所有元素的最小值。 操作步骤描述: 1) 定义5个元素数组。 2) 可以使用初始化数组的两种方式之一为数组元素赋值。 3&#xff09…

最佳解决Maven同一依赖多版本共存问题,重复依赖(同一个jar包,多个版本)-maven-shade-plugin

先看链接:原文链接 参照原文链接生成的文件(下面是我放的位置) mvn指令 mvn install:install-file -DfileD:\mavenrepository/maven-shade.jar -DgroupIdcom.wj -DartifactIdmaven-shade -Dversion1.1 -Dpackagingjar如果配置了maven_home 和java_home可以任意打开cmd执行(…

Google: 在新知识上微调大语言模型是否会鼓励产生幻觉?

摘要 当大型语言模型通过监督式微调进行对齐时,它们可能会遇到在预训练期间没有获得的新事实信息。人们经常推测,这可能会教导模型产生事实上不正确的回应的行为,因为模型被训练成生成没有基于其预先存在的知识的事实。在这项工作中,Google研究了这种暴露在新知识下对微调后模…

基于springboot实现高校教师电子名片系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现高校教师电子名片系统演示 摘要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,名片信息因为其管理内容繁杂&#xff…

C++的数据结构(五):树和存储结构及示例

在计算机科学中,树是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。这种数据结构以一系列连接的节点来形成树形结构。在C中,树的概念和存储结构是实现各种复杂算法和…

Java--初识类和对象

前言 本篇讲解Java类和对象的入门版本。 学习目的: 1.理解什么是类和对象。 2.引入面向对象程序设计的概念 3.学会如何定义类和创建对象。 4.理解this引用。 5.了解构造方法的概念并学会使用 考虑到篇幅过长问题,作者决定分多次发布。 面向对象的引入 J…

Docker之grep: (standard input): binary file matches

使用 docker compose logs -f | grep 命令时遇到了 grep: (standard input): binary file matches 错误。 这个错误通常发生在 grep 尝试搜索包含二进制内容的文件时。docker compose logs 命令会输出容器的日志,而这些日志可能包含二进制数据,导致 gre…

MySQL查询篇-集合运算

文章目录 union (并集)union distinctunion all intersect(交集)intersect allintersect distinct except 差集except distinctexcept distinctexcept all union (并集) union distinct 使用前提:a和c数据类型一致&a…

互联网摸鱼日报(2024-05-13)

互联网摸鱼日报(2024-05-13) 36氪新闻 当绿色飞行成为潮流,这家航空公司定下了新目标 | 最前线 回收雨水浇花,厨余垃圾变肥料,我们打卡了阿里北京新园区 | 最前线 本周双碳大事:中美就气候问题进行会谈;锂电池行业迎…

GIAT: 蛋白质结构预测的新利器

瑞典Karolinska研究院在瑞典政府赞助下由Ben Murrell等研究团队在AlphaFold 3最新报告后提出这篇论文提出了一种非常有趣和创新的方法来生成蛋白质骨架结构,称为生成式不变角度转换器(GIAT)。与现有的主要基于扩散模型和流匹配的方法不同,GIAT采用了类似于大型语言模型(如GPT)中…

【C语言|数据结构】双向链表

文章目录 前言1、初步认识双向链表1.1 定义:1.2 结构1.3 节点的存储 2、双向链表的接口函数2.1 链表的节点的动态申请2.2 链表的初始化2.3 尾插2.4 头插2.5 头删2.5 尾删2.6 在pos节点后面添加数据2.6 删除pos节点 3、双向链表的实现: 前言 各位小伙伴大…

C控制语句:分支和跳转

1.1if语句 //colddays.c --找出0摄氏度以下的天数占总天数的百分比 #include <stdio.h>int main(void) {const int FREEZING 0;float temperature;int cold_days 0;int all_days 0;printf("Enter the list of daily low temperature.\n");printf("Use…

电子学会C/C++编程等级考试2024年03月(八级)真题解析

C/C编程&#xff08;1~8级&#xff09;全部真题・点这里 第1题&#xff1a;道路 N个以 1 … N 标号的城市通过单向的道路相连:。每条道路包含两个参数&#xff1a;道路的长度和需要为该路付的通行费&#xff08;以金币的数目来表示&#xff09; Bob and Alice 过去住在城市 1.在…

蓝海创业商机小吃配方项目,日入200+ ,小白可上手,图文创作转现快

小吃技术销售&#xff0c;一单价格从几元到几百元不等&#xff0c;行业竞争相对较小&#xff0c;是一个相对冷门的领域。只需一部手机&#xff0c;就可以发布图文并茂的内容&#xff0c;配上背景音乐&#xff08;BGM&#xff09;&#xff0c;即使是对视频剪辑不熟悉的新手&…