为 Google Gemini 聊天中的查询气泡添加复制按钮

为查询气泡添加复制按钮,以便轻松复制文本

目前为 2025-03-29 提交的版本。查看 最新版本

// ==UserScript==
// @name         Add Copy Button to Query Bubbles For Google Gemini Chat
// @description  Adds a copy button to query bubbles for easy text copying
// @name:ar      إضافة زر نسخ إلى فقاعات الاستعلام في دردشة Google Gemini
// @description:ar يضيف زر نسخ إلى فقاعات الاستعلام لتسهيل نسخ النص
// @name:bg      Добавяне на бутон за копиране към балончетата с запитвания в Google Gemini Chat
// @description:bg Добавя бутон за копиране към балончетата с запитвания за лесно копиране на текст
// @name:cs      Přidání tlačítka kopírování do bublin dotazů pro Google Gemini Chat
// @description:cs Přidává tlačítko kopírování do bublin dotazů pro snadné kopírování textu
// @name:da      Tilføj en kopiknap til forespørgselsbobler i Google Gemini Chat
// @description:da Tilføjer en kopiknap til forespørgselsbobler for nem tekstkopiering
// @name:de      Kopierknopf zu Abfrageblasen für Google Gemini Chat hinzufügen
// @description:de Fügt einen Kopierknopf zu Abfrageblasen hinzu, um Text einfach zu kopieren
// @name:el      Προσθήκη κουμπιού αντιγραφής σε φυσαλίδες ερωτημάτων για το Google Gemini Chat
// @description:el Προσθέτει ένα κουμπί αντιγραφής στις φυσαλίδες ερωτημάτων για εύκολη αντιγραφή κειμένου
// @name:en      Add Copy Button to Query Bubbles For Google Gemini Chat
// @description:en Adds a copy button to query bubbles for easy text copying
// @name:eo      Aldoni Kopian Butonon al Demandaj Vezikoj por Google Gemini Chat
// @description:eo Aldonas kopian butonon al demandaj vezikoj por facila tekstokopiado
// @name:es      Añadir botón de copiar a burbujas de consulta en Google Gemini Chat
// @description:es Añade un botón de copiar a las burbujas de consulta para facilitar la copia de texto
// @name:fi      Lisää kopiointipainike kyselykupliin Google Gemini Chatissa
// @description:fi Lisää kopiointipainikkeen kyselykupliin tekstin helppoa kopiointia varten
// @name:fr      Ajouter un bouton de copie aux bulles de requête dans Google Gemini Chat
// @description:fr Ajoute un bouton de copie aux bulles de requête pour une copie facile du texte
// @name:fr-CA   Ajouter un bouton de copie aux bulles de requête dans Google Gemini Chat
// @description:fr-CA Ajoute un bouton de copie aux bulles de requête pour une copie facile du texte
// @name:he      הוסף כפתור העתקה לבועות שאילתה עבור Google Gemini Chat
// @description:he מוסיף כפתור העתקה לבועות שאילתה להעתקת טקסט בקלות
// @name:hr      Dodaj gumb za kopiranje u mjehuriće upita za Google Gemini Chat
// @description:hr Dodaje gumb za kopiranje u mjehuriće upita za jednostavno kopiranje teksta
// @name:hu      Másolás gomb hozzáadása a lekérdezési buborékokhoz a Google Gemini Chatban
// @description:hu Másolás gombot ad a lekérdezési buborékokhoz a szöveg egyszerű másolásához
// @name:id      Tambah Tombol Salin ke Gelembung Kueri untuk Google Gemini Chat
// @description:id Menambahkan tombol salin ke gelembung kueri untuk penyalinan teks yang mudah
// @name:it      Aggiungi un pulsante di copia alle bolle di query per Google Gemini Chat
// @description:it Aggiunge un pulsante di copia alle bolle di query per una facile copia del testo
// @name:ja      Google Geminiチャットのクエリバブルにコピーボタンを追加
// @description:ja クエリバブルにコピーボタンを追加して、テキストを簡単にコピーできるようにします
// @name:ka      დაამატეთ კოპირების ღილაკი შეკითხვის ბუშტუკებს Google Gemini Chat-ში
// @description:ka ამატებს კოპირების ღილაკს შეკითხვის ბუშტუკებს ტექსტის მარტივი კოპირებისთვის
// @name:ko      Google Gemini 채팅의 쿼리 버블에 복사 버튼 추가
// @description:ko 쿼리 버블에 복사 버튼을 추가하여 텍스트를 쉽게 복사할 수 있게 합니다
// @name:nb      Legg til en kopieringsknapp i spørrebobler for Google Gemini Chat
// @description:nb Legger til en kopieringsknapp i spørrebobler for enkel tekstkopiering
// @name:nl      Voeg een kopieerknop toe aan vraagbubbels voor Google Gemini Chat
// @description:nl Voegt een kopieerknop toe aan vraagbubbels voor eenvoudige tekstkopie
// @name:pl      Dodaj przycisk kopiowania do bąbelków zapytań w Google Gemini Chat
// @description:pl Dodaje przycisk kopiowania do bąbelków zapytań dla łatwego kopiowania tekstu
// @name:pt-BR   Adicionar botão de cópia às bolhas de consulta no Google Gemini Chat
// @description:pt-BR Adiciona um botão de cópia às bolhas de consulta para facilitar a cópia de texto
// @name:ro      Adaugă un buton de copiere la bulele de interogare pentru Google Gemini Chat
// @description:ro Adaugă un buton de copiere la bulele de interogare pentru copierea ușoară a textului
// @name:ru      Добавить кнопку копирования в пузырьки запросов для Google Gemini Chat
// @description:ru Добавляет кнопку копирования в пузырьки запросов для удобного копирования текста
// @name:sk      Pridať tlačidlo kopírovania do bublín dotazov pre Google Gemini Chat
// @description:sk Pridáva tlačidlo kopírovania do bublín dotazov pre jednoduché kopírovanie textu
// @name:sr      Додај дугме за копирање у мехуриће упита за Google Gemini Chat
// @description:sr Додаје дугме за копирање у мехуриће упита за лако копирање текста
// @name:sv      Lägg till en kopieringsknapp till frågebubblor i Google Gemini Chat
// @description:sv Lägger till en kopieringsknapp till frågebubblor för enkel textkopiering
// @name:th      เพิ่มปุ่มคัดลอกไปยังฟองคำถามสำหรับ Google Gemini Chat
// @description:th เพิ่มปุ่มคัดลอกไปยังฟองคำถามเพื่อการคัดลอกข้อความที่ง่ายดาย
// @name:tr      Google Gemini Sohbeti için Sorgu Baloncuklarına Kopyala Düğmesi Ekle
// @description:tr Sorgu baloncuklarına kopyala düğmesi ekleyerek metni kolayca kopyalamayı sağlar
// @name:ug      Google Gemini سۆھبىتى ئۈچۈن سۈرۈشتۈرۈش پۇقراقلىرىغا كۆچۈرۈش كۇنۇپكىسى قوشۇش
// @description:ug سۈرۈشتۈرۈش پۇقراقلىرىغا كۆچۈرۈش كۇنۇپكىسى قوشۇپ، تېكىستنى ئاسان كۆچۈرۈشنى ئىشقا ئاشۇرىدۇ
// @name:uk      Додати кнопку копіювання до бульбашок запитів у Google Gemini Chat
// @description:uk Додає кнопку копіювання до бульбашок запитів для легкого копіювання тексту
// @name:vi      Thêm nút sao chép vào bong bóng truy vấn cho Google Gemini Chat
// @description:vi Thêm nút sao chép vào bong bóng truy vấn để sao chép văn bản dễ dàng
// @name:zh      为 Google Gemini 聊天中的查询气泡添加复制按钮
// @description:zh 为查询气泡添加复制按钮,以便轻松复制文本
// @name:zh-CN   为 Google Gemini 聊天中的查询气泡添加复制按钮
// @description:zh-CN 为查询气泡添加复制按钮,以便轻松复制文本
// @name:zh-HK   喺 Google Gemini 聊天嘅查詢氣泡加入複製按鈕
// @description:zh-HK 為查詢氣泡加入複製按鈕,方便輕鬆複製文本
// @name:zh-SG   为 Google Gemini 聊天中的查询气泡添加复制按钮
// @description:zh-SG 为查询气泡添加复制按钮,以便轻松复制文本
// @name:zh-TW   為 Google Gemini 聊天中的查詢氣泡新增複製按鈕
// @description:zh-TW 為查詢氣泡新增複製按鈕,以便輕鬆複製文字
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @author       aspen138
// @match        *://gemini.google.com/app/*
// @grant        none
// @icon         https://www.gstatic.com/lamda/images/gemini_home_icon_8d62f72e7aae54b6859f1.png
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Function to create a copy button
    function createCopyButton(textElement) {
        const button = document.createElement('button');
        button.textContent = 'Copy';
        button.style.marginLeft = '10px';
        button.style.padding = '2px 8px';
        button.style.fontSize = '12px';
        button.style.cursor = 'pointer';

        // Add click event to copy text
        button.addEventListener('click', function() {
            const textToCopy = textElement.textContent.trim();
            navigator.clipboard.writeText(textToCopy)
                .then(() => {
                    // Visual feedback
                    button.textContent = 'Copied!';
                    setTimeout(() => {
                        button.textContent = 'Copy';
                    }, 2000);
                })
                .catch(err => {
                    console.error('Failed to copy text: ', err);
                    button.textContent = 'Error';
                });
        });

        return button;
    }

    // Function to add copy buttons to all query bubbles
    function addCopyButtons() {
        const queryBubbles = document.querySelectorAll('.user-query-bubble-with-background');

        queryBubbles.forEach(bubble => {
            // Check if button already exists to avoid duplicates
            if (!bubble.querySelector('.copy-button')) {
                const textElement = bubble.querySelector('.query-text');
                if (textElement) {
                    const copyButton = createCopyButton(textElement);
                    copyButton.classList.add('copy-button'); // Add class for tracking
                    const container = bubble.querySelector('.horizontal-container');
                    if (container) {
                        container.appendChild(copyButton);
                    }
                }
            }
        });
    }

    // Initial run
    addCopyButtons();

    // Observe for dynamic content changes
    const observer = new MutationObserver(function(mutations) {
        mutations.forEach(function(mutation) {
            if (mutation.addedNodes.length) {
                addCopyButtons();
            }
        });
    });

    // Start observing the document body for changes
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

})();

QingJ © 2025

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