开发 Chrome 扩展 之 Hello World 心血来潮
创始人
2024-02-24 11:23:32
  • 开发 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)

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

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...