Inspired by Handy ExHentai and ExHentai - Preload next page. Simplifies the reader layout and preloads the next image. Preloading improved to not use an iframe.
Від
// ==UserScript==
// @name Improved EH Reader
// @namespace karoo
// @version 2022.02.11
// @description Inspired by Handy ExHentai and ExHentai - Preload next page. Simplifies the reader layout and preloads the next image. Preloading improved to not use an iframe.
// @match *://e-hentai.org/s/*
// @match *://exhentai.org/s/*
// @run-at document-end
// @grant unsafeWindow
// @noframes
// ==/UserScript==
function id(id) {return document.getElementById(id);}
if (typeof unsafeWindow === "undefined"){unsafeWindow = window;}
if (window.top !== window.self) {return;}
// hide top panel and front page link
id("i1").firstElementChild.style.display = "none";
id("i2").style.display = "none";
document.getElementsByClassName("dp")[0].style.display = "none";
// hide frame and fix margins
id("i1").style.background = "none";
id("i1").style.border = "none";
id("i1").style.margin = "0px auto 0px";
id("i7").style.margin = "-5px auto 0px";
// preload next image without iframe
var preload = new Image();
function preloadNext() {
if (history.length <= 1 || id("next").href == window.location.href) {return;} // don't preload if on last page or new tab
var lookahead = new XMLHttpRequest();
lookahead.open("GET", id("next").href, false);
lookahead.send();
var doc = document.implementation.createHTMLDocument('lookahead');
doc.documentElement.innerHTML = lookahead.responseText;
var nextImage = doc.getElementById("img").src;
preload.src = nextImage;
}
unsafeWindow.preloadNext = preloadNext;
// preload next image after navigation
var script = document.createElement("script");
script.type = "text/javascript";
script.innerHTML =
"var uweo = update_window_extents;" +
"update_window_extents = function() {" +
" uweo();" +
" document.getElementById('img').addEventListener('load', function() {" +
" preloadNext()" +
" });" +
"}";
document.head.appendChild(script);