快速上手:如何开发一个实用的 Edge 插件

在日常浏览网页时,背景图片能够显著提升网页的视觉体验。如果你也想为自己的浏览器页面添加个性化背景图片,并希望背景图片设置能够持久保存,本文将介绍如何通过开发一个自定义Edge插件来实现这一功能。我们将涵盖保存背景设置到插件选项页(Options),并介绍插件的上传与发布流程。

准备

先用yuanbao.tencent.com 生成插件logo。
然后用https://tool.tushuoit.com/favgen 转成不同尺寸png。
在这里插入图片描述

一、Edge插件概述

Microsoft Edge插件(或扩展)是基于Chromium内核的浏览器扩展,可以为浏览器添加新的功能或修改现有功能。开发Edge插件的核心技术栈包括JavaScript、HTML和CSS。

在本示例中,我们将开发一个简单的插件,通过它为网页添加自定义背景图片,并将背景图片URL保存在插件的选项页中,以便下次访问时能够自动加载。

二、插件结构与基本功能

首先,我们来看一下插件的基本结构和实现功能:

  • manifest.json:插件的配置文件,定义插件的信息和权限。
  • background.js:后台脚本,处理插件的核心逻辑。
  • content.js:内容脚本,注入网页中修改背景。
  • popup.html:插件图标的弹出页面,用户可以在此输入背景图片URL。
  • options.html:插件的设置页面,用于保存背景图片URL。

1. 创建插件目录

首先创建插件的文件夹,并在其中存放插件的所有文件:

mkdir custom-background-extension
cd custom-background-extension

2. 配置manifest.json

在插件根目录下创建manifest.json文件,设置插件的基本信息和权限。

{"manifest_version": 3,"name": "自定义Web背景图片","version": "1.1","description": "为你的网页添加个性化背景图片,并保存设置","permissions": ["storage", "activeTab"],"background": {"service_worker": "background.js"},"content_scripts": [{"matches": ["<all_urls>"],"js": ["content.js"]}],"action": {"default_popup": "popup.html"},"options_page": "options.html"
}
  • permissions:需要使用storage权限来存储背景设置。
  • background:后台脚本负责初始化插件逻辑。
  • content_scripts:内容脚本注入页面来修改背景。
  • options_page:插件的选项页,用来保存背景设置。

3. 背景设置与保存

我们将使用浏览器的localStorage API来保存用户的背景设置,并在用户每次打开插件时加载保存的设置。

background.js

background.js文件中,我们监听插件的安装事件,并初始化默认背景设置。

chrome.runtime.onInstalled.addListener(() => {console.log('自定义背景插件已安装!');// 初始化背景设置,默认背景URLchrome.storage.local.get(['backgroundUrl'], (result) => {if (!result.backgroundUrl) {chrome.storage.local.set({ backgroundUrl: 'https://example.com/default-background.jpg' });}});
});
content.js

content.js负责动态更新网页的背景图片,读取保存的背景URL并应用到当前页面。

chrome.storage.local.get(['backgroundUrl'], (result) => {if (result.backgroundUrl) {document.body.style.backgroundImage = `url(${result.backgroundUrl})`;document.body.style.backgroundSize = 'cover';document.body.style.backgroundPosition = 'center';}
});

4. 配置popup.html

popup.html提供一个用户界面,允许用户输入新的背景图片URL。用户可以点击按钮将新的URL保存到插件的存储中。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>自定义背景图片</title><style>body {width: 200px;padding: 10px;font-family: Arial, sans-serif;}input {width: 100%;padding: 5px;}button {width: 100%;padding: 5px;margin-top: 10px;background-color: #0078d4;color: white;border: none;cursor: pointer;}</style>
</head>
<body><h3>背景图片</h3><input type="text" id="bgUrl" placeholder="输入背景图片URL"><button id="changeBg">更换背景</button><script>document.getElementById('changeBg').addEventListener('click', () => {const url = document.getElementById('bgUrl').value;if (url) {chrome.storage.local.set({ backgroundUrl: url }, () => {alert('背景已更新!');});}});</script>
</body>
</html>

5. 配置options.html

options.html页面允许用户在插件的设置中管理背景设置。我们将提供一个简单的界面来显示和更改背景URL。

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><title>插件设置</title>
</head>
<body><h3>背景图片设置</h3><label for="bgUrl">背景图片URL:</label><input type="text" id="bgUrlInput"><button id="saveBg">保存背景设置</button><script>// 加载当前保存的背景URLchrome.storage.local.get(['backgroundUrl'], (result) => {document.getElementById('bgUrlInput').value = result.backgroundUrl || '';});// 保存新的背景URLdocument.getElementById('saveBg').addEventListener('click', () => {const url = document.getElementById('bgUrlInput').value;if (url) {chrome.storage.local.set({ backgroundUrl: url }, () => {alert('背景设置已保存!');});}});</script>
</body>
</html>

6. 加载插件到Edge浏览器

  1. 打开Edge浏览器,进入edge://extensions/页面。
  2. 开启“开发者模式”。
  3. 点击“加载已解压的扩展”按钮,选择插件文件夹。
  4. 插件安装成功后,可以在浏览器工具栏中看到插件图标,点击它即可更改背景。

三、插件发布与上传流程

一旦开发完成并经过测试,你可能希望将插件发布到Microsoft Edge扩展商店供更多用户使用。以下是发布插件的基本流程:

1. 注册开发者账号

访问Microsoft Edge Add-ons商店,并注册一个开发者账号。

2. 打包插件

在插件文件夹中,运行以下命令来打包插件:

zip -r custom-background-extension.zip *

3. 提交插件

登录Microsoft Edge Add-ons开发者后台,点击“提交扩展”,选择打包好的.zip文件,并填写相关的插件信息。提交审核后,插件将被发布。

4. 插件更新

如果以后需要更新插件,可以在后台管理页面上传新版本的插件文件。每次更新需要重新提交审核。

四、总结

通过这篇文章,我们创建了一个自定义背景图片的Edge插件,并学习了如何将背景设置保存在插件的存储中,以便长期使用。我们还介绍了插件的发布流程,让你可以将插件分享给更多的用户。

后续扩展

  • 背景上传功能:可以加入上传背景图片的功能,允许用户直接从本地选择图片作为背景。
  • 其他定制选项:支持更多的背景特效,例如背景模糊、视频背景等。

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

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

相关文章

介绍一下atol(arr);(c基础)

hi , I am 36 适合对象c语言初学者 atol(arr)&#xff1b;是返回整数(long型)&#xff0c;整数是arr数组中字符中数字 格式 #include<stdio.h> atol(arr); 返回值arr数组中的数字 未改变arr数组 #include<stdio.h> //atol(arr); 返 <stdlib> int main…

Python的排序算法

一、算法 1.1 算法概念 算法就是计算机解决问题的方法或者步骤 程序 数据结构 算法 1.2 算法的特性 1】确定性&#xff1a; 算法的每条语句具有明确的意思&#xff0c;不能模棱两可 2】有穷性&#xff1a;在执行一定的时间后&#xff0c;能自动结束算法 3】输入&#…

npm install -g@vue/cli报错解决:npm error code ENOENT npm error syscall open

这里写目录标题 报错信息1解决方案 报错信息2解决方案 报错信息1 使用npm install -gvue/cli时&#xff0c;发生报错&#xff0c;报错图片如下&#xff1a; 根据报错信息可以知道&#xff0c;缺少package.json文件。 解决方案 缺什么补什么&#xff0c;这里我们使用命令npm…

在windows操作系统上,用git与github账户连接

一、环境准备 1.1 git软件 1.2 github账号 1.3 创建一个项目目录&#xff0c;比如 D:\project\gitproject 二、开始操作 1. 进入项目目录下&#xff0c;右键&#xff0c;如图&#xff0c;打开git bash命令行 2. 在命令行输入以下三个命令 $ git config --global user.name &quo…

视频监控实现画面缩放功能

文章目录 概要一、功能说明二、核心实现代码三、技术细节 概要 在视频监控系统中&#xff0c;经常需要查看视频画面中的细节。通过实现区域放大、滚轮缩放和拖拽平移等功能&#xff0c;可以让用户更方便地观察视频细节。本文介绍如何在 Windows 系统下实现这些交互功能。 一、…

鸿蒙本地模拟器 模拟TCP服务端的过程

鸿蒙模拟器模拟TCP服务端的过程涉及几个关键步骤&#xff0c;主要包括创建TCPSocketServer实例、绑定IP地址和端口、监听连接请求、接收和发送数据以及处理连接事件。以下是详细的模拟过程&#xff1a; **1.创建TCPSocketServer实例&#xff1a;**首先&#xff0c;需要导入鸿蒙…

Three.js 和其他 WebGL 库 对比

在WebGL开发中&#xff0c;Three.js是一个非常流行的库&#xff0c;它简化了3D图形的创建和渲染过程。然而&#xff0c;市场上还有许多其他的WebGL库&#xff0c;如 Babylon.js、PlayCanvas、PIXI.js 和 Cesium&#xff0c;它们也有各自的特点和优势。本文将对Three.js 与这些常…

【04】MySQL数据库和数据表的基本操作详解与实例

文章目录 一、连接MySQL服务器二、数据库的基本操作2.1数据库的基本操作1. 创建数据库2. 选择数据库3. 删除数据库4.查询所有数据库5.修改数据库的字符集 2.2 数据表的基本操作1. 创建数据表2. 查看数据表结构3. 删除数据表4. 修改数据表5. 插入数据6. 查询数据7. 更新数据8. 删…

CTF-Hub SQL 报错注入(纯手动注入)

​ 当输入1时&#xff0c;发现只有查询正确&#xff0c;基本上可以判断出没有回显 开始注入(工具hackerBar) 题目是报错注入&#xff0c;方向就比较明显&#xff0c;大致说一下用到的函数和原理。 常见报错注入函数&#xff1a; 通过 floor() 报错注入通过 extractValue() …

2024 阿里云的Debian12.8,安装mariadb【图文讲解】

目录 一、安装 MariaDB Server 二、登录到MariaDB&#xff0c;记得输入密码&#xff08;注意&#xff1a;密码非明文&#xff0c;只管输入&#xff0c;完成以后回车&#xff09; 三、创建用户 root&#xff0c;并允许从任何主机连接 四、授予用户访问权限 五、刷新权限 六、…

新用户引导库-driverjs

一个比好用的新用户引导的库 driverjs 在做这个功能时&#xff0c;首先要确定目标是什么样子的&#xff0c; 如果只是随意点击下一步下一步&#xff0c;那我感觉可能用图片轮播图的方式会快一点&#xff0c;更容易解决且方便&#xff0c;想要什么步骤 只需要更改图片就好&…

鸿蒙保存读取沙盒文件

鸿蒙保存读取沙盒文件 参考文件 有些时候需要保存并读取沙盒环境的文件。这样做保存一些临时文件&#xff0c;确保发送网络之前数据不会丢失&#xff0c;或者存储一些只需要在本地使用的数据等等。本文介绍一下相关的操作方式。 获取文件路径 想要保存或者读取文件&#xf…

八、利用CSS制作导航栏菜单的习题

题目一&#xff1a; 利用CSS技术&#xff0c;结合链接和样表&#xff0c;设计并实现“ 山水之间 ”页面。 运行效果&#xff1a; 代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>山水之间</title>&l…

ML 系列:第 31 节— 机器学习中的协方差和相关性

文章目录 一、说明二、协方差和相关性2.1 协方差的概念2.1 相关 三、有关关联的高级主题 &#xff08;有关详细信息&#xff09;3.1 相关性和独立性3.2 零相关性和依赖性示例 四、相关性和因果关系五、结论 一、说明 协方差量化了两个随机变量协同变化的程度。当一个变量的较高…

谈谈微服务的常用组件

由于微服务给系统开发带来了一些问题和挑战&#xff0c;如服务调用的复杂性、分布式事务的处理、服务的动态管理等&#xff0c;为了更好地解决这些问题和挑战&#xff0c;各种微服务治理的组件应运而生&#xff0c;充当微服务架构的基石和支撑&#xff0c;常用组件如下表&#…

2024算法基础公选课练习七(BFS1)

一、前言 还是偏基础的bfs&#xff0c;但是有几个题不是很好写 二、题目总览 三、具体题目 3.1 问题 A: 数据结构-队列-奇怪的电梯 我的代码 可以看成求一维平面的bfs最短路 #include <bits/stdc.h> using i64 long long; using pii std::pair<int,int>; co…

探索.NET世界的无限可能——带你轻松了解.NET

前言 由于目前用到的技术栈有C#&#xff0c;而学习C#离不开.NET框架&#xff0c;正如学习Java离不开学习Spring框架一样。 .NET是微软开发的一个非常强大的框架&#xff0c;它不仅擅长桌面和移动开发&#xff0c;而且还能够支持Web开发和游戏引擎开发&#xff0c;在现在热门的…

[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker pull线上镜像方式构建编译环境

T. 已测试目录 主机类型主机版本Docker镜像版本结果WSL2Ubuntu22.04Ubuntu20.04PASSWSL2Ubuntu22.04Ubuntu18.04PASS R. 软硬件要求&#xff1a; 硬件&#xff1a; 设备容量备注硬盘>500G多版本系统测试&#xff0c;必须固态&#xff0c;否则编译卡死硬盘>300G单系统…

RHCE——SELinux

SELinux 什么是SELinux呢&#xff1f;其实它是【Security-Enhanced Linux】的英文缩写&#xff0c;字母上的意思就是安全强化Linux的意思。 SELinux是由美国国家安全局(NSA)开发的&#xff0c;当初开发的原因是很多企业发现&#xff0c;系统出现问题的原因大部分都在于【内部…

Python - 函数(四)

函数&#xff1a;在编写程序的过程中&#xff0c;有某一功能代码块出现多次&#xff0c; 但是为了提高编写的效率以及代码的重用&#xff0c;所以把具有独立功能的代码块组织为一个小模块&#xff0c;这就是函数 ‌Python中的函数‌是一组被命名的可执行代码&#xff0c;用于完…