// ==UserScript== // @name 偶然中文快捷翻页脚本 // @namespace http://tampermonkey.net/ // @version 0.9 // @description 按下键盘左右键或ad键进行上一页下一页切换,双击按键进行上下章节切换;按下键盘上下键或ws键进行页面内滚动;按下g键加入书签;自动刷新未加载的网页 // @author coccvo // @match *://www.or77.net/* // @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 // @downloadURL none // ==/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 simulateClickByText(textContent) { // 查找所有标签 const links = document.querySelectorAll('a'); // 遍历每个标签 for (let i = 0; i < links.length; i++) { // 如果文本内容匹配,则模拟点击 if (links[i].textContent.trim() === textContent) { links[i].click(); break; } } } // 模拟点击书签函数 function simulateBookmarkClick() { // 查找具有特定文本内容的元素 const bookmarkButton = document.querySelector('span[onclick*="AddShuQian"]'); if (bookmarkButton) { console.log('Bookmark button found:', bookmarkButton); bookmarkButton.click(); } else { console.log('Bookmark button not found.'); } } const SCROLL_FRACTION = 0.9; // 设置滚动距离为视口高度的百分比 document.addEventListener('keydown', function(e) { // 定义一个数组包含需要处理的按键 const keysToHandle = ['ArrowUp', 'ArrowDown', 'w', 's']; // 检查按键是否在需要处理的列表中,并且不在输入框内部 if (keysToHandle.includes(e.key) && !isTargetInInput(e)) { // 计算滚动距离 let distance = e.key === 'ArrowDown' || e.key === 's' ? window.innerHeight * SCROLL_FRACTION : -window.innerHeight * SCROLL_FRACTION; // 执行平滑滚动 if ('scrollBehavior' in document.documentElement.style) { window.scrollBy({ top: distance, left: 0, behavior: 'smooth' }); } else { window.scrollBy(0, distance); } // 阻止按键的默认行为 e.preventDefault(); } }, false); // 函数:检查事件目标是否在输入框内部 function isTargetInInput(event) { const tagName = event.target.tagName.toLowerCase(); return tagName === 'input' || tagName === 'textarea'; } // 双击检测变量 let clickTimer = null; // 监听键盘事件 document.addEventListener('keydown', function(e) { // 左键或 'a' 键(上一页) if (e.key === 'ArrowLeft' || e.key === 'a') { if (clickTimer == null) { clickTimer = setTimeout(function() { simulateClickByText('上一页'); clickTimer = null; }, 300); } else { clearTimeout(clickTimer); clickTimer = null; simulateClickByText('上一章'); } } // 右键或 'd' 键(下一页) else if (e.key === 'ArrowRight' || e.key === 'd') { if (clickTimer == null) { clickTimer = setTimeout(function() { simulateClickByText('下一页'); clickTimer = null; }, 300); } else { clearTimeout(clickTimer); clickTimer = null; simulateClickByText('下一章'); } } // 'g' 键(收藏书签) else if (e.key === 'g') { simulateBookmarkClick(); } }); })();