您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork镜像 is available in English.
Automatically enables temporary mode on ChatGPT unless manually disabled by the user
当前为
// ==UserScript== // @name ChatGPT Temp Chat By Default // @description Automatically enables temporary mode on ChatGPT unless manually disabled by the user // @version 0.6 // @author nisc // @match https://chatgpt.com/* // @icon https://chatgpt.com/favicon.ico // @grant none // @namespace https://greasyforks.org/users/1169082 // ==/UserScript== (function() { 'use strict'; // Flag to track if user has manually disabled temporary chat let userDisabledTempChat = false; // Helper function to get the temporary chat button function getTempChatButton() { return document.querySelector('button[aria-label*="temporary chat"]'); } // Function to enable temporary chat mode function activateTemporaryMode() { if (userDisabledTempChat) return; let attempts = 0; const maxAttempts = 5; const interval = 500; const tryFindButton = setInterval(() => { const tempChatButton = getTempChatButton(); if (tempChatButton) { // Add listener to detect manual disabling if (!tempChatButton._hasListener) { tempChatButton.addEventListener('click', function() { userDisabledTempChat = this.getAttribute('aria-label') === 'Turn off temporary chat'; }); tempChatButton._hasListener = true; } // Enable temporary chat if it’s off if (tempChatButton.getAttribute('aria-label') === 'Turn on temporary chat') { tempChatButton.click(); } clearInterval(tryFindButton); } else if (attempts++ >= maxAttempts) { clearInterval(tryFindButton); } }, interval); } // Set up MutationObserver to detect new chats via DOM changes function setupMutationObserver() { const targetNode = document.querySelector('#conversation-header-actions') || document.body; const observer = new MutationObserver(() => { const tempChatButton = getTempChatButton(); if (tempChatButton && tempChatButton.getAttribute('aria-label') === 'Turn on temporary chat') { userDisabledTempChat = false; // Reset for new chat activateTemporaryMode(); } }); observer.observe(targetNode, { childList: true, subtree: true }); } // Common handler for history state changes function handleStateChange() { if (window.location.pathname.startsWith('/c/')) { userDisabledTempChat = false; activateTemporaryMode(); } } // Detect URL changes for chats like /c/<chat_id> if (!window._historyWrapped) { const originalPushState = history.pushState; history.pushState = function() { originalPushState.apply(this, arguments); handleStateChange(); }; const originalReplaceState = history.replaceState; history.replaceState = function() { originalReplaceState.apply(this, arguments); handleStateChange(); }; window._historyWrapped = true; } // Initialize on page load window.addEventListener('load', function() { setupMutationObserver(); activateTemporaryMode(); }); })();