油猴脚本教程案例【键盘监听】-编写 ChatGPT 快捷键优化

文章目录

  • 1. 元数据
    • 1. `name`
    • 2. `namespace`
    • 3. `version`
    • 4. `description`
    • 5. `author`
    • 6. `match`
    • 7. `grant`
    • 8. `icon`
  • 2. 编写函数
    • .1 函数功能
      • 2.1.1. `input` - 聚焦发言框
      • 2.1.2. `stop` - 取消回答
      • 2.1.3. `newFunction` - 开启新窗口
      • 2.1.4. `scroll` - 回到底部
  • 3. 监听键盘事件
    • 3.1 监听X - 开启新对话
    • 3.2 监听Z - 取消回答
    • 3.3 监听/ - 聚焦发言框
    • 3.4 监听L - 回到底部
  • 4.完整代码
  • 5.使用

1. 元数据

当编写油猴脚本时,元数据是脚本的一些基本信息,它们提供了关于脚本的描述和配置。以下是元数据的详细解释和用法:

1. name

解释: 这是脚本的名称,用于标识脚本的主题或功能。

用法:

// @name         ChatGPT快捷键优化

2. namespace

解释: 命名空间用于定义脚本的唯一标识符,通常是脚本的作者或网站。

用法:

// @namespace    http://tampermonkey.net/

3. version

解释: 版本号表示脚本的版本。每次更新脚本时,都应该递增版本号。

用法:

// @version      0.1

4. description

解释: 描述字段提供了对脚本功能的简要说明。

用法:

// @description  ChatGPT快捷键优化,添加新建、停止、输入功能

5. author

解释: 作者字段用于指定脚本的作者。

用法:

// @author       Your Name

6. match

解释: 匹配字段定义了脚本执行的网页地址。只有在匹配的网页上,脚本才会生效。

(支持正则表达式匹配)

用法:

// @match        https://chat.openai.com/*

7. grant

解释: @grant 字段用于定义脚本使用的油猴 API 功能。在这个例子中,是为了添加样式。

用法:

// @grant        GM_addStyle

8. icon

解释: 图标字段用于指定脚本在油猴管理界面中显示的图标。

用法:

// @icon         https://cdn.oaistatic.com/_next/static/media/apple-touch-icon.59f2e898.png

2. 编写函数

油猴脚本支持原生的JavaScript编程

.1 函数功能

2.1.1. input - 聚焦发言框

function input() {var input_button = document.querySelector('#prompt-textarea');input_button.focus();
}

在这里插入图片描述

2.1.2. stop - 取消回答

function stop() {var stop_button = document.querySelector(".flex.h-full.flex-row.items-center.justify-center.gap-3>button");stop_button.click();
}

在这里插入图片描述

2.1.3. newFunction - 开启新窗口

function newFunction() {var new_button = document.querySelector('.flex.w-full.gap-2.items-center.justify-center');new_button.click();
}

在这里插入图片描述

2.1.4. scroll - 回到底部

function scroll() {var down_button= document.querySelector('div.flex.h-full.flex-col > div.flex-1.overflow-hidden > div > div > div > button');down_button.click();
}

在这里插入图片描述

3. 监听键盘事件

3.1 监听X - 开启新对话

document.addEventListener('keydown', function (event) {if (event.shiftKey && event.ctrlKey && event.key.toLowerCase() === 'x') {newFunction(); // 表示shift + ctrl + X 即可新建对话}
});

3.2 监听Z - 取消回答

document.addEventListener('keydown', function (event) {if (event.shiftKey && event.ctrlKey && event.key.toLowerCase() === 'z') {stop();// 表示shift + ctrl + Z 即可取消回答}
});

3.3 监听/ - 聚焦发言框

document.addEventListener('keydown', function (event) {if (event.shiftKey && event.ctrlKey && event.code === 'Slash') {input();// 表示shift + ctrl + / 即可聚焦到发言框}
});

3.4 监听L - 回到底部

document.addEventListener('keydown', function (event) {if (event.shiftKey && event.ctrlKey && event.key.toLowerCase() === 'q') {input();// 表示shift + ctrl + Q 即可聚焦到发言框}
});

4.完整代码

// ==UserScript==
// @name         GPT快捷键优化
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  快捷使用
// @author       D0ublecl1ck
// @match        https://chat.openai.com/*
// @grant        GM_addStyle
// @icon         https://cdn.oaistatic.com/_next/static/media/apple-touch-icon.59f2e898.png
// ==/UserScript==(function () {'use strict';// 定义要执行的函数function stop() {// 这里是 stop 函数的具体实现var stop_button = document.querySelector(".flex.h-full.flex-row.items-center.justify-center.gap-3>button");stop_button.click();}function scroll() {// 这里实现点击回到底部var down_button = document.querySelector(".m-1.text-black.dark");down_button.click();}function newFunction() {// 这里是 new 函数的具体实现var new_button = document.querySelector('.flex.w-full.gap-2.items-center.justify-center');new_button.click();}function input() {// 这里是 input 函数的具体实现var input_button = document.querySelector('#prompt-textarea');input_button.focus();}// 监听键盘事件document.addEventListener('keydown', function (event) {// 判断是否按下了 Shift 和 Ctrl 键if (event.shiftKey && event.ctrlKey) {if (event.key.toLowerCase() === 'x') {// 判断按下的是 X 键// 新的对话newFunction();} else if (event.key.toLowerCase() === 'z') {// 判断按下的是 Z 键// 停止回复stop();} else if (event.code === 'Slash') { // 判断按下的是 / 键// 聚焦搜索框input();} else if (event.key.toLowerCase() === 'l') {// 判断按下的是 L 键// 点击回到底部scroll();}}});
})();

5.使用

点击添加新脚本
在这里插入图片描述
删除初始的数据代码,复制粘贴我们的代码之后 CTRL+S保存即可。
在这里插入图片描述

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

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

相关文章

飞天使-k8s知识点4-验证安装好后功能

文章目录 接k8s知识点2之验证集群功能创建dashboard验证安装nginx 并访问tomcat 访问 接k8s知识点2之验证集群功能 [rootkubeadm-master2 tmp]# kubectl run net-test1 --imagealpine sleep 36000 pod/net-test1 created [rootkubeadm-master2 tmp]# kubectl get pod NAME …

转义字符使用详解【C语言】

目录 转义字符的概念 转义字符表 转义字符详解 和 实际使用示例 一、\a 二、\b 三、\f 四、\n 五、\r 六、\t 七、\v 八、\\ 九、\ 十、\" 十一、\? 十二、\0 十三、\ddd 十四、\xhh 总结—— 转义字符的概念 所有的 ASCII码都可以用“\加数字” 来表示…

华为Harmony——ArkTs语言

文章目录 一、简单示例二、声明式UI描述创建组件无参有参数 配置属性配置事件配置子组件 三、自定义组件基本用法基本结构成员函数/变量 一、简单示例 我们以一个具体的示例来说明ArkTS的基本组成。如下图所示,当开发者点击按钮时,文本内容从“Hello Wo…

js 现在的时间距离本月月底的倒计时(html)

现在的时间距离本月月底的倒计时 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv"X-UA-…

博客引擎 hugo intro 入门介绍+安装笔记

hugo 博客引擎 Hugo 是一个流行的静态网站生成器&#xff0c;它被广泛用于创建博客和静态网站。 静态网站生成器&#xff1a;Hugo 是一个静态网站生成器&#xff0c;它将你的博客内容转换为 HTML、CSS 和 JavaScript 文件&#xff0c;这些文件可以直接部署到 Web 服务器上。相…

【C语言】动态内存管理基础知识——动态通讯录,如何实现通讯录容量的动态化

引言 动态内存管理的函数有&#xff1a;malloc,calloc,ralloc,free,本文讲解动态内存函数和使用&#xff0c;如何进行动态内存管理,实现通讯录联系人容量的动态化&#xff0c;对常见动态内存错误进行总结。 ✨ 猪巴戒&#xff1a;个人主页✨ 所属专栏&#xff1a;《C语言进阶》…

老毛桃软碟通制作启动盘装机硬盘安装系统

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、老毛桃制作winPE镜像 1、简介 2、老毛桃的主要功能包括&#xff1a; 3、准备 4、制作启动盘流程 5…

vue项目npm run build报错npm ERR! missing script: build(已解决)

vue项目npm run build报错npm ERR! missing script: build&#xff08;已解决&#xff09; 错误描述&#xff1a; 今天准备打包vue项目上线是出现下列错误&#xff1a; 找了很多解决方法都不行&#xff0c;最后打开自己的package.json文件发现&#xff1a;build后面多了个&a…

内皮素-1(Endothelin-1 )ELISA kit

灵敏、快速的内皮素-1 ELISA试剂盒&#xff0c;适用于心血管和应激相关研究 内皮素&#xff08;Endothelin, ET&#xff09;是由血管内皮细胞产生的异肽&#xff0c;具有强大的血管收缩活性。这种肽由三个独立的基因编码&#xff0c;经过加工产生39个残基的 大ET 分子&#xff…

【科普知识】什么是步进驱动器、驱动模式及驱动的方法?

我们已经知道步进电机就是一种将电脉冲信号转化为角位移的执行机构。那么如何精准地控制电机的速度和位置呢&#xff1f;这就需要一种驱动器的装置。 1.什么是步进驱动器&#xff1f; 电机控制原理图 步进驱动器是一种能使步进电机运转的功率放大器&#xff0c;能把控制器发来…

Zabbix自动发现并注册已安装agent的主机

先在被监控主机上安装好zabbix-agent 然后登录zabbix网页 点击发现动作后会出现第三步 然后编辑操作&#xff0c;发现后加入到主机组群 然后编辑发现规则 然后就可以在主机列表中看到被发现的主机。

window下搭建Rocketmq服务及测试demo

下载地址&#xff1a;下载 | RocketMQ 一. RocketMQ部署 系统:Windows7;环境:JDK1.8、Maven3.3、Git&#xff1b; 下载 | RocketMQ 1.1 下载&#xff0c; 进入RocketMQ官网http://rocketmq.apache.org/docs/quick-start/&#xff0c; 这里以编写时的最新版本为例&#…

大疆又出新品:户外电源

大疆创新最近发布了两款强大的户外电源&#xff1a;DJI Power 1000 和 DJI Power 500。这两款产品都具有高效储能、便携易用、安全放心、续航强大等优势&#xff0c;让你在户外探险时拥有更多可能性。 DJI Power 1000 电池容量&#xff1a;1024 瓦时&#xff08;约 1 度电&…

光条中心线提取-Steger算法 [OpenCV]

在线结构光视觉传感器中&#xff0c;由线激光器发射出的线结构光&#xff0c;在本质上为一个连续且具有一定厚度的空间光平面&#xff0c;而在目标表面上所形成的具有一定宽度的光条特征&#xff0c;即为该光平面与目标表面相交而成的交线。在该空间光平面的厚度方向上&#xf…

0x43 线段树

0x43 线段树 线段树&#xff08;Segment Tree&#xff09;是一种基于分治思想的二叉树结构&#xff0c;用于在区间进行信息统计。与按照二进制位&#xff08;2的次幂&#xff09;进行区间划分的树状数组相比&#xff0c;线段树是一种更加通用的结构&#xff1a; 1.线段树的每…

组播地址段及其作用

作用 组播(Multicast)传输:在发送者和每一接收者之间实现点对多点网络连接。如果一台发送者同时给多个的接收者传输相同的数据&#xff0c;也只需复制一份的相同数据包。它提高了数据传送效率。减少了骨干网络出现拥塞的可能性。 地址段 组播协议的地址在 IP 协议中属于 D 类…

Hadoop 集群环境搭建

目录 第一部分&#xff1a;系统安装... 3 1&#xff1a;图形化安装... 3 2&#xff1a;选择中文... 3 3&#xff1a;安装选项... 3 4&#xff1a;软件选项... 4 5&#xff1a;安装位置... 4 6&#xff1a;网络配置... 6 7&#xff1a;开始安装... 7 8&#xff1a;创建用户... 7…

【密码学引论】密码协议

定义&#xff1a;两个或者两个以上参与者为了完成某一特定任务而采取的一系列执行步骤密码协议&#xff1a;Kerberos、IPSec、SSL、SET算法是低层次上的概念&#xff0c;而协议是高层次上的概念&#xff0c;协议建立在算法的基础上。所有密码协议都容易受中间人攻击&#xff0c…

TypeScript实战——ChatGPT前端自适应手机端,PC端

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 可以在线体验哦&#xff1a;体验地址 文章目录 前言引言先看效果PC端手机端 实现原理解释 包的架构目录 引言 ChatGPT是由OpenAI开发的一种基于语言模型的对话系统。它是GPT&#xff08;…

esp32-s3训练自己的数据进行目标检测、图像分类

esp32-s3训练自己的数据进行目标检测、图像分类 一、下载项目二、环境三、训练和导出模型四、部署模型五、存在的问题 esp-idf的安装参考我前面的文章&#xff1a; esp32cam和esp32-s3烧录human_face_detect实现人脸识别 一、下载项目 训练、转换模型&#xff1a;ModelAssist…