From 976f4666552d04a9ea55b3a24c84bf913d576946 Mon Sep 17 00:00:00 2001 From: lifegpc Date: Sat, 25 Feb 2023 20:27:19 +0800 Subject: [PATCH] Create eh_gallery_script.user.js --- eh_gallery_script.user.js | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 eh_gallery_script.user.js diff --git a/eh_gallery_script.user.js b/eh_gallery_script.user.js new file mode 100644 index 0000000..ca55d35 --- /dev/null +++ b/eh_gallery_script.user.js @@ -0,0 +1,50 @@ +// ==UserScript== +// @name EH Gallery Script +// @namespace https://github.com/lifegpc/userscript +// @version 0.1.0 +// @description :( +// @author lifegpc +// @match https://*.e-hentai.org/g/*/* +// @match https://*.exhentai.org/g/*/* +// @icon https://e-hentai.org/favicon.ico +// @grant GM_getValue +// @grant GM_setValue +// @grant GM_registerMenuCommand +// @require https://openuserjs.org/src/libs/sizzle/GM_config.js +// @run-at document-start +// ==/UserScript== +GM_config.init({ + id: 'e-hentai', + fields: { + openImageInNewTab: { + type: 'checkbox', + label: 'Open image in new tab.', + default: true + } + }, + events: { + save: (values) => { + let openImageInNewTab = GM_config.get("openImageInNewTab"); + let eles = document.getElementsByTagName("a"); + for (let ele of eles) { + if (ele.href.match(REG)) { + ele.target = openImageInNewTab ? '_blank' : '_self'; + } + } + } + } +}); +const REG = /e[-x]hentai\.org\/s\/[^/]+\/\d+-\d+/; +GM_registerMenuCommand("Edit Settings", () => { GM_config.open() }, "e"); +let observer = new MutationObserver((data) => { + let openImageInNewTab = GM_config.get("openImageInNewTab"); + for (let i of data) { + let ele = i.target; + if (ele.tagName == 'A') { + if (ele.href.match(REG)) { + ele.target = openImageInNewTab ? '_blank' : '_self'; + } + } + } +}); +observer.observe(document, { childList: true, subtree: true });