前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >从0到1开发Chrome插件

从0到1开发Chrome插件

作者头像
Python研究所
发布于 2022-06-17 00:14:27
发布于 2022-06-17 00:14:27
1.7K00
代码可运行
举报
文章被收录于专栏:大飞的部落阁大飞的部落阁
运行总次数:0
代码可运行

前言

Chrome 插件是我们经常用到的,比如广告屏蔽,浏览器美化,访问国外网站等。但是你有想过 Chrome 插件是如何开发的吗?出于好奇,今天我们一起从 01 开发一个超级无敌简单的 Chrome 插件,目的只为入门 Chrome 插件基础开发。

关于 Chrome 插件

Chrome 插件开发官方文档

Chrome 是由 html、js、css 和静态文件等组成的文件集合。

文件结构

插件结构

插件文件结构大致如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
│  jquery-3.5.1.js
│  manifest.json
│  my.js
│  popup.html
│
└─images
        logo.png
        logo128.png

其中 manifest.json、popup.html 为必选文件,其中 manifest.json 中声明了插件的基本信息,是整个插件的总入口,就连 popup.html 也是在它里面定义的,主要部分 content_scripts 定义了插件生效策略。popup.html 可以理解为插件和用户交互的首页。

manifest.json 内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
	"manifest_version": 2,
	"name": "myCtx",
	"version": "1.0",
	"description": "学习chrome插件",
	"icons": {
		"19": "images/logo.png",
		"38": "images/logo.png",
		"128": "images/logo128.png"
	},

	"browser_action": {
		"default_title": "我的第一个Chrome插件",
		"default_icon": "images/logo.png",
		"default_popup": "popup.html"
	},

	"content_scripts": [{
		"matches": [
			"https://www.bilibili.com/*",
			"https://www.baidu.com/*"
			],
		"js": ["my.js"],
		"all_frames": true,
		"run_at": "document_end"
	}],

	"permissions": [
		"tabs"
	]
}

如上,manifest.json 中的 content_scripts 意为:当请求路径匹配到百度和哔哩哔哩时加载 my.js,具体操作在 my.js 中定义。

my.js 内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
console.log("这是插件注入信息>>>:"+document.title);
console.log("开始变红变大");
document.getElementById("su").style.color="red";
document.getElementById("su").style.fontSize="24px";
console.log("变红变大结束");

如上,my.js 中将 ID“su”的元素修改为红色,将字体大小修改为 24 像素,其中 ID“su”的元素就是百度首页的搜索按钮。实际效果就是当访问百度首页的时候,搜索按钮中的“百度一下”四个字会被修改为红色,同时字体变大为 24 像素。

popup.html 内容

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<html>
	<head>
		<meta charset="utf-8">
		<style>
			body{
				font-family:"Microsoft";
				width:500px;
				min-height:100px;
			}
		</style>
	</head>
	<body>
		<h1>字体变红变大</h1>
	</body>
</html>

如上,popup.html 中只会展示一个 100*500 大小的首页,上面显示“字体变红变大”

插件全貌

  1. images 中存放了插件 logo 等静态资源。
  2. jquery 暂时预留,你可以将 jscss 等文件放在根目录,也可以将其放置到自定义文件中,区别只是使用时路径不一样。
  3. 其他的文件前面已经解释,不再介绍了。

插件的导入

打开浏览器的开发者模式

导入插件

插件的效果

访问哔哩哔哩

浏览器打开:https://www.bilibili.com/

你会发现哔哩哔哩的网站 title 已经被打印出来了。

为什么开始变红变大后,没有打印变红变大结束呢?因为在哔哩哔哩网站中未找到 ID“su”的元素,所以执行变红变大动作中断。

访问百度首页

启用插件前

百度首页的搜索按钮“百度一下”为白色,大小合适。

启用插件后

百度首页的搜索按钮“百度一下“为红色,大小较大。

至此,我们的 Chrome 插件从 01 就成功结束了。

总结

对于 Chrome01,我们可以用一句话总结:用户访问网站,manifest.json 拦截匹配后触发 my.js 执行,从而实现功能。期待你能开发出好用的 Chrome 插件。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置
举个例子,同一个微服务,通常我们的servlet-context 都是相同的,不区分生产环境、测试环境, 那类似这样公共的配置,我们可以每个自己单独配置一份,有没有更好的方式呢?
小小工匠
2022/02/05
8530
Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置
Spring Cloud Alibaba - 19 Nacos Config配置中心加载不同微服务的通用配置的两种方式
Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置 这里说了相同的服务,不同环境下的配置。
小小工匠
2022/02/05
1.7K0
Spring Cloud Alibaba - 19 Nacos Config配置中心加载不同微服务的通用配置的两种方式
Spring Cloud Alibaba 系列之 Nacos 配置中心
  Nacos 除了通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现以外,还可以通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-config 实现配置的动态变更。Nacos 作为配置中心时是可以动态变更的,不像 Spring Cloud Config 需要配合 Spring Cloud Bus 实现半自动。☞ 官方文档
Demo_Null
2020/11/24
1.7K0
Spring Cloud Alibaba 系列之 Nacos 配置中心
19.SpringCloud实战项目-整合Nacos配置中心
这种方式的缺点是什么呢?如果要修改配置参数,则需要重新启动服务。如果服务很多,则需要重启所有服务,非常不方便。
悟空聊架构
2022/05/13
5570
19.SpringCloud实战项目-整合Nacos配置中心
使用Nacos作为配置中心(四)
通过之前文章的学习我们已经学会了使用Nacos完成服务的注册与发现。同时也介绍了Spring Cloud中不同风格的服务消费方式。接下来,我们再来学习下Nacos的另一个重要功能:配置管理
用户1212940
2022/04/13
1.4K0
使用Nacos作为配置中心(四)
一文读懂Nacos注册中心
—般来说,如果不需要存储服务级别的信息且服务实例是通过nacos-client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如Spring cloud和Dubbo服务,都适用于AP模式,AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。
Blue_007
2023/11/02
1.4K0
一文读懂Nacos注册中心
Nacos统一配置中心
  nacos管理配置文件方式是在自己所在的服务器上形成一个版本库,因此不需要再创建远程版本库。   Nacos作为统一配置中心管理配置文件时,同样也是存在版本控制。
别团等shy哥发育
2023/02/25
8330
Nacos统一配置中心
Java学习笔记-微服务(7)-注册配置中心Nacos
Nacos 的含义是 Dynamic Naming and Configuration Service。
咸鱼程序员
2025/03/08
2690
Java学习笔记-微服务(7)-注册配置中心Nacos
Spring Cloud Alibaba之服务发现组件 - Nacos配置的多文件加载与共享配置(七)
对于Nacos作为配置中心的使用,通过之前的几篇文章,我们已经介绍了如何在Nacos中创建配置内容、Nacos配置内容与Spring应用配置之间的对应关系以及实战中多环境下的配置管理方案。
用户1212940
2022/04/13
7400
Spring Cloud Alibaba之服务发现组件 - Nacos配置的多文件加载与共享配置(七)
Nacos Config--服务配置
使用nacos作为配置中心,其实就是将nacos当做一个服务端,将各个微服务看成是客户端,我们 将各个微服务的配置文件统一存放在nacos上,然后各个微服务从nacos上拉取配置即可。 接下来我们以商品微服务为例,学习nacos config的使用。
用户10196776
2022/11/28
5550
Nacos Config--服务配置
Spring Cloud Alibaba - 03 注册中心Nacos 应用篇(上)
下载地址 :https://github.com/alibaba/Nacos/releases
小小工匠
2022/02/03
3470
Spring Cloud Alibaba - 03 注册中心Nacos 应用篇(上)
Nacos作为服务配置中心实战
  Nacos同springcloud-config一样,在项目初始化时,要保证先从配置中心进行配置拉取, 拉取配置之后,才能保证项目的正常启动。
别团等shy哥发育
2023/02/25
8510
Nacos作为服务配置中心实战
SpringCloud之Nacos配置中心解读
当微服务部署的实例越来越多,达到数十、数百时,逐个修改微服务配置就会让人抓狂,而且很容易出错。我们需要一种统一配置管理方案,可以集中管理所有实例的配置。
一个风轻云淡
2023/10/23
6870
SpringCloud之Nacos配置中心解读
Nacos Config集成SpringCloud使用说明
Nacos config提供了配置中心的解决方案,且功能非常的强大适用,提供单机与集群模式
用户2603479
2019/09/12
2.6K0
Nacos Config集成SpringCloud使用说明
推荐:Spring Cloud 整合 Nacos 实现服务配置中心
在之前的文章 《Nacos 本地单机版部署步骤和使用》 中,大家应该了解了 Nacos 是什么?其中 Nacos 提供了动态配置服务功能
二哥聊运营工具
2021/12/16
5850
推荐:Spring Cloud 整合 Nacos 实现服务配置中心
SpringCloud系列(七)| 集成Nacos配置中心
在说配置中心之前,我们先说说配置文件,关于这个词,我想大家并不陌生。 不管是前端,后端或是其他的各类技术栈,应该都离不来配置文件。我们在早期的代码开发时代,就经常和配置文件打交道, 什么web.xml, applicationContext.xml,mybatis-config.xml、hibernate.cfg.xml, 等等等等(熟悉这些文件名称的应该都是老司机了)。
一缕82年的清风
2023/12/18
1.2K0
SpringCloud系列(七)| 集成Nacos配置中心
6000 字|20 图|Nacos 手摸手教程
上次我们讲解了 OpenFeign 的架构原理,这次我们要来进入 Nacos 帝国了,Nacos 作为服务注册中心、配置中心,已经非常成熟了,业界的标杆,在讲解 Nacos 的架构原理之前,我先给大家来一篇开胃菜:讲解 Nacos 如何使用。
悟空聊架构
2022/05/13
4220
6000 字|20 图|Nacos 手摸手教程
Spring Cloud 整合 nacos 实现动态配置中心
上一篇 Spring Cloud 微服务实战——nacos 服务注册中心搭建(附源码) 讲解了Spring Cloud 整合 nacos 实现服务注册与发现,nacos除了有服务注册与发现的功能,还有提供动态配置服务的功能。本文主要讲解Spring Cloud 整合nacos实现动态配置服务。主要参考官方部署手册点我。
用户10384376
2023/02/26
1.3K0
Spring Cloud 整合 nacos 实现动态配置中心
Nacos Config--服务配置
Apollo是由携程开源的分布式配置中心。特点有很多,比如:配置更新之后可以实时生效,支持灰度发 布功能,并且能对所有的配置进行版本管理、操作审计等功能,提供开放平台API。并且资料也写的很 详细。
IT小马哥
2021/09/03
5040
Nacos Config--服务配置
nacos做服务配置中心
在TestController上加个@RefreshScope注解,然后我们去nacos客户端手动修改config.info的信息,然后重新调用这个/test接口,会发现响应的是修改后的内容。
Java旅途
2020/10/22
1.9K0
推荐阅读
相关推荐
Spring Cloud Alibaba - 18 Nacos Config配置中心加载相同微服务的不同环境下的通用配置
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • 前言
  • 关于 Chrome 插件
    • 文件结构
      • 插件结构
      • manifest.json 内容
      • my.js 内容
      • popup.html 内容
    • 插件全貌
  • 插件的导入
    • 打开浏览器的开发者模式
    • 导入插件
  • 插件的效果
    • 访问哔哩哔哩
    • 访问百度首页
      • 启用插件前
      • 启用插件后
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档