You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现点击指定网站文本时自动选中并复制至剪贴板?

修复Tampermonkey脚本实现点击复制功能

原脚本存在几个关键问题导致复制失效,以下是修复后的完整方案:

问题根源

  • 仅绑定了首个匹配元素的点击事件,页面内多个目标元素无法触发复制
  • GM_setClipboard需要脚本头部声明授权,原脚本@grant none导致API无法调用
  • 页面内容可能动态加载,直接获取元素会遗漏后续生成的节点

修复后的脚本

// ==UserScript==
// @name         IATE 点击复制翻译文本
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  点击IATE网站的翻译文本自动复制到剪贴板
// @author       You
// @match        https://iate.europa.eu/*
// @icon         data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant        GM_setClipboard
// ==/UserScript==

(function() {
    'use strict';

    // 添加CSS实现点击全选+光标提示
    const style = document.createElement('style');
    style.textContent = `
        app-iate-search-term-refine {
            user-select: all !important;
            cursor: copy;
        }
    `;
    document.head.appendChild(style);

    // 事件委托处理所有(含动态生成)目标元素
    document.addEventListener('click', function(e) {
        const target = e.target.closest('app-iate-search-term-refine');
        if (target) {
            const text = target.textContent.trim();
            if (text) {
                GM_setClipboard(text);
                // 可选:添加复制成功提示
                alert('文本已复制:' + text);
            }
        }
    });
})();

核心修复点

  • 声明@grant GM_setClipboard:Tampermonkey需明确授权才能调用剪贴板API
  • 事件委托:通过监听全局点击事件,自动匹配所有目标元素(包括后续动态生成的)
  • 文本优化:用trim()去除冗余空白,保证复制内容整洁
  • 视觉提示:添加复制光标样式,可选弹窗反馈复制结果

内容的提问来源于stack exchange,提问作者greektranslator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:10:32