浏览器扩展V3开发系列之 chrome.commands 快捷键的用法和案例

【作者主页】:小鱼神1024

【擅长领域】:JS逆向、小程序逆向、AST还原、验证码突防、Python开发、浏览器插件开发、React前端开发、NestJS后端开发等等

chrome.commands API 允许开发者使用快捷键来执行特定的命令。

在使用 chrome.commands API 之前必须在 manifest.json 文件中声明:
image.png

{"manifest_version": 3,"name": "chrome.commands","description": "chrome.commands API 基础用法","version": "1.0","action": {"default_popup": "popup.html","default_icon": "icons/icon128.png"},"background": {"service_worker": "background.js"},"permissions": ["commands"],"commands": {"_execute_action": {"suggested_key": {"default": "Alt+Shift+O","mac": "Command+Shift+O","windows": "Alt+Shift+O"}},"print-logger": {"suggested_key": {"default": "Alt+Shift+P","mac": "Command+Shift+P","windows": "Alt+Shift+P"},"description": "打开日志的命令"}}
}

其中,要声明权限:commands

在 commands 对象中
_execute_action :是一个特殊的Commands API命令,用于触发您的扩展中的action,相当于用快捷键的方式点击扩展图标。这个特殊命令不需要在后台服务工作线程(Service Worker)中设置任何监听器来响应chrome.commands.onCommand,它会自动触发与扩展图标的关联操作。

当多次使用快捷键:Alt+Shift+O 时,效果如下:
5.gif

print-logger:为自定义操作,名称可以随意定义,设置快捷键后。可以在后台服务工作线程(Service Worker)中 chrome.commands.onCommand 来监听快捷键,测试代码如下:
image.png

chrome.commands.onCommand.addListener(function (command) {if (command == "print-logger") {// 执行一些操作console.log("Logger 被打印了!");}
});

当多次使用快捷键:Alt+Shift+P 时,效果如下:
5.gif

suggested_key对象中有:default、chromeos、linux、mac 和 windows
分别标识了不同操作系统下建议的默认快捷键设置,其中default表示:其他特定平台的键未指定时,该平台将使用通用的默认键设置。

description:快捷键的描述

当然,我们也可以访问:chrome://extensions/shortcuts,来查看和修改扩展的快捷键。
image.png

代码地址:传送门

总结
  • 使用快捷键要声明权限:commands
  • _execute_action:用于触发您的扩展中的action
  • suggested_key对象中有:default、chromeos、linux、mac 和 windows
  • 查看或修改扩展快捷键:chrome://extensions/shortcuts

创作不易,动动您发财的小手,点赞关注一波,支持我创作更多对您有帮助的文章!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/35888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Vue 学习之 axios

目录 执行安装命令:npm install axios 使用的时候导入 axios以data,params,headers传参方式的区别 axios封装 是一个基于 promise 的 网络请求库,作用于浏览器和 node.js 中。使用Axios可以在前端项目中发送各种方式的HTTP请求…

如何查看websocket连接信息

Chrome 浏览器中查看 webSocket 连接信息_谷歌浏览器看不到 websocket-CSDN博客 Getting Started — Flask-SocketIO documentation 运作原理 | Socket.IO

VS Code准备JAVA环境

背景 由于IntelliJ IDEA是需要激活码的,简单的java demo测试,除了可以直接使用命令行java和javac进行执行, 推荐使用VS code, 其功能比较强大,扩展插件也比丰富,对阅读和书写代码都是比较友好的. JDK环境准备 Linux JDK可以使用Open JDK 11. sudo apt-get install openjdk-1…

Git+Maven+Jenkins的增量发布

项目结构大致如下: platform-server ├─doc ├─platform-base ├─platform-bom-dependencies ├─platform-commons │ ├─platform-commons-core │ ├─platform-commons-dubbo │ ├─platform-commons-geo │ ├─platform-commons-lang │ ├─platf…

UE引擎实现ShadowMap、体积光(C++)

前言 整体上参考了YivanLee大佬的这两篇文: 虚幻4渲染编程(灯光篇)【第一卷:各种ShadowMap】 虚幻4渲染编程(灯光篇)【第二卷:体积光】 正文 1、ShadowMap (1)创建工…

【浦语开源】深入探索:大模型全链路开源组件 InternLM Lagent,打造灵笔Demo实战指南

一、准备工作: 1、环境配置: pip、conda换源: pip临时换源: pip install -i https://mirrors.cernet.edu.cn/pypi/web/simple some-package# 这里的“https://mirrors.cernet.edu.cn/pypi/web/simple”是所换的源,…

C++设计模式---模版方法模式

1、介绍 概念: 模板方法模式(Template Method Pattern)【行为型模式】,定义一个操作中算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 …

AI绘画Stable Diffusion人物背景替换实操教程,让创意无限延伸

大家好,我是画画的小强 Stable Diffusion以其强大的能力可以实现人物背景的更换。本文将带你深入了解如何利用Stable Diffusion中的Inpaint Anything插件快速且精准地实现人物背景的替换,从而让你的图片焕发新生。 前期准备 本文会使用到Inpaint Anyt…

密码学及其应用——专用名词(法语版)

1. 密码学概念 1. cryptographie - 密码学 2. cryptosystme - 密码系统 3. cryptographie symtrique - 对称密码学 4. cryptographie asymtrique - 非对称密码学 5. cryptographie quantique - 量子密码学 6. stganographie - 隐写术 2. 加密与解密 1. cryptage - 加密 2. dc…

如何优化Spring Boot应用的启动时间

如何优化Spring Boot应用的启动时间 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿!今天我们将讨论如何优化Spring Boot应用的启动时间,提升应用的性…

代码随想录算法训练营第六天|242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

打卡Day6 1.哈希表理论基础2.242.有效的字母异位词2.349. 两个数组的交集3.202. 快乐数4.1. 两数之和 1.哈希表理论基础 文档讲解: 代码随想录 当遇到要快速判断一个元素是否出现在集合中时,要考虑哈希法。但是哈希法牺牲了空间换取了时间,…

观星观景大屏呈现 实时拍摄长焦定格 当当狸智能天文望远镜TW2来啦

《宇宙的奇迹》中有这样一句话:“我们与那些遥远星系息息相关,无论它们是如何与我们天各一方,那些经过数十亿年旅行到达地球的光线,终究会把我们联系在一起”。 想象一下—— 等到繁星低垂,月光皎洁之时,…

随机森林回归原理详解及Python代码示例

随机森林回归原理详解 随机森林回归(Random Forest Regression)是一种集成学习方法,通过构建多个决策树并将它们的预测结果进行平均,来提高模型的稳定性和预测准确性。它通过引入随机性来增强模型的泛化能力,有效减轻了…

【SQL Server数据库】存储过程的使用

目录 一、要求 1.创建一个存储过程 Proc_Course,查看“0108”号课程的选修情况,包括学生学号、姓名和成绩,然后执行该过程 2.创建一个存储过程 Proc_SC1,通过学生学号来查询学生选修情况,默认…

Spring Cloud Gateway 跨域配置和跨服务请求跟踪

文章目录 引言I Spring Cloud Gateway 跨域配置1.1 网关统一处理:配置文件-推荐1.2 网关统一处理:配置类方式1.3 微服务处理,网关侧不用处理CORS。1.4 子服务依赖配置1.5 网关服务的依赖配置II 跨服务请求日志跟踪2.1 feign 依赖配置2.2 feign子模块将请求头中的参数,全部作…

Linux系统安装和卸载nginx

📖Linux系统安装和卸载nginx ✅下载✅安装✅启动nginx✅安装成系统服务✅常见问题:80端口被占用了✅卸载✅目录结构 以下介绍的是以源码编译安装方式: ✅下载 官方地址:https://nginx.org/en/download.html 123云盘地址&#x…

pytest的搜索路径和导入模式

搜索路径 指定路径下面所有的 test_*.py or *_test.py 文件 中的所有以test前缀的方法。或者Test前缀类下的所有test 前缀的方法。不管是不是staticmethod and classmethods 官方文档 https://docs.pytest.org/en/8.2.x/explanation/goodpractices.html#test-discovery base…

基于springboot、vue影院管理系统

设计技术: 开发语言:Java数据库:MySQL技术:SpringbootMybatisvue 工具:IDEA、Maven、Navicat 主要功能: 影城管理系统的主要使用者分为管理员和用户, 实现功能包括管理员: 首页…

如何在 Node.js 中使用文件系统

前言:Web 应用程序并不总是需要写入文件系统,但 Node.js 提供了一个全面的应用程序编程接口 (API) 来实现这一点。如果您要输出调试日志、将文件传输到服务器或从服务器传输文件,或者创建命令行工具,那么它可能是必不可少的。 值得…

ELK集群设置密码

一、软件安装清单 elasticsearch7.17.22logstash7.17.22kibana:7.17.22filebeat7.17.22elasticsearch-head:5 二、配置 生成证书 进入elasticsearch容器 bin/elasticsearch-certutil cert -out /usr/share/elasticsearch/config/elastic-certificates.p12 -pass将证书拷贝…