// ==UserScript== // @name Github辅助按钮 // @namespace https://github.com/yeomanye // @version 0.0.1 // @description Github文件下载和复制按钮 // @require https://cdnjs.cloudflare.com/ajax/libs/babel-standalone/6.18.2/babel.js // @require https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.16.0/polyfill.js // @require https://greasyfork.org/scripts/34143-debug/code/debug.js?version=246342 // @require https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/1.7.1/clipboard.min.js // @author Ming Ye // @match https://github.com // @include https://github.com/*/* // @downloadURL none // ==/UserScript== /* jshint ignore:start */ var inline_src = (<> { // debugTrue(); let elem = evt.currentTarget, aElm = elem.querySelector('.fileDownLink'); aElm.style.display = 'inline-block'; }; let mouseOutHandler = (evt) => { // debugTrue(); let elem = evt.currentTarget, aElm = elem.querySelector('.fileDownLink'); aElm.style.display = 'none'; }; let linkClick = (evt) => { let elem = evt.currentTarget; var link = document.createElement('a'); link.setAttribute('href',elem.getAttribute('download-url')); link.setAttribute('download',elem.getAttribute('filename')); link.click(); } let nodeList = document.querySelectorAll('.octicon.octicon-file'); debugTrue(); let origin = location.origin, href = location.href, path = href.replace(origin,''); if(path.indexOf('tree')<0) path += '/tree/master/'; path = path.replace('tree','raw'); for(let i=0,len=nodeList.length;i { let container = document.querySelector('.js-file-line-container'), codeArr = container.querySelectorAll('.js-file-line'), text = ""; for(let code of codeArr){ text += code.innerText ; if(code.innerText.indexOf('\n')<0) text += '\n'; } aElm.setAttribute('data-clipboard-text',text); new Clipboard('.copyButton'); log.logObj('text',text); }; aElm.onclick = (evt) => { clearTimeout(timeout); addClickHandler(); aElm.click(); } let timeout = setTimeout(addClickHandler,1000); } init(); /* jshint ignore:start */ ]]>).toString(); var c = Babel.transform(inline_src, { presets: [ "es2015", "es2016" ] }); eval(c.code); /* jshint ignore:end */