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      1.3
// @description  采集
// @author       Rayu
// @match        https://*.yangkeduo.com/*
// @match        https://*.taobao.com/*
// @match        https://*.1688.com/*
// @grant        none
// @license     MIT
// ==/UserScript==

(function() {
    'use strict';

    let isProcessing = false;

    document.addEventListener('keydown', function(event) {
        if ((event.key === 'F2' || event.key === 'F3') && !isProcessing) {
            isProcessing = true;

            // 查找所有按钮中,文本等于“开始采集”的按钮(保持不变)
            const buttons = Array.from(document.querySelectorAll('button'));
            const fetchButton = buttons.find(btn => btn.textContent.trim() === '开始采集');

            if (fetchButton) {
                fetchButton.click();
                console.log('开始采集按钮已点击 (按键: ' + event.key + ')');

                if (event.key === 'F2') {
                    // F2: 按600毫秒后返回上一页
                    setTimeout(() => {
                        window.history.back();
                        console.log('600毫秒后返回上一页');
                        isProcessing = false;
                    }, 600);
                } else if (event.key === 'F3') {
                    // F3: 等待弹窗出现并点击“取消”按钮
                    
                    const maxWait = 1000;       // 最大等待时间1秒
                    const intervalTime = 100;   // 每100ms检测一次
                    let waited = 0;

                    const tryClickCancel = () => {
                        const modal = document.querySelector('.modal-alert');
                        if (modal) {
                            const cancelBtn = modal.querySelector('button.dxm-btn-gray');
                            if (cancelBtn) {
                                cancelBtn.click();
                                console.log('弹窗“取消”按钮已点击');
                                isProcessing = false;
                                return;
                            }
                        }
                        waited += intervalTime;
                        if (waited < maxWait) {
                            setTimeout(tryClickCancel, intervalTime);
                        } else {
                            console.log('弹窗未出现,或未找到取消按钮,结束等待');
                            isProcessing = false;
                        }
                    };

                    // 延迟100ms后开始检测弹窗
                    setTimeout(tryClickCancel, intervalTime);
                }

            } else {
                console.log('未找到“开始采集”按钮');
                isProcessing = false;
            }
        }
    });
})();