您需要先安装一个扩展,例如 篡改猴、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--");
- }
- });
- }