Claude Up Arrow Edit

Make Up Arrow press the edit button in Claude, similar to Discord

// ==UserScript==
// @name        Claude Up Arrow Edit
// @namespace   Violentmonkey Scripts
// @match       https://claude.ai/*
// @grant       none
// @version     1.0
// @license     Skibidi
// @description Make Up Arrow press the edit button in Claude, similar to Discord
// ==/UserScript==

(function() {
  'use strict';

  // Define base selector paths as constants
  const BASE_PATH = "body > div.flex.min-h-screen.w-full > div.min-h-full.w-full.min-w-0.flex-1 > div > div.h-screen.flex.flex-col.overflow-hidden > div > div";
  const MESSAGES_CONTAINER = `${BASE_PATH} > div.flex-1.flex.flex-col.gap-3.px-4.max-w-3xl.mx-auto.w-full.pt-1`;
  const INPUT_CONTAINER = `${BASE_PATH} > div.sticky.bottom-0.mx-auto.w-full.pt-6.z-\\[5\\]`;

  document.addEventListener('keydown', (event) => {
    // Check if the pressed key is the up arrow
    if (event.key === 'ArrowUp') {
      // Find the input area and check its focus state
      const inputArea = document.querySelector(`${INPUT_CONTAINER} > fieldset > div.flex.flex-col.bg-bg-000.border-0\\.5.border-border-300.mx-2.md\\:mx-0.items-stretch.transition-all.duration-200.relative.shadow-\\[0_0\\.25rem_1\\.25rem_hsl\\(var\\(--always-black\\)\\/3\\.5\\%\\)\\].focus-within\\:shadow-\\[0_0\\.25rem_1\\.25rem_hsl\\(var\\(--always-black\\)\\/7\\.5\\%\\)\\].hover\\:border-border-200.focus-within\\:border-border-200.cursor-text.z-10.rounded-2xl > div.flex.flex-col.gap-3\\.5.m-3\\.5 > div.relative > div > div`);

      // Check if Prosemirror is focused
      const isProseMirrorFocused = inputArea && inputArea.classList.contains('ProseMirror-focused');

      // Get the paragraph element inside the input area
      const inputParagraph = document.querySelector(`${INPUT_CONTAINER} > fieldset > div.flex.flex-col.bg-bg-000.border-0\\.5.border-border-300.mx-2.md\\:mx-0.items-stretch.transition-all.duration-200.relative.shadow-\\[0_0\\.25rem_1\\.25rem_hsl\\(var\\(--always-black\\)\\/3\\.5\\%\\)\\].focus-within\\:shadow-\\[0_0\\.25rem_1\\.25rem_hsl\\(var\\(--always-black\\)\\/7\\.5\\%\\)\\].hover\\:border-border-200.focus-within\\:border-border-200.cursor-text.z-10.rounded-2xl > div.flex.flex-col.gap-3\\.5.m-3\\.5 > div.relative > div > div > p`);

      // Check if input is empty (could be null, or might have no innerText)
      const isInputEmpty = !inputParagraph || (inputParagraph.innerText.trim() === '');

      // Conditions to trigger edit:
      // 1. Input is not focused OR
      // 2. Input is focused but empty
      if (!isProseMirrorFocused || (isProseMirrorFocused && isInputEmpty)) {
        // Find the edit button for the last message
        // Try both nth-last-child(2) and nth-last-child(4) to handle different states
        let editButton = document.querySelector(`${MESSAGES_CONTAINER} > div:nth-last-child(2) > div > div > div.absolute.bottom-0.-right-1\\.5 > div > div > button`);

        // If not found, try the alternate selector
        if (!editButton) {
          editButton = document.querySelector(`${MESSAGES_CONTAINER} > div:nth-last-child(4) > div > div > div.absolute.bottom-0.-right-1\\.5 > div > div > button`);
        }

        // If the button exists, click it
        if (editButton) {
          editButton.click();
          event.preventDefault(); // Prevent default up arrow behavior

          // Set a small timeout to wait for the textarea to appear
          setTimeout(() => {
            const textarea = document.querySelector(`${MESSAGES_CONTAINER} > form > div > div > div.font-user-message.mr-3.grid.w-full.grid-cols-1.gap-2.py-0\\.5.text-\\[0\\.9375rem\\].leading-6 > div.group.relative > div > textarea`);

            if (textarea) {
              // Move cursor to the end of the text
              textarea.focus();
              textarea.selectionStart = textarea.value.length;
              textarea.selectionEnd = textarea.value.length;
            }
          }, 10); // Small delay to ensure the textarea is available
        }
      }
    }
  });
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址