// ==UserScript==
// @name 手机助手
// @namespace http://tampermonkey.net/
// @version 9.500.15.80
// @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 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;
}
});
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 = $("<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 uniqueArr(arr) {
for (let i = 0; i < arr.length; i++) {
for (let 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("1:保存页宽 2:隐藏按钮 3:隐藏东方", function() {
var isHide = $(document.querySelector(".JqMA-btn-del")).css("display") == "none";
var inputNum = window.prompt("1:保存本域页宽页高 2:" + (isHide ? "显示" : "隐藏") + "按钮 3:" + (hidePagetual ? "显示" : "隐藏") + "东方永页机按钮", 1);
if (inputNum === "1") {
saveWinWH();
} else if (inputNum === "2") {
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 === "3") {
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;
}
}
function saveWinWH() {
var getWinWH = [window.innerWidth, window.innerHeight];
var inputNum = window.prompt("请输入 页宽,页高:", getWinWH);
if (inputNum == "所有域名") {
var resultData = changeDataFunc(winWData, getWinWH);
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);
}
var [winWData, winWH] = getDataValue("winWData", [window.innerWidth, window.innerHeight]);
var winWidth = Number(winWH[0]),
winHeight = Number(winWH[1]);
if (!winWData.hasOwnProperty("默认")) {
saveWinWH();
}
if (winWData.hasOwnProperty("默认") && !winWData.hasOwnProperty(locHost())) {
winWidth = Number(winWData["默认"][0]);
winHeight = Number(winWData["默认"][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{
position: relative !important;
z-index: 2147483646 !important;
margin: ${0.2 * winHeight}px 0 ${0.05 * winHeight}px 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 *:not(.JqMA-mark-pageNext) {
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: ${winHeight * 0.03}px !important;
text-indent: 2em !important;
}
.JqMA-inner-pic {
text-align: center !important;
font: 0 "Fira Sans", sans-serif !important;
}
.JqMA-inner-pic *{
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;
object-fit: contain !important;
background: gray !important;
}
html .JqMA-inner-pic > *{
vertical-align: top !important;
overflow: hidden !important;
}
.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;
font-size: ${winHeight * 0.025}px !important;
line-height: 1.36 !important;
text-align: center !important;
}
html .JqMA-inner-pic > img + a {
margin-top: ${-0.8 * SPicH}px !important;
}
html .JqMA-inner-pic > img + a + a{
margin-top: ${-0.4 * SPicH}px !important;
}
.JqMA-inner-pic img.JqMA-css-smallPic {
width: 12.5% !important;
height: ${0.4 * SPicH}px !important;
}
.JqMA-inner-pic > a.JqMA-css-smallPic {
display:none!important;
}
.JqMA-inner-pic p > a{
display:inline!important;
}
.JqMA-inner-pic > a:not(.JqMA-css-smallPic) {
display:inline-block!important;
width:12.5%!important;
border:2px solid red!important;
margin-right:43.75%!important;
margin-left:43.75%!important;
background:rgba(0,0,0,0.2)!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:${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", 10);
if (GM_getValue("smoothScroll") === null) GM_setValue("smoothScroll", 0);
var smoothScroll = GM_getValue("smoothScroll");
function addInput(class1, value1, style1) {
$(document.querySelector("html")).append($('<p>').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(
$("<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);
$(document.querySelector("body")).append(document.querySelectorAll(
"html > *:not(head,.JqMA-btn-all,#pagetual-picker)"
)).filter(function() {
return $(this).css("overflow-y") == "hidden";
}).addClass("JqMA-css-yScroll");
fontInterFn();
imgInterFn();
transformFunc();
!Dhide && xiuTan();
aOpenBlank();
if (Drotate && !dqSlt(".JqMA-css-rotate").length) {
Drotate = 0;
$(document.querySelector(".JqMA-btn-search")).trigger("click");
}
dqSlt("body:not(body *,[JqMA-mark-bodyFunc])").on('click', function(event) {
var _target = $(event.target);
if (_target.is("a")) {
stopScroll();
}
if (_target.is("#JqMA-mark-pageNext_1,#JqMA-mark-pageNext_2")) {
pageX.unshift([getScrollLeft(), getScrollTop()]);
document.querySelector("." + _target.attr("id")).scrollIntoView();
} else if (!_target.is("a,a *")) {
var direction = scrollJu < 0 ? -1 : 1;
if (_target.is("canvas,[JqMA-css-textBig],[JqMA-css-textBig] *,:has([JqMA-css-textBig])")) {
autoScrollBy(direction * 0.93 * (Drotate ? winWidth : winHeight));
} else if (_target.is(".JqMA-inner-pic *") ||
(_target.is("img,[JqMA-mark-backImg],:has(img,[JqMA-mark-backImg])") &&
_target.outerWidth() > 0.2 * winWidth)) {
autoScrollBy(direction * 0.45 * (Drotate ? winWidth : winHeight));
}
}
}).attr("JqMA-mark-bodyFunc", 1);
dqSlt("html:not(html *,[JqMA-mark-htmlFunc])").on("touchstart", ":not(.JqMA-btn-move)", function() {
if (Dscroll) {
$(document.querySelector(".JqMA-btn-Ju")).trigger("click");
pauseScroll = 1;
}
}).on("touchend", function() {
stopPause();
touchRun();
}).attr("JqMA-mark-htmlFunc", 1);
}
$.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)
});
}
var scrollDiv = getValLoc("scrollDiv", 0);
scrollDiv && dqSlt(".JqMA-btn-scrollDiv").each(function() {
this.style.setProperty("color", "green", "important");
});
dqSlt("html").on('click', '.JqMA-btn-scrollDiv', function() {
scrollDiv = scrollDiv ? 0 : 1;
dqSlt(".JqMA-btn-scrollDiv").each(function() {
this.style.setProperty("color", scrollDiv ? "green" : null, "important");
});
setValLoc("scrollDiv", scrollDiv)
}).slideScreen('.JqMA-btn-scrollDiv', function() {
removeShadowRoot();
});
dqSlt("html").longPress('.JqMA-btn-scrollDiv', function() {
location.reload()
});
dqSlt("html").on('click', '.JqMA-btn-next', function() {
pageNextFunc("down");
}).slideScreen('.JqMA-btn-next', function() {
pageNextFunc("up");
});
dqSlt("html").longPress('.JqMA-btn-next', function() {
var inputNum = window.prompt("跳转第几个节点:", $(document.querySelector(".JqMA-btn-next")).text());
if (Number(inputNum) || inputNum === "0") {
var nextNum = Number(inputNum);
pageNextFunc(nextNum);
}
});
function pageNextFunc(nextNum) {
var pageDom = dqSlt(".pagetual_pageBar,.JqMA-mark-pageNext,.JqMA-inner-all,.JqMA-inner-all > :visible:last"),
offsetDiffs = [],
minScroll = Drotate ? winWidth : winHeight;
pageDom.each(function() {
var offsetD = -0.1 * minScroll;
if (Drotate) {
offsetD += $(this).offset().left - $(window).scrollLeft();
} else {
offsetD += $(this).offset().top - $(window).scrollTop();
}
if (!/^(up|down)$/.test(nextNum) ||
(nextNum == "up" && offsetD < -0.15 * minScroll) ||
(nextNum == "down" && offsetD > 0.15 * minScroll)) {
offsetDiffs.push(offsetD);
}
});
if (offsetDiffs.length) {
if (!/^(up|down)$/.test(nextNum)) {
nextNum = Math.min(nextNum, offsetDiffs.length - 1)
autoScrollBy(offsetDiffs[nextNum]);
dqSlt(".JqMA-btn-next").html(nextNum);
} else {
offsetDiffs = offsetDiffs.sort(function(a, b) {
return nextNum == "up" ? (b - a) : (a - b);
});
autoScrollBy(offsetDiffs[0]);
dqSlt(".JqMA-btn-next").html(nextNum == "up" ? (offsetDiffs.length - 1) : (pageDom.length - offsetDiffs.length));
}
}
}
function transformFunc() {
dqSlt(".JqMA-btn-transform").each(function() {
this.style.setProperty("color", Dtransform ? "green" : null, "important");
});
if (!Dtransform) return;
$(document.querySelector("body")).addClass("JqMA-css-transform");
dqSlt(":visible:not(.JqMA-css-fixed_hide,.JqMA-btn-all,#pagetual-picker)").filter(function() {
return /sticky|fixed/.test($(this).css("position")) && $(this).outerHeight() < 0.5 * winHeight;
}).addClass("JqMA-css-fixed_hide");
}
var Dtransform = getValLoc("Dtransform", 0);
dqSlt("html").on('click', '.JqMA-btn-transform', function() {
Dtransform = Dtransform ? 0 : 1;
if (Dtransform) {
transformFunc();
} else {
dqSlt(".JqMA-css-transform").removeClass("JqMA-css-transform");
dqSlt(".JqMA-css-fixed_hide").removeClass("JqMA-css-fixed_hide");
}
autoScrollBy((Dtransform ? 0.5 : -0.5) * winHeight, 0, 0);
setValLoc("Dtransform", Dtransform);
}).slideScreen('.JqMA-btn-transform', 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(), getScrollLeft()];
removePicClass();
imgInterFn();
setTimeout(function() {
autoScrollTo(Drotate ? _scrollTop[1] : _scrollTop[0]);
}, 200);
}
}
}
GM_setValue("picRepData", picRepData);
}, 200);
});
}, 100);
});
var [picRepData, picReplace] = getDataValue("picRepData", "");
var Drotate = getValLoc("Drotate", 0);
dqSlt("html").on('click', '.JqMA-btn-search', function() {
var _scrollTop = getScrollTop(),
_scrollLeft = getScrollLeft();
autoScrollTo(0);
Drotate = Drotate ? 0 : 1;
if (Drotate) {
$(document.querySelectorAll("html,body")).filter(function() {
return $(this).css("overflow-y") != "hidden" &&
$(this).css("overflow-x") == "hidden";
}).addClass("JqMA-css-xScroll");
setTimeout(function() {
$(document.querySelector('body')).addClass("JqMA-css-rotate");
autoScrollTo(_scrollTop * winProp);
$(document.querySelectorAll('.JqMA-btn-all')).each(function() {
$(this).clone().addClass("JqMA-btn-left")
.appendTo(document.querySelector("html"));
});
$(document.querySelectorAll('.JqMA-btn-left')).each(function() {
this.style.cssText += 'margin-left:' + (winHeight * 1.5) + "px!important;"
});
}, 100);
} else {
setTimeout(function() {
dqSlt(".JqMA-css-rotate").removeClass("JqMA-css-rotate");
autoScrollTo(_scrollLeft / winProp);
dqSlt(".JqMA-btn-left").remove();
}, 100);
}
setValLoc("Drotate", Drotate);
});
function getScrollLeft() {
return $(document.querySelector("html")).scrollLeft() +
$(document.querySelector("body")).scrollLeft();
}
function getScrollTop() {
return $(document.querySelector("html")).scrollTop() +
$(document.querySelector("body")).scrollTop();
}
var pauseScroll = 0,
Dpause;
dqSlt(".JqMA-btn-Ju,.JqMA-btn-up").addClass("JqMA-btn-move");
dqSlt("html").on('click', ".JqMA-btn-up", stopScroll);
function stopScroll() {
if (Dscroll) {
$(document.querySelector(".JqMA-btn-Ju")).trigger("click");
}
setTimeout(function() {
if (Dscroll) {
$(document.querySelector(".JqMA-btn-Ju")).trigger("click");
}
}, 210);
}
function stopPause() {
if (pauseScroll == 1) {
clearTimeout(Dpause);
Dpause = setTimeout(function() {
pauseScroll = 0;
if (!Dscroll) {
$(document.querySelector(".JqMA-btn-Ju")).trigger("click");
}
}, 200);
}
}
$(document).scroll(function() {
stopPause();
});
function visibleDiv() {
return dqSlt("div:visible,main:visible").filter(function() {
return $(this).css("overflow-y") != "hidden" &&
$(this).outerHeight() > 0.5 * winHeight;
});
}
function autoScrollBy(scrollBy_Ju, speed = 0, scDiv = null) {
scDiv = scDiv === null ? scrollDiv : scDiv;
if (scDiv) {
visibleDiv().stop().animate({
scrollTop: "+=" + scrollBy_Ju + "px"
}, speed, "linear");
} else {
if (Drotate) {
$(document.querySelectorAll("html,body")).stop().animate({
scrollLeft: "+=" + scrollBy_Ju + "px"
}, speed, "linear");
} else {
$(document.querySelectorAll("html,body")).stop().animate({
scrollTop: "+=" + scrollBy_Ju + "px"
}, speed, "linear");
}
}
}
function autoScrollTo(scrollTo_Ju, speed = 0) {
if (scrollDiv) {
visibleDiv().stop().animate({
scrollTop: scrollTo_Ju
}, speed, "linear");
} else {
if (Drotate) {
$(document.querySelectorAll("html,body")).stop().animate({
scrollLeft: scrollTo_Ju
}, speed, "linear");
} else {
$(document.querySelectorAll("html,body")).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 fontInterFn() {
dqSlt(".JqMA-btn-width").html(widthN ? widthN : "W");
if (!widthN) return;
dqSlt(":visible:not([JqMA-css-textBig],.JqMA-inner-pic *,.JqMA-btn-all,#pagetual-picker *)").filter(function() {
var textLen = $(this).clone().children().remove().end().text()
.replace(/\s+/g, "").length;
if (textLen > 0 && (outerSz === 0 || $(this).outerWidth() > outerSz)) {
if (!oldFont && textLen > 50) {
oldFont = parseInt($(this).css("font-size").replace("px", ""));
}
return true;
}
return false;
}).attr("JqMA-css-textBig", 1).each(function() {
this.style.cssText += "font-size:" + widthN + "px!important;";
});
var _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).outerWidth() < 0.1 * winWidth;
}).attr("JqMA-css-textImg", 1).each(function() {
this.style.cssText += "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").each(function() {
this.style.cssText += "font-size:inherit!important";
});
dqSlt("[JqMA-css-textImg]").removeAttr("JqMA-css-textImg").each(function() {
this.style.cssText += "transform: scale(1) !important;" +
"-webkit-transform: scale(1) !important;" +
"-moz-transform: scale(1) !important;" +
"margin: 0 !important;";
});
}
var widthN = getValLoc("widthN", 0),
oldFont;
dqSlt("html").on('click', '.JqMA-btn-width', function() {
var inputNum = window.prompt("请输入字体大小:", widthN ? widthN : 30);
widthN = Number(inputNum) ? Number(inputNum) : 0;
removeTextClass();
fontInterFn();
setValLoc("widthN", widthN);
}).slideScreen('.JqMA-btn-width', function(event) {
if (!widthN) return;
var [offsetX, offsetY] = getTouchSite(event.target, event);
if (offsetY > 30) {
widthN -= 1;
} else if (offsetY < -30 || offsetX > 40) {
widthN += 1;
}
removeTextClass();
fontInterFn();
setValLoc("widthN", widthN);
});
dqSlt("html").longPress('.JqMA-btn-width', function() {
var 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 {
var allStr = "";
dqSlt(":visible").each(function() {
var addStr = $(this).clone().children().remove().end().text();
if (addStr.replace(/[一-鿯]/g, "aa").replace(/[^A-Za-z]/g, "").length > 8) {
addStr += "<br><br>";
}
allStr += addStr + " ";
});
allStr = allStr.replace(/\s+/g, " ");
$(document.querySelector("body")).prepend($("<p>").attr({
class: "JqMA-inner-word JqMA-inner-all"
}).html(allStr));
if (window.confirm('是否朗读?(插件浏览器有效,取消进入下载)')) {
window.speechSynthesis.cancel();
var 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) {
var utterThis = new SpeechSynthesisUtterance(allStrlist[i]);
window.speechSynthesis.speak(utterThis);
}
}
} else {
downloadTxt(document.title.replace(/[\/:*?""<>|]+/g, " ").replace(/^\s+|\s+$/g, "") + ".txt", allStr.replace(/<br><br>/g, "\n\n"));
}
}
});
function picSizeOut(_this, picwh_2 = null) {
let natureW = _this.naturalWidth,
natureH = _this.naturalHeight;
if (!picwh_2) {
picwh_2 = picwh;
}
return Math.min(natureW, natureH) >= picwh_2 &&
natureW / natureH <= 6;
}
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:" + 0.11 * winHeight + "px !important; width: " + 0.4 * winWidth + "px !important; bottom: 4px !important; right: 0 !important;"
}).append(spanStr).append(spanStr));
}
var pageSource = "";
dqSlt("html").each(function() {
pageSource += this.outerHTML;
});
var regex = /<(video|source|iframe)[^<>]*? src=[""][^""]*?(?=[""])|https?[:%][^""<>\s]*?\.(avi|mp4|mov|m4v|m3u8|wmv|flv|f4v|webm)([?!/&%][^""<>\s]*?)?(?=[""<>\s一-鿯]|https?[:%]|$)/gi;
var matches = pageSource.replace(/"|['']/g, '"').match(regex);
if (matches == null) matches = [];
window.performance.getEntries().forEach(function(entry) {
if (/\.(avi|m3u8|mp4|mov|m4v|wmv|flv|f4v|webm)([?!/&%]|$)/.test(entry.name)) {
matches.push(entry.name);
}
});
matches = Array.from(new Set(matches));
var newI,
newMatches = [];
for (let i = 0; i < matches.length; i++) {
newI = formatStr(matches[i].replace(/.* src=[""]/g, ""));
if (!newI.replace(/[\s/]/g, "").length || /^blob:|^data:/.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:" + 0.4 * winWidth + "px!important;"
}).html(newI.replace(/\/(?=$|\?)/g, "").replace(/^[^?]*[/]/, "").replace(/(?<=[^?/.]{9})[^?/.]+/, "")));
}
}
dqSlt("html").on('click', ".JqMA-btn-outerSz", 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");
});
let _this = $(event.target);
let _targetW = (_this.attr("img-outerW") ? _this.attr("img-outerW") : _this.outerWidth()) - 10;
let inputNum = window.prompt("请输入过滤宽度:", parseInt(_targetW));
if (Number(inputNum) || inputNum === "0") {
outerSz = Number(inputNum);
outerSz_run();
}
});
}, 100);
}).slideScreen('.JqMA-btn-outerSz', function(event) {
var [offsetX, offsetY] = getTouchSite(event.target, event);
if (offsetY > 30) {
if (outerSz < 50 && outerSz > 10) {
outerSz = 10;
} else {
outerSz -= 40;
}
} else if (offsetY < -30 || offsetX > 40) {
if (outerSz) {
outerSz += 40;
} else {
outerSz += 10;
}
}
outerSz_run();
});
function outerSz_run() {
if (outerSz < 0) outerSz = 0;
if (outerSz && outerSz < 10) outerSz = 10;
if (picZ) {
var _scrollTop = [getScrollTop(), getScrollLeft()];
removePicClass();
imgInterFn();
setTimeout(function() {
autoScrollTo(Drotate ? _scrollTop[1] : _scrollTop[0]);
}, 200);
}
if (widthN) {
removeTextClass();
fontInterFn();
}
dqSlt(".JqMA-btn-outerSz").html(outerSz);
setValLoc("outerSz", outerSz);
}
dqSlt("html").on('click', ".JqMA-btn-picwh", 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");
});
var _target = $(event.target);
if (_target.is("img")) {
var _picwh = Math.min(_target[0].naturalWidth, _target[0].naturalHeight) + 10;
}
var inputNum = window.prompt("请输入过滤尺寸:", _picwh ? _picwh : 50);
if (Number(inputNum)) {
picwh = Number(inputNum);
picImgFilter();
}
});
}, 100);
}).slideScreen('.JqMA-btn-picwh', function(event) {
var [offsetX, offsetY] = getTouchSite(event.target, event);
if (offsetY > 30) {
picwh -= 50;
} else if (offsetY < -30 || offsetX > 40) {
picwh += 50;
}
picImgFilter();
});
dqSlt("html").longPress('.JqMA-btn-picwh', function() {
DSImg = DSImg ? 0 : 1;
if (DSImg) {
delete DSImgData[locHost()];
} else {
DSImgData[locHost()] = DSImg;
}
dqSlt(".JqMA-btn-picwh").each(function() {
this.style.setProperty("color", DSImg ? "green" : null, "important");
});
if (picZ) {
var _scrollTop = [getScrollTop(), getScrollLeft()];
removePicClass();
imgInterFn();
setTimeout(function() {
autoScrollTo(Drotate ? _scrollTop[1] : _scrollTop[0]);
}, 200);
}
GM_setValue("DSImgData", DSImgData);
});
function picImgFilter() {
if (picwh < 50) picwh = 50;
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-picwh").html(picwh);
setValLoc("picwh", picwh);
}
dqSlt("html").slideScreen('.JqMA-btn-pic', function() {
var _scrollTop = [getScrollTop(), getScrollLeft()];
dqSlt(".JqMA-inner-pic").attr("style", "display:none !important;");
Drotate || autoScrollBy(9000 * winHeight);
var i = 0;
var _timeout = setInterval(function() {
autoScrollBy(-winHeight * 3, 200);
i++;
if (getScrollTop() <= 0.25 * winHeight) {
clearInterval(_timeout);
if (picZ) {
removePicClass();
imgInterFn();
}
setTimeout(function() {
autoScrollTo(Drotate ? _scrollTop[1] : _scrollTop[0]);
}, 200);
}
}, 205);
});
var picZ = getValLoc("picZ", 0);
dqSlt("html").on('click', ".JqMA-btn-pic", function() {
picZ = picZ ? 0 : 1;
if (picZ) {
imgInterFn();
} else {
removePicClass();
}
setValLoc("picZ", picZ);
});
function removePicClass() {
dqSlt("[JqMA-mark-picSlt]").removeAttr("JqMA-mark-picSlt");
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, preArrNum) {
var imgList = [],
_imgStr;
dataObj.forEach(function(i) {
i = formatStr(i);
if (!i.replace(/[\s/]/g, "").length) return;
i = addLocation(decodeStr(i));
if (!preImgArr[preArrNum].has(i)) {
preImgArr[preArrNum].add(i);
_imgStr = $("<img>").attr({
src: i,
loading: "lazy",
alt: "J-IMG",
width: "300",
height: "100",
"img-outerW": _img ? _img.outerWidth() : 10
});
imgList.push(_imgStr);
}
});
if (findA && _imgStr) {
var _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");
});
}
var _element = _img[0];
var _newA2 = $(aStr).on("click", function() {
pageX.unshift($(this).prevAll("img:first")[0]);
_element.scrollIntoView({
"block": "center"
});
});
imgList.push(_newA);
imgList.push(_newA2.text(_img ? parseInt(_img.outerWidth()) : ""));
}
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 = /(?<=-src=[""])[^""]*?(?=[""])|((?<==[""])[a-z]*[/]|https?[:%])[^""<>\s]*?\.(xbm|tif|pjp|jpg|jpeg|tiff|gif|jfif|webp|png|bmp|pjpeg|avif)([?!/&%][^""<>\s]*?)?(?=[""<>\s一-鿯]|https?[:%]|$)/gi
function imgInterFn() {
dqSlt(".JqMA-btn-pic").each(function() {
this.style.setProperty("color", picZ ? "green" : null, "important");
});
if (!picZ) return;
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">可见</p>')
.append('<p class="JqMA-mark-pageNext JqMA-mark-pageNext_1">深度搜索</p>')
.append('<p class="JqMA-mark-pageNext JqMA-mark-pageNext_2">文字链接</p>'));
}
var 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" style="' + (Dhide ? "height:0!important;border:0!important;" : "") + '">';
dqSlt("a:not(:has(img)),img,video,[JqMA-mark-backImg],.pagetual_pageBar")
.not("[JqMA-mark-picSlt],.JqMA-inner-pic *")
.each(function() {
if ($(this).is(".pagetual_pageBar")) {
pageNext_1.before('<p class="JqMA-mark-pageNext">');
pageNext_2.before('<p class="JqMA-mark-pageNext">');
$(this).attr("JqMA-mark-picSlt", 1);
return true;
}
var _img = $(this),
dataObj = [],
imgArr = [];
if (outerSz === 0 || _img.outerWidth() > outerSz) {
_img.is("img") && dataObj.push(this.currentSrc);
_img.is("video") && dataObj.push(this.poster);
_img.is("[JqMA-mark-backImg]") && dataObj.push(_img.css("background-image").split(/[""]/)[1]);
imgArr = getImgList(dataObj, _img, 1, aStr, 0);
imgArr.length && pageNext_1.before(imgArr);
if (DSImg) {
var _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");
var _isp = _imgHtml.replace(/"|['']/g, '"').match(imgRegex_2);
if (_isp) {
imgArr = getImgList([_isp[0]], _img, 1, aStr, 1);
imgArr.length && pageNext_2.before(imgArr);
}
}
}
if (_img.is("a:not([JqMA-mark-backImg])") || imgArr.length) {
_img.attr("JqMA-mark-picSlt", 1).on("load", function() {
$(this).removeAttr("JqMA-mark-picSlt");
});
}
});
if (DSImg) {
var _text = dqSlt("body").text().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) < 600) {
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);
return;
}
}
});
}
if (picSizeOut(this, 50)) {
$(this).addClass("JqMA-mark-imgLoaded").nextAll("a:eq(0)").text(oldNatureW);
}
if (picSizeOut(this)) {
$(this).nextAll("a:lt(2)").add(this).removeClass("JqMA-css-smallPic");
} else {
$(this).attr({
style: Dhide ? "height:0!important;border:0!important;" : null
}).addClass("JqMA-css-smallPic");
}
});
}
var picImgTime;
function picImgCount(pageNext_0, pageNext_1, pageNext_2) {
clearTimeout(picImgTime);
picImgTime = setTimeout(function() {
var picImgLen = dqSlt(".JqMA-inner-pic img:not(.JqMA-css-smallPic)").length,
page_1_ImgLen = pageNext_1.nextAll("img:not(.JqMA-css-smallPic)").length,
page_2_ImgLen = pageNext_2.nextAll("img:not(.JqMA-css-smallPic)").length;
pageNext_0.html(`可见:${picImgLen - page_1_ImgLen} <a id="JqMA-mark-pageNext_1">深度搜索</a>:${page_1_ImgLen - page_2_ImgLen} <a id="JqMA-mark-pageNext_2">文字链接</a>:${page_2_ImgLen}`);
}, 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;
}
var pageX = [];
dqSlt("html").on('click', '.JqMA-btn-down', function() {
pageX.unshift([getScrollLeft(), getScrollTop()]);
var toHs = [];
$("body > :visible").each(function() {
var toH = -0.5 * (Drotate ? winWidth : winHeight);
if (Drotate) {
toH += $(this).offset().left - $(window).scrollLeft();
} else {
toH += $(this).offset().top - $(window).scrollTop();
}
toH += $(this).outerHeight();
toHs.push(toH);
});
if (!scrollDiv && toHs.length) {
toHs.sort(function(a, b) {
return b - a;
});
autoScrollBy(toHs[0]);
} else {
autoScrollBy(1000 * winHeight);
}
}).slideScreen('.JqMA-btn-down,.JqMA-btn-up', function() {
if (pageX.length) {
pageX = uniqueArr(pageX);
if (pageX[0].length == 2) {
autoScrollTo(Drotate ? pageX[0][0] : pageX[0][1]);
} else {
pageX[0].scrollIntoView({
"block": "center"
});
}
pageX.splice(0, 1);
}
});
dqSlt("html").longPress('.JqMA-btn-down,.JqMA-btn-up', function() {
var inputNum = window.prompt("是否保存滚动位置?(取消关闭)", [parseInt(getScrollTop()), parseInt(getScrollLeft())]);
if (inputNum === null) {
setValLoc("nextScrollTop", 0);
} else {
setValLoc("nextScrollTop", inputNum.split(","));
}
});
dqSlt("html").on('click', '.JqMA-btn-up', function() {
pageX.unshift([getScrollLeft(), getScrollTop()]);
if (scrollDiv) {
autoScrollBy(-1000 * winHeight);
return;
}
if (Dtransform) {
autoScrollTo(0.5 * winHeight);
} else {
autoScrollTo(0);
}
});
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;";
}
});
if (picZ) {
dqSlt(".JqMA-inner-pic > a,.JqMA-css-smallPic").each(function() {
this.style.cssText = Dhide ? "height:0!important;border:0!important;" : "";
});
}
}
dqSlt("html").on('click', '.JqMA-btn-del', function() {
Dhide = Dhide ? 0 : 1;
delHide();
setValLoc("Dhide", Dhide);
}).slideScreen('.JqMA-btn-del', function() {
document.querySelector("#pagetual-sideController #loadNow").dispatchEvent(new MouseEvent('click'));
});
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(".JqMA-btn-blank").each(function() {
this.style.setProperty("color", openBlank ? "green" : null, "important");
});
if (!openBlank) return;
dqSlt("a:not([JqMA-mark-blank])").attr("JqMA-mark-blank", 1).filter(function() {
return !/^javascript:|^#$/.test(this.href);
}).attr("target", "_blank");
}
var openBlank = getValLoc("openBlank", 0),
preIframes = new Set();
dqSlt("html").on('click', '.JqMA-btn-blank', function() {
openBlank = openBlank ? 0 : 1;
if (openBlank) {
aOpenBlank();
} else {
dqSlt("[JqMA-mark-blank]").removeAttr("JqMA-mark-blank").attr("target", null);
}
setValLoc("openBlank", openBlank);
}).slideScreen('.JqMA-btn-blank', function() {
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: " + 1.5 * winHeight + "px !important;"
}).on("load", function() {
$(this).before('<p class="pagetual_pageBar">');
$(this).contents().length && this.replaceWith(...$(this).contents().find("body"));
}));
}
first_aCss && isInput && $(this).prop("checked", true);
if ($(this).is(lastTarget)) return false;
});
} else {
alert("请点击链接或复选框!");
}
if (window.confirm("是否复制选择器?")) copyToClipboard(getElementSelector(event.target));
});
}, 100);
});
var Dscroll = 0,
timeDown;
dqSlt("html").on('click', '.JqMA-btn-Ju', function() {
Dscroll += 1;
clearInterval(timeDown);
if (Dscroll < 2) {
dqSlt(".JqMA-btn-Ju").each(function() {
this.style.setProperty("color", "green", "important");
});
timeDown = setInterval(function() {
autoScrollBy(scrollJu * scrollNum, smoothScroll ? 0 : animateTime);
}, animateTime + 5);
} else {
Dscroll = 0;
dqSlt("html,body").stop();
visibleDiv().stop();
dqSlt(".JqMA-btn-Ju").each(function() {
this.style.setProperty("color", null, "important");
});
}
GM_setValue("scrollJu", scrollJu);
}).slideScreen('.JqMA-btn-Ju', function(event) {
var [offsetX, offsetY] = getTouchSite(event.target, event);
if (offsetY > 30) {
scrollJu -= 1;
} else if (offsetY < -30 || offsetX > 40) {
scrollJu += 1;
}
dqSlt(".JqMA-btn-Ju").html((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("`", ""));
dqSlt(".JqMA-btn-Ju").html((smoothScroll ? "`" : "") + scrollJu);
GM_setValue("scrollJu", scrollJu);
GM_setValue("smoothScroll", smoothScroll);
}
});
})(dom.jQuery);
},
10);
}