玩转CSDN

仅供参考学习

2021-09-06 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         玩转CSDN
// @namespace    http://tampermonkey.net/
// @version      0.1000
// @match        *://blog.csdn.net/*
// @icon         https://source.unsplash.com/random
// @description  仅供参考学习
// @author       wwwbh
// @icon         https://www.google.com/s2/favicons?domain=csdn.net
// @grant        none
// ==/UserScript==
 
(function() {
    'use strict';
    function copy(signElem) {
        let codeelem = null;
        try{
            codeelem = signElem.parentNode;
            if(codeelem.id.indexOf('code')===-1){
                throw new EvalError('value error',lineNumber=22);
            }
        }catch(err){
            codeelem = signElem.previousSibling;
        }
        document.oncopy=function(e){
            e.clipboardData.setData('text',codeelem.innerText);
            e.preventDefault();
            document.oncopy=null;
        }
        document.execCommand("Copy");
        signElem.setAttribute('data-title','复制成功');
        signElem.style.cssText += 'background-color: green';
        setTimeout(()=>{
            signElem.setAttribute('data-title','点击复制');
            signElem.style.removeProperty('background-color','green');
        },1000);
    };
 
    let codes = document.querySelectorAll('#content_views pre code');
    let signs = document.querySelectorAll('.signin');
    for(var i=0;i<codes.length;i++){
        let sign = signs[i];
        codes[i].removeAttribute('onclick');
        codes[i].style.setProperty('user-select','auto');
        codes[i].setAttribute('id','code-'+i);
        codes[i].parentNode.style.setProperty('user-select','auto');
        sign.removeAttribute('onclick');
        sign.setAttribute('data-title','点击复制');
        sign.removeAttribute('data-report-click');
        sign.setAttribute('data-clipboard-action','copy');
        sign.setAttribute('aria-label','copied!');
        sign.setAttribute('data-clipboard-target','#code-'+i);
        sign.addEventListener('click', function(){
            copy(this);
        },'true');
    };
})();