介绍个屁啊,自用!
// ==UserScript==
// @name csdn添加CODE复制按钮
// @namespace http://tampermonkey.net/
// @version 2024-04-07
// @description 介绍个屁啊,自用!
// @author 没得名字
// @match https://blog.csdn.net/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=csdn.net
// @grant none
// @license MIT
// ==/UserScript==
(function() {
'use strict';
// 确保 DOM 加载完成
window.addEventListener('load', function() {
var codeElements = document.querySelectorAll('code');
codeElements.forEach(function(codeElement) {
// 创建复制按钮
var copyButton = document.createElement('button');
copyButton.className = 'copy-btn';
copyButton.textContent = '点击复制';
// 使用 Clipboard API 实现复制(兼容大部分现代浏览器)
if (navigator.clipboard) {
copyButton.addEventListener('click', async function() {
try {
await navigator.clipboard.writeText(codeElement.textContent || codeElement.innerText);
alert('CODE内容已写入剪贴板!');
} catch (err) {
console.error('复制失败: ', err);
}
});
} else {
// 对于不支持 Clipboard API 的浏览器,可以保留原有的 execCommand 方法作为备选方案,但效果可能不佳
copyButton.addEventListener('click', function() {
var tempInput = document.createElement('input');
document.body.appendChild(tempInput);
tempInput.value = codeElement.textContent || codeElement.innerText;
tempInput.select();
document.execCommand('点击复制');
document.body.removeChild(tempInput);
alert('CODE内容已写入剪贴板!');
});
}
// 在code元素后插入复制按钮
codeElement.parentNode.insertBefore(copyButton, codeElement.nextSibling);
});
});
})();