您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Queue messages when ChatGPT is still composing responses
当前为
- // ==UserScript==
- // @name ChatGPT Message Queue
- // @match https://chat.openai.com/*
- // @match https://chatgpt.com/*
- // @description Queue messages when ChatGPT is still composing responses
- // @version 0.0.1.20250318105806
- // @namespace https://greasyfork.org/users/1435046
- // ==/UserScript==
- (function() {
- 'use strict';
- let queueCount = 0;
- let queueObserver;
- let queueDisplay;
- function createQueueDisplay() {
- // Create basic elements without styling
- queueDisplay = document.createElement('div');
- const text = document.createElement('span');
- text.textContent = `Queue: ${queueCount}`;
- const clearBtn = document.createElement('button');
- clearBtn.textContent = 'Clear';
- clearBtn.onclick = () => {
- queueCount = 0;
- text.textContent = `Queue: ${queueCount}`;
- };
- queueDisplay.appendChild(text);
- queueDisplay.appendChild(clearBtn);
- document.body.appendChild(queueDisplay);
- }
- function handleSendButton() {
- const sendButton = document.querySelector('[data-testid="send-button"]');
- if (sendButton && queueCount > 0) {
- sendButton.click();
- queueCount--;
- queueDisplay.querySelector('span').textContent = `Queue: ${queueCount}`;
- }
- }
- const textareaObserver = new MutationObserver(() => {
- const textarea = document.getElementById('prompt-textarea');
- if (textarea && !textarea.dataset.queueEnabled) {
- textarea.dataset.queueEnabled = 'true';
- textarea.addEventListener('keydown', (e) => {
- if (e.key === 'Enter' && !e.shiftKey && !e.ctrlKey && !e.altKey && !e.metaKey) {
- if (document.querySelector('[data-testid="stop-button"]')) {
- e.preventDefault();
- queueCount++;
- queueDisplay.querySelector('span').textContent = `Queue: ${queueCount}`;
- if (!queueObserver) {
- queueObserver = new MutationObserver(handleSendButton);
- queueObserver.observe(document.body, {
- childList: true,
- subtree: true
- });
- }
- }
- }
- });
- }
- });
- // Initialize
- createQueueDisplay();
- textareaObserver.observe(document.body, {
- childList: true,
- subtree: true
- });
- })();