自己编写chrome插件

news2024/11/25 13:43:50

1.首先你需要一个menifest.json文件

{
  "manifest_version": 3,
  "name": "My Extension",
  "version": "2.0",
  "action": {
    "default_popup": "popup.html",
    "default_icon": "icon.png"
  },
  "background": {
    "service_worker": "background.js"
  },
  "content_scripts": [{
    "matches": ["https://example.com/*"],
    "js": ["content.js"],
    "all_frames": true,
    "excludes_globs": ["**/unwanted.js"]
  }],
  "host_permissions": [
    "https://example.com/*"
  ],
  "optional_permissions": [
    "tabs",
    "storage"
  ]
}

在上述示例中,需要根据插件的具体需求进行配置。其中 “name” 是插件名称,“version” 是插件版本,“description” 是插件描述,“permissions” 是插件需要的权限,“background” 定义后台页面的行为,“browser_action” 定义浏览器工具栏按钮的行为。

2.popup.html

点击插件可以弹窗,这个里面就放正常的html就行,没什么特别的

3.background.js

background.js 是后台脚本,可以监听和处理插件的一些事件。事例如下:

// 在插件被安装、更新或Chrome启动时触发
chrome.runtime.onInstalled.addListener(function() {
  // 可以在这里进行一些初始化操作或设置默认值
});

// 监听浏览器标签页被创建时的事件
chrome.tabs.onCreated.addListener(function(tab) {
  // 处理标签页创建事件
});

// 监听浏览器标签页被更新(例如 URL 发生变化)时的事件
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
  // 处理标签页更新事件
});

// 监听来自内容脚本或其他部分发送的消息
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
  // 处理接收到的消息
  // 可以通过 sendResponse 返回响应给发送方
});

// 执行一些后台任务
function doSomething() {
  // 在这里进行一些任务处理逻辑
}

// 在指定时间间隔内执行循环任务
setInterval(function() {
  doSomething();
}, 5000);

注意menifest的里面加入"persistent": false;否则插件会自动启动,除非浏览器关闭或者插件禁止。

4.action

browser_action是在 Chrome 插件开发中用于创建浏览器工具栏按钮的一种配置选项。
“default_icon”:指定工具栏按钮的图标,可以设置不同大小的图标文件路径。
“default_title”:鼠标悬停在按钮上时显示的标题。
“default_popup”:点击按钮后弹出的页面或弹出窗口的 HTML 文件路径。
其中icon的大小分别为16,48和128,需要设置三个大小的图。

5.打包放入chrome

将这些文件放在一个文件夹下
在这里插入图片描述
点击管理扩展程序
在这里插入图片描述
点击这个按钮,并选择本地文件夹
下一次点击插件就可以使用啦!

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

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

相关文章

winform弹出消息自动消失

winform弹出消息自动消失 弹出消息后,在指定时间毫秒后消失.消息中包含异常消息,自动一直展示,点击关闭显示; 效果如图 using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks;usi…

保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识

1.简介 有的小伙伴或者童鞋们可能会好奇地问,不是讲解和分享抓包工具了怎么这里开始讲解HTTP和HTTPS协议了。这是因为你对HTTP协议越了解,你就能越掌握Fiddler的使用方法,反过来你越使用Fiddler,就越能帮助你了解HTTP协议。 Fid…

全网最全,项目管理工具大合集!

早上好,我是老原。 很久没给大家更新工具,本以为之前更新的也够大家用了,没想到还是有很多小友来私信老原好用工具。 关注我比较久的粉丝都知道,我提倡的工具在精不在多,更多的把精力放在自身上,还有啥不…

Vue使用百度地图API详细教程

Vue使用百度地图详细教程 先提供几个文档 Vue-Baidu-map文档:https://dafrok.github.io/vue-baidu-map/#/zh/index 百度地图JavaScript文档:https://lbsyun.baidu.com/index.php?titlejspopularGL 1、申请百度API密钥 控制台->应用管理->我的应…

博途字符串和FIFO编程应用(SCL源代码)

FIFO的其它介绍请参看下面文章链接: PLC堆栈(FIFO)操作之栈级联_三菱plc控制系统的堆栈的工作原理_RXXW_Dor的博客-CSDN博客这篇博文主要讲下各种缓存栈的级联,提供一个分析问题的扩展思路,这个级联什么时候适合在项目里使用需要具体分析。级联实现数据队列的一级级递推传送…

Redis 安装

目录 1、准备安装环境 2、上传安装文件 3、解压安装文件 4、进入安装目录 5、运行编译命令 6、前台启动 ​编辑7、后台启动 8、验证服务 9、关闭服务 10、开启启动 1、准备安装环境 由于 Redis 是基于 C 语言编写的,因此首先需要安装 Redis 所需要的依赖…

Python(一):为什么我们要学习Python?

❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

星辰天合受邀参加 2023 全球数字经济大会

7 月 4 日至 7 日,以“数据驱动发展,智能引领未来”为主题的2023全球数字经济大会在北京隆重举办。作为国内技术领先的数据基础设施提供商,星辰天合以北京优秀信创企业代表的身份,受北京信息化协会邀请,参加了 2023 全…

ICC2:copy block方法

open_lib new.nlib open_lib old_lib copy_block -from_block old_block -to_block new.nlib:old_block save_lib new.nlib close_lib 如果是从同一个lib下的block copy到同个lib里,那就open_lib后直接copy就好了,操作时用current_block new_name_b…

多元回归预测 | Matlab基于高斯过程回归(GPR)的数据回归预测,matlab代码,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于高斯过程回归(GPR)的数据回归预测,matlab代码,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码

STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063

STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063 Proteus仿真小实验: STM32 Proteus仿真LCD12864俄罗斯方块-FZ0063 功能: 硬件组成:STM32F103R6单片机 LCD12864显示器多个按键 1.标准俄罗斯方块经典游戏玩法,带计时&#xff0c…

计数排序 (Counting Sort)_20230709

计数排序(Counting Sort) 前言 计数排序的对象一般为分布在[0-k]范围内的非负整数,计数器类似哈希函数的线性映射,它确定了数值本身和它在序列中的总数量之间的基本关系。它的本质是计算某个数在临时序列中(原序列大小相同,但下…

零售业未来如何破局?抓住数智化经营的两把利刃!

导语 | 数字化转型浪潮席卷了千行百业,有人从中看出了汹涌的挑战,也有人从中嗅出了美妙的商机。对于零售企业而言,当前数智经营进入了哪个阶段?未来的破局之道又在何方?我们邀请到了广东省 CIO 协会消费品与零售行业分…

API接口知识小结(电商API接入)

应用程序接口API(Application Programming Interface),是提供特定业务输出能力、连接不同系统的一种约定。这里包括外部系统与提供服务的系统(中后台系统)或后台不同系统之间的交互点。包括外部接口、内部接口&#xf…

Redis专题学习(一)Redis核心数据结构实战与高性能原理剖析

redis是key-value的存储格式, key是string类型的, value可以有五种基本的数据结构:string、hash、list、set、zset 来看看 这5中基本数据类型的基本使用和应用 一.字符串string string是最常见和最基本的数据结构 基本使用: …

leetcode 501. 二叉搜索树中的众数

2023.7.10 这道题我的思路是适用于任意二叉树的思路&#xff1a; 先用任意一个遍历方法将节点保存至map<int,int>中&#xff0c;key为节点值&#xff0c;value为频率。由于map没有对value&#xff08;频率&#xff09;排序的方法&#xff0c;所以将map的键值对转移至vec…

TCP协议三次握手的抓包模拟

三次握手(Three-way Handshake)&#xff0c;是指建立一个 TCP 连接时&#xff0c;需要客户端和服务器总共发送3个包。 第一次握手([SYN], Seq x) 客户端发送一个SYN标记的包&#xff0c;Seq初始序列号x&#xff0c;发送完成后客户端进入SYN_SEND状态。 第二次握手([SYN,ACK]…

一个面试知识点: CreateThread() 与 _beginthread() 的区别

如题: 像现在有c11, 加上不写原生winApi 很久没有用这俩玩意了, 真的忘记了, 被问到这个的时候, 我还清晰记得之前在WPS里的时候专门了解这个 CreateThread的简单用法贴下面了 c win32API 【CreateThread】创建线程 其实就简单的记住 1._beginthread 底层还是 调用的 Creat…

calltree的安装与使用

目录 0 calltree 和 graphviz的关系 1 graphviz的安装很简单 : 2 有难的是calltree的安装,需要改一下代码. Doxygen的使用 参考 这个人的笔记都挺好的, 没事多看看 0 calltree 和 graphviz的关系 要想绘制函数调用图的话,需要用到2个工具, calltree 和 graphviz. calltr…

【记录】Yolov5官网下载避坑记录

写在前面&#xff1a;刚开始接触Yolov5时&#xff0c;对一些基础的概念很模糊&#xff0c;在官网下载也不知道该下载什么版本好。后续更是遇到了一些奇奇怪怪的坑。在此记录一下最初的研究过程&#xff0c;顺带填一下yolov5避坑专栏后面的坑。 目录 一、Yolov5误区 二、官网…