您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
try to take over the world!
// ==UserScript== // @name 预加载下一章/页,方向键上/下一章 // @namespace http://tampermonkey.net/ // @version 0.5 // @description try to take over the world! // @author wodexianghua // @match http://*/* // @match https://*/* // @grant none // ==/UserScript== (function () { 'use strict'; var shang = false; var xia = false; var found_pre_now; var found_next_now; var iscanfenye = true; var searchText = { pre: ["上一章", "上一页", "pre", "<", "< 上一页"], next: ["下一章", "下一页", "next", ">", "下一页 >"] } document.addEventListener('keydown', function (event) { if (document.activeElement.nodeName != 'BODY') return; else if (document.activeElement.nodeName == 'BODY' && !iscanfenye) return; if (event.keyCode == 37) shang = true; else if (event.keyCode == 39) xia = true; //是否按下左右键 if (shang || xia) { if (shang) { found_pre_now = getpreornextelement("a", searchText.pre); if (found_pre_now == undefined) found_pre_now = getpreornextelement("button", searchText.pre) if (found_pre_now != undefined) { shang = false; found_pre_now.click(); return; } } else { found_next_now = getpreornextelement("a", searchText.next); if (found_next_now == undefined) found_next_now = getpreornextelement("button", searchText.next); if (found_next_now != undefined) { xia = false; found_next_now.click(); return; } } shang = false; xia = false; } }); //如果有视频在播放,禁用左右键翻页 let video = document.querySelector('video'); if (video != null) { video.addEventListener("play", function () { iscanfenye = false; }); video.addEventListener("pause", function () { iscanfenye = true; }); } setTimeout(() => { foundnextpage(); }, 2000); //预加载下一页 function foundnextpage() { found_next_now = getpreornextelement("a", searchText.next); //如果没找到或者href是javascript的话就退出 if (found_next_now == undefined) { return; } else if (found_next_now.getAttribute('href').includes("javascript")) { return; } let xiaurl = found_next_now.getAttribute('href'); if (!xiaurl.includes(document.domain)) { var ishttps = 'https:' == document.location.protocol ? true : false; if (ishttps) { xiaurl = 'https://' + xiaurl; } else { xiaurl = 'http://' + xiaurl; } } var head = document.querySelector('head'); head.insertAdjacentHTML('beforeend', '<link rel="prefetch" href="' + xiaurl + '" />'); return; } /** * @param {string} tags * @param {string[]} searchTextarry * @return {HTMLAnchorElement} */ function getpreornextelement(tags, searchTextarry) { let aTags = document.getElementsByTagName(tags); for (const iterator of aTags) { let incElement = includesElement(iterator, searchTextarry); if (incElement) return incElement; } return undefined; } /** * @param {string[]} searchTextarry * @param {HTMLAnchorElement} element */ function includesElement(element, searchTextarry) { for (const iterator of searchTextarry) { if (element.textContent.trim() == iterator) { return element; } } return undefined; } // Your code here... })();