您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
当你在chatglm的对话框里按下enter建时,如果ai仍在说话,会自动停止ai发言并发送你的消息
// ==UserScript== // @name ChatGLM 插嘴功能 // @namespace http://tampermonkey.net/ // @version 0.9 // @description 当你在chatglm的对话框里按下enter建时,如果ai仍在说话,会自动停止ai发言并发送你的消息 // @author You // @match https://chatglm.cn/* // @grant none // @license MIT // ==/UserScript== (function () { "use strict"; //点击新建对话也终止输出 const hookNewButton = () => { { const element = document.getElementsByClassName("add-session-icon")[0]; if (!element) { setTimeout(() => hookNewButton(), 0); return; } element.style.pointEvents = "none" const cover = document.createElement("div"); cover.className = "el-tooltip add-session-icon"; cover.setAttribute("tabindex", "0"); cover.setAttribute("aria-describedby", element.getAttribute("aria-describedby")); let dataTag = ""; { const dataTagStart = element.outerHTML.indexOf("data-v-"); const dataTagEnd = element.outerHTML.indexOf("=", dataTagStart); dataTag = element.outerHTML.substring(dataTagStart, dataTagEnd) } cover.setAttribute(dataTag, "1"); element.parentElement.appendChild(cover); cover.onclick = () => { stopOutput() setTimeout(() => element.click(), 0); } } }; hookNewButton(); function bindEventToTextarea() { // 获取页面中的第一个<textarea>元素 var textarea = document.querySelector("textarea"); if (textarea) { // 清除之前可能绑定的事件监听器 textarea.removeEventListener("keydown", handleKeyDown); // 重新绑定事件监听器 textarea.addEventListener("keydown", handleKeyDown); } } function handleKeyDown(event) { // 检查是否是单个Enter键按下,并且事件的目标元素是<textarea> if ( event.key === "Enter" && event.keyCode === 13 && !event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey && event.target.tagName === "TEXTAREA" ) { console.debug(event); stopOutput(); } } function stopOutput() { // 查找类名为"btn stop"的按钮 var stopButton = document.querySelector(".btn.stop"); // 如果找到了按钮,并且按钮文本包含"停止生成",则触发click事件 if (stopButton && stopButton.textContent.includes("停止生成")) { stopButton.click(); } } // 使用setInterval每隔一秒重新绑定事件监听器 setInterval(bindEventToTextarea, 1000); // 初始绑定 bindEventToTextarea(); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址