您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Queue messages when input isn't cleared after Enter
当前为
// ==UserScript== // @name ChatGPT Message Queue // @match https://chat.openai.com/* // @match https://chatgpt.com/* // @description Queue messages when input isn't cleared after Enter // @version 0.0.1.20250318143202 // @namespace https://gf.zukizuki.org/users/1435046 // ==/UserScript== (function() { 'use strict'; let queueCount = 0; let queueObserver; const queueDisplay = document.createElement('div'); // Minimal UI setup queueDisplay.innerHTML = ` <span>Queue: ${queueCount}</span> <button onclick="this.previousElementSibling.textContent='Queue: 0'">×</button> `; queueDisplay.style.cssText = ` position:fixed; bottom:100px; right:20px; background:rgba(0,0,0,0.7); color:white; padding:5px 10px; border-radius:4px; display:flex; gap:8px; `; document.body.appendChild(queueDisplay); // Core logic new MutationObserver((_, observer) => { const textarea = document.getElementById('prompt-textarea'); if (textarea && !textarea.dataset.queuer) { textarea.dataset.queuer = true; textarea.addEventListener('keydown', e => { if (e.key === 'Enter' && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey) { setTimeout(() => { // Allow DOM update if (textarea.textContent.trim()) { queueDisplay.children[0].textContent = `Queue: ${++queueCount}`; if (!queueObserver) { queueObserver = new MutationObserver(() => { document.querySelector('[data-testid="send-button"]')?.click(); queueCount--; queueDisplay.children[0].textContent = `Queue: ${queueCount}`; }); queueObserver.observe(document.body, {childList: true, subtree: true}); } } }, 50); } }); } }).observe(document.body, {childList: true, subtree: true}); })();