您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Toggle temporary chat mode on chaptgpt with double shift key press without reloading
- // ==UserScript==
- // @name ChatGPT Temporary Chat Toggle without reloading the web
- // @namespace http://tampermonkey.net/
- // @version 3
- // @description Toggle temporary chat mode on chaptgpt with double shift key press without reloading
- // @author 小红书 :沉浸式学法语😈 小红书id : 590862748
- // @match https://chatgpt.com/*
- // @license MIT
- // @grant none
- // ==/UserScript==
- (function () {
- 'use strict';
- const DOUBLE_TAP_TIMEOUT = 500;
- let firstShiftPressTime = null;
- let isShiftHeld = false;
- let savedChatChannel = null;
- document.addEventListener('keydown', handleKeyDown);
- document.addEventListener('keyup', handleKeyUp);
- function handleKeyDown(e) {
- if (e.key !== 'Shift'&& e.location===KeyboardEvent.DOM_KEY_LOCATION_LEFT) return;
- if (isShiftHeld) {
- return;
- }
- const currentTime = Date.now();
- isShiftHeld = true;
- if (firstShiftPressTime && currentTime - firstShiftPressTime <= DOUBLE_TAP_TIMEOUT) {
- toggleTemporaryChat();
- firstShiftPressTime = null;
- } else {
- firstShiftPressTime = currentTime;
- }
- }
- function handleKeyUp(e) {
- if (e.key === 'Shift' && e.location===KeyboardEvent.DOM_KEY_LOCATION_LEFT) {
- isShiftHeld = false;
- }
- }
- function toggleTemporaryChat() {
- const url = new URL(window.location.href);
- const params = new URLSearchParams(url.search);
- if (params.get('temporary-chat') === 'true') {
- if (savedChatChannel) {
- history.replaceState(null, '', savedChatChannel);
- savedChatChannel = null;
- } else {
- //history.replaceState(null, '', '/'); // fix it can't go to the home page with this
- window.location.href = 'https://chatgpt.com';
- }
- } else {
- if (url.pathname.startsWith('/c/')) {
- savedChatChannel = url.pathname + url.search + url.hash;
- }
- params.set('temporary-chat', 'true');
- history.replaceState(null, '', `/?${params.toString()}`);
- }
- // trigger URL change event for SPA frameworks
- window.dispatchEvent(new PopStateEvent('popstate', { state: history.state }));
- }
- })();
- // ==Copyright==
- // Copyright © 2024 by 沉浸式学法语😈 (小红书 ID: 590862748). All rights reserved.
- // This script is the intellectual property of the author. Unauthorized copying, modification,
- // or redistribution of this script, in whole or in part, is strictly prohibited without explicit
- // prior written permission from the author.
- // For inquiries, contact the author through their 小红书 ID: 590862748.
- // ==End of Copyright==