您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Gives you the option to load all the subsequent comic pages on a FurAffinity comic page automatically. Now with the option to show or hide Page Links.
当前为
// ==UserScript== // @name Furaffinity Webcomic Autoloader 2.0 // @version 0.2.4 // @description Gives you the option to load all the subsequent comic pages on a FurAffinity comic page automatically. Now with the option to show or hide Page Links. // @grant none // @icon https://www.furaffinity.net/themes/beta/img/banners/fa_logo.png?v2 // @author Midori Dragon // @match *://*.furaffinity.net/view/* // @namespace Violentmonkey Scripts // @license MIT // ==/UserScript== var rootHolder = document.getElementById("submissionImg"); var counter = 5; var showLinks = false; var prevImg; var startImg = window.location.href; function insertAfter(newElement, referenceElement) { referenceElement.parentNode.insertBefore(newElement, referenceElement.nextSibling); } function insertBreakAfter(referenceElement) { var br = document.createElement("br"); insertAfter(br, referenceElement); } function getNextLink(doc) { //console.log("Get Next Link"); var comicDoc = doc.getElementsByClassName("submission-description user-submitted-links")[0].childNodes; if(comicDoc.length < 5) { if(doc.getElementsByClassName("parsed_nav_links")[0].childNodes.length < 5) { //console.log("No Comic Tag"); return null; } else comicDoc = doc.getElementsByClassName("parsed_nav_links")[0].childNodes; } else { if(doc.getElementsByClassName("parsed_nav_links")[0].childNodes.length >= 5) comicDoc = doc.getElementsByClassName("parsed_nav_links")[0].childNodes; } //console.log("Is Comic: " + comicDoc); var link; comicDoc.forEach(function(elem) { //console.log("elem: " + elem.textContent); if (elem.textContent.toLowerCase().includes("next")) { var currImgCalc = elem.href.substring(elem.href.lastIndexOf('/'), elem.href.length); var startImgCalc = startImg.substring(0, startImg.length-1); startImgCalc = startImgCalc.substring(startImgCalc.lastIndexOf('/'), startImgCalc.length); if (currImgCalc != startImgCalc && elem.href != prevImg) { link = elem.href; prevImg = link; } //console.log("found: " + elem.textContent + " Link = " + elem.href); return; } }); return link; } function loadNextPage(nextLink) { if(nextLink) { var request = new XMLHttpRequest(); request.open('GET', nextLink, true); request.onload = function() { if (this.status >= 200 && this.status < 400) { // Success! //var data = JSON.parse(this.response); parser = new DOMParser(); var nextPage = parser.parseFromString(this.response, "text/html"); //console.log(this.response) var nl = getNextLink(nextPage); var img = nextPage.getElementById("submissionImg"); rootHolder.parentNode.insertBefore(img, rootHolder.nextSibling); rootHolder = rootHolder.nextSibling; insertBreakAfter(rootHolder); rootHolder = rootHolder.nextSibling; if (showLinks) { var lnk = document.createElement('a'); var lnkURL = nextLink; lnk.innerHTML = lnkURL; lnk.href = lnkURL; insertAfter(lnk, rootHolder); } rootHolder = rootHolder.nextSibling; insertBreakAfter(rootHolder); rootHolder = rootHolder.nextSibling; loadNextPage(nl); } else { //We reached our target server, but it returned an error console.log("none"); } }; request.onerror = function() { //There was a connection error of some sort console.log("error"); }; request.send(); } } function startAutoloader() { //console.log("starting..."); var ab = document.getElementById("autoloaderButton"); ab.parentNode.removeChild(ab); var checkbox = document.getElementById("linksCheckbox"); checkbox.parentNode.removeChild(checkbox); var label = document.getElementById("showLinksLabel"); label.parentNode.removeChild(label); loadNextPage(secondPage); } function setShowLinks() { if (showLinks) showLinks = false; else showLinks = true; var checkbox = document.getElementById("linksCheckbox"); checkbox.checked = showLinks; } var secondPage = getNextLink(document); console.log("Link = " + secondPage); if(secondPage) { var img = document.getElementById("submissionImg"); console.log("Image found"); insertBreakAfter(rootHolder); rootHolder = rootHolder.nextSibling; var label = document.createElement('a'); label.id = "showLinksLabel"; label.innerHTML = "Show Links"; label.style.cursor = "pointer"; label.style.marginBottom = "30px"; label.style.marginLeft = "5px"; label.onclick = setShowLinks; insertAfter(label, rootHolder); var checkbox = document.createElement('input'); checkbox.value = "Show Links"; checkbox.type = "checkbox"; checkbox.id = "linksCheckbox"; checkbox.className = "checkbox standard mobile-fix"; checkbox.style.cursor = "pointer"; checkbox.style.marginBottom = "30px"; checkbox.style.marginLeft = "20px"; checkbox.onclick = setShowLinks; insertAfter(checkbox, rootHolder); var button = document.createElement('input'); button.value = "Enable Comic Autoloader"; button.type = "button"; button.id = "autoloaderButton"; button.className = "button standard mobile-fix"; button.style.marginTop = "10px"; button.style.marginBottom = "20px"; button.onclick = startAutoloader; insertAfter(button, rootHolder); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址