kerwin612 / ReadTools

Published:

Version: 0.1+680cbbc updated

Summary: 在 屏幕左侧 右击 触发 上一页 按钮,在 屏幕右侧 右击 触发 下一页 按钮;“扩大”翻页的区域,提高翻页效率,提升阅读体验 / Right-click on the left side of the screen to trigger the previous page button, and right-click on the right side of the screen to trigger the next page button; "enlarge" the page turning area to improve page turning efficiency and improve the reading experience

License: MIT

Libraries Used

辅助阅读工具

在 屏幕左侧 右击 触发 上一页 按钮,在 屏幕右侧 右击 触发 下一页 按钮;“扩大”翻页的区域,提高翻页效率,提升阅读体验

将屏幕 纵向从下往上三分之二 的区域划分为 左右 两部分,分别映射到 上一页下一页 两个按钮上,用 鼠标右键 触发;
当在屏幕 左侧右击 鼠标时,触发 上一页 按钮;
当在屏幕 右侧右击 鼠标时,触发 下一页 按钮;
本脚本通过 支持自定义配置 来扩展适配任何你需要的网站;
配置项为:funcConfig,该值的格式为objectkey匹配网站URL的 正则表达式 或 前缀value函数字符串
默认适配了 doukan.com & gitbook.io ,如下:

funcConfig = {
    "http://www.duokan.com/reader/www/app.html":
        "function() {\
            return {\
                    prevLink: document.getElementsByClassName('j-pageup')[0],\
                    nextLink: document.getElementsByClassName('j-pagedown')[0]\
            };\
        }",
    "^.*gitbook\\.io.*$": 
        "function() {\
            let loopEle = function(ele, classNamePattern) {\
                if (new RegExp(classNamePattern).test(ele.className)) return ele;\
                let rst = null;\
                for (let i = 0; i < ele.children.length; i++) {\
                    if ((rst = loopEle(ele.children[i], classNamePattern))) break;\
                }\
                return rst;\
            };\
            let classBase;\
            let navPagesLinks;\
            let resultObj = {};\
            if ((classBase = document.getElementById('__GITBOOK__ROOT__CLIENT__').firstChild.className.split('--')[0]) && (navPagesLinks = loopEle(document.getElementById('__GITBOOK__ROOT__CLIENT__'), '^'+ classBase + '--navPagesLinks-.+$'))) {\
                navPagesLinks.children.forEach((val) => {\
                    if (new RegExp('^'+ classBase + '.*--cardPrevious-.+$').test(val.className)) resultObj.prevLink = val;\
                    if (new RegExp('^'+ classBase + '.*--cardNext-.+$').test(val.className)) resultObj.nextLink = val;\
                });\
            }\
            return resultObj;\
        }",
}

如上,value函数字符串 ,此函数必须返回网站的 上一页下一页 两个按钮的 节点对象 ,以便于脚本触发;

Rating: 0