Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >使用Svelte开发Chrome Extension

使用Svelte开发Chrome Extension

作者头像
程序猿川子
发布于 2022-05-28 03:27:37
发布于 2022-05-28 03:27:37
93200
代码可运行
举报
运行总次数:0
代码可运行

一、背景

起因 最近Chrome浏览器升级到96大版本后,二维码入口从地址栏移动至二级菜单。这对H5前端开发来说不太友好,每次需要页面二维码时都需要多点两下(* ̄︿ ̄)。

因此萌生了开发一个二维码Chrome Extension的想法(@ ̄ー ̄@)。

经过多方技术选型(React、原生、Vue、Svelte等),最终选择Svelte,原因是

  • 语法简单,心智负担小
  • 运行时代码少,打包体积小
  • 响应式

d=====( ̄▽ ̄*),接下来就开始Svelte × Chrome Extension之旅。

二、创建&开发

2.1 项目创建

2.1.1 项目初始化

使用Svelte Kit新建项目npm`` init svelte@next qrcode-extension ,目录结构如下:

  • src:源文件目录
    • lib:组件库等
    • routes:约定式路由文件
    • app.html:入口模板文件
  • static:静态文件目录
  • svelte.config.js:svelte配置

初始化项目之后可以直接npm`` run dev 启动。

2.1.2 支持插件开发

  1. manifest文件

Extensions are built on web technologies such as HTML, JavaScript, and CSS.

—— Chrome开发文档

  1. Chrome插件本质上是以manifest.json为入口规定的一系列前端资源集合,基于Chrome浏览器提供的API,实现各种功能。

因此在项目的静态资源文件目录中添加manifest.json文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{
  "name": "QrCode",
  "description": "A simple qrcode extension powered by Svelte",
  "version": "1.0",
  "manifest_version": 3,
  "permissions": ["tabs", "downloads"],
  "action": {
    "default_popup": "index.html"
  },
  "icons": {
    "16": "/images/qrcode-16.png",
    "32": "/images/qrcode-32.png",
    "48": "/images/qrcode-48.png",
    "128": "/images/qrcode-128.png"
  }
}
复制代码

几个比较重要的字段:

MV3文件格式参考

  • manifest_version:manifest版本,之前为Manifest V2(MV2),Chrome推荐使用Manifest V3(MV3)
  • permissions:扩展要使用的浏览器权限,大部分Chrome扩展API均有权限依赖
  • action:定义插件操作行为对应的页面
    • default_popup:点击插件图标时的页面
  • icons:插件图标
  1. 添加chrome类型定义
  2. 安装@types/chrome到devDependencies,并在tsconfig.json#compilerOptions#types中添加chrome类型。

2.2 功能开发

2.2.1 需求拆分

  1. 参考Chrome浏览器二维码功能:

2.2.2 链接展示

  1. 需要获取Chrome浏览器当前打开的tab,查阅开发文档可知对应API为chrome.tabs,并在manifest.json#permissions添加tabs权限声明。

在首页加载时,获取当前tab的url,url展示到输入框,并作为二维码组件的输入属性。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
async function getCurrentTab() {
  if (typeof chrome === 'undefined' || typeof chrome.tabs === 'undefined') {
    return { url: '' };
  }
  let queryOptions = { active: true, currentWindow: true };
  let [tab] = await chrome.tabs.query(queryOptions);
  return tab;
}

import { onMount } from 'svelte';

let url = '';
// get current tab's url
onMount(() => {
  (async () => {
    const tab = await getCurrentTab();
    url = tab.url || '';
  })();
});
复制代码

本文系转载,前往查看

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

本文系转载,前往查看

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Chrome扩展插件的开发--获取网页Cookies
Chrome浏览器在浏览器类应用软件中一直居于榜首,很多人选择Chrome浏览器不仅仅是因为它的稳定,还有它丰富的可拓展性。那么有没有想自己开发一款自己的谷歌浏览器插件呢?本文将介绍大家手动开发一个谷歌浏览器插件获取cookies.
凯哥Java
2022/12/16
2.5K0
Chrome扩展插件的开发--获取网页Cookies
​Chrome扩展插件的开发--获取网页Cookies
Chrome浏览器在浏览器类应用软件中一直居于榜首,很多人选择Chrome浏览器不仅仅是因为它的稳定,还有它丰富的可拓展性。那么有没有想自己开发一款自己的谷歌浏览器插件呢?本文将介绍大家手动开发一个谷歌浏览器插件获取cookies.
凯哥Java
2022/10/30
1.6K0
​Chrome扩展插件的开发--获取网页Cookies
Chrome扩展开发入门体验
****前言**** Chrome浏览器扩展开发算是相当简单的,基本只要掌握HTML+CSS+Javascript,即可快速开发一个属于你的Chrome插件! ---- ****Chrome扩展基本目录结构**** manifest.json 这是一个配置文件,里面记录了扩展的使用范围、作者、版本、其余需要加载的文件等内容; icon.png 这个一看便知,就是扩展的图标~~~ popup.html 点击扩展图标,弹出的面板页面(如果在manifest.json中配置了default
AlicFeng
2018/06/08
1.2K0
写html页面没意思,来挑战chrome插件开发
谷歌浏览器插件开发是指开发可以在谷歌浏览器中运行的扩展程序,可以为用户提供额外的功能和定制化的体验。谷歌浏览器插件通常由HTML、CSS和JavaScript组成,非常利于前端开发者。 开发者可以利用这些技术在浏览器中添加新的功能、修改现有功能或者与网页进行交互。
winty
2024/04/25
6780
写html页面没意思,来挑战chrome插件开发
【Chrome】931- 何从零开始开发一个 Chrome 插件?
简单来说浏览器插件,是浏览器上的一种工具,可以提供一些浏览器没有的功能,帮你做一些有趣的事情。开发者可以根据自己的喜欢,去实现一些功能。插件基于Web技术(html、css、js)构建。
pingan8787
2021/04/26
2K0
【Chrome】931- 何从零开始开发一个 Chrome 插件?
Chrome Extension
Chrome插件是一个用Web技术开发、用来增强浏览器功能的软件,它其实就是一个由HTML、CSS、JS、图片等资源组成的一个.crx后缀的压缩包
江米小枣
2020/06/15
3.2K0
chrome extension develop
打开extension调试模式,加载文件目录,在chrome extension按钮出现后,右键inspect popup,添加调试断点,F5进入断点
sofu456
2019/08/29
9350
写个自己的chrome插件
有没有好奇chrome[1]插件是用什么做的?像类似掘金插件又是怎么实现的,当我安装稀土掘金插件后,我的导航页都被改掉了,因此你也可以做一个类似的插件,来导航你公司的一些产品,方便快捷的实现你的内部导航
Maic
2022/12/21
2.1K0
写个自己的chrome插件
如何快速地开发一个chrome扩展插件
说到现如今最流行的浏览器,那么一定是chrome,无论是它的速度,还是它的稳定性,还是它的简洁,都让人爱不释手,此外,更多的人选择它的理由是它有着丰富的扩展插件,这些扩展插件让你的浏览器变得异常强大,让你的浏览器不仅仅是浏览器。
程序那些事儿
2023/07/24
6970
如何快速地开发一个chrome扩展插件
数栈技术干货:从0到1实现谷歌插件开发探索及应用
数栈是云原生—站式数据中台PaaS,我们在github和gitee上有一个有趣的开源项目:FlinkX,记得给我们点个star!star!star!
袋鼠云数栈
2021/05/14
1.2K0
数栈技术干货:从0到1实现谷歌插件开发探索及应用
火狐扩展开发入门实践
题外话: 由于公司内部系统不只支持将后台网页中的数据进行导出为docx或者html而只能打印成PDF,所以为了丰衣足食选择了自己进行开发一个浏览器插件来提取网页中的代码片段与提前设置好的html模板将获取的html进行插入,但是我们需要从基础学习开始一步一步的接触Firefox扩展软件的开发;
全栈工程师修炼指南
2020/10/23
3.3K0
火狐扩展开发入门实践
Chrome扩展程开发初探
最近学习了一些前端知识,准备找点方向和项目在工作之余练练手。偶然间被ChatGPT提醒,觉得Chrome拓展开发是一个非常不错的方向。
FunTester
2024/07/30
3700
Chrome扩展程开发初探
【干货】Chrome插件(扩展)开发全攻略
严格来讲,我们正在说的东西应该叫Chrome扩展(Chrome Extension),真正意义上的Chrome插件是更底层的浏览器功能扩展,可能需要对浏览器源码有一定掌握才有能力去开发。鉴于Chrome插件的叫法已经习惯,本文也全部采用这种叫法,但读者需深知本文所描述的Chrome插件实际上指的是Chrome扩展。
winty
2020/07/23
12.2K1
【干货】Chrome插件(扩展)开发全攻略
一天学会Chrome插件开发
如前所述,它包含了一些插件的元数据,作为chrome的入口文件,可以理解为插件的程序清单,那么它到底做了什么事情呢? 结合示例,我们细细来看:
疯狂的技术宅
2019/03/28
9510
一天学会Chrome插件开发
Chrome扩展开发入门
近几年,随着 IE 浏览器的落幕,Chrome(包括使用Chrome内核的浏览器)其实质上已经垄断整个浏览器行业了,就连微软的 Edge 都用上了 Chrome 内核。 可以说,Chrome 的标准,事实上就可以看做是行业标准了。可以预见,Chrome 的发展前景将会非常广阔。
epoos
2022/09/19
4.3K0
Chrome扩展开发入门
win10 Edge浏览器插件开发
win10最好用的浏览器-Edge  支持插件了  是一个商机哦,可以把开发的插件发到应用商店,还能设置收费下载呢 Edge浏览器扩展API还在开发当中,目前已经支持了大部分的API 。查看具体的API支持情况,请参考supported APIs,查看API的开发进度-请参考extension API roadmap 。下面讲解下如何创建一个简单的插件并添加到Edge浏览器上。 首先创建一个文件夹,命名为edgeExt。在这个文件夹里,新建一个manifest.json 文件,写入如下代码:
神无月
2018/06/26
1.2K0
谷歌插件之一键关闭同域名页面
在日常的网页浏览中,我们常常会打开多个相同域名的页面,特别是在进行某些重复性工作或者浏览新闻网站时,这种情况尤为常见。手动关闭这些页面既费时又费力。为了解决这个问题,我们可以开发一个简单的谷歌插件,实现一键关闭所有同域名的页面,极大地提升浏览效率。本文将带你一步一步完成这个插件的开发过程。
一只牛博
2025/05/31
1400
谷歌插件之一键关闭同域名页面
全网最详细的谷歌插件开发小册📚
可能是全网最详细的谷歌插件开发小册👏🏻,之前写谷歌插件的时候绕了一圈网上的教程,没有发现比较好的文档教程,索性根据官方文档梳理一遍,避免后面学习的同学继续踩坑!!!
linwu
2023/07/26
1.7K0
chrome插件开发入门
chrome浏览器深受广大用户的喜爱,其扩展性对于开发者来说更加是经常会接触到的,平时用到很多的插件,一方面帮助自己提高了工作的效率,本小节来学习一下chrome插件开发入门篇
在水一方
2022/06/14
6020
chrome插件开发入门
谷歌插件之页面标记
你是否曾经在浏览网页时,发现了一篇非常有用的文章或者复杂的数据图表,但是随后又发现自己需要在其中标注、勾画或添加注释?今天,我们将介绍一款神奇的谷歌插件,它不仅让你在网页上任意使用画笔进行标注,还能帮助你快速捕捉灵感、整理思路,甚至和同事、朋友分享你的发现。让我们一起揭开这个功能的魔幻面纱,看看它究竟能为我们带来怎样的便利!
一只牛博
2025/05/31
1440
谷歌插件之页面标记
相关推荐
Chrome扩展插件的开发--获取网页Cookies
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验