Ctrl+Alt+Shift + (LArrow to rel["prev"] || RArrow to rel["next"]) etc...;
当前为
// ==UserScript==
// @name Advanced Prev And Next
// @namespace https://goldenhind.tumblr.com/
// @version 1.0
// @description Ctrl+Alt+Shift + (LArrow to rel["prev"] || RArrow to rel["next"]) etc...;
// @author hisaruki
// @match https://*/*
// @icon https://upload.wikimedia.org/wikipedia/commons/c/c2/Wikimoji-Next_Track.svg
// @grant none
// ==/UserScript==
(function() {
'use strict';
if(window == window.parent){
const params = new URLSearchParams(window.location.search);
const root = new URL(document.URL);
let prev = document.querySelector('[rel="prev"]');
let next = document.querySelector('[rel="next"]');
["page", "p"].map(p => {
let v = params.get(p);
let res = false;
if(v && isFinite(v)){
v = v - 0;
prev = new URL(document.URL);
next = new URL(document.URL);
next.searchParams.set(p, v + 1);
prev.searchParams.set(p, v - 1);
prev = prev.toString();
next = next.toString();
res = true;
}
return res;
});
if(!next){
let nextPage = Infinity;
Array.from(document.querySelectorAll("a")).map(a => {
let href = new URL(a.getAttribute("href"), document.URL);
if(href.origin == root.origin){
["page", "p"].map(p => {
if(href.searchParams.get(p) && isFinite(href.searchParams.get(p))){
p = href.searchParams.get(p) - 0;
if(p < nextPage){
nextPage = p;
next = href.toString();
}
}
});
}
});
}
console.log(next, prev);
document.addEventListener('keydown', e => {
if(e.shiftKey && e.altKey && e.shiftKey){
if(e.key == "ArrowRight" && next){
location.href = next;
}
if(e.key == "ArrowLeft" && prev){
location.href = prev;
}
}
});
}
// Your code here...
})();