A Chrome extension to scroll to the top of the page with a double click shortcut. created by Deepseek
创建Chrome插件支持快捷键滚动
帮我创建一个chrome浏览器插件。包含以下功能:
1. 支持两次点击快捷键滚动到浏览器顶部
创建一个简单的 Chrome 浏览器插件,支持通过快捷键两次点击滚动到浏览器顶部。以下是实现步骤:
1. 创建项目结构
首先,创建一个文件夹来存放插件文件,例如 ScrollToTopExtension。在该文件夹中创建以下文件:
复制
ScrollToTopExtension/
│
├── manifest.json
├── background.js
└── icons/
└── icon48.png
2. 编写 manifest.json
manifest.json 是插件的配置文件,定义了插件的基本信息和权限。
json
复制
{
"manifest_version": 3,
"name": "Scroll To Top",
"version": "1.0",
"description": "A Chrome extension to scroll to the top of the page with a double click shortcut.",
"permissions": ["commands"],
"background": {
"service_worker": "background.js"
},
"commands": {
"scroll-to-top": {
"suggested_key": {
"default": "Ctrl+Shift+Space",
"mac": "Command+Shift+Space"
},
"description": "Scroll to the top of the page"
}
},
"icons": {
"48": "icons/icon48.png"
}
}
3. 编写 background.js
background.js 是插件的后台脚本,用于监听快捷键并执行滚动操作。
javascript
复制
chrome.commands.onCommand.addListener((command) => {
if (command === "scroll-to-top") {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
chrome.scripting.executeScript({
target: { tabId: tabs[0].id },
function: scrollToTop
});
});
}
});
function scrollToTop() {
window.scrollTo({ top: 0, behavior: "smooth" });
}
4. 添加图标
在 icons 文件夹中放置一个 48x48 像素的图标文件 icon48.png。你可以使用任何你喜欢的图标。
5. 加载插件
打开 Chrome 浏览器,进入 chrome://extensions/。
打开“开发者模式”。
点击“加载已解压的扩展程序”,选择你创建的 ScrollToTopExtension 文件夹。
6. 使用插件
现在,你可以使用快捷键 Ctrl+Shift+Space(Windows/Linux)或 Command+Shift+Space(Mac)来滚动到页面顶部。
7. 可选:自定义快捷键
如果你想自定义快捷键,可以在 chrome://extensions/ 页面底部找到“键盘快捷键”链接,然后为你的插件设置自定义快捷键。
总结
这个简单的 Chrome 插件通过监听快捷键并执行 JavaScript 代码来实现滚动到页面顶部的功能。你可以根据需要进一步扩展功能,例如添加更多快捷键或自定义滚动行为。
我想用连击 b 字母作为返回顶部的快捷键
在 Chrome 扩展中,直接监听键盘连击(如双击 b 键)是比较复杂的,因为 Chrome 的 commands API 不支持直接监听连击事件。不过,我们可以通过注入内容脚本(Content Script)来实现监听键盘连击的功能。
以下是实现步骤:
1. 更新项目结构
在之前的项目结构基础上,新增一个 content.js 文件:
复制
ScrollToTopExtension/
│
├── manifest.json
├── background.js
├── content.js
└── icons/
└── icon48.png
2. 更新 manifest.json
修改 manifest.json,添加 content_scripts 部分,以便在页面中注入 content.js。
json
复制
{
"manifest_version": 3,
"name": "Scroll To Top",
"version": "1.0",
"description": "A Chrome extension to scroll to the top of the page by double pressing 'b'.",
"permissions": ["activeTab"],
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
],
"icons": {
"48": "icons/icon48.png"
}
}
3. 编写 content.js
在 content.js 中实现监听双击 b 键的逻辑。
javascript
复制
let lastKeyPressTime = 0;
const doublePressThreshold = 300; // 双击时间间隔阈值(单位:毫秒)
document.addEventListener("keydown", (event) => {
if (event.key === "b") {
const currentTime = new Date().getTime();
if (currentTime - lastKeyPressTime < doublePressThreshold) {
// 双击 b 键
window.scrollTo({ top: 0, behavior: "smooth" });
}
lastKeyPressTime = currentTime;
}
});
4. 更新 background.js
由于我们不再使用 commands API,background.js 可以留空或删除。
5. 加载插件
打开 Chrome 浏览器,进入 chrome://extensions/。
打开“开发者模式”。
点击“加载已解压的扩展程序”,选择你创建的 ScrollToTopExtension 文件夹。
6. 使用插件
现在,在任何网页中快速双击 b 键,页面就会平滑滚动到顶部。
7. 可选:调整双击时间间隔
如果你觉得双击 b 键的时间间隔太短或太长,可以修改 content.js 中的 doublePressThreshold 值(单位:毫秒)。例如:
javascript
复制
const doublePressThreshold = 500; // 500 毫秒
总结
通过注入内容脚本并监听键盘事件,我们实现了双击 b 键滚动到页面顶部的功能。这种方法灵活且不需要额外的权限,适合实现自定义快捷键功能。如果需要更复杂的功能(如支持更多快捷键组合),可以进一步扩展代码。
能给我直接创建目录结构的shell命令吗?我用的是mac操作系统,使用的是zsh
当然可以!以下是用于在 macOS 上使用 zsh 创建 Chrome 插件目录结构的 Shell 命令:
zsh
复制
mkdir -p ScrollToTopExtension/icons && \
cd ScrollToTopExtension && \
touch manifest.json background.js content.js && \
echo "Created directory structure and files!"
解释:
mkdir -p ScrollToTopExtension/icons:
创建 ScrollToTopExtension 文件夹,并在其中创建 icons 子文件夹。
-p 参数确保父目录不存在时也会被创建。
cd ScrollToTopExtension:
进入 ScrollToTopExtension 文件夹。
touch manifest.json background.js content.js:
创建 manifest.json、background.js 和 content.js 三个空文件。
echo "Created directory structure and files!":
输出一条成功消息。
运行命令:
打开终端(Terminal)。
粘贴上述命令并按下回车键。
你会看到以下目录结构被创建:
复制
ScrollToTopExtension/
│
├── manifest.json
├── background.js
├── content.js
└── icons/
添加图标文件:
如果你有一个 48x48 像素的图标文件(例如 icon48.png),可以将其放入 icons 文件夹中。如果没有图标,可以暂时留空,或者使用以下命令创建一个占位符图标:
zsh
复制
touch ScrollToTopExtension/icons/icon48.png
验证:
运行以下命令验证目录结构是否正确:
zsh
复制
cd ScrollToTopExtension && tree
如果 tree 命令未安装,可以通过 Homebrew 安装:
zsh
复制
brew install tree
然后再次运行 tree,你会看到类似以下的输出:
复制
.
├── background.js
├── content.js
├── icons
│ └── icon48.png
└── manifest.json
1 directory, 4 files
现在,你可以开始编写插件的代码了!