站酷图片下载
// ==UserScript==
// @name 站酷图片下载
// @namespace http://tampermonkey.net/
// @version 0.1.1
// @description 站酷图片下载
// @author 放空鬼马
// @match https://www.zcool.com.cn/work/*
// @match https://www.facebook.com/*
// @match https://www.instagram.com/*
// @require https://cdn.jsdelivr.net/npm/vue@3.2.31/dist/vue.global.js
// @grant none
// ==/UserScript==
function addDownloadButtonsToTargetDiv() {
const targetDiv = document.querySelector('.sc-1gq6zpr-0.jivDXX');
if (!targetDiv) return;
const images = targetDiv.querySelectorAll('img');
images.forEach(image => {
if (image.parentElement.querySelector('.download-button')) return;
const button = document.createElement('button');
button.innerText = '下载';
button.className = 'download-button';
button.style.position = 'absolute';
button.style.top = '10px';
button.style.right = '10px';
button.style.zIndex = '10';
button.style.padding = '5px';
button.style.background = '#000';
button.style.color = '#fff';
button.style.border = 'none';
button.style.cursor = 'pointer';
const parent = image.parentElement;
parent.style.position = 'relative';
parent.appendChild(button);
button.addEventListener('click', () => {
window.open(image.src, '_blank');
});
});
}
// 页面变化侦测
const observer = new MutationObserver(() => {
const targetDiv = document.querySelector('.sc-1gq6zpr-0.jivDXX');
if (!targetDiv) {
// 如果目标元素不存在,重新加载页面
window.location.reload();
} else {
addDownloadButtonsToTargetDiv();
}
});
// 开始观察文档变化
observer.observe(document.body, { childList: true, subtree: true });
// 初次加载时执行
addDownloadButtonsToTargetDiv();