Greasy Fork

Greasy Fork is available in English.

nodeseek复制按钮

为nodeseek代码块添加复制按钮

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         nodeseek复制按钮
// @version      0.1
// @description  为nodeseek代码块添加复制按钮
// @author       endercat
// @license MIT
// @match        https://www.nodeseek.com/*
// @grant        GM_setClipboard
// @namespace http://greasyfork.icu/users/1184905
// ==/UserScript==

(function() {
    'use strict';

    // 添加复制按钮的函数
    function addCopyButton(element) {
        // 创建包装器 div
        var wrapper = document.createElement('div');
        wrapper.style.position = 'relative'; // 设置相对定位

        // 创建复制按钮
        var copyButton = document.createElement('button');
        copyButton.innerHTML = '复制';
        copyButton.style.position = 'absolute'; // 设置绝对定位
        copyButton.style.right = '0'; // 靠右对齐
        copyButton.style.opacity = '0'; // 初始不可见
        copyButton.style.transition = 'opacity 0.3s'; // 添加过渡效果

        // 添加点击事件以复制代码内容
        copyButton.addEventListener('click', function() {
            var codeContent = element.textContent;
            GM_setClipboard(codeContent);
            mscAlert('已复制到剪切板!');
        });

        // 添加鼠标悬停事件以显示按钮
        wrapper.addEventListener('mouseover', function() {
            copyButton.style.opacity = '0.5'; // 鼠标悬停时设置透明度为0.5
        });

        // 添加鼠标离开事件以隐藏按钮
        wrapper.addEventListener('mouseout', function() {
            copyButton.style.opacity = '0'; // 鼠标离开时设置透明度为0
        });

        // 将复制按钮添加到包装器中
        wrapper.appendChild(copyButton);

        // 使用包装器包裹代码块
        element.parentNode.insertBefore(wrapper, element);
        wrapper.appendChild(element);
    }

    // 选择页面上的所有代码块
    var codeBlocks = document.querySelectorAll('pre code');

    // 为每个代码块添加复制按钮
    codeBlocks.forEach(function(codeBlock) {
        addCopyButton(codeBlock);
    });
})();