您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
try to take over the world!
// ==UserScript== // @name 修身学堂整页下载 // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match http://gdslzstsg.superlib.libsou.com/node/409.jspx* // @grant GM_download // @connect http://photoapps.yd.chaoxing.com/* // ==/UserScript== (function () { 'use strict'; const head = document.getElementsByTagName('head'); head[0].insertAdjacentHTML('beforeend', `<style type="text/css"> .hx-download-the-page{ font-size:16px; line-height:30px; color:#999; cursor: pointer; user-select:none; } .hx-download-the-page:before{ content:''; position: absolute; background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNTA4IDUwOCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+IDxjaXJjbGUgc3R5bGU9ImZpbGw6I0ZGRDA1QjsiIGN4PSIyNTQiIGN5PSIyNTQiIHI9IjI1NCIvPiA8cGF0aCBzdHlsZT0iZmlsbDojRkZGRkZGOyIgZD0iTTM3Mi44LDE5NkgzNjhjLTIuNC00MC40LTM1LjYtNzIuNC03Ni40LTcyLjRjLTQsMC04LDAuNC0xMS42LDAuOGMtMTYtMjguNC00Ni00Ny42LTgwLjgtNDcuNiBjLTUxLjIsMC05Mi40LDQxLjYtOTIuNCw5Mi40YzAsMTAuOCwyLDIxLjIsNS4yLDMwLjhjLTI1LjIsMTAtNDIuOCwzNC00Mi44LDYyLjRjMCwzNi40LDI5LjYsNjYuNCw2Ni40LDY2LjRoMjM3LjIgYzM2LjQsMCw2Ni40LTI5LjYsNjYuNC02Ni40QzQzOC44LDIyNS42LDQwOS4yLDE5NiwzNzIuOCwxOTZ6Ii8+IDxwYXRoIHN0eWxlPSJmaWxsOiNGRjcwNTg7IiBkPSJNMzI1LjIsMzYyLjRsLTY2LjQsNjYuNGMtMi44LDIuOC03LjIsMi44LTEwLDBsLTY2LTY2LjRjLTQuNC00LjQtMS4yLTEyLDQuOC0xMmgxNC44IGM0LDAsNy4yLTMuMiw3LjItNy4ydi05NmMwLTQsMy4yLTcuMiw3LjItNy4yaDc0LjhjNCwwLDcuMiwzLjIsNy4yLDcuMnY5NmMwLDQsMy4yLDcuMiw3LjIsNy4yaDE0LjggQzMyNi40LDM1MC40LDMyOS42LDM1OCwzMjUuMiwzNjIuNHoiLz4gPC9zdmc+IA==); background-size: cover; width: 50px; height: 50px; margin-left: -50px; margin-top: -10px; opacity: .35; transform: scale(.65); transition: all cubic-bezier(0.18, 0.89, 0.32, 1.28) 250ms; } .hx-download-the-page:hover { color:#666; } .hx-download-the-page:hover:before { opacity:1; transform: scale(.7); } .hx-download-the-page:active:before { opacity:.8; transform: scale(.6) rotateZ(360deg); } </style>`); const openDown2 = (url, title) => { GM_download({ url, name: title, headers: { Origin: '', Referer: '', }, onerror(e) { console.log('onerror', e) } }) } const getLastItem = arr => arr[arr.length - 1] const downloadfn = () => { document.querySelectorAll('#bookIFlist li').forEach(x => { const url = x.querySelector('a').href const title = x.querySelector('h2').innerText + '_' + getLastItem(url.split('/')) openDown2(url, title) }) } const downloadpage = () => { if (!JSON.parse(window.localStorage.hxconfirmed || 'false')) { if (window.confirm('点击 确认 之后会创建多个下载请求,请将浏览器设置的【每次询问文件保存位置 】关掉')) { window.localStorage.hxconfirmed = true downloadfn() } } else { downloadfn() } } const downEL = document.createElement('span') let length = '统计中…' downEL.innerText = '下载本页 ' + length setTimeout(_ => { downEL.innerText = '下载本页 ' + document.querySelectorAll('#bookIFlist li').length }, 1500) downEL.className = 'hx-download-the-page' downEL.addEventListener('click', downloadpage) document.querySelector('.instit h1').parentElement.insertAdjacentElement('beforeend', downEL) // Your code here... })();