// ==UserScript== // @name 手机助手 // @namespace http://tampermonkey.net/ // @version 9.500.18.73 // @description 自动滚动,嗅探图片、视频,字体放大,去除广告浮动 // @author You // @match *://*/* // @run-at document-start // @require https://code.jquery.com/jquery-3.7.1.min.js // @require https://code.jquery.com/jquery-migrate-3.4.0.min.js // @grant GM_registerMenuCommand // @grant GM_setValue // @grant GM_getValue // @license MIT // @downloadURL none // ==/UserScript== { 'use strict'; let hengPin = screen.orientation.lock; (function($) { if (document.querySelector('.JqMA-btn-all') || window.frames.length != parent.frames.length) { return; } function docSltAll(selectPath, _iframe = "iframe") { let doms = []; document.querySelectorAll(selectPath).forEach(function(element) { doms.push(element); }); if (_iframe === "iframe") { document.querySelectorAll('iframe').forEach(function(iframe) { const contentDocument = iframe.contentDocument || iframe.contentWindow.document; const selectedElements = contentDocument.querySelectorAll(selectPath); selectedElements.forEach(function(element) { doms.push(element); }); }); } return doms; } function dqSlt(selectPath, _iframe = "iframe") { if (_iframe === "one") { return $(document.querySelector(selectPath)); } let doms; try { doms = $(selectPath); } catch (error) { doms = $(document.querySelectorAll(selectPath)); } if (_iframe === "iframe") { document.querySelectorAll('iframe').forEach(function(iframe) { const contentDocument = iframe.contentDocument || iframe.contentWindow.document; const selectedElements = contentDocument.querySelectorAll(selectPath); selectedElements.forEach(function(element) { doms.add(element); }); }); } return doms; } function removeShadowRoot() { let hasShadowRoot; const divs = document.querySelectorAll('div'); for (let i = 0; i < divs.length; i++) { let _this = divs[i]; 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 getSelector(element) { let path = "", index = 0; while (index < 3 && element && element.nodeType == Node.ELEMENT_NODE) { let 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).join("."); } path = selector + " > " + path; element = element.parentNode; index++; } return path.replace(/[> ]+$/, ""); } function documentCopy(copyText) { let _input = document.createElement('input'); _input.setAttribute('style', 'position:fixed!important;clip:rect(0 0 0 0)!important;top:10px!important;'); _input.value = copyText; document.body.appendChild(_input); _input.select(); document.execCommand('copy'); document.body.removeChild(_input); } function copyToClipboard(copyText) { try { navigator.clipboard.writeText(copyText).catch(() => { documentCopy(copyText); }); } catch (error) { documentCopy(copyText); } } function getDataValue(gValName, _default) { let _data = GM_getValue(gValName, {}); let keys = Object.keys(_data); if (keys.length > 200) { delete _data[keys[0]]; GM_setValue(gValName, _data); } return [_data, _data.hasOwnProperty(currentDomain) ? _data[currentDomain] : _default]; } let addCss = GM_getValue("addCss", ""); let hidePagetual = GM_getValue("hidePagetual", 0) GM_registerMenuCommand("1:隐藏按钮 2:隐藏东方 3:添加css", function() { const element = document.querySelector(".JqMA-btn-del"); const isHide = window.getComputedStyle(element).display === "none"; let inputNum = window.prompt("1:" + (isHide ? "显示" : "隐藏") + "按钮 2:" + (hidePagetual ? "显示" : "隐藏") + "东方按钮 3:添加css", 1); if (inputNum === "1") { if (isHide) { docSltAll(Dhide ? ".JqMA-btn-del" : ".JqMA-btn-all", "all").each(function() { this.style.cssText += "display:block!important;" + (Dhide ? "opacity:0.5!important;" : ""); }); } else { docSltAll(".JqMA-btn-all", "all").each(function() { this.style.cssText += "display:none!important;"; }); } } else if (inputNum === "2") { hidePagetual = hidePagetual ? 0 : 1; GM_setValue("hidePagetual", hidePagetual); location.reload(false); } else if (inputNum === "3") { inputNum = window.prompt("输入css内容:", addCss); if (inputNum !== null) { GM_setValue("addCss", inputNum); 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: 10vh 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-word *, .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; filter: none!important; -webkit-filter: none!important; } .JqMA-inner-word, .JqMA-inner-word > p { color: #FEFEFE!important; text-align: left!important; font-size: calc(2.3vh + 2.3vw)!important; text-indent: 0!important; } .JqMA-inner-word > p { width: 100%!important; } .JqMA-inner-pic { text-align: center !important; font: 0 "Fira Sans", sans-serif !important; } .JqMA-inner-word *, .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; } .JqMA-inner-pic > *{ vertical-align: top !important; overflow: hidden !important; } .JqMA-inner-word a, .JqMA-inner-pic a, .JqMA-mark-pageNum { background: none!important; color: #FEFEFE!important; height: calc(2.7vh + 2.7vw)!important; font-size: calc(1.7vh + 1.7vw)!important; line-height: 1.4!important; text-align: center!important; } .JqMA-mark-pageNum { width: 100%!important; } html .JqMA-inner-pic > img + a { margin-top: calc(-5.4vh - 5.4vw)!important; } html .JqMA-inner-pic > img + a + a{ margin-top: calc(-2.7vh - 2.7vw)!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{ display: inline-block!important; width: 100%!important; } .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: none!important; text-align: center!important; text-indent: 0!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.2vh + 1.2vw)!important; height: calc(3.2vh + 3.2vw)!important; width: calc(3.2vh + 3.2vw)!important; } html .JqMA-btn-del { display: block!important; opacity: 0.4!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-inner-word,.JqMA-inner-word > p { 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; }` + addCss; 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;}`; } const currentDomain = window.location.hostname; function locHost() { return currentDomain; } function getValLoc(gValName, _default) { if (locHost() == GM_getValue(gValName + "_locH")) { return GM_getValue(gValName, _default); } else { return _default; } } function setValLoc(gValName, value) { GM_setValue(gValName, value); GM_setValue(gValName + "_locH", locHost()); } let scrollJu = Math.abs(GM_getValue("scrollJu", 5)); var [DSImgData, DSImg] = getDataValue("DSImgData", 1); let minPicHD = GM_getValue("minPicHD", 500); let minPicwh = GM_getValue("minPicwh", 100), picwh = getValLoc("picwh", minPicwh); let minOuterSz = GM_getValue("minOuterSz", 10), outerSz = getValLoc("outerSz", minOuterSz); let smoothScroll = GM_getValue("smoothScroll", 0); var direction = 1; function addInput(class1, value1, style1) { let p = document.createElement('p'); p.className = "JqMA-btn-all " + class1; p.textContent = value1; document.querySelector('html').appendChild(p); inner_style += ".JqMA-btn-all." + class1 + "{" + style1 + "!important;left: 0!important;}"; } function addAllBtn() { addInput('JqMA-btn-del', 'X', "top:calc(50vh - 1.6vh - 1.6vw)"); addInput('JqMA-btn-down', '♢', "top:calc(50vh - 4.8vh - 4.8vw)"); addInput('JqMA-btn-Ju', (smoothScroll ? "`" : "") + scrollJu, "top:calc(50vh - 8vh - 8vw)"); addInput('JqMA-btn-width', "W", "top:calc(50vh - 11.2vh - 11.2vw)"); addInput('JqMA-btn-scrollDiv', 'O', "top:calc(50vh - 14.4vh - 14.4vw)"); addInput('JqMA-btn-transform', "T", "top:calc(50vh + 1.6vh + 1.6vw)"); addInput('JqMA-btn-blank ', 'B', "top:calc(50vh + 4.8vh + 4.8vw)"); addInput('JqMA-btn-pic', picwh, "top:calc(50vh + 8vh + 8vw)"); addInput('JqMA-btn-outerSz', outerSz, "top:calc(50vh + 11.2vh + 11.2vw)"); } addAllBtn(); var Dhide = getValLoc("Dhide", 1); delHide(); setTimeout(function() { widthN && document.querySelectorAll(".JqMA-btn-width").forEach(function(element) { element.textContent = widthN; }); picZ && document.querySelectorAll(".JqMA-btn-pic").forEach(function(element) { element.style.setProperty("color", "green", "important"); }); openBlank && document.querySelectorAll(".JqMA-btn-blank").forEach(function(element) { element.style.setProperty("color", "green", "important"); }); DSImg && document.querySelectorAll(".JqMA-btn-outerSz").forEach(function(element) { element.style.setProperty("color", "green", "important"); }); Drotate && document.querySelectorAll(".JqMA-btn-blank").forEach(function(element) { element.textContent = "BF"; }); if (Drotate) { fullScreen(); } if (Dtransform) { applyClearStyle(); document.querySelectorAll(".JqMA-btn-transform").forEach(function(element) { element.style.setProperty("color", "green", "important"); }); } firstRun(); document.querySelector('html').addEventListener('touchend', function handler(event) { if (Dscroll) { Dscroll = 0; scrollRun(); } event.currentTarget.removeEventListener(event.type, handler); }); }, 200); function createStyle(_style) { let styleElement = document.createElement('style'); styleElement.type = 'text/css'; styleElement.innerHTML = _style; return styleElement; } document.head.appendChild(createStyle(html_style + inner_style + css_style)); document.head.setAttribute("JqMA-mark-addStyle", true); let _timeTouch; function touchRun() { clearTimeout(_timeTouch); _timeTouch = setTimeout(function() { firstRun(); for (let i = 0; i < 12; i++) { setTimeout(function() { _timeTouch && clearTimeout(_timeTouch); }, i * 200); } }, 300); } function htmlTouch(event) { if (Dscroll && !pauseScroll) { let _target = event.target; if (!_target.matches(".JqMA-btn-Ju")) { scrollRun(); if (!_target.matches(".JqMA-btn-down")) { pauseScroll = true; } } } } let oNextScroll; function firstRun() { if (!document.querySelector('.JqMA-btn-all')) { addAllBtn(); } docSltAll("head:not([JqMA-mark-addStyle])").forEach(function(elet) { elet.appendChild(createStyle(css_style)); elet.setAttribute('JqMA-mark-addStyle', true); }); widthN && fontInterFn(); if (picZ) { if (scrollPic && !document.querySelector(".JqMA-inner-pic")) { setTimeout(function() { scrollPicLoad(); }, 500); } else { imgInterFn(); } } openBlank && aOpenBlank(); !Dhide && xiuTan(); document.querySelector(".JqMA-inner-word") && innerWordAdd(); if (!oNextScroll && nextScrollTop) { let element = visibleDiv(); if (element) { autoScrollTo(nextScrollTop); oNextScroll = 1; } } docSltAll("body:not(body *,[JqMA-mark-bodyFunc])").forEach(function(elet) { elet.setAttribute('JqMA-mark-bodyFunc', true); elet.addEventListener('click', function(event) { let _target = event.target; if (_target.matches("#JqMA-mark-pageNext_1,#JqMA-mark-pageNext_2")) { pageX.unshift(getScrollTop()); document.querySelector("." + _target.id).scrollIntoView(); } else if (_target.matches("a,a *")) { setTimeout(function() { if (Dscroll) { scrollRun(); pauseScroll = true; } }, 210); } else if (!_target.matches(pointEle) && _target.offsetWidth > 0.3 * window.innerWidth) { direction = event.clientY < window.innerHeight / 9 ? -1 : 1; autoScrollBy(direction * (widthN || Drotate ? 0.9 : 0.45) * window.innerHeight); } if (nextScrollTop) { autoScrollTo(nextScrollTop); } }); }); docSltAll("html:not(html *,[JqMA-mark-htmlFunc])").forEach(function(elet) { elet.setAttribute('JqMA-mark-htmlFunc', true); elet.addEventListener('touchstart', function(event) { htmlTouch(event); }); elet.addEventListener('touchmove', function(event) { htmlTouch(event); }); elet.addEventListener("touchend", function() { touchRun(); stopPause(); }); }); } let pauseScroll; function stopPause() { setTimeout(function() { if (pauseScroll) { pauseScroll = false; Dscroll || scrollRun(); } }, 200); } $.fn.slideScreen = function(_target, fn, trsTime) { let timeout_1; $(this).on('touchmove', _target, function(event) { timeout_1 && clearTimeout(timeout_1) timeout_1 = setTimeout(function() { fn(event); }, trsTime || 500); }); } $.fn.longPress = function(_target, fn, trsTime) { let 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) { timeout_2 && clearTimeout(timeout_2) }); } let pointEle = GM_getValue("pointEle", "textarea,input,video,button,select"); function btnScrollDivClick() { const _prot = prompt("点击不下翻元素:", pointEle); if (_prot !== null) { pointEle = _prot; GM_setValue("pointEle", pointEle); } } 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() }); onLongPress(document, function() { if (pageX.length && confirm("是否返回?")) { btnDownClick(); } }, 550); 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", "all").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()); autoScrollTo(0); dqSlt(".JqMA-btn-down", "all").text("♢"); } else if (offsetY < thisHeight * -3 || offsetX > thisHeight * 3) { pageX.unshift(getScrollTop()); autoScrollTo(visibleDiv().scrollHeight); dqSlt(".JqMA-btn-down", "all").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("跳转第几个节点:", dqSlt(".JqMA-btn-next", "one").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) { nextScrollTop = 0; } else { nextScrollTop = Number(inputNum) } setValLoc("nextScrollTop", nextScrollTop); } }); function pageNextFunc(nextNum) { pageX.unshift(getScrollTop()); let pageDom = dqSlt(".pagetual_pageBar,.JqMA-mark-pageNext,.JqMA-inner-all,.JqMA-inner-all > :visible:last,.JqMA-inner-word > p[style*=rgb]", "all"), offsetDiffs = []; if (nextNum >= pageDom.length) { pageDom.last()[0].scrollIntoView(); dqSlt(".JqMA-btn-down", "all").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", "all").text(nextNum == "up" ? pageDom.length - index - 1 : index); return false; } }); } let clearStyle = document.createElement('style'); clearStyle.type = 'text/css'; function applyClearStyle() { clearStyle.innerHTML = `html { overflow-y: auto!important; } body { transform: translate(0%, 0%) !important; padding: 50vh 0!important; height: auto !important; max-height: none !important; } [JqMA-css-fixed_hide] { display: none !important; }`; document.head.appendChild(clearStyle); setTimeout(function() { let elements = document.querySelectorAll(':not(.JqMA-btn-all)'); for (let i = 0; i < elements.length; i++) { const _this = elements[i]; const style = window.getComputedStyle(_this); if (/sticky|fixed/.test(style.position) && _this.offsetHeight < 0.5 * window.innerHeight) { _this.setAttribute("JqMA-css-fixed_hide", "1"); } } }, 400); } let Dtransform = getValLoc("Dtransform", 0); function btnTransfClick() { Dtransform = Dtransform ? 0 : 1; dqSlt(".JqMA-btn-transform", "all").each(function() { this.style.setProperty("color", Dtransform ? "green" : null, "important"); }); if (Dtransform) { applyClearStyle(); } else { document.head.removeChild(clearStyle); } 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() { return visibleDiv().scrollTop; } function visibleDiv(_zf = [9, -9]) { let elements = document.querySelectorAll("*"); for (let i = 0; i < elements.length; i++) { let element = elements[i]; if (element.offsetHeight > 0.6 * window.innerHeight && window.getComputedStyle(element).overflowY !== "hidden") { const oldScrollTop = element.scrollTop; for (let j = 0; j < _zf.length; j++) { element.scrollTop += _zf[j]; if (element.scrollTop !== oldScrollTop) { element.scrollTop -= _zf[j]; return element; } } } } } function xScrollDiv() { let elements = document.querySelectorAll("*"); let scrollEles = []; for (let i = 0; i < elements.length; i++) { let element = elements[i]; if (element.offsetWidth > 0.6 * window.innerWidth && window.getComputedStyle(element).overflowX !== "hidden") { const oldScrollLeft = element.scrollLeft; element.scrollLeft += 9; if (element.scrollLeft > oldScrollLeft) { element.scrollLeft -= 9; scrollEles.push(element); } } } return $(scrollEles); } function autoScrollBy(scrollBy_Ju, speed = 0) { let element = visibleDiv(scrollBy_Ju > 0 ? [9] : [-9]); if (element) { if (speed === 0) { element.scrollTop += scrollBy_Ju; } else { $(element).stop().animate({ scrollTop: "+=" + scrollBy_Ju + "px" }, speed, "linear"); } } } function autoScrollTo(scrollTo_Ju, speed = 0) { let element = visibleDiv(); if (element) { if (speed === 0) { element.scrollTop = scrollTo_Ju; } else { $(element).stop().animate({ scrollTop: scrollTo_Ju }, speed, "linear"); } } } function downloadTxt(filename, textContent) { var objectURL = URL.createObjectURL(new Blob([textContent], { type: "text/plain;charset=utf-8" })); $('').attr({ href: objectURL, download: filename, style: 'display:none!important;' }).appendTo('body')[0].click(); setTimeout(function() { URL.revokeObjectURL(objectURL); }, 2000); } function changeStyle(_id, _style) { dqSlt("head").filter(function() { return !$(this).find("style#" + _id).length; }).append($("