您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add copy button to copy code inside Stack Overflow answers
当前为
// ==UserScript== // @name Stack Overflow Copy Code // @namespace https://t.me/OneFinalHug // @version 0.3 // @license MIT // @description Add copy button to copy code inside Stack Overflow answers // @author OFH // @match https://stackoverflow.com/questions/* // @grant none // ==/UserScript== (function() { 'use strict'; function createCopyCodeButton() { const codeBlocks = document.querySelectorAll('pre code'); codeBlocks.forEach(codeBlock => { const codeContainer = codeBlock.parentNode; const copyButton = document.createElement('button'); copyButton.textContent = 'Copy Code'; copyButton.classList.add('copy-code-button'); copyButton.addEventListener('click', () => { const codeText = codeBlock.textContent; navigator.clipboard.writeText(codeText) .then(() => { copyButton.textContent = 'Copied!'; setTimeout(() => { copyButton.textContent = 'Copy Code'; }, 2000); }) .catch(err => { console.error('Failed to copy code: ', err); }); }); codeContainer.style.position = 'relative'; copyButton.style.position = 'absolute'; copyButton.style.top = '5px'; copyButton.style.right = '5px'; codeContainer.appendChild(copyButton); }); } const customStyles = ` .copy-code-button { background-color: #f2f2f2; border: none; border-radius: 3px; padding: 5px 10px; cursor: pointer; font-size: 12px; } .copy-code-button:hover { background-color: #ddd; } `; const styleElement = document.createElement('style'); styleElement.type = 'text/css'; styleElement.appendChild(document.createTextNode(customStyles)); document.head.appendChild(styleElement); window.addEventListener('load', createCopyCodeButton); })();