@license End-User License Agreement
สคริปต์นี้ไม่ควรถูกติดตั้งโดยตรง มันเป็นคลังสำหรับสคริปต์อื่น ๆ เพื่อบรรจุด้วยคำสั่งเมทา // @require https://update.greasyfork.org/scripts/469703/1296888/kxtool.js
function isMobile() { let flag= false; if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) { flag= true; } return flag } function aerads() { $('a, i, span').each(function() { var text = $(this).text().trim(); if (text == '广告') { var thisparent=$(this).parent(); thisparent.remove(); } }); } function Passiveads() { if (GM_info.script.namespace!="Z3JlYXN5Zm9yaw=="){ return } aerads() $("iframe[src*='//googleads']").remove(); $("div[data-type='GoogleRender']").remove(); $(".adsbygoogle").remove(); $("#bottomads").remove(); $("script[src*='adsbygoogle.js']").remove(); $("script[src*='g.doubleclick.net']").remove(); $("script[src*='pos.baidu.com']").remove(); $("iframe[src^='https://g.163.com']").remove(); $("div[id*='google_ads']").remove(); $("div[data-google-query-id]").remove(); $("iframe[src*='pos.baidu.com']").remove(); $("iframe[src*='show-3.mediav.com']").remove(); $("div[class*='wwads-cn wwads']").remove(); var kgpingbiswhitezt=true; var kgpingbiswhiteurl = [ "recaptcha.google", "captcha.qq.com", "alicdn.com", "aliyun.com", "quark.cn", "taobao.com", "mall.com", "weibo.com", ".le.com", "iqiyi.com", "tudou.com", "qq.com", "douyin.com", "javascript:", "youku.com", "sohu.com", "pptv.com", "twitter.com", "facebook.com", "instagram.com", "tiktok.com", "imdb.com", "vk.com", "mtv.com", "56.com", "ku6.com", "cntv.cn", "####.cn", "mgtv.com", "yinyuetai.com", "wasu.cn", "163.com", "1905.com", "xunlei.com", "funshion.com", "youhui", "pornhub.com", "youtube.com", "bilibili.com", "mama.com", "zhihu.com", "baidu.com"]; var whiteHosts = [ 'suning.com', 'vip.com', 'jd.com', 'taobao.com', 'mall.com' ]; if (whiteHosts.some(function (host) { return location.hostname.indexOf(host) > -1; })) { kgpingbiswhitezt = false; } var inputList = $("input").filter(":visible"); inputList.each(function() { var $this = $(this); var placeholder = $this.attr('placeholder') || ''; if ($this.attr('name') === 'username' || $this.is('[type="password"]') || $this.attr('name') === 'password' || $this.attr('type') === 'email' || $this.attr('name') === 'email' || $this.attr('type') === 'phone' || $this.attr('name') === 'code' || $this.attr('name') === 'phone' || placeholder.indexOf('手机') !== -1 || placeholder.indexOf('邮箱') !== -1 || placeholder.indexOf('账号') !== -1 || placeholder.indexOf('密码') !== -1 || placeholder.indexOf('注册') !== -1) { kgpingbiswhitezt = false; return false; } }); //说明:此处是为了匹配某些网站登陆时插件错误屏蔽登陆验证的页面需要,防止不能正常登陆。并无没有收集用户的任何信息 var classNames = ['data-down-ui', 'data-down-ui1', 'data-down-ui2']; for (var i = 0; i < classNames.length; i++) { var className = classNames[i]; if (document.getElementsByClassName(className).length > 0) { kgpingbiswhitezt = false; return; } } if ( kgpingbiswhitezt){ let iframehost=window.location.host; $("iframe").each(function(index){ var iframeon=0; if ($(this).attr("src")){ let iframesrc=$(this).attr("src"); for(let i = 0; i < kgpingbiswhiteurl.length; i++) { if (iframesrc.indexOf(kgpingbiswhiteurl[i])>=0){ kgpingbiswhitezt=false; } } if ($(this).attr("src").indexOf("http")==0 && window.location.href.indexOf("tool")<0 && window.location.href.indexOf("video")<0 && $(this).attr("src").indexOf("video")<0 && $(this).attr("src").indexOf("?url=")<0 && $(this).attr("src").indexOf(iframehost)<0 && kgpingbiswhitezt){ $(this).remove(); iframeon=1; } } if ( iframeon==0){ try { var inputElements = $(this).contents(); try { var inputLength = inputElements.find('input').length; var textareaLength = inputElements.find('textarea').length; var imgLength = inputElements.find('img').length; var videoLength = inputElements.find('video').length; var bodyText = inputElements.find('body').first().text(); var bodyTextLength =bodyText.length; if (inputLength > 0 || textareaLength > 0 || imgLength==0 || videoLength>0 || bodyTextLength > 200) { kgpingbiswhitezt = false; } if (kgpingbiswhitezt){ var imgElements = inputElements.find('img'); var maxImgElement = null; var maxImgArea = 0; imgElements.each(function() { var imgWidth = $(this).width(); var imgHeight = $(this).height(); var imgArea = imgWidth * imgHeight; if (imgArea > maxImgArea) { maxImgArea = imgArea; maxImgElement = this; } }); var iframeWidth = $(this).width(); var iframeHeight = $(this).height(); var iframeArea = iframeWidth * iframeHeight; var imgWidth = $(maxImgElement).width(); var imgHeight = $(maxImgElement).height(); var imgArea = imgWidth * imgHeight; if (imgArea / iframeArea > 0.5) { $(this).remove(); kgpingbiswhitezt = false; } } if (kgpingbiswhitezt){ $(this).remove(); } } catch (error) { console.log('读取 iframe 失败'); } } catch (error) { console.log('第', index + 1, '个非同源的 iframe'); } } }) function getImageSize(element) { if (element.attr('kxtool') ) { return false; } if (element.prop('tagName') === 'HTML' || element.prop('tagName') === 'HEADER' || element.prop('tagName') === 'BODY' || element.prop('tagName') === 'MAIN') { return false; } var childElements = element.find("*"); for (var i = 0; i < childElements.length; i++) { var childTag = $(childElements[i]).prop('tagName'); if (childTag === 'HTML' || childTag === 'HEADER' || childTag === 'BODY' || childTag=== 'MAIN') { return false; } } var $elem = element; var targets = []; if ($elem.prop('tagName') === 'IMG') { targets.push($elem); } var $imgs = $elem.find('img'); if ($imgs.length > 0) { var maxWidth = 0; $imgs.each(function() { var width = $(this).prop('naturalWidth') || $(this).width(); if (width > maxWidth) { maxWidth = width; targets.push($(this)); } }); } var $bgImgs = $elem.find('*').filter(function() { var style = getComputedStyle(this); return ( style['background-image'] !== 'none' && style['background-image'] !== '' ) || ( style['background'] && style['background'].includes('url(') ); }); if ($bgImgs.length > 0) { $bgImgs.each(function() { targets.push($(this)); }); } if (targets.length > 0) { var maxTarget = targets.reduce(function(max, target) { var width = target.width(); return width > max.width ? {target: target, width: width} : max; }, {target: null, width: 0}); if (maxTarget.target) { return { width: maxTarget.width, tag: maxTarget.target.prop('tagName'), url: maxTarget.target.attr('src'), rl: maxTarget.target.attr('style'), height: maxTarget.target.height() }; } } return false; } var windowHeight = $(window).height(); var windowwidth= $(window).width() *0.8; var removeHeight=200; if (isMobile()){ removeHeight=150; } var datag=true; if (window.location.href.indexOf('dadi') >0 || window.location.href.indexOf('teng') >0 ) { datag=false; } if (datag){ $('img').filter(function() { var $this = $(this); var offsetTop = $this.offset().top; return offsetTop >= 50 && $this.parents('picture').length === 0 && $this.width() >= windowwidth && $this.height() >10 && $this.height() <= removeHeight && $this.is(':visible'); }).remove(); $('[style*="position: fixed"]').add('*') .filter(function() { return ($(this).css('position') === 'fixed'); }) .filter(function() { var classes = $(this).attr('class'); return (!classes || !classes.match(/\b.*nav.*\b/)); }) .filter(':visible') .not('form, input') .each(function() { var $this = $(this); var hasFormOrInput = $this.find('form, input').length > 0; if (hasFormOrInput) { return; } var $imgs = $this.find('img'); if ($imgs.length === 0) { return; } var $maxImg = $imgs.eq(0); var divarea = $this.width() * $this.height(); let getSize = getImageSize($this); if (getSize) { var IMGarea = getSize.width * getSize.height; if (IMGarea >= divarea * 0.8) { $this.remove(); } else { let Divthistext = /^\s*$/.test($this.text()); if (Divthistext) { $this.remove(); } } } }); } } } //============= var debugMode = false; // 是否处于调试模式 var currentElement = null; // 当前鼠标所在的元素 function ProactivelyadsBtn() { if (GM_info.script.namespace!="Z3JlYXN5Zm9yaw=="){ return } var butjc = GM_getValue('Proactivelyads', '0'); if (butjc=='0'){ $('<div id="debugBtnBtn" style="position: fixed; top: 50px; right: 0; z-index: 9999; padding: 6px 12px; background: rgba(255, 255, 255, .7); cursor: pointer; background-color: #e1e1e1; border-radius: 10px;"><button id="debugBtn" style=" margin-right: 10px; border: none; border-radius: 10px; background-color: #6175bd; color: white;padding: 8px 10px; font-size: 15px;display: initial;">调试模式</button><button id="debugresetBtn" style=" margin-right: 10px; border: none; border-radius: 10px; background-color: #6175bd; color: white;padding: 8px 10px; font-size: 15px;display: initial;" > 恢复默认</button><button id="debugExitBtn" style=" margin-right: 10px; border: none; border-radius: 10px; background-color: #6175bd; color: white;padding: 8px 10px; font-size: 15px;display: initial;">退出</button></div>').appendTo(document.body); } } // 定义变量 // 创建样式 GM_addStyle(` .debug-mask { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(255, 255, 255, .5); z-index: 9998; display: none; } .debug-border { border: 2px solid red !important; box-shadow: 0 0 5px rgba(0, 0, 0, .3) !important; position: relative; } `); // 鼠标移过元素时触发的事件 function mouseOverHandler(event) { if (debugMode) { var elem = event.target; let tagName=$(elem).prop('tagName'); if ( tagName.includes("BODY")||tagName.includes("HTML")||tagName.includes("HEADER") ||tagName.includes("MAIN")){ return } let targetid = $(elem).attr("id"); let targetclass = $(elem).attr("class"); if ($(elem).attr("mytool")){ return; } if (targetid){ if (targetid=="debugBtn" || targetid=="debugBtnBtn" || targetid=="debugresetBtn" || targetid=="debugExitBtn" || targetid=="mytoolzxmenu" || targetid=="mytoolzxmenu" || targetid=="mytoolzxmenuPage" ){ return } } if (targetclass){ if ( targetclass.includes("subItem")||targetclass.includes("menuItem")){ return } } if (currentElement !== elem) { hideDeleteBtn(currentElement); currentElement = elem; showDeleteBtn(elem); } elem.classList.add('debug-border'); } } // 显示元素的删除按钮 function showDeleteBtn(elem) { } $("body").on('click', '#debugExitBtn', function(event) { toastr.success('已退出!', '', { positionClass: 'toast-bottom-right', showDuration: 300, hideDuration: 1000, timeOut: 3000, extendedTimeOut: 1000, showEasing: 'swing', hideEasing: 'linear', showMethod: 'fadeIn', hideMethod: 'fadeOut' }); debugMode = false; hideDeleteBtn(currentElement); currentElement = null; document.body.removeEventListener('mouseover', mouseOverHandler, true); GM_setValue('Proactivelyads','1'); $("#debugBtnBtn").remove(); }); $("body").on('click', '#debugresetBtn', function(event) { var domain = window.location.host; var domainadValue = GM_getValue('domainad') || {}; delete domainadValue[domain]; GM_setValue('domainad', domainadValue); location.reload(); }); // 点击元素的删除按钮后的操作 $("body").on('click', '.debug-border', function(event) { toastr.success('已删除此元素!', '', { positionClass: 'toast-bottom-right', showDuration: 300, hideDuration: 1000, timeOut: 3000, extendedTimeOut: 1000, showEasing: 'swing', hideEasing: 'linear', showMethod: 'fadeIn', hideMethod: 'fadeOut' }); event.stopPropagation(); // 阻止事件冒泡 event.preventDefault(); // 阻止默认行为 let targetid = $(this).attr("id"); let targetclass = $(this).attr("class"); if (targetid && (targetid == "debugBtn" || targetid == "debugresetBtn" || targetid == "mytoolzxmenu" || targetid == "mytoolzxmenuPage")) { return; } if (targetclass && (targetclass.includes("subItem") || targetclass.includes("menuItem"))) { return; } getAdFeatures(this); $(".debug-border").remove(); // 移除点击的元素 }); function updomainad(k) { if (window.location.href.indexOf('dadi') >0 || window.location.href.indexOf('teng') >0 ) { return; } var domain = window.location.host; var domainadValue = GM_getValue('domainad') || {}; if (!domainadValue[domain]) { domainadValue[domain] = {}; } domainadValue[domain][k] =true; GM_setValue('domainad', domainadValue); } // 获取元素标签名、id、class、style、src、href 的广告特征 function getAdFeatures(elem) { let features = ''; let tagName = ''; var domain = window.location.host; if (elem.tagName) { tagName= elem.tagName.toLowerCase(); } if (elem.id) { features = tagName+'#' + elem.id; updomainad(features); } if (elem.classList && elem.classList.length > 0) { let classtxt='[class="' + $(elem).attr('class').replace(/debug-border/g, '')+ '"]'; if (classtxt!='[class=""]'){ var lastSpaceIndex = classtxt.lastIndexOf(" "); if (lastSpaceIndex !== -1) { classtxt = classtxt.substring(0, lastSpaceIndex) + "" + classtxt.substring(lastSpaceIndex + 1); } features=tagName+classtxt; updomainad(features); } } if (elem.style.cssText) { let styletxt='[style^="' + $(elem).attr('style')+ '"]'; features=tagName+styletxt; updomainad(features); } if (elem.src) { let elemurl=elem.src; let matchStr = elemurl.match(/\/\/[^/]*\/(.+?)([.?]|$)/); elemurl = matchStr[1]; features = tagName+'[src*="' + elemurl + '"]'; updomainad(features); } if (elem.href) { let elemurl=elem.href; let matchStr = elemurl.match(/\/\/[^/]*\/(.+?)([.?]|$)/); elemurl = matchStr[1]; features = tagName+'[href*="' + elemurl + '"]'; updomainad(features); } // return features; } // 隐藏元素的删除按钮 function hideDeleteBtn(elem) { if (elem) { elem.classList.remove('debug-border'); } } // 遍历并隐藏元素的所有子节点 function hideElementContent(elem) { $(elem).children().each(function() { hideElementContent(this); $(this).hide(); }); } // 点击调试按钮后的操作 $("body").on('click', '#debugBtn', function() { debugMode = !debugMode; if (debugMode) { document.body.addEventListener('mouseover', mouseOverHandler, true); toastr.success('已进入调试模式!移动鼠标,可以点击你需要删除的页面元素包括广告。误删可以使用恢复按钮即可让页面恢复正常。适合大部分网页。重新打开页面生效!', '', { positionClass: 'toast-bottom-right', showDuration: 300, hideDuration: 1000, timeOut: 3000, extendedTimeOut: 1000, showEasing: 'swing', hideEasing: 'linear', showMethod: 'fadeIn', hideMethod: 'fadeOut' }); } else { toastr.success('已关闭调试模式!', '', { positionClass: 'toast-bottom-right', showDuration: 300, hideDuration: 1000, timeOut: 3000, extendedTimeOut: 1000, showEasing: 'swing', hideEasing: 'linear', showMethod: 'fadeIn', hideMethod: 'fadeOut' }); hideDeleteBtn(currentElement); currentElement = null; document.body.removeEventListener('mouseover', mouseOverHandler, true); } }); // 自动隐藏符合广告特征的元素 function Proactivelyads() { if (GM_info.script.namespace!="Z3JlYXN5Zm9yaw=="){ return } var domain = window.location.host; var adFeaturesStr = GM_getValue(domain, ''); var domainadValue = GM_getValue('domainad'); var adFeaturesStr = domainadValue && domainadValue[domain] ? domainadValue[domain] : ''; if (adFeaturesStr==""){ return } for (var featureStr in adFeaturesStr) { try { var selector = featureStr; if (selector.includes('[class="')) { var match = selector.match(/class\s*=\s*"([^"]+)"/); if (match && match[1]) { var classes = match[1].split(/\s+/); var tagName = selector.split('[')[0]; selector = tagName + '.' + classes.join('.'); $(selector).remove(); } }else{ $(selector).remove(); } } catch (err) { console.log('执行出错'); } } }