// ==UserScript== // @name 金山文档文件批量下载 // @namespace http://tampermonkey.net/ // @version 0.3 // @description 用于金山文档文件批量下载 // @author chic1018 // @match *://www.kdocs.cn/mine/* // @downloadURL https://update.greasyfork.icu/scripts/435643/%E9%87%91%E5%B1%B1%E6%96%87%E6%A1%A3%E6%96%87%E4%BB%B6%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD.user.js // @updateURL https://update.greasyfork.icu/scripts/435643/%E9%87%91%E5%B1%B1%E6%96%87%E6%A1%A3%E6%96%87%E4%BB%B6%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD.meta.js // ==/UserScript== "use strict"; !function(){ document.querySelector('.nav-action-folder ul').innerHTML = '
  • 简易批量下载
  • ' + document.querySelector('.nav-action-folder ul').innerHTML let totalNum !function(){ let scrollHeight const fun = setInterval(function(){ if (scrollHeight != document.querySelector('.yun-list').scrollHeight){ scrollHeight = document.querySelector('.yun-list').scrollHeight document.querySelector('.yun-list').scrollTo(0,scrollHeight) } else { clearInterval(fun) totalNum = parseInt(document.querySelector('.yun-list__item:last-child').outerHTML.slice(12,14))+1 document.querySelector('.yun-list').scrollTo(0,0) } },50) }() setTimeout(function(){ document.querySelector('.nav-action-folder ul li:nth-child(1)').onclick = function(){ let count = 0 const downloadFiles = function(){ if (count>=totalNum){ return } let elemNumber = document.querySelector('.yun-list__content').children.length - 1 let i = 0 let download let elem0 let selected = false const loop = function(){ if (i>=elemNumber || count>=totalNum){ document.querySelector('.yun-list').scrollBy(0,66*elemNumber) document.querySelectorAll('.el-message[style]').forEach((e)=>{ e.remove() }) return } if (download){ download.click() elem0.click() download = null selected = false i++ count++ } else { elemNumber = document.querySelector('.yun-list__content').children.length - 1 let str0='.yun-list__content div[index="'+count+'"] .yun-list__checkbox'; elem0 = document.querySelector(str0) if (elem0 && !selected){ elem0.click() selected = true } else if (!elem0){ document.querySelector('.yun-list').scrollBy(0,66*elemNumber) } download = document.querySelector('.nav-action-selected li:nth-child(4)') } setTimeout(loop,0) } loop() setTimeout(downloadFiles,2000) } downloadFiles() } },0) }()