Press E for next page, Q for previous page
// ==UserScript==
// @name Arrow Key Pager
// @namespace http://tampermonkey.net/
// @version 2.2
// @description Press E for next page, Q for previous page
// @match *://*/*
// @grant none
// @license MIT
// ==/UserScript==
(function () {
function findLink(dir) {
// Bilibili
const bTxt = dir === 'next' ? '下一页' : '上一页';
const bBtn = Array.from(document.querySelectorAll('button.vui_pagenation--btn-side')).find(b => b.textContent.trim() === bTxt);
if (bBtn) return bBtn;
// Google
if (dir === 'next') {
const el = document.querySelector('#pnnext, a[aria-label="Next page"]');
if (el) return el;
const links = document.querySelectorAll('a[href*="start="]');
if (links.length) return links[links.length - 1];
} else {
const el = document.querySelector('#pnprev, a[aria-label="Previous page"]');
if (el) return el;
}
// rule34video
const svg = document.querySelector(`svg.custom-${dir === 'next' ? 'right' : 'left'}`);
if (svg) return svg.closest('a');
return null;
}
document.addEventListener('keydown', (e) => {
const tag = document.activeElement?.tagName;
if (['INPUT', 'TEXTAREA', 'SELECT'].includes(tag) || document.activeElement?.isContentEditable) return;
if (!['KeyE', 'KeyQ'].includes(e.code)) return;
const el = findLink(e.code === 'KeyE' ? 'next' : 'prev');
if (el) { e.preventDefault(); el.click(); }
});
})();