万能复制插件

在点击页面元素时将其内容复制到剪贴板

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください。
// ==UserScript==
// @name         万能复制插件
// @namespace    http://tampermonkey.net/
// @version      1.5
// @description  在点击页面元素时将其内容复制到剪贴板
// @author       You
// @match        *://*/*
// @grant        GM_setClipboard
// ==/UserScript==

(function() {
    'use strict';

    // 创建一个函数,用于复制文本到剪贴板
    function copyToClipboard(text) {
        if (navigator.clipboard) {
            // 使用标准的 API 复制文本
            navigator.clipboard.writeText(text);
        } else {
            // 使用 GM_setClipboard 复制文本
            GM_setClipboard(text);
        }
    }

    // 给页面元素添加点击事件监听器
    document.addEventListener('click', function(event) {
        var target = event.target;
        var copiedText = null;

        // 这里可以根据需要选择要复制的内容,例如:
        // 如果点击的是 <p> 元素,就复制它的文本内容
        if (target.tagName.toLowerCase() === 'p') {
            copiedText = target.innerText;
        }
        // 如果点击的是 <input> 或 <textarea> 元素,就复制它的值
        else if (target.tagName.toLowerCase() === 'input' || target.tagName.toLowerCase() === 'textarea') {
            copiedText = target.value;
        }
        // 添加其他元素的处理逻辑...

        // 如果有要复制的内容,就执行复制操作
        if (copiedText !== null && copiedText.trim() !== '') { // 检查文本是否为空
            copyToClipboard(copiedText);
            alert('已复制到剪贴板:' + copiedText);
            event.preventDefault(); // 阻止事件的默认行为
            event.stopPropagation(); // 阻止事件的冒泡
        }
    }, true); // 使用捕获模式
})();