您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
仅点击设置 data-copy 属性的元素时复制其内容,更安全、兼容性强、体验更好。
当前为
// ==UserScript== // @name 万能复制插件(优化版) // @namespace http://tampermonkey.net/ // @version 1.6.1 // @description 仅点击设置 data-copy 属性的元素时复制其内容,更安全、兼容性强、体验更好。 // @author You // @match *://*/* // @grant GM_setClipboard // ==/UserScript== (function () { 'use strict'; // 显示自定义复制成功提示 function showTip(msg) { const tip = document.createElement('div'); tip.innerText = msg; tip.style.cssText = ` position: fixed; top: 20px; right: 20px; background: #4CAF50; color: white; padding: 10px 15px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,0.2); z-index: 9999; font-size: 14px; `; document.body.appendChild(tip); setTimeout(() => tip.remove(), 2000); } // 复制文本 function copyText(text) { if (!text.trim()) return; if (navigator.clipboard) { navigator.clipboard.writeText(text).then(() => { showTip('已复制: ' + text); }).catch(() => { GM_setClipboard(text); showTip('已复制: ' + text); }); } else { GM_setClipboard(text); showTip('已复制: ' + text); } } // 从元素中提取文本 function extractText(el) { const tag = el.tagName.toLowerCase(); if (tag === 'input' || tag === 'textarea') return el.value; return el.innerText || el.textContent || ''; } // 点击监听(仅对 data-copy 元素生效) document.addEventListener('click', (e) => { let el = e.target; // 向上查找具有 data-copy 的祖先元素 while (el && el !== document.body) { if (el.hasAttribute('data-copy')) { const text = extractText(el); copyText(text); break; } el = el.parentElement; } }); })();