让我们构建一个 Chrome 扩展程序!
最近我创建了我的第一个 Chrome 扩展程序。它叫做Catify,它可以将页面上的所有图片替换成猫的图片。现在,每个猫崇拜者在向猫神祈祷时都能获得更多支持。这是我第一次尝试开发 Chrome 扩展程序,整个过程充满乐趣。你也想创建自己的 Chrome 扩展程序吗?太棒了,我会教你怎么做。让我们一起动手吧,穿上你的霍比特人脚,大声喊出“我要去冒险了!”。别担心,你第二顿早餐之前就能完成。
Chrome 扩展程序是什么
Chrome 本身就是一款非常出色的浏览器,但您可以通过添加扩展程序让它更加出色。要查看有哪些扩展程序可用,您可以前往Chrome 网上应用店。快来浏览所有精彩的扩展程序吧。现在,想象一下,您自己的扩展程序也能在该商店中运行。让我们一起来实现吧。
我们正在建造什么?
虽然你可能已经有了几十个很棒的扩展程序创意,但我们应该先了解一下基础知识。因此,对于我们的第一个扩展程序,我们将采用 Google 自己的一个基本示例 Page Redder,并对其进行一些改进。我们将创建一个扩展程序,每次按下扩展程序图标时,页面背景颜色都会变为随机颜色。
开始创建清单
确保设置好源代码管理,并将你常用的编辑器指向正确的位置。我们首先创建一个清单文件,该文件会告诉 Chrome 关于你的扩展程序的所有信息,例如名称、图标,以及它所需的权限和代码所在的位置。让我们创建一个清单文件,新建一个名为 的文件manifest.json
,并在其中填充以下内容:
{
"name": "Make it rain(bow)",
"description": "Embrace the inner unicorn and reflect on the page background.",
"version": "0.0.1",
"manifest_version": 2
}
那么,我们在这里看到了什么?首先是name
。这是扩展程序在商店、扩展程序概览以及(除非另有说明)将图标悬停在浏览器内时所看到的内容。然后是description
,这就像标题、商店中显示的描述和扩展程序概览。接下来是version
扩展程序的。您应该在扩展程序上使用语义版本控制,并在每次更新扩展程序时增加它。最后我们看到manifest_version
,这告诉 Chrome 此文件是用清单版本 2 编写的。如果您想支持 18 之前的 Chrome,您应该使用清单版本 1,但您将失去一些较新的功能。现在基础已经到位,我们可以慢慢添加更多内容。
悬停图标时更改标题
默认情况下,它会显示扩展名,但不必相同。让我们更改它!将以下内容添加到manifest.json
.
"browser_action": {
"default_title": "Unleash the unicorn dust!"
},
现在,当用户将鼠标悬停在图标上时,它将显示文本Unleash the unicorn dust!
。
权限和脚本
在构建扩展程序的实际代码之前,我们需要在清单中添加另外两项内容。首先,我们需要定义它需要拥有的权限。在本例中,我们只需要一个权限,即访问当前选项卡。让我们来定义它。将以下内容添加到manifest.json
.
"permissions": [
"activeTab"
],
接下来,我们需要运行一些脚本来实际更改背景。我们将在背景脚本中执行此操作,该脚本manifest.json
也需要在根目录中定义。将其添加到根目录中。
"background": {
"scripts": ["background.js"],
"persistent": false
},
因此,我们将在名为 的文件中定义逻辑background.js
。此外,它不会持久化,只有当扩展程序使用 chrome.webRequest API 阻止或修改网络请求时,才应该将其持久化。是时候构建实际逻辑了!
更改页面背景颜色
好的,我们告诉 Chrome 逻辑放在了 中background.js
,所以让我们制作这个文件并构建逻辑。
chrome.browserAction.onClicked.addListener(function(tab) {
const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'violet'];
const colorPicker = () => {
const randomIndex = Math.floor(Math.random() * colors.length);
return colors[randomIndex];
}
chrome.tabs.executeScript({
code: 'document.body.style.backgroundColor="' + colorPicker() + '"',
});
});
});
我们简单看一下代码。第一行代码告诉我们,我们为 browserAction 的 onClick 事件添加了一个监听器。什么?什么?什么?!browserAction 是你在 Chrome 浏览器中添加扩展程序时看到的按钮,onClick 是你点击该按钮时发生的事件,添加监听器意味着当执行该点击操作时会触发此事件。所以,当你在 Chrome 浏览器里点击按钮时,这个方法就会被执行。
代码本身并不精彩。我们有一个颜色列表,一个从列表中随机选取颜色的方法,以及一个更改背景颜色的脚本。我们通过在浏览器标签页中执行一段 JavaScript 来实现,该脚本会在实际页面中执行此操作。
添加图标
在试用我们的扩展程序之前,我们先来给它添加一些美观的元素。我们将定义此扩展程序在浏览器顶部显示的图标。首先,创建任意 128x128 的图像。现在,您需要将此图像保存为多种格式:
- 128x128,用于 Chrome 商店
- 48x48,安装时使用
- 32x32,Windows 常用
- 16x16,在 Chrome 本身中用作显示在屏幕顶部的图标。
要添加这些图像,我们在 中更改以下内容manifest.json
。将其添加到以下browser_action
部分:
"default_icon": "icon16.png"
这里我们只需要指定 16x16 的图片,因为图标在任何设备上都是 16x16 的。然后把这部分内容添加到根节点:
"icons": {
"16": "icon16.png",
"32": "icon32.png",
"48": "icon48.png",
"128": "icon128.png"
},
这些图标可以在您的应用程序中使用,并且具有所有所需的尺寸。
让我们尝试一下吧!
你兴奋吗?当然兴奋,因为我们要在自己的浏览器中测试我们的扩展程序!打开你的 Chrome,点击菜单按钮,选择“更多工具” > “扩展程序” ,进入你的扩展程序页面。你首先要做的是启用开发者模式。你可以在右上角找到它。启用它。
现在,您应该会在页面左上角看到三个按钮。它们分别允许您加载已解压的扩展程序、打包扩展程序或强制更新。点击第一个按钮即可加载已解压的扩展程序。
现在浏览到你创建扩展程序的文件夹,然后按Select folder
。你的扩展程序现在就开始安装了,真是太激动了!安装完成后,你应该会在扩展程序页面和浏览器顶部看到它。
快来试试吧!打开新标签页,前往 dev.to,点击彩虹图标。再按一次……再按一次……再按一次……尝尝彩虹的味道!
有用!
发布你的扩展
只剩一件事要做,那就是发布你出色的Make it rain(bow)
扩展程序。让我们来看看具体步骤。
- 创建一个包含所有已创建文件的 zip 文件。因此
manifest.json
, 、background.js
以及所有图标都应该包含在内。 - 转到https://chrome.google.com/webstore/devconsole/并使用您的 Google 帐户登录。
接受许可证后,您可以继续扩展。
-
NEW ITEM
按下右上角的按钮,将打开一个对话框,您应该在其中选择在步骤 1 中创建的 .zip 文件。 -
上传后,系统会打开一个表单,要求您提供一些详细信息,然后才能启用您的扩展程序。您至少需要填写以下内容:
- 标题
- 概括
- 详细描述
- 类别
- 语言
- 一张截图让我们填写这些。
- 按下“保存草稿”,如果所有信息填写正确,你就可以按下“发布项目”了。点击它,现在只需确认即可。当你搜索内心的独角兽时,你感觉到肚子咕咕叫着想要第二顿早餐,于是你迅速按下
PUBLISH
,你的冒险就结束了。你刚刚完成了你的第一个扩展!
完成
感谢您与我一起踏上这段冒险之旅,希望您能有所收获。正如您所见,创建 Chrome 扩展程序并不难。但对于尚未发布的扩展程序,想出一个好点子,那又是另一回事了。我只能祝您好运,并希望很快能看到您的扩展程序!
资源
虽然互联网上有很多关于扩展的资料,但我主要使用了谷歌文档,因为它非常清晰完整。里面还有很多实际的例子:
https://developer.chrome.com/extensions
您可以在此处找到使用的示例代码:
https://github.com/JHotterbeekx/make-it-rainbow-chrome-extension