您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
检测到删除时,模拟点击实现清空回收站,以节省空间
// ==UserScript== // @name PikPak 删除后自动清空回收站 // @namespace https://github.com/sxjeru // @version 1.1 // @description 检测到删除时,模拟点击实现清空回收站,以节省空间 // @author sxjeru // @match *://mypikpak.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=mypikpak.com // @license GPL-3.0 // @grant none // @run-at document-end // ==/UserScript== (function() { 'use strict'; // 清空回收站的函数 function clearRecycleBin() { // 查找 aria-label 为 "清空回收站" 的 <a> 元素 const clearButton = document.querySelector('a[aria-label="清空回收站"]'); // 判断是否找到了该按钮 if (clearButton) { // 如果找到了,就模拟点击它 clearButton.click(); console.log('已成功模拟点击"清空回收站"按钮!'); } else { console.error('未找到"清空回收站"按钮,请检查选择器是否正确。'); } } // 监测"删除成功"消息 function startMonitoringSuccessMessage() { console.log('开始监测删除成功消息...'); // 创建一个观察器实例 const observer = new MutationObserver((mutations) => { for (const mutation of mutations) { if (mutation.type === 'attributes' && mutation.attributeName === 'style') { const element = mutation.target; // 确保是消息元素 if (element.classList.contains('pp-message')) { // 检查是否包含成功图标和"删除成功"文本 const successIcon = element.querySelector('.message-icon.success'); const messageText = element.querySelector('.message-text'); if (successIcon && messageText && messageText.textContent === '删除成功' && element.style.display !== 'none') { console.log('检测到"删除成功"消息,准备清空回收站'); // 断开观察器,避免重复触发 observer.disconnect(); // 执行清空回收站 clearRecycleBin(); break; } } } } }); // 开始观察整个文档中的style属性变化 observer.observe(document.body, { attributes: true, attributeFilter: ['style'], subtree: true }); // 设置超时,避免长时间无效监听 setTimeout(() => { observer.disconnect(); console.log('监测超时,停止监测'); }, 10000); // 10秒后停止监测 } // 查找并监听删除按钮 function findAndSetupDeleteButton() { // 查找符合条件的删除按钮 const buttons = document.querySelectorAll('button[aria-disabled="false"].el-button.el-button--primary'); buttons.forEach(button => { const span = button.querySelector('span'); // 确认按钮文本是"删除"且还没有设置过监听 if (span && span.textContent.trim() === '删除' && !button.dataset.recycleBinSetup) { // 标记已设置监听,避免重复 button.dataset.recycleBinSetup = 'true'; // 添加点击事件监听器 button.addEventListener('click', function() { // 点击后立即开始监测成功消息 startMonitoringSuccessMessage(); }); console.log('已设置删除按钮点击监听'); } }); } // 创建一个MutationObserver来监视DOM变化,以便检测动态加载的删除按钮 const domObserver = new MutationObserver(function() { findAndSetupDeleteButton(); }); // 开始观察整个文档的变化 domObserver.observe(document.body, { childList: true, subtree: true }); // 页面加载时也运行一次检查 window.addEventListener('load', findAndSetupDeleteButton); // 立即运行一次,以防页面已加载完成 findAndSetupDeleteButton(); })();