您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
自动滚动,嗅探图片、视频,字体放大,去除广告浮动
当前为
// ==UserScript== // @name 手机助手 // @namespace http://tampermonkey.net/ // @version 9.500.17.14 // @description 自动滚动,嗅探图片、视频,字体放大,去除广告浮动 // @author You // @match *://*/* // @run-at document-start // @require https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_getValue // @license MIT // ==/UserScript== { let hengPin = screen.orientation.lock; let runFunc = setInterval(function() { if (!jQuery) return; let dom = {}; dom.jQuery = jQuery.noConflict(true); clearInterval(runFunc); (function($) { 'use strict'; if (document.querySelector('.JqMA-btn-all') || window.frames.length != parent.frames.length) { return; } function dqSlt(selectPath) { try { return $(document.querySelectorAll('iframe')).contents().find(selectPath).add(selectPath); } catch (error) { return $(document.querySelectorAll('iframe')).contents().find(selectPath).add(document.querySelectorAll(selectPath)); } } function removeShadowRoot() { var hasShadowRoot; $(document.querySelectorAll("div")).each(function() { if (this.shadowRoot) { this.replaceWith(...this.shadowRoot.childNodes); hasShadowRoot = true; } }); alert(hasShadowRoot ? "#shadow-root 已移除" : "#shadow-root 不存在"); } function checkImgExists(imgurl) { return new Promise(function(resolve, reject) { var ImgObj = new Image(); ImgObj.src = imgurl; ImgObj.onload = function(res) { resolve(this); } ImgObj.onerror = function(err) { reject(err) } }); } function getTouchSite(_element, event) { let rect = _element.getBoundingClientRect(); let offsetY = event.touches[0].clientY - rect.top - _element.offsetHeight / 2; let offsetX = event.touches[0].clientX - rect.left - _element.offsetHeight / 2; return [offsetX, offsetY, _element.offsetHeight]; } function getElementSelector(element) { var path = ""; while (element && element.nodeType == Node.ELEMENT_NODE) { var selector = element.nodeName.toLowerCase(); if (selector == "body") { break; } if (element.id) { selector += "#" + element.id; } else { if (element.classList.length > 0) { selector += "." + Array.from(element.classList)[element.classList.length - 1]; } if (element.parentNode.querySelectorAll(selector).length > 1) { var index = Array.from(element.parentNode.children).indexOf(element) + 1; selector += ":nth-child(" + index + ")"; } } path = selector + " > " + path; element = element.parentNode; } return "body > " + path.replace(/[> ]+$/, ""); } function documentCopy(copyText) { var _input = $("<input style='position:fixed!important;clip:rect(0 0 0 0)!important;top: 10px!important;'>").val(copyText).appendTo(document.body); _input[0].select(); document.execCommand('copy'); _input.remove(); } function copyToClipboard(copyText) { try { navigator.clipboard.writeText(copyText).catch(() => { documentCopy(copyText); }); } catch (error) { documentCopy(copyText); } } function getDataValue(gmValName, _default) { if (typeof GM_getValue(gmValName) != "object") { GM_setValue(gmValName, {}); } var _data = GM_getValue(gmValName), keys = Object.keys(_data); if (gmValName != "picRepData" && keys.length > 100) { delete _data[keys[0]]; } return [_data, _data.hasOwnProperty(locHost()) ? _data[locHost()] : _default]; } function getDefValue(gmValName, _default) { if (typeof GM_getValue(gmValName) === "undefined") GM_setValue(gmValName, _default); return GM_getValue(gmValName); } let hidePagetual = getDefValue("hidePagetual", 0) GM_registerMenuCommand("1:隐藏按钮 2:隐藏东方", function() { let isHide = $(document.querySelector(".JqMA-btn-del")).css("display") == "none"; let inputNum = window.prompt("1:" + (isHide ? "显示" : "隐藏") + "按钮 2:" + (hidePagetual ? "显示" : "隐藏") + "东方永页机按钮", 1); if (inputNum === "1") { if (isHide) { dqSlt(Dhide ? ".JqMA-btn-del" : ".JqMA-btn-all").each(function() { this.style.cssText += "display:block!important;" + (Dhide ? "opacity:0.5!important;" : ""); }); } else { dqSlt(".JqMA-btn-all").each(function() { this.style.cssText += "display:none!important;"; }); } } else if (inputNum === "2") { hidePagetual = hidePagetual ? 0 : 1; GM_setValue("hidePagetual", hidePagetual); location.reload(false); } }); function changeDataFunc(_data, _default) { var changeData = window.prompt("请修改:", JSON.stringify(_data)); if (typeof JSON.parse(changeData) == "object") { changeData && alert(changeData); changeData = JSON.parse(changeData) return [changeData, changeData.hasOwnProperty(locHost()) ? changeData[locHost()] : _default] } else { return false; } } var html_style = `html,body { overflow-wrap: break-word!important; scroll-behavior: auto!important; min-height: 100vh!important; }`; var inner_style = `.JqMA-inner-all{ position: relative !important; z-index: 2147483646 !important; margin:20vh 0 5vh 0!important; border: 0 !important; padding: 0 !important; width: 100% !important; height: auto !important; background: black !important; display: block !important; } .JqMA-inner-all, .JqMA-inner-pic * { box-sizing: border-box !important; border-radius: 0 !important; float: none !important; opacity: 1 !important; visibility: visible !important; overflow-wrap: break-word !important; } html body .JqMA-inner-word { color: #FEFEFE!important; text-align: left!important; font-size: calc(1.6vh + 2vw)!important; text-indent: 0!important; } .JqMA-inner-pic { text-align: center !important; font: 0 "Fira Sans", sans-serif !important; } .JqMA-inner-pic *{ margin: 0 !important; padding: 0 !important; border: 0 !important; position: static !important; } .JqMA-inner-pic *::before, .JqMA-inner-pic *::after { display: none !important; } .JqMA-inner-pic img { display: inline-block !important; width: 100% !important; height: auto !important; object-fit: contain !important; background: gray !important; } html .JqMA-inner-pic > *{ vertical-align: top !important; overflow: hidden !important; } .JqMA-inner-pic a , .JqMA-mark-pageNum { background: none!important; color: #FEFEFE!important; height: 8vw!important; font-size: calc(1.6vh + 2vw)!important; line-height: 1.36!important; text-align: center!important; } .JqMA-mark-pageNum { width: 100%!important; } html .JqMA-inner-pic > img + a { margin-top:-16vw!important; } html .JqMA-inner-pic > img + a + a{ margin-top:-8vw!important; } .JqMA-inner-pic img.JqMA-css-smallPic { width: 12.5%!important; height: 8vw!important; } .JqMA-inner-pic p > a{ display: inline!important; } .JqMA-inner-word > a{ text-align: center!important; } .JqMA-inner-word > a, .JqMA-inner-pic > a { display: inline-block!important; width: 12.5%!important; margin-right: 43.75%!important; margin-left: 43.75%!important; background: rgba(0,0,0,0.2)!important; } .JqMA-inner-pic > a.JqMA-css-smallPic { display: none!important; } .JqMA-btn-all, .JqMA-inner-all, .JqMA-inner-pic * { min-width:none!important; max-width:none!important; min-height:none!important; max-height:none!important; } .JqMA-btn-all { overflow: hidden!important; opacity: 1!important; background: rgba(0,0,0,0.4)!important; color: #FEFEFE!important; display: block!important; text-align: center!important; line-height: 2.8!important; border-radius: 0!important; user-select: none!important; z-index: 999999999999!important; margin: 0!important; padding: 0!important; border: 0!important; font-weight: bold!important; position: fixed!important; font-size: calc(1.5vh + 0.6vw)!important; height: calc(4.2vh + 1.6vw)!important; width: calc(4.2vh + 1.6vw)!important; } `; var css_style = `.JqMA-mark-pageNext:not(.JqMA-mark-pageNum) { display: inline-block !important; height: 0 !important; min-height: none !important; margin: 0 !important; border: 0 !important; padding: 0 !important; overflow: hidden !important; } [JqMA-css-textBig],.JqMA-inner-word { letter-spacing: normal !important; line-height: normal !important; overflow-wrap: break-word !important; } .JqMA-css-fixed_hide { display: none !important; } .JqMA-css-overY_auto{ overflow-y: auto!important; } .JqMA-css-transform { transform: translate(0%, 0%) !important; padding: 50vh 0!important; height: auto !important; max-height: none !important; }`; if (hidePagetual) { css_style += `.pagetual_pageBar,#pagetual-sideController { display: inline-block !important; height: 0 !important; min-height: none !important; margin: 0 !important; border: 0 !important; padding: 0 !important; overflow: hidden !important;}`; } function locHost() { return window.location.hostname; } function getValLoc(gmValName, _default) { if (typeof GM_getValue(gmValName) === "undefined") { GM_setValue(gmValName, _default); } if (locHost() == GM_getValue(gmValName + "_locH")) { return GM_getValue(gmValName) } else { return _default; } } function setValLoc(gmValName, value) { GM_setValue(gmValName, value); GM_setValue(gmValName + "_locH", locHost()); } let scrollJu = Math.abs(getDefValue("scrollJu", 5)); var [DSImgData, DSImg] = getDataValue("DSImgData", 1); let minPicHD = getDefValue("minPicHD", 500); let minPicwh = getDefValue("minPicwh", 100), picwh = getValLoc("picwh", minPicwh); let minOuterSz = getDefValue("minOuterSz", 10), outerSz = getValLoc("outerSz", minOuterSz); let smoothScroll = getDefValue("smoothScroll", 0); var direction = 1; function addInput(class1, value1, style1) { $(document.querySelector("html")).append($('<p>').attr({ class: "JqMA-btn-all " + class1, style: style1 + "!important;left: 0!important;" }).text(value1)); } addInput('JqMA-btn-del', 'X', "top:calc(47.9vh - 0.8vw)"); addInput('JqMA-btn-down', '♢', "top:calc(43.7vh - 2.4vw)"); addInput('JqMA-btn-Ju', (smoothScroll ? "`" : "") + scrollJu, "top:calc(39.5vh - 4vw)"); addInput('JqMA-btn-width', "W", "top:calc(35.3vh - 5.6vw)"); addInput('JqMA-btn-scrollDiv', 'O', "top:calc(31.1vh - 7.2vw)"); // addInput('JqMA-btn-', "", "top:calc(26.9vh - 8.8vw)"); // addInput('JqMA-btn-', "", "top:calc(22.7vh - 10.4vw)"); addInput('JqMA-btn-transform', "T", "top:calc(52.1vh + 0.8vw)"); addInput('JqMA-btn-blank ', 'B', "top:calc(56.3vh + 2.4vw)"); addInput('JqMA-btn-pic', picwh, "top:calc(60.5vh + 4vw)"); addInput('JqMA-btn-outerSz', outerSz, "top:calc(64.7vh + 5.6vw)"); // addInput('JqMA-btn-', "", "top:calc(68.9vh + 7.2vw)"); // addInput('JqMA-btn-', , "top:calc(73.1vh + 8.8vw)"); var Dhide = getValLoc("Dhide", 1); Dhide && delHide(); setTimeout(function() { widthN && dqSlt(".JqMA-btn-width").text(widthN); picZ && dqSlt(".JqMA-btn-pic").each(function() { this.style.setProperty("color", "green", "important"); }); openBlank && dqSlt(".JqMA-btn-blank").each(function() { this.style.setProperty("color", "green", "important"); }); scrollDiv && dqSlt(".JqMA-btn-scrollDiv").each(function() { this.style.setProperty("color", "green", "important"); }); DSImg && dqSlt(".JqMA-btn-outerSz").each(function() { this.style.setProperty("color", "green", "important"); }); Drotate && dqSlt(".JqMA-btn-blank").text("BF"); firstRun(); $(document.querySelector("html")).one("touchend", function() { if (Dscroll) { Dscroll = 0; scrollRun(); } }); }, 200); $(document.querySelector("head:not([JqMA-mark-addStyle])")).append( $("<style>").html(html_style + inner_style + css_style) ).attr("JqMA-mark-addStyle", 1); var _timeTouch; function touchRun() { clearTimeout(_timeTouch); _timeTouch = setTimeout(function() { firstRun(); for (let i = 0; i < 20; i++) { setTimeout(function() { clearTimeout(_timeTouch); }, i * 100); } }, 300); } function firstRun() { dqSlt(":not([JqMA-mark-backImg])").filter(function() { return $(this).css("background-image").split(/[""]/).length > 1; }).attr("JqMA-mark-backImg", 1); dqSlt("head:not([JqMA-mark-addStyle])").append( $("<style>").html(css_style) ).attr("JqMA-mark-addStyle", 1); if (Drotate && !document.fullscreenElement) { fullScreen(); } widthN && fontInterFn(); picZ && imgInterFn(); openBlank && aOpenBlank(); !Dhide && xiuTan(); if (Dtransform && !document.querySelector(".JqMA-css-transform")) { Dtransform = 0; btnTransfClick(); } Dtransform && transformFunc(); if (nextScrollTop && document.querySelector("body").offsetHeight > nextScrollTop + window.innerHeight) { autoScrollTo(nextScrollTop); nextScrollTop = 0; } dqSlt("body:not(body *,[JqMA-mark-bodyFunc])").on('click', function(event) { let _target = $(event.target); if (_target.is("a")) { setTimeout(function() { Dscroll && scrollRun(); }, 210); } if (_target.is("#JqMA-mark-pageNext_1,#JqMA-mark-pageNext_2")) { pageX.unshift(getScrollTop()); document.querySelector("." + _target.attr("id")).scrollIntoView(); } else if (!_target.is("a,a *") && $(document.querySelector(".JqMA-btn-del")).css("display") != "none") { direction = event.clientY < window.innerHeight / 9 ? -1 : 1; if (widthN) { autoScrollBy(direction * 0.93 * window.innerHeight); } else if (_target.is(".JqMA-inner-pic *") || (_target.is("img,[JqMA-mark-backImg],:has(img,[JqMA-mark-backImg])") && getMinOuter(event.target) > 0.2 * window.innerWidth)) { autoScrollBy(direction * 0.45 * window.innerHeight); } } }).attr("JqMA-mark-bodyFunc", 1); dqSlt("html:not(html *,[JqMA-mark-htmlFunc])").on("touchstart touchend", function(event) { if (Dscroll) { let _target = $(event.target); if (!_target.is(".JqMA-btn-Ju")) { scrollRun(); if (!_target.is(".JqMA-btn-down")) { pauseScroll = 1; stopPause(); } } } }).on("touchend", function() { touchRun(); }).attr("JqMA-mark-htmlFunc", 1); } var pauseScroll, pauseScTime; function stopPause() { if (pauseScroll) { clearTimeout(pauseScTime); pauseScTime = setTimeout(function() { pauseScroll = 0; Dscroll || scrollRun(); }, 200); } } $(document).scroll(function() { stopPause(); }); $.fn.slideScreen = function(_target, fn, trsTime) { var timeout_1; $(this).on('touchmove', _target, function(event) { clearTimeout(timeout_1) timeout_1 = setTimeout(function() { fn(event); }, trsTime || 500); }); } $.fn.longPress = function(_target, fn, trsTime) { var timeout_2; $(this).on('touchstart', _target, function(event) { timeout_2 = setTimeout(function() { fn(event); document.getSelection().removeAllRanges(); }, trsTime || 500); }).on('touchend touchmove', _target, function(event) { clearTimeout(timeout_2) }); } function btnScrollDivClick() { scrollDiv = scrollDiv ? 0 : 1; dqSlt(".JqMA-btn-scrollDiv").each(function() { this.style.setProperty("color", scrollDiv ? "green" : null, "important"); }); setValLoc("scrollDiv", scrollDiv) } var scrollDiv = getValLoc("scrollDiv", 0); dqSlt("html").on('click', '.JqMA-btn-scrollDiv', btnScrollDivClick).slideScreen('.JqMA-btn-scrollDiv', function(event) { let [offsetX, offsetY, thisHeight] = getTouchSite(event.target, event); if (offsetY > thisHeight || offsetY < -thisHeight || offsetX > thisHeight) { removeShadowRoot(); } else { btnScrollDivClick(); } }); dqSlt("html").longPress('.JqMA-btn-scrollDiv', function() { location.reload() }); function btnDownClick() { if (pageX.length) { pageX = Array.from(new Set(pageX)); if (typeof pageX[0] === "number") { autoScrollTo(pageX[0]); } else { pageX[0].scrollIntoView({ "block": "center" }); } pageX.splice(0, 1); dqSlt(".JqMA-btn-down").text("♢"); } } var pageX = []; dqSlt("html").on('click', '.JqMA-btn-down', btnDownClick).slideScreen('.JqMA-btn-down', function(event) { let [offsetX, offsetY, thisHeight] = getTouchSite(event.target, event); if (offsetY > thisHeight * 3) { pageX.unshift(getScrollTop()); if (Dtransform) { autoScrollTo(0.5 * window.innerHeight); } else { autoScrollTo(0); } dqSlt(".JqMA-btn-down").text("♢"); } else if (offsetY < thisHeight * -3 || offsetX > thisHeight * 3) { pageX.unshift(getScrollTop()); let toHs = []; $("body > :visible").each(function() { toHs.push([this.getBoundingClientRect().top + this.offsetHeight, this]); }); toHs.sort(function(a, b) { return b[0] - a[0]; }); toHs[0][1].scrollIntoView({ "block": "end" }); dqSlt(".JqMA-btn-down").text("♢"); } else if (offsetY > thisHeight) { pageNextFunc("up"); } else if (offsetY < -thisHeight || offsetX > thisHeight) { pageNextFunc("down"); } else { btnDownClick(); } }); dqSlt("html").longPress('.JqMA-btn-down', function() { let menuNum = window.prompt("1:跳转节点 2:保存位置", 1); if (menuNum === "1") { let inputNum = window.prompt("跳转第几个节点:", $(document.querySelector(".JqMA-btn-next")).text()); if (Number(inputNum) || inputNum === "0") { let nextNum = Number(inputNum); pageNextFunc(nextNum); } } else if (menuNum === "2") { let inputNum = window.prompt("是否保存滚动位置?(取消关闭)", parseInt(getScrollTop())); if (inputNum === null) { setValLoc("nextScrollTop", 0); } else { setValLoc("nextScrollTop", Number(inputNum)); } } }); function pageNextFunc(nextNum) { pageX.unshift(getScrollTop()); var pageDom = dqSlt(".pagetual_pageBar,.JqMA-mark-pageNext,.JqMA-inner-all,.JqMA-inner-all > :visible:last"), offsetDiffs = []; if (nextNum >= pageDom.length) { pageDom.last()[0].scrollIntoView(); dqSlt(".JqMA-btn-down").text(pageDom.length - 1); } $(nextNum == "up" ? pageDom.get().reverse() : pageDom).each(function(index, dom) { let offsetD = this.getBoundingClientRect().top; if (nextNum == index || (nextNum == "up" && offsetD < -0.25 * window.innerHeight) || (nextNum == "down" && offsetD > 0.25 * window.innerHeight)) { this.scrollIntoView(); dqSlt(".JqMA-btn-down").text(nextNum == "up" ? pageDom.length - index - 1 : index); return false; } }); } function transformFunc() { dqSlt(":visible:not(.JqMA-css-fixed_hide,.JqMA-btn-all,#pagetual-picker)").filter(function() { return /sticky|fixed/.test($(this).css("position")) && this.offsetHeight < 0.5 * window.innerHeight; }).addClass("JqMA-css-fixed_hide"); } var Dtransform = getValLoc("Dtransform", 0); function btnTransfClick() { Dtransform = Dtransform ? 0 : 1; dqSlt(".JqMA-btn-transform").each(function() { this.style.setProperty("color", Dtransform ? "green" : null, "important"); }); if (Dtransform) { $(document.querySelector("html")).filter(function() { return $(this).css("overflow-y") == "hidden"; }).addClass("JqMA-css-overY_auto"); $(document.querySelector("body")).addClass("JqMA-css-transform"); transformFunc(); } else { dqSlt(".JqMA-css-transform,.JqMA-css-overY_auto").removeClass("JqMA-css-transform JqMA-css-overY_auto"); dqSlt(".JqMA-css-fixed_hide").removeClass("JqMA-css-fixed_hide"); } autoScrollBy((Dtransform ? 0.5 : -0.5) * window.innerHeight, 0, 0); setValLoc("Dtransform", Dtransform); } dqSlt("html").on('click', '.JqMA-btn-transform', btnTransfClick); dqSlt("html").slideScreen('.JqMA-btn-transform', function() { btnTransfClick(); }); dqSlt("html").longPress('.JqMA-btn-transform', function() { alert(`O: ==点击:切换滚动对象 ==滑动:移除#shadow-root ==长按:刷新页面 W: ==点击:输入字体大小 ==滑动:上加下减 ==长按:朗读或下载文字 5: ==点击:启动/停止滚动 ==滑动:上加下减 ==长按:输入滚动速度 ♢: ==点击:回上一位置 ==短滑:上/下:下/上一节点 ==长滑:上/下:到底/顶部 ==长按:记录本域名滚动位置 X: ==点击:隐藏/显示其他按钮 ==滑动:触发 立即翻页 按钮 ==长按:自动点击下一页 T: ==点击:元素取消浮动 ==长按:显示操作清单 B: ==点击:切换a链接打开方式 ==滑动:点击2个a链接,加载页面 ==长按:横屏全屏,返回键退出 120: ==点击:开关页首图片集 ==短滑:上加下减 ==长滑:点击图片,修改过滤尺寸 ==长按:点击图片,输入替换规则 10: ==点击:点击元素,修改过滤尺寸 ==短滑:上加下减 ==长滑:滚动加载图片集 ==长按:开关深度搜索`); }); var [picRepData, picReplace] = getDataValue("picRepData", ""); function getScrollTop() { let maxTop = 0; visibleDiv().each(function() { maxTop = Math.max(maxTop, this.scrollTop); }); return maxTop; } function visibleDiv(scDiv = null) { scDiv = scDiv === null ? scrollDiv : scDiv; let visDiv = $(document.querySelectorAll("html,body")); scDiv && $(":visible:not(html,body)").each(function() { if ($(this).css("overflow-y") != "hidden" && this.offsetHeight > 0.5 * window.innerHeight && this.scrollHeight > this.offsetHeight + 0.5 * window.innerHeight) { visDiv = $(this); return false; } }); return visDiv; } function xScrollDiv() { return $(":visible:not(html,body)").filter(function() { return $(this).css("overflow-x") != "hidden" && this.offsetWidth > 0.5 * window.innerWidth && this.scrollWidth > this.offsetWidth + 0.5 * window.innerWidth; }); } function autoScrollBy(scrollBy_Ju, speed = 0, scDiv = null) { visibleDiv(scDiv).stop().animate({ scrollTop: "+=" + scrollBy_Ju + "px" }, speed, "linear"); } function autoScrollTo(scrollTo_Ju, speed = 0) { visibleDiv().stop().animate({ scrollTop: scrollTo_Ju }, speed, "linear"); } function downloadTxt(filename, textContent) { var objectURL = URL.createObjectURL(new Blob([textContent], { type: "text/plain;charset=utf-8" })); $('<a>').attr({ href: objectURL, download: filename, style: 'display:none!important;' }).appendTo('body')[0].click(); setTimeout(function() { URL.revokeObjectURL(objectURL); }, 2000); } function changeStyle(_id, _style) { if (!document.querySelector("style#" + _id)) { $(document.querySelector("head")).append($("<style id='" + _id + "'>")); } $(document.querySelectorAll("iframe")).each(function() { if (!$(this).contents().find("style#" + _id).length) { $(this).contents().find("head").append($("<style id='" + _id + "'>")); } }); dqSlt("style#" + _id).html(_style); } function fontInterFn() { dqSlt(":visible:not([JqMA-css-textBig],.JqMA-inner-pic *,.JqMA-btn-all,#pagetual-picker *)").filter(function() { let textLen = $(this).clone().children().remove().end().text() .replace(/\s+/g, "").length; if (textLen > 0 && (outerSz < minOuterSz + 1 || getPercentW(this) >= outerSz)) { if (!oldFont && textLen > 50) { oldFont = parseInt($(this).css("font-size").replace("px", "")); } return true; } return false; }).attr("JqMA-css-textBig", 1); changeStyle("JqMA-css-textBig", "html body [JqMA-css-textBig] {font-size:" + widthN + "px!important;}"); let _scale = oldFont ? parseInt(widthN / oldFont * 1000) / 1000 : 1; dqSlt("[JqMA-css-textBig]").find("em:not([JqMA-css-textBig]),img").not("[JqMA-css-textImg]").filter(function() { return $(this).is("img,[JqMA-mark-backImg]") && this.offsetWidth < 0.1 * window.innerWidth; }).attr("JqMA-css-textImg", 1); changeStyle("JqMA-css-textImg", "html body [JqMA-css-textImg] {" + "transform: scale(" + _scale + ") !important;" + "-webkit-transform: scale(" + _scale + ") !important;" + "-moz-transform: scale(" + _scale + ") !important;" + "margin: 0 " + (_scale * 9 - 9) + "px !important;}"); } function removeTextClass() { dqSlt("[JqMA-css-textBig]").removeAttr("JqMA-css-textBig"); dqSlt("[JqMA-css-textImg]").removeAttr("JqMA-css-textImg"); } function btnWidthClick() { let inputNum = window.prompt("请输入字体大小:", widthN ? widthN : 30); widthN = Number(inputNum) ? Number(inputNum) : 0; widthNFunc(); } function widthNFunc() { if (widthN > 0) { fontInterFn(); } else { widthN = 0; removeTextClass(); } dqSlt(".JqMA-btn-width").text(widthN ? widthN : "W"); setValLoc("widthN", widthN); } var widthN = getValLoc("widthN", 0), oldFont; dqSlt("html").on('click', '.JqMA-btn-width', btnWidthClick).slideScreen('.JqMA-btn-width', function(event) { let [offsetX, offsetY, thisHeight] = getTouchSite(event.target, event); if (offsetY > thisHeight) { widthN -= 1; } else if (offsetY < -thisHeight || offsetX > thisHeight) { widthN += 1; } else { btnWidthClick(); return; } widthNFunc(); }); function getAllStr() { let allStr = ""; dqSlt(":visible:not(:has(div,p),.JqMA-btn-all)").each(function() { if ($(this).is("[JqMA-mark-addStr]")) return true; let addStr = $(this).text(); if (addStr.replace(/[一-鿯]/g, "aa").replace(/[^A-Za-z]/g, "").length > 2) { addStr += "<br><br>"; } allStr += addStr + " "; $(this).find(":not([JqMA-mark-addStr])").attr("JqMA-mark-addStr", 1); }); return allStr; } dqSlt("html").longPress('.JqMA-btn-width', function() { let innerWordLen = dqSlt(".JqMA-inner-word").length; dqSlt('.JqMA-btn-width').each(function() { this.style.setProperty("color", innerWordLen ? null : "green", "important"); }); if (innerWordLen) { dqSlt(".JqMA-inner-word").remove(); window.speechSynthesis.cancel(); } else { let allStr = getAllStr().replace(/\s+/g, " "); let readbtn = $("<a>朗读</a>"), downbtn = $("<a>下载</a>"); $(document.querySelector("body")).prepend($("<p>").attr({ class: "JqMA-inner-word JqMA-inner-all" }).html(allStr).prepend(readbtn).prepend(downbtn)); readbtn.click(function() { window.speechSynthesis.cancel(); if ($(this).text() == "停止") { $(this).text("朗读"); } else { let allStrlist = allStr.replace(/<br><br>/g, "\n").split(/([\s\S]{100,400}?[…~;—。!?!?]|[\s\S]{400}[,,\s])/); for (let i = 0; i < allStrlist.length; i++) { if (allStrlist[i].length > 0) { let utterThis = new SpeechSynthesisUtterance(allStrlist[i]); window.speechSynthesis.speak(utterThis); } } $(this).text("停止"); } }); downbtn.click(function() { downloadTxt(document.title.replace(/[\/:*?""<>|]+/g, " ").replace(/^\s+|\s+$/g, "") + ".txt", allStr.replace(/<br><br>/g, "\n\n")); }); autoScrollTo(0); } }); let whProp = getDefValue("whProp", 3.9); function picSizeOut(_this, picwh_2 = null) { let natureW = _this.naturalWidth, natureH = _this.naturalHeight, _targetW = $(_this).attr("img-outerWH") ? $(_this).attr("img-outerWH") : getPercentW(_this); if (!picwh_2) { picwh_2 = picwh; } return Math.min(natureW, natureH) >= picwh_2 && natureW / natureH <= whProp && _targetW >= outerSz; } function formatStr(_url) { if (typeof _url === "string") { return _url.replace(/^\s+|\s+$/g, "").replace(/&/g, "&").replace(/\\u002F/g, "/").replace(/\\[/]/g, "/"); } else { return ""; } } function decodeStr(_url) { let newI = _url; if (/^https?%/.test(newI)) { try { newI = decodeURIComponent(newI); } catch (error) { console.log(error); } } return newI; } function delHttp(_url) { let newI = []; if (/^(?!blob:|data:).+https?[:%]/.test(_url)) { let _urlSpl = _url.split(/.(?=https?[:%])/); for (let i = 1; i < _urlSpl.length; i++) { if (!/\.html(&|$)/.test(_urlSpl[i])) { newI.push(decodeStr(_urlSpl[i].replace(/^([^?]+?)&.*$/, "$1"))); } } } return newI; } var preMatches = []; function xiuTan() { if (!document.querySelector(".JqMA-btn-hrefAll")) { var spanStyle = "margin-left: auto!important; height: 6px!important; line-height: 6px!important;color:red!important;text-align:center!important;position:static!important;"; var spanStr = '<span class="JqMA-btn-all" style="' + spanStyle + '">——</span>'; $(document.querySelector("html")).append($("<p>").attr({ class: "JqMA-btn-all JqMA-btn-hrefAll", style: "background: none!important; overflow: scroll!important; height: auto!important; max-height: 11vh!important; width: 40vw!important; bottom: 4px!important; right: 0!important;" }).append(spanStr).append(spanStr)); } var pageSource = ""; dqSlt("html").each(function() { pageSource += this.outerHTML; }); let videoList = []; dqSlt("iframe").each(function() { let srcDomain; try { srcDomain = new URL(this.src).origin; } catch (error) { console.log(error); } if (srcDomain && srcDomain != window.location.origin) { videoList.push(this.src); } }); dqSlt("video").each(function() { videoList.push(this.currentSrc); }); var regex = /https?[:%][^""<>\s]*?\.(avi|mp4|mov|m4v|m3u8|wmv|flv|f4v|webm)([?!/&%][^""<>\s]*?)?(?=[""<>\s一-鿯]|https?[:%]|$)/gi; var matches = pageSource.replace(/"|['']/g, '"').match(regex); if (matches) videoList = videoList.concat(matches); window.performance.getEntries().forEach(function(entry) { if (/\.(avi|m3u8|mp4|mov|m4v|wmv|flv|f4v|webm)([?!/&%]|$)/.test(entry.name)) { videoList.push(entry.name); } }); videoList = Array.from(new Set(videoList)); var newI, newMatches = []; for (let i = 0; i < videoList.length; i++) { newI = formatStr(videoList[i]); if (!newI.replace(/[\s/]/g, "").length || /^blob:|^data:|^javascript:/.test(newI)) continue; newMatches.push(newI); let delHtList = delHttp(newI); if (delHtList.length) newMatches = newMatches.concat(delHtList); } for (let i = 0; i < newMatches.length; i++) { newI = addLocation(decodeStr(newMatches[i])); if (preMatches.indexOf(newI) > -1) continue; preMatches.push(newI); $(document.querySelector(".JqMA-btn-hrefAll span")).after($("<a>").attr({ href: newI, class: "JqMA-btn-all JqMA-btn-href", style: "text-align:left!important;position:static!important;width: 40vw!important;" }).text(newI.replace(/\/(?=$|\?)/g, "").replace(/^[^?]*[/]/, "").replace(/(?<=[^?/.]{9})[^?/.]+/, ""))); } } function getMinOuter(_this) { return Math.min(_this.offsetWidth, _this.offsetHeight); } function getMinPicwh(_this) { return Math.min(_this.naturalWidth, _this.naturalHeight); } function getPercentW(_this) { return parseInt(_this.offsetWidth / window.innerWidth * 100); } function btnOuterSzClick() { dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "none", "important"); }); setTimeout(function() { dqSlt("body").on("click.tempClickFunc", function(event) { event.preventDefault(); dqSlt("body").off("click.tempClickFunc"); dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "block", "important"); }); let _this = $(event.target); let _targetW = _this.attr("img-outerWH") ? _this.attr("img-outerWH") : getPercentW(event.target); let inputNum = window.prompt("请输入过滤尺寸:", _targetW - 5); if (Number(inputNum) || inputNum === "0") { outerSz = Number(inputNum); if (outerSz < minOuterSz) outerSz = minOuterSz; outerSz_run(); } }); }, 100); } dqSlt("html").on('click', ".JqMA-btn-outerSz", btnOuterSzClick).slideScreen('.JqMA-btn-outerSz', function(event) { let [offsetX, offsetY, thisHeight] = getTouchSite(event.target, event); if (offsetY > thisHeight * 3 || offsetY < thisHeight * -3 || offsetX > thisHeight * 3) { scrollPicLoad(); } else if (offsetY > thisHeight) { if (minOuterSz < outerSz && outerSz < minOuterSz + 10) { outerSz = minOuterSz; } else if (outerSz <= 1) { outerSz = 0; } else if (outerSz <= minOuterSz) { outerSz = 1; } else { outerSz -= 10; } } else if (offsetY < -thisHeight || offsetX > thisHeight) { if (outerSz === 0) { outerSz = 1; } else if (outerSz === 1) { outerSz = minOuterSz; } else { outerSz += 10; } } else { btnOuterSzClick(); } outerSz_run(); }); function outerSz_run() { if (outerSz < 0) outerSz = 0; if (picZ) { if (outerSz === 0) { let _scrollTop = getScrollTop(); removePicClass(); imgInterFn(); setTimeout(function() { autoScrollTo(_scrollTop); }, 400); } else { picImgFilter(); } } if (widthN) { removeTextClass(); fontInterFn(); } dqSlt(".JqMA-btn-outerSz").text(outerSz); setValLoc("outerSz", outerSz); } dqSlt("html").longPress('.JqMA-btn-pic', function() { dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "none", "important"); }); setTimeout(function() { dqSlt("body").on("click.tempClickFunc", function(event) { event.preventDefault(); dqSlt("body").off("click.tempClickFunc"); dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "block", "important"); }); if (window.confirm("是否复制图片链接?")) copyToClipboard(event.target.currentSrc); setTimeout(function() { var inputNum = window.prompt("请输入图片链接替换(`分隔,@开头:正则且数字->[0-9]):", picReplace); if (inputNum == "所有域名") { var resultData = changeDataFunc(picRepData, ""); if (resultData)[picRepData, picReplace] = resultData; } else if (typeof inputNum === "string") { picReplace = inputNum; if (picReplace === "") { delete picRepData[locHost()]; } else { picRepData[locHost()] = picReplace; if (picZ) { var _scrollTop = getScrollTop(); removePicClass(); imgInterFn(); setTimeout(function() { autoScrollTo(_scrollTop); }, 400); } } } GM_setValue("picRepData", picRepData); }, 200); }); }, 100); }); function btnPicwhClick() { dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "none", "important"); }); setTimeout(function() { dqSlt("body").on("click.tempClickFunc", function(event) { event.preventDefault(); dqSlt("body").off("click.tempClickFunc"); dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "block", "important"); }); let _picwh = $(event.target).is("img") ? getMinPicwh(event.target) + 20 : minPicwh, inputNum = window.prompt("请输入 过滤尺寸:(@ = 修改默认)", _picwh); if (/^\d+$/.test(inputNum)) { picwh = Number(inputNum); if (picwh < minPicwh) picwh = minPicwh; picImgFilter(); } else if (inputNum === "@") { let _whProp = parseInt(event.target.naturalWidth / event.target.naturalHeight * 10) / 10, _targetW = $(event.target).attr("img-outerWH") ? $(event.target).attr("img-outerWH") : getPercentW(event.target); inputNum = window.prompt(`请输入 过滤宽高比,最小过滤尺寸,最小过滤宽度,最大转高清尺寸:(点击元素:${_whProp},${getMinPicwh(event.target)},${_targetW} 推荐:3.9,100,10,500)`, [whProp, minPicwh, minOuterSz, minPicHD]); if (/^[\d.,]+$/.test(inputNum)) { whProp = Number(inputNum.split(",")[0]); minPicwh = Number(inputNum.split(",")[1]); minOuterSz = Number(inputNum.split(",")[2]); minPicHD = Number(inputNum.split(",")[3]); picImgFilter(); GM_setValue("whProp", whProp); GM_setValue("minPicwh", minPicwh); GM_setValue("minOuterSz", minOuterSz); GM_setValue("minPicHD", minPicHD); } } }); }, 100); } dqSlt("html").longPress('.JqMA-btn-outerSz', function() { DSImg = DSImg ? 0 : 1; dqSlt(".JqMA-btn-outerSz").each(function() { this.style.setProperty("color", DSImg ? "green" : null, "important"); }); if (picZ) { var _scrollTop = getScrollTop(); removePicClass(); imgInterFn(); setTimeout(function() { autoScrollTo(_scrollTop); }, 400); } if (DSImg) { delete DSImgData[locHost()]; } else { DSImgData[locHost()] = DSImg; } GM_setValue("DSImgData", DSImgData); }); function picImgFilter() { if (picwh < 0) picwh = 0; if (picZ) { dqSlt(".JqMA-inner-pic > a").addClass("JqMA-css-smallPic"); dqSlt(".JqMA-inner-pic .JqMA-mark-imgLoaded").each(function() { if (picSizeOut(this)) { $(this).nextAll("a:lt(2)").add(this).removeClass("JqMA-css-smallPic"); } else { $(this).addClass("JqMA-css-smallPic"); } }); } dqSlt(".JqMA-btn-pic").text(picwh); setValLoc("picwh", picwh); } function btnPicClick() { picZ = picZ ? 0 : 1; dqSlt(".JqMA-btn-pic").each(function() { this.style.setProperty("color", picZ ? "green" : null, "important"); }); if (picZ) { imgInterFn(); } else { removePicClass(); } setValLoc("picZ", picZ); } function scrollPicLoad() { let _scrollTop = getScrollTop(), _picZ = picZ; picZ = 0; dqSlt(".JqMA-inner-pic").remove(); autoScrollTo(0); let maxTop = 0; visibleDiv().each(function() { maxTop = Math.max(maxTop, this.scrollHeight); }); let _timeout = setInterval(function() { let prevTop = getScrollTop(); autoScrollBy(1.5 * window.innerHeight, 100); setTimeout(function() { let nowTop = getScrollTop(); if (nowTop === prevTop || nowTop >= maxTop) { clearInterval(_timeout); xScrollDiv().stop().animate({ scrollLeft: 10 * window.innerWidth }, 100, "linear"); autoScrollTo(0, 200); setTimeout(function() { if (_picZ) { picZ = 1; removePicClass(); imgInterFn(); } setTimeout(function() { autoScrollTo(_scrollTop); }, 400); }, 400); } }, 100); }, 105); } var picZ = getValLoc("picZ", 0); dqSlt("html").on('click', ".JqMA-btn-pic", btnPicClick).slideScreen('.JqMA-btn-pic', function(event) { let [offsetX, offsetY, thisHeight] = getTouchSite(event.target, event); if (offsetY > thisHeight * 3 || offsetY < thisHeight * -3 || offsetX > thisHeight * 3) { btnPicwhClick(); } else if (offsetY > thisHeight) { if (minPicwh < picwh && picwh < minPicwh + 40) { picwh = minPicwh; } else if (picwh <= minPicwh) { picwh = 0 } else { picwh -= 40; } picImgFilter(); } else if (offsetY < -thisHeight || offsetX > thisHeight) { if (picwh == 0) { picwh = minPicwh; } else { picwh += 40; } picImgFilter(); } else { btnPicClick(); } }); function removePicClass() { dqSlt(".JqMA-inner-pic").remove(); preImgArr = [new Set(), new Set(), new Set()]; } function addLocation(_href) { try { return new URL(_href, window.location.origin).href; } catch (error) { return _href; } } function getImgList(dataObj, _img, findA, aStr, preImgNum) { let imgList = [], imgOuterWH; dataObj.forEach(function(i) { i = formatStr(i); if (!i.replace(/[\s/]/g, "").length) return; i = addLocation(decodeStr(i)); if (!preImgArr[preImgNum].has(i)) { preImgArr[preImgNum].add(i); imgOuterWH = _img ? getPercentW(_img[0]) : minOuterSz; imgList.push($("<img>").attr({ src: i, loading: "lazy", width: "300", height: "100", "img-outerWH": imgOuterWH })); } }); if (findA && imgList.length) { let _newA = $(aStr), _a = _img.closest("a"), _img_2 = _img; for (let i = 0; i < 3; i++) { if (_a.length || _img_2.is("body")) break; _a = _img_2.siblings("a[href]:first"); if (_a.length) break; _a = _img_2.siblings().find("a[href]:first"); _img_2 = _img_2.parent(); } if (_a.attr("href") && !/^javascript:|^#$/.test(_a.attr("href"))) { _newA.attr("href", _a.attr("href")); } else { if (_a.length) { _a.children(":not(a)").length || _a.append('<p style="display:none!important;">'); _a = _a.children(":not(a):first"); } else { _a = _img; } _newA.on("click", function() { _a.trigger("click"); }); } let _element = _img[0], _newA2 = $(aStr).on("click", function() { pageX.unshift($(this).prevAll("img:first")[0]); _element.scrollIntoView({ "block": "center" }); }); imgList.push(_newA); imgList.push(_newA2.text(imgOuterWH)); } return imgList; } var preImgArr = [new Set(), new Set(), new Set()]; var imgRegex_1 = /https?[:%][^""<>\s]*?\.(xbm|tif|pjp|jpg|jpeg|tiff|gif|jfif|webp|png|bmp|pjpeg|avif)([?!/&%][^""<>\s]*?)?(?=[""<>\s一-鿯]|https?[:%]|$)/gi var imgRegex_2 = /((?<=[""])[a-z]*[/]|https?[:%])[^""<>\s]*?\.(xbm|tif|pjp|jpg|jpeg|tiff|gif|jfif|webp|png|bmp|pjpeg|avif)([?!/&%][^""<>\s]*?)?(?=[""<>\s一-鿯]|https?[:%]|$)/gi function imgInterFn() { picaImgHide(); if (!dqSlt(".JqMA-inner-pic").length) { $(document.querySelector("body")).prepend($("<p>").attr({ class: "JqMA-inner-pic JqMA-inner-all" }).append('<p class="JqMA-mark-pageNext JqMA-mark-pageNext_0 JqMA-mark-pageNum">可见元素</p>') .append('<p class="JqMA-mark-pageNext JqMA-mark-pageNext_1 JqMA-mark-pageNum">深度搜索</p>') .append('<p class="JqMA-mark-pageNext JqMA-mark-pageNext_2 JqMA-mark-pageNum">文字链接</p>')); } let pageNext_0 = $(document.querySelector(".JqMA-mark-pageNext_0")), pageNext_1 = $(document.querySelector(".JqMA-mark-pageNext_1")), pageNext_2 = $(document.querySelector(".JqMA-mark-pageNext_2")), aStr = '<a class="JqMA-css-smallPic">'; dqSlt("img:not(.JqMA-inner-pic *),video,[JqMA-mark-backImg],.pagetual_pageBar").each(function() { if ($(this).is(".pagetual_pageBar")) { !pageNext_1.prev().is(".JqMA-mark-pageNext") && pageNext_1.before($('<p class="JqMA-mark-pageNext">')); DSImg && !pageNext_2.prev().is(".JqMA-mark-pageNext") && pageNext_2.before($('<p class="JqMA-mark-pageNext">')); return true; } let _img = $(this), imgArr_0 = [], imgArr_1 = []; if (outerSz === 0 || getPercentW(this) >= 1) { let srcArr = []; if (_img.is("img")) { srcArr.push(this.currentSrc); } else if (_img.is("video")) { srcArr.push(this.poster); } if (_img.is("[JqMA-mark-backImg]")) { srcArr.push(_img.css("background-image").split(/[""]/)[1]); } imgArr_0 = getImgList(srcArr, _img, 1, aStr, 0); if (imgArr_0.length) { for (let i = 0; i < imgArr_0.length; i++) { pageNext_1.before($(imgArr_0[i])); } } if (DSImg) { let _imgHtml = ""; if (_img.is("a img")) _imgHtml = _img.closest("a").clone().removeAttr("style").empty().prop("outerHTML"); _imgHtml += _img.clone().removeAttr("src poster style").empty().prop("outerHTML"); let _isp = _imgHtml.replace(/"|['']/g, '"').match(imgRegex_2); if (_isp) { imgArr_1 = getImgList([_isp[0]], _img, 1, aStr, 1); if (imgArr_1.length) { for (let i = 0; i < imgArr_1.length; i++) { pageNext_2.before($(imgArr_1[i])); } } } } } }); if (DSImg) { let _text = getAllStr().replace(/"|['']/g, '"').match(imgRegex_1); if (_text) { _text = getImgList(_text, 0, 0, aStr, 2); _text.length && $(document.querySelector(".JqMA-inner-pic")).append(_text); } } picImgCount(pageNext_0, pageNext_1, pageNext_2); dqSlt(".JqMA-inner-pic img:not(.JqMA-mark-preAdd)").addClass("JqMA-mark-preAdd").on("load error", function() { picImgCount(pageNext_0, pageNext_1, pageNext_2); var oldNatureH = this.naturalHeight, oldNatureW = this.naturalWidth; if (Math.min(oldNatureW, oldNatureH) < minPicHD) { var thisSrcList = picHD(this.currentSrc), _this = $(this), promiseArray = []; for (let i = 0; i < thisSrcList.length; i++) { promiseArray.push(checkImgExists(thisSrcList[i]).catch(err => { console.log(err) })); } Promise.all(promiseArray).then(function(data) { for (let i = 0; i < data.length; i++) { let resH = data[i]; if (resH.naturalHeight > oldNatureH || resH.naturalWidth > oldNatureW) { _this.attr({ src: resH.src, "JqMA-mark-imgHD": 1 }); return; } } }); } if (picSizeOut(this)) { $(this).nextAll("a:lt(2)").add(this).removeClass("JqMA-css-smallPic"); } else { $(this).addClass("JqMA-css-smallPic"); } }).on("load", function() { $(this).addClass("JqMA-mark-imgLoaded").nextAll("a:eq(0)").text(getMinPicwh(this)); }); } var picImgTime; function picImgCount(pageNext_0, pageNext_1, pageNext_2) { clearTimeout(picImgTime); picImgTime = setTimeout(function() { let picImgLen = dqSlt(".JqMA-inner-pic img:not(.JqMA-css-smallPic)").length, keJian_Img = pageNext_1.prevAll("img:not(.JqMA-css-smallPic)"), search_len = pageNext_2.prevAll("img:not(.JqMA-css-smallPic)").length; pageNext_0.html(`可见:${keJian_Img.length} <a id="JqMA-mark-pageNext_1">深度</a>:${search_len - keJian_Img.length} <a id="JqMA-mark-pageNext_2">文字</a>:${picImgLen - search_len}`); }, 400); } function picHD(oldSrc) { var thisSrc = oldSrc, thisSrcList = []; if (picReplace.indexOf("`") != -1) { let numberToRe = /^@/.test(picReplace) ? 1 : 0, picRepArr = picReplace.replace(/^@/, "").split("`"); for (let i = 0; i < parseInt(picRepArr.length / 2); i++) { thisSrc = thisSrc.replace(numberToRe ? new RegExp(picRepArr[2 * i].replace(/(?<![{])\d(?![}])/g, "[0-9]")) : picRepArr[2 * i], picRepArr[2 * i + 1]); } thisSrcList.push(thisSrc); } thisSrcList.push(oldSrc.replace(/-\d{2,4}x\d{2,4}(?=[.-])/, "")); thisSrcList.push(oldSrc.replace(/^(?=data:)(.+?)[^A-Za-z0-9+/=>;]+$/, "$1")); let delHtList = delHttp(oldSrc); if (delHtList.length) thisSrcList = thisSrcList.concat(delHtList); if (!/.https?[:%]/.test(oldSrc)) { thisSrcList.push(oldSrc.replace(/^([^?]+?)&.*$/, "$1")); } var newSrcList = []; for (let i = 0; i < thisSrcList.length; i++) { thisSrc = thisSrcList[i]; if (thisSrc != oldSrc) { newSrcList.push(thisSrc); } } return newSrcList; } function picaImgHide() { if (Dhide) { changeStyle("JqMA-inner-picaImg", ".JqMA-inner-pic > a {" + "height: 0!important; border: 0!important;}" + ".JqMA-inner-pic > img.JqMA-css-smallPic {" + "height: 0!important; border: 4px solid gray!important;}"); } else { dqSlt("style#JqMA-inner-picaImg").html(""); } } function delHide() { dqSlt(".JqMA-btn-all").each(function() { if ($(this).is(".JqMA-btn-del")) { this.style.cssText += "opacity:" + (Dhide ? "0.5" : "1") + "!important;"; } else { this.style.cssText += "display:" + (Dhide ? "none" : "block") + "!important;"; } }); } function btnDelClick() { Dhide = Dhide ? 0 : 1; delHide(); picaImgHide(); setValLoc("Dhide", Dhide); } dqSlt("html").on('click', '.JqMA-btn-del', btnDelClick).slideScreen('.JqMA-btn-del', function(event) { let [offsetX, offsetY, thisHeight] = getTouchSite(event.target, event); if (offsetX > thisHeight || offsetY > thisHeight || offsetY < -thisHeight) { let loadNow = document.querySelector("#pagetual-sideController #loadNow"); if (loadNow) { loadNow.dispatchEvent(new MouseEvent('click')); } else { alert("请启用 东方永夜机 立即翻页"); } } else { btnDelClick(); } }); var nextScrollTop = getValLoc("nextScrollTop", 0); dqSlt("html").longPress('.JqMA-btn-del', function() { var newHref; if (/[^a-z]page[=/]\d+(?=$|&)/.test(location.href)) { openHref(getNextPage(location.href)); return; } else if (/[/_\-]\d+(\.html)?$/.test(location.href)) { newHref = getNextPage(location.href); } $(dqSlt("a").get().reverse()).each(function() { if (/^\s*2\s*$/.test($(this).text()) && /[^a-z]page[=/]\d+(?=$|&)/.test(this.href)) { if (openBlank) { window.open(this.href); } else { location.href = this.href; } return false; } else if (/^\s*(>|次のページ|下.?[章页]|下[一—].)\s*$|^\s*next\s*(page\s*)?$/i.test($(this).text())) { var _a = $(this); _a.children(":not(a)").length || _a.append('<p style="display:none!important;">'); _a.children(":not(a):first").trigger("click"); return false; } else if (newHref && this.href === newHref) { openHref(newHref); return false; } }); }); function getNextPage(twoHref) { var hrefSplit = /[^a-z]page[=/]/.test(twoHref) ? twoHref.split(/(?<=[^a-z]page)([=/])/) : twoHref.split(/([/_\-])(?=\d+(?:\.html)?$)/); var pNumber = Number(hrefSplit[2].split(/[^\d]/)[0]) + 1; var newHref = hrefSplit[0] + hrefSplit[1] + pNumber + hrefSplit[2].replace(/^\d+/, ""); return newHref; } function openHref(newHref) { if (openBlank) { window.open(newHref); } else { location.href = newHref; } } function aOpenBlank() { dqSlt("a:not([JqMA-mark-blank])").attr("JqMA-mark-blank", 1).filter(function() { return !/^javascript:|^#$/.test(this.href); }).attr("target", "_blank"); } function btnBlankClick() { openBlank = openBlank ? 0 : 1; dqSlt(".JqMA-btn-blank").each(function() { this.style.setProperty("color", openBlank ? "green" : null, "important"); }); if (openBlank) { aOpenBlank(); } else { dqSlt("[JqMA-mark-blank]").removeAttr("JqMA-mark-blank").attr("target", null); } setValLoc("openBlank", openBlank); } var openBlank = getValLoc("openBlank", 0), preIframes = new Set(); dqSlt("html").on('click', '.JqMA-btn-blank', btnBlankClick).slideScreen('.JqMA-btn-blank', function(event) { let [offsetX, offsetY, thisHeight] = getTouchSite(event.target, event); if (offsetY > thisHeight || offsetY < -thisHeight || offsetX > thisHeight) { dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "none", "important"); }); setTimeout(function() { var firstTarget; dqSlt("body").on("click.tempClickFunc", function(event) { event.preventDefault(); if (!firstTarget) { firstTarget = event.target; return; } dqSlt("body").off("click.tempClickFunc"); dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "block", "important"); }); var isInput = $(firstTarget).closest("a").length ? 0 : 1, first_aCss; firstTarget = $(firstTarget).closest(isInput ? "input" : "a"); var lastTarget = $(event.target).closest(isInput ? "input" : "a"); if (firstTarget.length && lastTarget.length) { dqSlt(isInput ? "input" : "a").each(function() { if ($(this).is(firstTarget)) first_aCss = 1; if (first_aCss && this.href && !preIframes.has(this.href)) { preIframes.add(this.href); $(document.querySelector("body")).append($("<iframe>").attr({ src: this.href, scrolling: "no", style: "box-sizing: border-box !important; overflow: hidden !important; width: 100% !important; min-height: 150vh!important;" }).on("load", function() { $(this).before($('<p class="pagetual_pageBar">')); let _this = this; setTimeout(function() { $(_this).contents().length && _this.replaceWith(...$(_this).contents().find("body")); }, 1000); })); } first_aCss && isInput && $(this).prop("checked", true); if ($(this).is(lastTarget)) return false; }); } else { alert("请点击链接或复选框!"); } if (window.confirm("是否复制选择器?")) copyToClipboard(getElementSelector(event.target)); }); }, 100); } else { btnBlankClick(); } }); function fullScreen() { document.querySelector("html").requestFullscreen(); $(document.querySelector("head")).append( $("<style>").html("body {width: 100vw!important; max-width: none!important;}")); screen.orientation.lock = hengPin; screen.orientation.lock('landscape'); } let Drotate = getValLoc("Drotate", 0); dqSlt("html").longPress('.JqMA-btn-blank', function() { Drotate = Drotate ? 0 : 1; if (Drotate) { fullScreen(); } else { document.exitFullscreen(); } dqSlt(".JqMA-btn-blank").text(Drotate ? "BF" : "B"); setValLoc("Drotate", Drotate); }); function scrollRun() { Dscroll = Dscroll ? 0 : 1; clearInterval(timeDown); dqSlt(".JqMA-btn-Ju").each(function() { this.style.setProperty("color", Dscroll ? "green" : null, "important"); }); if (Dscroll) { timeDown = setInterval(function() { let scrollNum = window.innerHeight * 0.00006 * animateTime; autoScrollBy(direction * scrollJu * scrollNum, smoothScroll ? 0 : animateTime); }, animateTime + 5); } else { dqSlt("html,body").stop(); visibleDiv().stop(); } GM_setValue("scrollJu", scrollJu); } function btnJuClick() { scrollRun(); setValLoc("Dscroll", Dscroll); } var Dscroll = getValLoc("Dscroll", 0), timeDown, animateTime = 800; dqSlt("html").on('click', '.JqMA-btn-Ju', btnJuClick).slideScreen('.JqMA-btn-Ju', function(event) { let [offsetX, offsetY, thisHeight] = getTouchSite(event.target, event); if (offsetY > thisHeight) { scrollJu -= 1; } else if (offsetY < -thisHeight || offsetX > thisHeight) { scrollJu += 1; } else { btnJuClick(); return; } scrollJu = Math.max(scrollJu, 0); dqSlt(".JqMA-btn-Ju").text((smoothScroll ? "`" : "") + scrollJu); GM_setValue("scrollJu", scrollJu); }); dqSlt("html").longPress('.JqMA-btn-Ju', function(event) { var inputNum = window.prompt("请输入滚动速度(以`开头表间隔):", (smoothScroll ? "`" : "") + scrollJu); smoothScroll = inputNum.startsWith("`") ? 1 : 0; if (Number(inputNum.replace("`", ""))) { scrollJu = Number(inputNum.replace("`", "")); scrollJu = Math.max(scrollJu, 0); dqSlt(".JqMA-btn-Ju").text((smoothScroll ? "`" : "") + scrollJu); GM_setValue("scrollJu", scrollJu); GM_setValue("smoothScroll", smoothScroll); } }); })(dom.jQuery); }, 10); }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址