开发 Chrome 扩展 之 Hello World 心血来潮
创始人
2024-02-24 10:22:56
0
  • 开发 Chrome 扩展
    • Hello, World
      • 项目
      • 加载未打包的扩展
      • icon
      • 刷新
      • 引入 JS 与错误处理

开发 Chrome 扩展

开发 Chrome 扩展除了需要基本的 HTML, CSS, JS 之外, 还可以使用 Chrome 额外提供的 API.

除了需要的 .html, .css.js 文件之外呢, 扩展还包括不同类型的文件, 具体可以包含哪些文件取决于扩展提供的功能. 下面列出最经常用到的文件

  • The manifest

每个扩展都必须提供一个名为 manifest.json 的文件, 而且这个文件必须位于扩展的根目录. manifest.json 通常提供了重要的元数据, 资源定义, 权限许可, 并且指明哪些文件在后台运行, 哪些在页面运行.

  • The service worker

插件的 service worker 用来监听和处理浏览器事件, 包括导航🧭到新页面、移除书签🔖或者关闭一个页面等. service worker 可以使用所有的 Chrome APIs 但是它不能直接与页面的内容交互

  • content scripts

content scripts 才在网页的环境中执行 JS. 它们可以读取和修改扩展注入的页面的 DOM. content scripts 只能使用一部分 Chrome APIs 但是可以与 service worker 交换信息来间接访问剩下的 APIs.

  • The popup and other pages

扩展可以包括各式各样的 HTML 文件, 比如弹出页面, 选项页面和其他页面. 所有页面都可以访问 Chrome APIs

Hello, World

项目

下面写一个 Hello World 版本的插件, 插件的功能就是创建点击插件时展示 Hello World 和当前时间.

创建一个文件夹, 并创建 manifest.json.

{"manifest_version": 3,"name": "Hello, World","description": "show Hello World on popup","version": "1.0","action": {"default_popup": "hello_world.html","default_icon": "favicon-16x16.png"}
}

这个文件必须包含的 keymanifest_version, nameversion. 开发阶段支持 // 形式的注释, 如果要上架到 Chrome Web Store 必须移除注释.

使用 https://favicon.io/ 创建扩展的图标. 然后创建 hello_world.html

Hello World

加载未打包的扩展

在开发者模式下加载未打包的扩展
1️⃣在 Chrome 浏览器中输入 chrome://extensions/ 进入扩展管理页面. 点击右上角开关打开开发者模式

在这里插入图片描述

点击「加载已解压的扩展程序」并选择开发插件代码的文件夹

在这里插入图片描述

然后选择浏览器右上角的扩展按钮🔘,并将自己的开发的扩展固定在导航栏部分. 之后点击我们的插件就可以看到效果了

在这里插入图片描述
在这里插入图片描述

icon

其实发现了上面的截图中, 扩展页面是没有图片的. 在 manifest.json 中通过 icons 声明

{..."icons": {"16": "favicon-16x16.png","32": "favicon-32x32.png","48": "android-chrome-192x192.png","128": "android-chrome-512x512.png"}
}

不同大小的 icon 用在不同的地方展示

  • 16x16: 用在浏览器右上角的扩展和扩展按钮点击后的展示
  • 32x32: windows 操作系统要求 32x32 大小
  • 48x48: 在扩展管理页面
  • 128x128: 安装时展示, 在 Chrome Web Store 中展示

刷新

如果我们修改了代码, 可以在扩展管理页面点击右下角的刷新按钮刷新

Hello World

在这里插入图片描述

当然, 不是所有文件修改后都需要刷新, 只有 manifest.json, service worker, content scripts 修改了才需要刷新.

引入 JS 与错误处理

我们可以创建 popup.js 并在 hello_world.html 中引入

console.log('Hello, World.')

Hello World

为了看到打印的内容, 需要完成下面的操作

  • 点击扩展的刷新按钮
  • 点击扩展, 弹出页面
  • 右击页面, 出现菜单并选择「检查」项
  • 在弹出的扩展的开发者工具中, 选择 console 选项卡, 就可以看到输入的内容了😊
    在这里插入图片描述

如果 JS 中出现了错误, 例如打印一个不存在的变量, 然后重复上面刷新的步骤

console.log(a)

之后, 在扩展管理页面扩展就出现了「错误」按钮, 点击就可以看到具体的错误代码和错误原因.
在这里插入图片描述

相关内容

热门资讯

修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
【前端】‘??‘与‘||‘有什... 0 问题 经常写const data = res.data.a ?? ''或者const d...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
牛客计算器的改良(Python... 文章目录1.题目描述2.输入描述:3.输出描述:4.示例15.分析6.代码7.结语 链接࿱...
正大杯|市调大赛|2023备赛... 关键信息 同时随着精细化养宠趋势的深入,宠物消费类目日渐丰富。 本报告通过 Niuco...
QGIS下载在线地图(Goog... 前言 国内外有很多在线地图下载软件,但功能单一,基本上只能下载数据&#x...