小说网站通用快捷翻页

键盘左右键或A/D键模拟点击页面中【上一页|上一章】【下一页|下一章】按钮,双击只点击【上一章】【下一章】按钮;按下G键加入书签;自动聚焦验证码,按下R键刷新验证码;自动刷新未加载的网页。适配偶然中文网及其套娃网站,其他类似布局网站也通用。

// ==UserScript==
// @name         小说网站通用快捷翻页
// @namespace    http://tampermonkey.net/
// @version      2.1
// @description  键盘左右键或A/D键模拟点击页面中【上一页|上一章】【下一页|下一章】按钮,双击只点击【上一章】【下一章】按钮;按下G键加入书签;自动聚焦验证码,按下R键刷新验证码;自动刷新未加载的网页。适配偶然中文网及其套娃网站,其他类似布局网站也通用。
// @author       coccvo
// @match        https://www.or77.net/*
// @match        https://www.69shuba.pro/*
// @match        https://69shuba.cx/*
// @match        https://tieba.baidu.com/*
// @match        https://www.5xw.net/*
// @match        https://www.123du.vip/*
// @match        https://www.binzhousz.com/*
// @match        https://www.or7.net/*
// @match        https://www.qu7.net/*
// @match        https://www.1bqg.net/*
// @match        https://www.nchdzx.com/*
// @match        https://www.wolaido.com/*
// @match        https://www.cnyxfs.com/*
// @match        https://www.qiqidu.net/*
// @match        https://www.bokank.com/*
// @match        https://www.2pzw.com/*
// @icon        data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAB60lEQVR42m2SyUtbURTGT0tXbbF/QaGULoJd2C66kLYKom4UBQVnECcQMbpwEUWCA4a4CahIIk5RUYTgTkF04YSKIA44PVDEIULACVEDMUafv/AeiYqPj8c99/6+c88994r61ldamIveXJJXsff2tiAzedcliAEhky6XKz0qvjSviPCF4fL8ND8tBlTdFLTf8oGwq9ue/z56TxqWpApP2HB47M5KiDzrE3XqnXfW6p2zMsDTnGECxYBSDLG6QVGUnJhvXocA+Vad2iSD4YHG5ZWtg9gePOxDbcLCwuJCWfRn1SYPI1/8+2OhPVcqymc6HRd3j3jYx2g0Mink1mjfsOHueOM5Pf9Drso/4uEYDGoiPwEL7dPoh6uTIBhwq6eO3apiaHea8B9KSqSEI7sBD7BQujNb6hoa9cz3E3DLX1/Q9MNUXQ0GLNTXZLGEDOSGVv7I+k/p/y0cGgPth0HAAkSMIUSDarStRJYmHL7AI0sAYPpNezwe4pvtaWgtvd0g0FwCTQsZwMIGU62ZQyupf8nd+l0oN3gnvYKBtsIAhA1ch7O2kncxOdhmzf43WyGqTRfbuq9VPH1NZjDdwCNbs/xCO+3//WNxJA5rNM4/XoACHVFguoHu1idHoLrMoMxFEeYyxECf0Va1B/8EoujxAC7mNZQAAAAASUVORK5CYII=
// @grant        none
// @license MIT
// ==/UserScript==

(function() {
    'use strict';


    // 自动点击刷新
    function checkAndReload() {
        var refreshDiv = document.querySelector('div[style="font-size:26px; color:#00F; cursor:hand; text-align:center;"][onclick="location.reload();"]');
        if (refreshDiv) {
            console.log("Refresh div found. Reloading the page...");
            location.reload();
        } else {
            console.log("Refresh div not found.");
        }
    }
    window.addEventListener('load', checkAndReload);
    document.addEventListener('visibilitychange', function() {
        if (document.visibilityState === 'visible') {
            checkAndReload();
        }
    });

    // 自动聚焦验证码
    function autoFocusYZM() {
        const yzmInput = document.getElementById('yzm');

        if (yzmInput && !yzmInput.disabled) {
            yzmInput.focus();
            return true;
        }
        return false;
    }
    if (!autoFocusYZM()) {
        // 如果初始未找到,设置监听器
        const observer = new MutationObserver(function(mutations) {
            if (autoFocusYZM()) {
                observer.disconnect();
            }
        });
        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
        // 2秒后自动停止监听
        setTimeout(() => observer.disconnect(), 2000);
    }

    // 模拟点击函数
    function simulateClickByText(textContent) {
        const links = document.querySelectorAll('a');
        for (let i = 0; i < links.length; i++) {
            if (links[i].textContent.trim() === textContent) {
                links[i].click();
                return true;
            }
        }
        return false;
    }

    // 检测页面按钮
    function hasNextPageButton() {
        return simulateClickByText('下一页') || simulateClickByText('下一页>');
    }
    function hasLastPageButton() {
        return simulateClickByText('上一页') || simulateClickByText('上一页>');
    }

    // 书签功能
    function simulateBookmarkClick() {
        const bookmarkButton = document.querySelector('span[onclick*="AddShuQian"]');
        if (bookmarkButton) {
            bookmarkButton.click();
            console.log('Bookmark button clicked');
        }
    }

    // 验证码刷新
    function refreshCaptcha() {
        const captchaImg = document.getElementById('yzmImg');
        if (captchaImg) {
            captchaImg.src = captchaImg.src.split('?')[0] + '?' + Math.random();
            console.log('验证码已刷新');
        }
    }

    // 双击检测变量
    let clickTimer = null;

    // 检测页面按钮
    function findButtonToClick(texts) {
        const links = document.querySelectorAll('a');
        for (let i = 0; i < links.length; i++) {
            const linkText = links[i].textContent.trim();
            if (texts.includes(linkText)) {
                links[i].click();
                return true;
            }
        }
        return false;
    }

    // 处理页面导航
    function handlePageNavigation(direction) {
        if (clickTimer == null) {
            clickTimer = setTimeout(() => {
                const isPrev = direction === 'prev';
                if (isPrev ? hasLastPageButton() : hasNextPageButton()) {
                    if (isPrev) {
                        simulateClickByText('上一页') || simulateClickByText('<上一页');
                    } else {
                        simulateClickByText('下一页') || simulateClickByText('下一页>');
                    }
                } else {
                    simulateClickByText(isPrev ? '上一章' : '下一章');
                }
                clickTimer = null;
            }, 300);
        } else {
            clearTimeout(clickTimer);
            clickTimer = null;
            simulateClickByText(direction === 'prev' ? '上一章' : '下一章');
        }
    }

    // 统一按键处理
    function handleKeyEvents(e) {
        // 忽略输入框中的按键
        if (e.target.tagName === 'INPUT' || e.target.tagName === 'TEXTAREA') {
            return;
        }
        switch(e.key.toLowerCase()) {
            case 'arrowleft':
            case 'a':
                handlePageNavigation('prev');
                break;
            case 'arrowright':
            case 'd':
                handlePageNavigation('next');
                break;
            case 'g':
                simulateBookmarkClick();
                break;
            case 'r':
                refreshCaptcha();
                break;
        }
    }
    // 初始化
    init();
    document.addEventListener('keydown', handleKeyEvents);
})();

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址