您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
为微信阅读pc版添加自动滚动和翻页功能
当前为
// ==UserScript== // @name 微信读书自动滚动翻页 // @namespace http://tampermonkey.net/ // @version 0.1 // @description 为微信阅读pc版添加自动滚动和翻页功能 // @author DearCyan // @match https://weread.qq.com/web/reader/* // @icon https://weread-1258476243.file.myqcloud.com/web/wrwebnjlogic/image/reader_top_home.37ef15b1.png // @grant none // @license MIT GPL // ==/UserScript== function fireKeyEvent(el, evtType, keyCode) { let evtObj; if (document.createEvent) { if (window.KeyEvent) {//firefox 浏览器下模拟事件 evtObj = document.createEvent('KeyEvents'); evtObj.initKeyEvent(evtType, true, true, window, true, false, false, false, keyCode, 0); } else {//chrome 浏览器下模拟事件 evtObj = document.createEvent('UIEvents'); evtObj.initUIEvent(evtType, true, true, window, 1); delete evtObj.keyCode; if (typeof evtObj.keyCode === "undefined") {//为了模拟keycode Object.defineProperty(evtObj, "keyCode", { value: keyCode }); } else { evtObj.key = String.fromCharCode(keyCode); } if (typeof evtObj.ctrlKey === 'undefined') {//为了模拟ctrl键 Object.defineProperty(evtObj, "ctrlKey", { value: true }); } else { evtObj.ctrlKey = true; } } el.dispatchEvent(evtObj); } else if (document.createEventObject) {//IE 浏览器下模拟事件 evtObj = document.createEventObject(); evtObj.keyCode = keyCode el.fireEvent('on' + evtType, evtObj); } } window.onload = function () { let dick let speed = 10 document.addEventListener('keyup', (e) => { console.debug('keyup', e.key); if (e.key == '-') { if (speed = 20) { speed++ } autoScroll(speed) } if (e.key == '+') { if (speed > 1) { speed-- } autoScroll(speed) } if (e.key == 'Enter') { autoScroll(0) speed = 10 } }) function debounce(fn) { let timeout = null; return function () { clearTimeout(timeout); timeout = setTimeout(() => { fn.apply(this, arguments); }, 5000); }; } function getHeight() { let scrollHeight = document.body.scrollHeight - document.body.offsetHeight - 1 return window.scrollY >= scrollHeight } function nextPage() { if (getHeight()) { console.debug('next page'); fireKeyEvent(document, "keydown", 39) debounce(autoScroll)(speed) } } function autoScroll(val) { if (val !== 0) { clearInterval(dick) dick = setInterval( () => { window.scroll(0, window.scrollY + 1); if (getHeight()) { console.debug('waiting for nextpage'); debounce(nextPage)() clearInterval(dick) } console.debug('restart'); }, val ) } else { clearInterval(dick) console.debug('stop'); } } }