玩转CSDN

仅供参考学习

Stan na 06-09-2021. Zobacz najnowsza wersja.

// ==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');
    };
})();