您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
When viewing any chapter on Royal Road, this will add a button to continue reading from your current place in the story.
// ==UserScript== // @name RR Continue Reading Anywhere // @namespace ultrabenosaurus.RoyalRoad // @version 0.8 // @description When viewing any chapter on Royal Road, this will add a button to continue reading from your current place in the story. // @author Ultrabenosaurus // @license GNU AGPLv3 // @source https://greasyfork.org/en/users/437117-ultrabenosaurus?sort=name // @match https://www.royalroad.com/fiction/*/*/chapter/* // @icon https://www.google.com/s2/favicons?domain=royalroad.com // @grant none // ==/UserScript== (function() { 'use strict'; var ficHome = window.location.pathname.split("/chapter/")[0].split("/"); ficHome.pop(); ficHome = ficHome.join("/"); if(document.querySelectorAll('div.row.fic-header div.row div.fic-buttons a.btn-primary[href^="'+ficHome+'"]').length!=0){ UBaddContinueReadingAnywhereButton(); } ficHome = null; })(); function UBaddContinueReadingAnywhereButton() { var btnElem = '<a id="UBcontinueReadingAnywhere" href="javascript:void(0);" class="btn btn-block btn-primary margin-bottom-5"><i class="fa fa-play-circle"></i> Continue Reading</a>'; document.querySelectorAll('div.row.fic-header div.row div.fic-buttons')[0].insertAdjacentHTML("beforeend", btnElem); for(var i=document.querySelectorAll('div.chapter-inner.chapter-content ~ hr ~ div.row .btn.btn-primary.col-xs-4').length;i--;i>0){ document.querySelectorAll('div.chapter-inner.chapter-content ~ hr ~ div.row .btn.btn-primary.col-xs-4')[i].className = "btn btn-primary col-xs-3"; } btnElem = '<a id="UBcontinueReadingAnywhereBTM" href="javascript:void(0);" class="btn btn-primary col-xs-3">Continue <br class="visible-xs">Reading</a>'; document.querySelectorAll('div.chapter-inner.chapter-content ~ hr ~ div.row .btn.btn-primary.col-xs-3')[1].insertAdjacentHTML("afterend", btnElem); var yccBtn = document.getElementById('UBcontinueReadingAnywhere'); if(yccBtn){ yccBtn.addEventListener("click", UBcontinueReadingAnywhere, false); } yccBtn = document.getElementById('UBcontinueReadingAnywhereBTM'); if(yccBtn){ yccBtn.addEventListener("click", UBcontinueReadingAnywhere, false); } yccBtn = btnElem = null; } function UBcontinueReadingAnywhere() { $.ajax({ type: "GET", url: document.querySelectorAll('div.row.fic-header div.fic-buttons a.btn-primary')[0].href, success: function(t){ var fictionPage = document.implementation.createHTMLDocument(); fictionPage.body.innerHTML = t; var a = fictionPage.querySelector("a.btn.btn-lg.btn-primary"); window.location.href = a.href; a = fictionPage = null; }, error: function (request, status, error) { console.error("--RR Continue Reading Anywhere--"); console.error("Failed to determine the proper chapter URL; below are the AJAX error details."); console.error("Request object:"); console.error(request); console.error("Status: "+(status||"null")); console.error("HTTP Error: "+(error||"null")); console.error("--RR Continue Reading Anywhere--"); } }); }