您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hold Alt click on text, Copy as plain text. Alt + Shift click on text, Copy as kebab-case.
当前为
// ==UserScript== // @name Copy it // @name:zh-CN 便捷复制 // @namespace https://github.com/xianghongai/Tampermonkey-UserScript // @version 1.0.2 // @description Hold Alt click on text, Copy as plain text. Alt + Shift click on text, Copy as kebab-case. // @description:zh-CN 按住 Alt 键点击文本,复制为纯文本。Alt + Shift 复制为 kebab-case 风格字符。 // @author Nicholas Hsiang // @icon https://xinlu.ink/favicon.ico // @match http*://*/* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict'; document.addEventListener('click', listener, false); function listener(event) { if (event.altKey) { event.preventDefault(); event.stopPropagation(); const text = event.target.innerText; if (event.shiftKey) { copyTextToClipboard(toKebab(text)); return false; } copyTextToClipboard(text); return false; } } function wrapperMsg(input) { const prefix = `__Tampermonkey® (Hold Ctrl + Alt or Alt click on text, copy it)__: `; return `${prefix}${input}`; } function toKebab(input) { if (typeof input === 'string') { return input .replace(/[\W\s]/gi, '-') .replace(/([a-z0-9])([A-Z])/g, '$1-$2') .replace(/([A-Z])([A-Z])(?=[a-z])/g, '$1-$2') .toLowerCase(); } } function fallbackCopyTextToClipboard(text) { let textArea = document.createElement('textarea'); textArea.value = text; // Avoid scrolling to bottom textArea.style.top = '0'; textArea.style.left = '0'; textArea.style.position = 'fixed'; document.body.appendChild(textArea); textArea.focus(); textArea.select(); try { var successful = document.execCommand('copy'); var msg = successful ? 'successful' : 'unsuccessful'; console.log(wrapperMsg('Copying text command was ' + msg)); } catch (err) { console.error(wrapperMsg('Oops, unable to copy'), err); } document.body.removeChild(textArea); } function copyTextToClipboard(text) { if (!navigator.clipboard) { fallbackCopyTextToClipboard(text); return; } navigator.clipboard.writeText(text).then( function () { console.log(wrapperMsg('Copying to clipboard was successful!')); }, function (err) { console.error(wrapperMsg('Could not copy text: '), err); } ); } })();