您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
在 Slack 的网页版代码块上添加复制按钮
// ==UserScript== // @name Slack Code Copy Button // @namespace http://tampermonkey.net/ // @version 0.1 // @description 在 Slack 的网页版代码块上添加复制按钮 // @author sbill // @match https://*.slack.com/* // @grant none // @license MIT // ==/UserScript== (function () { 'use strict' // 创建一个观察器,监听 DOM 变化 const observer = new MutationObserver(mutations => { // 当 <pre> 元素插入页面时 mutations.forEach(mutation => { if (mutation.addedNodes.length > 0) { // 查找插入的 <pre> 元素 const pres = mutation.target.querySelectorAll('.c-mrkdwn__pre') // 遍历每个 <pre> 并添加复制按钮 pres.forEach(pre => { // 在 <pre> 上添加复制按钮 if (pre.querySelector('button')) { return } const copyButton = document.createElement('button') copyButton.innerText = '复制' copyButton.className = 'c-button c-button--primary c-button--small' copyButton.style.position = 'absolute' copyButton.style.right = 0 copyButton.style.top = 0 pre.style.position = 'relative' pre.appendChild(copyButton) // 点击复制按钮,将 <pre> 内容复制到剪贴板 copyButton.addEventListener('click', () => { const button = pre.querySelector('button') pre.removeChild(button) const code = pre.innerText // 将修复后的文本复制到剪贴板 navigator.clipboard.writeText(code) // 显示成功提示 const prompt = document.createElement('div') prompt.innerText = '复制成功!' prompt.style.position = 'fixed' prompt.style.top = '50px' prompt.style.right = '50%' prompt.style.transform = 'translateX(50%)' prompt.style.padding = '10px 20px' prompt.style.background = 'grey' prompt.style.borderRadius = '4px' prompt.style.zIndex = 222 prompt.style.color = 'lightpink' document.body.appendChild(prompt) // 2 秒后自动移除提示 setTimeout(() => { document.body.removeChild(prompt) }, 2000) }) }) } }) }) // 以根元素为监听目标,监听子节点变动 observer.observe(document.body, { childList: true, subtree: true }) })()
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址