Greasy Fork

Greasy Fork is available in English.

夸克网盘自动关闭保存成功弹窗

自动关闭夸克网盘保存文件后的弹窗

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         夸克网盘自动关闭保存成功弹窗
// @namespace    http://tampermonkey.net/
// @version      2.0
// @description  自动关闭夸克网盘保存文件后的弹窗
// @author       You
// @match        *://pan.quark.cn/*
// @match        *://*.quark.cn/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=quark.cn
// @grant        none
// @run-at       document-end
// ==/UserScript==

(function () {
    'use strict';

    console.log('[夸克网盘助手] 脚本已启动');

    // 多种关闭弹窗的方法
    function closeDialog() {
        // 方法1: 查找关闭按钮 (X按钮)
        const closeButtons = document.querySelectorAll('[class*="close"]');
        closeButtons.forEach(btn => {
            if (btn && btn.offsetParent !== null) {
                console.log('[夸克网盘助手] 找到关闭按钮,点击关闭');
                btn.click();
                return true;
            }
        });

        // 方法2: 查找包含"保存成功"的弹窗并点击遮罩层关闭
        const dialogs = document.querySelectorAll('[class*="dialog"], [class*="modal"], [role="dialog"]');
        dialogs.forEach(dialog => {
            if (dialog.textContent.includes('保存成功') || dialog.textContent.includes('已保存')) {
                console.log('[夸克网盘助手] 找到保存成功弹窗');

                // 尝试点击遮罩层
                const mask = document.querySelector('[class*="mask"]');
                if (mask) {
                    console.log('[夸克网盘助手] 点击遮罩层关闭');
                    mask.click();
                    return true;
                }

                // 尝试按ESC键
                const escEvent = new KeyboardEvent('keydown', {
                    key: 'Escape',
                    code: 'Escape',
                    keyCode: 27,
                    which: 27,
                    bubbles: true,
                    cancelable: true
                });
                document.dispatchEvent(escEvent);
                console.log('[夸克网盘助手] 模拟按ESC键');
                return true;
            }
        });

        // 方法3: 直接移除弹窗元素
        const saveDialogs = document.querySelectorAll('[class*="dialog"], [class*="modal"]');
        saveDialogs.forEach(dialog => {
            const text = dialog.textContent;
            if (text.includes('保存成功') || text.includes('已保存') || text.includes('立即查看')) {
                console.log('[夸克网盘助手] 直接移除弹窗元素');
                dialog.remove();

                // 同时移除遮罩层
                const masks = document.querySelectorAll('[class*="mask"]');
                masks.forEach(m => m.remove());
                return true;
            }
        });
    }

    // 使用 MutationObserver 监听 DOM 变化
    const observer = new MutationObserver((mutations) => {
        mutations.forEach((mutation) => {
            if (mutation.addedNodes.length > 0) {
                mutation.addedNodes.forEach((node) => {
                    if (node.nodeType === 1) { // 元素节点
                        const text = node.textContent || '';

                        // 检测到保存成功弹窗
                        if (text.includes('保存成功') || text.includes('已保存')) {
                            console.log('[夸克网盘助手] 检测到保存成功弹窗,准备关闭');

                            // 延迟关闭,确保弹窗完全加载
                            setTimeout(() => {
                                closeDialog();
                            }, 500);

                            // 多次尝试关闭
                            setTimeout(() => {
                                closeDialog();
                            }, 1000);
                        }
                    }
                });
            }
        });
    });

    // 开始观察
    observer.observe(document.body, {
        childList: true,
        subtree: true
    });

    // 定时检查并关闭弹窗(后备方案)
    setInterval(() => {
        closeDialog();
    }, 1000);

    console.log('[夸克网盘助手] 监听器已启动');
})();