📅  最后修改于: 2023-12-03 14:52:09.627000             🧑  作者: Mango
想要为 Chrome 浏览器添加自定义的功能和交互方式吗?那就来制作一个 Chrome 扩展吧!本文将向您介绍如何制作一个简单的 Chrome 扩展,并给出一些有关 JS 的技巧,让您在扩展开发中事半功倍。
每一个 Chrome 扩展都需要一个 manifest.json 文件,这个文件告诉浏览器我们的扩展需要什么功能和权限。下面是一个基本的 manifest.json 文件:
{
"manifest_version": 2,
"name": "My Awesome Extension",
"version": "1.0",
"description": "This is a really awesome extension!",
"permissions": [
"tabs"
],
"background": {
"scripts": [
"background.js"
]
},
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"content.js"
]
}
]
}
代码片段
{
"manifest_version": 2,
"name": "My Awesome Extension",
"version": "1.0",
"description": "This is a really awesome extension!",
"permissions": [
"tabs"
],
"background": {
"scripts": [
"background.js"
]
},
"content_scripts": [
{
"matches": [
"<all_urls>"
],
"js": [
"content.js"
]
}
]
}
上述代码定义了一个扩展文件夹中名称为 My Awesome Extension 的 Chrome 扩展。manifest_version
告诉浏览器本扩展使用的 manifest 格式,name
、version
和 description
分别表示扩展的名称、版本和简介。permissions
定义了本扩展所需要的权限,此处我们使用了 tabs
权限,使得扩展能够打开和操作浏览器标签页。background
属性定义了扩展后台的脚本文件,而 content_scripts
属性定义了当一个 URL 被匹配时所需注入的脚本文件。
下面我们接着编写 background.js,这个 JS 文件负责创建一个查找当前活动窗口的函数,并让扩展按钮在点击时打开一个新的标签页:
// 查找当前活动窗口并打开新的标签页
function openNewTab() {
chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
chrome.tabs.create({ url: 'https://www.google.com' });
});
}
// 扩展按钮被点击时调用 openNewTab 函数
chrome.browserAction.onClicked.addListener(openNewTab);
代码片段
// 查找当前活动窗口并打开新的标签页
function openNewTab() {
chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) {
chrome.tabs.create({ url: 'https://www.google.com' });
});
}
// 扩展按钮被点击时调用 openNewTab 函数
chrome.browserAction.onClicked.addListener(openNewTab);
最后我们来完成 content.js,这个 JS 文件将会在所有页面中注入一个简单的提示框,以展示扩展功能:
// 创建提示框
var div = document.createElement('div');
div.style.position = 'fixed';
div.style.top = 0;
div.style.right = 0;
div.style.width = '200px';
div.style.height = '80px';
div.style.background = 'white';
div.style.border = '1px solid black';
div.style.textAlign = 'center';
div.innerHTML = 'Hello from my awesome extension!';
document.body.appendChild(div);
代码片段
// 创建提示框
var div = document.createElement('div');
div.style.position = 'fixed';
div.style.top = 0;
div.style.right = 0;
div.style.width = '200px';
div.style.height = '80px';
div.style.background = 'white';
div.style.border = '1px solid black';
div.style.textAlign = 'center';
div.innerHTML = 'Hello from my awesome extension!';
document.body.appendChild(div);
现在我们已经成功地创建了一份最基本的 Chrome 扩展。接下来,将代码保存到扩展文件夹中,打开 Chrome 浏览器,进入扩展管理器页面,并激活“开发者模式”。通过“加载已解压的扩展程序”按钮,选择我们刚刚创建的文件夹即可成功安装扩展。
祝您创造愉快!
Chrome API 是 Chrome 浏览器扩展开发中一个非常重要的概念。它包含了许多用于操作浏览器功能的方法和属性,如页面访问、网络请求、浏览器界面、书签管理等。想要更加深入地理解 Chrome API,您可以参考官方文档:Chrome 开发者文档。
在编写 Chrome 扩展时,您将会用到一些常用的 JS 方法,这里给出一些例子:
document.createElement(tagName)
:创建一个新的 HTML 元素。window.open(url, name, specs)
:打开一个新的浏览器窗口。chrome.extension.getURL(path)
:获取扩展文件绝对路径。chrome.storage.local
:使用本地存储 API,存储和读取扩展数据。chrome.runtime.sendMessage(message, callback)
:向后台脚本发送一条消息,并等待响应。在开发 Chrome 扩展时,会遇到一些常见的问题,本文列出其中一些:
XMLHttpRequest
发送请求,并在 manifest.json
中加入 permissions
。manifest.json
中加入 content_security_policy
。