// ==UserScript== // @name 网页图片下载 // @version v1.0 // @description 生成一个批量下载网页图片的按钮,点击后直接下载。\n目前支持网站:\n1. 微信公众号网页\n其他网页使用通用方法下载 // @author nixingshiguang // @match http*://*/* // @exclude http*://www.xiaohongshu.com/* // @icon https://cftc.160621.xyz/file/8d23583061c79384c94e0.png // @grant GM_download // @namespace https://greasyfork.org/users/943170 // @downloadURL none // ==/UserScript== (function() { 'use strict'; window.onload = function(){ // 创建一个按钮 var dlb = document.createElement('button'); //设置按钮内容和样式 dlb.innerHTML = '下载图片'; dlb.style.position = 'fixed'; dlb.style.top = '10px'; dlb.style.left = '10px'; dlb.style.zIndex = '9999'; dlb.style.borderRadius = '10px'; dlb.style.padding = '10px'; dlb.style.border = '0'; dlb.style.backgroundColor = 'rgba(255,255,255,0.5'; // 将按钮添加到页面中 document.body.appendChild(dlb); // 通用下载代码 function universal () { // 给按钮绑定点击事件 dlb.addEventListener('click', function() { // 清空控制台内容 console.clear(); console.group("图片下载脚本"); // 获取页面上所有的img元素 var imgElements = document.querySelectorAll('img'); // 存储所有img元素的data-src属性值 var imageUrls = []; // 声明计数变量 var count = 1; imgElements.forEach(function(img) { var dataSrc = img.getAttribute('data-src'); var Src = img.getAttribute('src'); if (dataSrc) { console.log('从dataSrc获取的第'+count+'张的图片链接'); imageUrls.push(dataSrc); }else{ console.log("从src获取的第"+count+"张的图片链接"); imageUrls.push(Src); } count += 1; }); console.log("下载开始"); console.log(imageUrls); imageUrls.forEach(function(url) { GM_download({ url: url, name: url.substring(url.lastIndexOf('/') + 1) }); }); console.log("下载结束"); console.groupEnd(); }); } // 微信公众号下载代码 function wxggh () { //给按钮绑定点击事件 dlb.addEventListener('click', function() { // 清空控制台内容 console.clear(); console.group("图片下载脚本"); // 获取页面上所有的img元素 var imgElements = document.querySelectorAll('#img-content img'); // 存储所有img元素的data-src属性值 var imageUrls = []; // 声明计数变量 var count = 1; imgElements.forEach(function(img) { var dataSrc = img.getAttribute('data-src'); var Src = img.getAttribute('src'); if (dataSrc) { console.log('从dataSrc获取的第'+count+'张的图片链接'); imageUrls.push(dataSrc); }else{ console.log("从src获取的第"+count+"张的图片链接"); imageUrls.push(Src); } count += 1; }); console.log("下载开始"); console.log(imageUrls); imageUrls.forEach(function(url) { GM_download({ url: url, name: url.substring(url.lastIndexOf('/') + 1) }); }); console.log("下载结束"); console.groupEnd(); }); } // 获取当前网页url var currentUrl = window.location.href; // 使用Switch匹配执行代码 switch (true) { //匹配微信公众号推文:mp.weixin.qq.com/s/ case currentUrl.includes("mp.weixin.qq.com/s/"): wxggh(); break; // 使用通用下载代码 default: universal(); } } })();