async function downloadImages(blobUrls) { for (let i = 0; i < blobUrls.length; i++) { let response = await fetch(blobUrls[i]); let blob = await response.blob(); let blobUrlObject = URL.createObjectURL(blob); let indexStr = String(i).padStart(3, "0"); // 生成 3 位数格式 let filename = `${indexStr}.webp`; // e.g., 001.webp let a = document.createElement("a"); a.href = blobUrlObject; a.download = filename; document.body.appendChild(a); a.click(); document.body.removeChild(a); URL.revokeObjectURL(blobUrlObject); console.log(`Downloaded: ${filename}`); await new Promise(resolve => setTimeout(resolve, 500)); // 避免 Chrome 限制 } const div = document.querySelector('div.printView > div:not(style)'); const div2 = Array.from(div.children).filter(el => el.tagName.toLowerCase() === 'div')[1]; const div2_1_1 = div2.querySelector('div:nth-of-type(1) > div:nth-of-type(1)'); const count = Array.from(div2_1_1.children).filter(el => { return el.tagName.toLowerCase() === 'div' && el.hasAttribute('width') && el.hasAttribute('height'); }).length; console.log("div2.1.1 下的
数量为:", count); console.log(document.title); } const blobs = [...document.querySelectorAll("img")] .map(el => el.src) .filter(src => src.startsWith("blob:")); downloadImages(blobs);