您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add copy button to copy code inside Stack Overflow answers
当前为
您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
- // ==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);
- })();