// ==UserScript== // @name 手机助手 // @namespace http://tampermonkey.net/ // @version 9.500.15.64 // @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 // @downloadURL none // ==/UserScript== var runFunc = setInterval(function() { if (!jQuery) return; var 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; } }); hasShadowRoot && alert("#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) { var rect = _element.getBoundingClientRect(); var offsetY = event.touches[0].clientY - rect.top - buttonW / 2; var offsetX = event.touches[0].clientX - rect.left - buttonW / 2; return [offsetX, offsetY]; } 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 = $("").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 uniqueArr(arr) { for (var i = 0; i < arr.length; i++) { for (var j = i + 1; j < arr.length; j++) { if (JSON.stringify(arr[i]) == JSON.stringify(arr[j])) { arr.splice(j, 1); j--; } } } return arr; } 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]; } var [DSImgData, DSImg] = getDataValue("DSImgData", 1); if (GM_getValue("hidePagetual") === null) GM_setValue("hidePagetual", 0); var hidePagetual = GM_getValue("hidePagetual"); GM_registerMenuCommand("显示/隐藏东方永页机控件", function() { hidePagetual = hidePagetual ? 0 : 1; location.reload(false); GM_setValue("hidePagetual", hidePagetual); }); GM_registerMenuCommand("显示/隐藏按钮", function() { if ($(document.querySelector(".JqMA-btn-del")).css("display") == "none") { dqSlt(Dhide ? ".JqMA-btn-del" : ".JqMA-btn-all").each(function() { Dhide && this.style.setProperty("opacity", "0.5", "important"); this.style.setProperty("display", "block", 'important'); }); } else { dqSlt(".JqMA-btn-all").each(function() { this.style.setProperty("display", "none", 'important'); }); } }); 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; } } function saveWinWH() { var inputNum = window.prompt("请输入 页宽,页高:", [window.innerWidth, window.innerHeight]); if (inputNum == "所有域名") { var resultData = changeDataFunc(winWData, [window.innerWidth, window.innerHeight]); if (resultData)[winWData, winWH] = resultData; } else if (/,/.test(inputNum)) { winWH = inputNum.split(","); if (!winWData.hasOwnProperty("默认")) { winWData["默认"] = winWH; alert('默认 页高宽:' + winWH); } else { winWData[locHost()] = winWH; alert('本域 页高宽:' + winWH); } } winWidth = Number(winWH[0]); winHeight = Number(winWH[1]); GM_setValue("winWData", winWData); } GM_registerMenuCommand("保存本域页宽页高", saveWinWH); var [winWData, winWH] = getDataValue("winWData", [window.innerWidth, window.innerHeight]); var winWidth = Number(winWH[0]), winHeight = Number(winWH[1]); if (!winWData.hasOwnProperty("默认")) { saveWinWH(); } var defaultWinW = Number(winWData["默认"][0]); if (winWData.hasOwnProperty("默认") && !winWData.hasOwnProperty(locHost())) { if (winWidth < 1.5 * defaultWinW) { winWidth = defaultWinW; winHeight = Number(winWData["默认"][1]); } } var resize; window.onresize = function() { if (!resize && winWidth > 1.5 * defaultWinW && window.innerWidth < 1.5 * defaultWinW) { saveWinWH(); resize = 1; } } var winProp = winHeight / winWidth; var buttonW = winHeight * 0.05, SPicH = winWidth * 0.2, top = (winHeight - buttonW) * 0.5; var html_style = `html,body { overflow-wrap: break-word !important; scroll-behavior: auto !important; min-height: ${winHeight}px !important; }`; var inner_style = `.JqMA-inner-all{ box-sizing: border-box !important; position: relative !important; z-index: 2147483646 !important; margin: 0 !important; border: 0 !important; padding: 0 !important; width: 100% !important; display: block !important; overflow-wrap: break-word !important; } .JqMA-inner-pic, .JqMA-inner-word { height: auto !important; margin: ${0.2 * winHeight}px 0 ${0.05 * winHeight}px 0 !important; background: black !important; } html body .JqMA-inner-word { color: #FEFEFE !important; text-align: left !important; font-size: ${winHeight * 0.03}px !important; text-indent: 2em !important; } .JqMA-inner-pic { text-align: right !important; font: 0 "Fira Sans", sans-serif !important; } .JqMA-inner-pic, .JqMA-inner-pic *:not(.JqMA-mark-pageNext) { box-sizing: border-box !important; border-radius: 0 !important; float: none !important; opacity: 1 !important; visibility: visible !important; } .JqMA-inner-pic *{ overflow-wrap: break-word !important; margin: 0 !important; padding: 0 !important; position: static !important; } .JqMA-inner-pic *:not(a){ border: 0 !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; user-select: none !important; object-fit: contain !important; background: gray !important; } html .JqMA-inner-pic > *{ vertical-align: top !important; } .JqMA-inner-pic xmp, .JqMA-inner-pic a , html .JqMA-mark-pageNext_0, html .JqMA-mark-pageNext_1, html .JqMA-mark-pageNext_2 { background: none !important; color: #FEFEFE !important; height: ${0.4 * SPicH}px !important; overflow: hidden !important; font-size: ${winHeight * 0.025}px !important; line-height: 1.36 !important; cursor: pointer !important; text-align: center !important; } html .JqMA-inner-pic img + xmp:not(.JqMA-css-smallPic) { margin-top: ${-0.8 * SPicH}px !important; } html .JqMA-inner-pic img + xmp:not(.JqMA-css-smallPic) + xmp{ margin-top: ${-0.4 * SPicH}px !important; } .JqMA-inner-pic .JqMA-css-smallPic { width: 12.5% !important; height: ${0.4 * SPicH}px !important; overflow: hidden !important; position: relative !important; } .JqMA-inner-pic xmp.JqMA-css-smallPic { display: none !important; } .JqMA-inner-pic xmp:not(.JqMA-css-smallPic) { display: inline-block !important; } html .JqMA-inner-pic xmp { position: relative !important; white-space: pre-wrap !important; white-space: -moz-pre-wrap !important; white-space: -pre-wrap !important; white-space: -o-pre-wrap !important; word-wrap: break-word !important; width: 100% !important; } .JqMA-inner-pic p > a{ display:inline!important; } .JqMA-inner-pic a:not(p > *){ position:absolute!important; top:0!important; left:50%!important; margin-left:${-0.0625 * winWidth}px!important; display:inline-block!important; user-select:none!important; width:${winWidth * 0.125}px!important; text-decoration:none!important; border:2px solid red!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; cursor: pointer !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: ${winHeight * 0.018}px !important; height: ${buttonW}px !important; width: ${buttonW}px !important; } `; var css_style = `.JqMA-mark-pageNext { display: inline-block !important; height: 0 !important; min-height: none !important; margin: 0 !important; border: 0 !important; padding: 0 !important; overflow: hidden !important; } html .JqMA-mark-pageNext_0, html .JqMA-mark-pageNext_1, html .JqMA-mark-pageNext_2 { width: 100% !important; } [JqMA-css-textBig],.JqMA-inner-word { letter-spacing: normal !important; line-height: normal !important; overflow-wrap: break-word !important; } .JqMA-css-yScroll{ overflow-y: scroll!important; } .JqMA-css-xScroll{ overflow-x: scroll!important; } .JqMA-css-fixed_hide { display: none !important; } .JqMA-css-transform,.JqMA-css-rotate { max-height: none !important; height: auto !important; } .JqMA-css-transform { transform: translate(0%, 0%) !important; padding: ${0.5 * winHeight}px 0 !important; } html .JqMA-css-rotate { float: right !important; position: relative !important; left: -100% !important; padding-bottom: ${1.5 * winHeight}px !important; transform: rotateZ(-90deg) !important; transform-origin: 100% 0 !important; -webkit-transform: rotateZ(-90deg) !important; -webkit-transform-origin: 100% 0 !important; -moz-transform: rotateZ(-90deg) !important; -moz-transform-origin: 100% 0 !important; width: ${winHeight}px !important; min-width: none !important; max-width: 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;}`; } var jianG = buttonW; var left = 0, left2 = buttonW + left, left3 = buttonW + left2; var leftCss = "left:" + left + "px !important;", leftCss2 = "left:" + left2 + "px !important;", leftCss3 = "left:" + left3 + "px !important;"; var animateTime = 800, scrollNum = parseInt(winHeight * 6 * animateTime / 100000); function locHost() { return window.location.hostname; } function getValLoc(gmValName, _default) { if (GM_getValue(gmValName) === null) { 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()); } if (GM_getValue("scrollJu") === null) GM_setValue("scrollJu", 5); var scrollJu = Math.abs(GM_getValue("scrollJu")); var picwh = getValLoc("picwh", 50); var outerSz = getValLoc("outerSz", 40); if (GM_getValue("smoothScroll") === null) GM_setValue("smoothScroll", 0); var smoothScroll = GM_getValue("smoothScroll"); function addInput(class1, value1, style1) { $(document.querySelector("html")).append($('
').attr({ class: "JqMA-btn-all " + class1, style: style1 + "px !important;" }).html(value1)); } addInput('JqMA-btn-del', 'X', leftCss + "top:" + (top)); addInput('JqMA-btn-width', 'W', leftCss + "top:" + (top - 1 * jianG)); addInput('JqMA-btn-pic', 'P', leftCss + "top:" + (top - 2 * jianG)); addInput('JqMA-btn-down', '▽', leftCss + "top:" + (top - 3 * jianG)); addInput('JqMA-btn-up', '△', leftCss + "top:" + (top - 4 * jianG)); addInput('JqMA-btn-scrollDiv', "O", leftCss + "top:" + (top - 5 * jianG)); addInput('JqMA-btn-search', "S", leftCss + "top:" + (top - 6 * jianG)); addInput('JqMA-btn-transform', "T", leftCss + "top:" + (top + jianG)); addInput('JqMA-btn-blank', 'B', leftCss + "top:" + (top + 3 * jianG)); addInput('JqMA-btn-next', "N", leftCss + "top:" + (top + 4 * jianG)); addInput('JqMA-btn-picwh', picwh, leftCss + "top:" + (top + 5 * jianG)); addInput('JqMA-btn-outerSz', outerSz, leftCss + "top:" + (top + 6 * jianG)); addInput('JqMA-btn-Ju', (smoothScroll ? "`" : "") + scrollJu, leftCss + "top:" + (top + 2 * jianG)); dqSlt(".JqMA-btn-picwh").each(function() { this.style.setProperty("color", DSImg ? "green" : null, "important"); }); var Dhide = getValLoc("Dhide", 1); Dhide && delHide(); setTimeout(function() { firstRun(); Dtransform && autoScrollBy(0.5 * winHeight, 0, 0); }, 200); setTimeout(function() { nextScrollTop && autoScrollTo(Drotate ? nextScrollTop[1] : nextScrollTop[0]); }, 400); $(document.querySelector("head:not([JqMA-mark-addStyle])")).append( $("