Add support to open MPV in new tab

This commit is contained in:
2023-02-27 12:26:56 +08:00
committed by GitHub
parent 24e416dc9d
commit f43c0f8daf

View File

@@ -1,7 +1,7 @@
// ==UserScript==
// @name EH Gallery Script
// @namespace https://github.com/lifegpc/userscript
// @version 0.1.1
// @version 0.1.2
// @description :(
// @author lifegpc
// @match https://*.e-hentai.org/g/*/*
@@ -31,6 +31,7 @@
// ==/UserScript==
const GALLERY_REG = /e[-x]hentai\.org\/g\/\d+\/[^/]+/;
const IMG_REG = /e[-x]hentai\.org\/s\/[^/]+\/\d+-\d+/;
const MPV_REG = /e[-x]hentai\.org\/mpv\/\d+\/[^/]+/;
GM_config.init({
id: 'e-hentai',
fields: {
@@ -43,18 +44,26 @@ GM_config.init({
type: 'checkbox',
label: 'Open gallery in new tab.',
default: true
},
openMPVInNewTab: {
type: 'checkbox',
label: 'Open Multi-Page Viewer in new tab.',
default: true
}
},
events: {
save: (values) => {
let openImageInNewTab = GM_config.get("openImageInNewTab");
let openGalleryInNewTab = GM_config.get("openGalleryInNewTab");
let openMPVInNewTab = GM_config.get("openMPVInNewTab");
let eles = document.getElementsByTagName("a");
for (let ele of eles) {
if (ele.href.match(IMG_REG)) {
ele.target = openImageInNewTab ? '_blank' : '_self';
} else if (ele.href.match(GALLERY_REG)) {
ele.target = openGalleryInNewTab ? '_blank' : '_self';
} else if (ele.href.match(MPV_REG)) {
ele.target = openMPVInNewTab ? '_blank' : '_self';
}
}
}
@@ -64,6 +73,7 @@ GM_registerMenuCommand("Edit Settings", () => { GM_config.open() }, "e");
let observer = new MutationObserver((data) => {
let openImageInNewTab = GM_config.get("openImageInNewTab");
let openGalleryInNewTab = GM_config.get("openGalleryInNewTab");
let openMPVInNewTab = GM_config.get("openMPVInNewTab");
for (let i of data) {
let ele = i.target;
if (ele.tagName == 'A') {
@@ -71,6 +81,8 @@ let observer = new MutationObserver((data) => {
ele.target = openImageInNewTab ? '_blank' : '_self';
} else if (ele.href.match(GALLERY_REG)) {
ele.target = openGalleryInNewTab ? '_blank' : '_self';
} else if (ele.href.match(MPV_REG)) {
ele.target = openMPVInNewTab ? '_blank' : '_self';
}
}
}