// ==UserScript== // @name 【广告去除】游戏网站 // @namespace http://tampermonkey.net/ // @version 1.8 // @description 去除一些游戏攻略、资讯网站的广告 // @author You // @match *://*.17173.com/* // @match *://*.gamersky.com/* // @match *://*.ali213.net/* // @match *://*.3dmgame.com/* // @match *://*.9game.cn/* // @match *://18183.com/* // @match *://*.18183.com/* // @match *://games.sina.com.cn/* // @match *://*.163.com/game/* // @match *://*.nbegame.com/* // @match *://*.a9vg.com/* // @icon https://www.google.com/s2/favicons?sz=64&domain=17173.com // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; //************************************************************************************* //----------------------------------------广告匹配规则 //************************************************************************************* var url = window.location.href; var domain = document.domain; var namesStyle = []; var namesStyleText = []; var namesId = []; var namesClass = []; //****************** //---------17173 //****************** if (domain.includes('17173.com')) { console.log('[广告去除] 17173'); namesStyle = [ ]; namesStyleText = [ 'position:absolute;z-index:2;top:41px;left:-99px;width:180px;height:470px;overflow:hidden;',//左上悬浮广告拥有的StyleText ]; namesId = [ 'finalTuijian',//新版页面左侧夹杂广告拥有的Id ]; namesClass = [ 'fullmedia-video-wrap',//悬浮广告拥有的Class 'righttop-window-recycle',//悬浮广告拥有的Class 'righttop-window-video-wrap',//悬浮广告拥有的Class 'fullmedia-recycle',//左上悬浮广告拥有的Class 'video-box',//多媒体视窗广告拥有的Class 'mod-17173app-qrcode',//右侧APP广告拥有的Class /\bpn\b.*\bpn-tg-avatar\b.*\bad17173carouse[l]{0,1}[0-9]{0,2}\b/,//图片轮播广告拥有的Class 'pn1 pn-tg pn-tg-bevel',//一行两列推广广告拥有的Class 'pn pn-tg ad17173Corner1 classNameTrackModule',//一行两列推广广告拥有的Class 'pn pn-tg adnewgameindexbanner2',//分隔栏广告拥有的Class 'pn pn-tg ad17173indexbanner3 classNameTrackModule',//分隔栏广告拥有的Class 'pn pn-tg ad17173indexBottomBanner1 classNameTrackModule',//分隔栏广告拥有的Class 'Classpn pn-rss Ad17173Banner2',//分隔栏广告拥有的Class 'pn pn-rss Ad17173Banner2',//分隔栏广告拥有的Class /\bmod-tg\b.*\bad-v-daka-7\b.*\bad17173WenziTuijian[0-9]{0,1}\b.*\bclassNameTrackModule\b/,//底部游戏下载中的广告拥有的Class 'adnewsfinalbanner1',//新版切旧版顶部通栏广告拥有的Class 'gb-hao gb-hao-float-widget gb-hao-float-widget-official',//新版切旧版右侧悬浮下载广告拥有的Class 'tg-right-btn',//新版切旧版右侧图片广告拥有的Class 'gb-final-comm-case gb-final-pn-wan forsetLink13',//新版切旧版右侧网游广告拥有的Class 'gb-final-comm-case classNameTrackModule',//新版切旧版底部小姐姐视频广告拥有的Class 'gb-final-comm-case1 gb-final-mod-recomm forsetLink21 xwtj',//新版切旧版底部新闻推荐/新网游广告拥有的Class 'adnewsfinaltopbanner',//新版页面顶部横幅广告拥有的Class 'gb-final-news-item-ad',//新版页面左侧夹杂广告拥有的Class ]; } //****************** //---------游民星空 //****************** else if (domain.includes('gamersky.com')) { console.log('[广告去除] 游民星空'); namesStyle = [ ]; namesId = [ 'ADcover',//顶层悬浮倒计时广告拥有的Id /\bgsBackgroundId[0-9]{12}\b/,//文章背景广告Id,例:gsBackgroundId511953469937 //new_top_allsite_970_2 /\bnew_top_allsite_[0-9]{3,4}_[0-9]{1}\b/,//文章标题下广告Id /\btop_pd_[0-9]{3,4}\b_\b[0-9]{1}\b/,//文章标题下广告Id /\badscontainer_block_[0-9]{3}_[0-9]{1}\b/,//右侧底部图片广告拥有的Id //adscontainer_block_300_4 'new_page_allsite_620',//文章底部广告Id ]; namesClass = [ 'bgAdWrap',//背景图片广告拥有的Class 'adscontainer_background_back_index1100_all',//背景图片广告拥有的Class 'advert',//顶部右侧活动广告拥有的Class 'box-shadow',//标题下方广告拥有的Class 'ad_r',//右侧动图广告拥有的Class 'fixedCode',//右侧APP广告拥有的Class 'Midtit yyggtit lxyygg',//右侧游戏广告拥有的Class 'yyimg',//右侧游戏广告拥有的Class 'gs_ccs_appdown',//文章底部APP广告拥有的Class ]; } //****************** //---------游侠网 //****************** else if (domain.includes('ali213.net')) { console.log('[广告去除] 游侠网'); namesStyle = [ ]; namesStyleText = [ //游侠图库(pic.ali213.net) 'width:980px;height:auto;overflow:hidden;margin:0px auto 10px auto;',//底部多图广告StyleText //游侠攻略(例:https://gl.ali213.net/html/2023-8/1114539_2.html) 'width:100%;margin-bottom:20px;background:#fff;box-sizing: border-box;border-radius:10px;box-shadow:0px 2px 9px 0px rgba(211, 211, 211, 0.6);',//右侧广告StyleText 'position:relative;display:block;',//右侧广告StyleText ]; namesId = [ /\bali-ad-js-[0-9]{1,2}\b/,//图片广告Id //游侠攻略(例:https://gl.ali213.net/html/2023-8/1114539_2.html) 'ali_gl_detail_top_ad',//顶部横幅广告Id ]; namesClass = [ 'alertbox',//顶层悬浮广告Class 'ali-index-bg',//背景图片广告Class 's-bg',//标题下方广告拥有的Class 'box-shadow',//标题下方广告拥有的Class 'ag300 box-shadow-right',//右侧图片广告Class 's1-r-img',//右侧图片广告Class /\bag300\b.*\bmt[0-9]{1,2}\b.*\bbox-shadow-right\b/,//右侧图片广告Class 'fengxiang box-shadow',//底部分享、APP广告Class 'go-lb',//底部滚动文字广告Class //游侠图库(pic.ali213.net) 'daohang',//顶部导航栏广告Class //游侠攻略(例:https://gl.ali213.net/html/2023-8/1114539_2.html) 'gltopg',//顶部横幅广告Class 'share-container fengxiang',//底部分享、APP广告Class //游侠攻略(例:https://gl.ali213.net/z/8446/) 'glzj_infob_ltt',//左侧菜单栏底部APP二维码广告Class //(例:https://m.ali213.net/news/gl/) 'glzjll_r_libao',//右侧“热门游戏礼包”广告Class //(例:https://m.ali213.net/news/) 'newslist_body_info_right_b',//右侧“热门软件”广告Class //(例:https://gl.ali213.net/html/2023-8/1114425.html) 'ali-kx',//页面底部悬浮“快讯”广告Class ]; } //****************** //---------3DM //****************** else if (domain.includes('3dmgame.com')) { console.log('[广告去除] 3DM'); namesStyle = [ ]; namesStyleText = [ 'z-index:2147483648;',//右下角弹窗图片广告StyleText 'display: block; padding: 0px; margin: 0px; z-index:2147483648; position: fixed; right: 0px; bottom: auto; left: auto; bottom:1px; width: 320px; height: 270px;',//右下角弹窗图片广告StyleText 'width: 100%;display: block;margin-top: 20px;',//下方APP广告StyleText 'width: 1160px;overflow: hidden; margin-top: 20px;position: relative;',//下方横幅广告StyleText 'width: 785px;overflow: hidden;position: relative;',//下方横幅广告StyleText //3DM下载(例:https://dl.3dmgame.com/patch/172845.html) 'width:274px;height:368px; overflow: hidden;float:right;position: relative;',//下方资源下载右侧图片广告StyleText ]; namesId = [ 'index_bg_box',//背景图片广告Id 'note',//右下角弹窗图片广告Id ]; namesClass = [ 'index_bg_box',//背景图片广告Class 'Indexadd-100',//主页横幅图片广告Class 'addapp',//顶部APP广告Class 'Tonglan_785',//标题下方横幅图片广告Class 'R_qingtianzhu',//右侧顶部广告Class 'R_fangkuai',//右侧底部广告Class 'dj_warp_e mg_bt30',//右侧自营游戏广告Class //3DM下载(例:https://dl.3dmgame.com/patch/172845.html) 'patchshow',//“推荐下载”广告Class ]; } //****************** //---------九游 //****************** else if (domain.includes('9game.cn')) { console.log('[广告去除] 九游'); namesStyle = [ 'data-portal-explore',//文章中加速器广告Style ]; namesStyleText = [ ]; namesId = [ ]; namesClass = [ 'ntop-banner',//文章上方APP广告Class 'guide-app-fix',//下方APP广告Class 'nbot-banner',//文章下方APP广告Class 'box-con hot-game',//文章下方热门游戏广告Class 'box-con other-games',//文章下方其他游戏广告Class 'box-con gift-con',//文章右侧游戏礼包广告Class 'ngame-book',//文章标题右侧APP二维码广告Class 'ngame-qrcode',//文章右侧APP二维码广告Class 'ngame-btns',//文章右侧APP加速器下载广告Class 'box-con right-like',//文章右侧猜你喜欢广告Class ]; } //****************** //---------18183 //****************** else if (domain.includes('18183.com')) { console.log('[广告去除] 18183'); namesStyle = [ ]; namesStyleText = [ ]; namesId = [ ]; namesClass = [ /\bad[0-9]{1,2}\b/,//右侧广告Class 'ad_right',//文章右侧广告Class 'side-scroBox-v3',//文章扫码广告Class /\bdownload-block-[0-9]{6}\b/,//web顶部广告Class ]; } //****************** //---------新浪游戏 //****************** else if (domain.includes('games.sina')) { console.log('[广告去除] 新浪游戏'); namesStyle = [ 'data-ad-pdps',//部分广告Style ]; namesStyleText = [ 'padding-bottom:45px;',//右侧图片广告StyleText ]; namesId = [ 'rightad',//左下弹窗广告Id 'leftFlashDiv',//左下活动弹窗广告Id ]; namesClass = [ 'headad',//头部广告Class 'apppop',//左下公众号扫码广告Class 'Pop-ups',//左下弹窗广告Class 'downPart',//底部APP广告Class ]; } //****************** //---------网易游戏 //****************** else if (url.includes('163.com/game')) { console.log('[广告去除] 新浪网易'); namesStyle = [ 'ad-location',//文章夹杂广告Style 'ad-position',//文章夹杂广告Style 'ad-category',//文章夹杂广告Style 'adtype',//文章夹杂广告Style ]; namesStyleText = [ ]; namesId = [ 'fixed_ad',//首页右侧广告Id ]; namesClass = [ 'js_N_navSelect ntes-nav-select c-fl',//底部网易新闻APP广告Class 'ad_module',//右侧广告Class 'newsapp-qrcode',//右侧APP广告Class 'post_columnad_mid',//文章底部广告Class 'at_item post_recommend_new post_recommend_ad',//文章底部推荐文章中伪装文章广告Class 'at_item info_ad_item clearfix mod_js_ad news_article',//首页文章底部伪装文章广告Class 'post_area post_columnad_btm',//文章最底部多图广告Class 'rg_ad mb20 mod_js_ad',//首页右侧广告Class /\barea\b.*\bbottomad\b.*\bchannel_relative_20[0-9]{2}\b/,//首页底部广告Class 'sidebar_qrcode',//首页右下角回顶上方网易新闻广告Class ]; } //****************** //---------nbegame.com //****************** else if (domain.includes('nbegame.com')) { console.log('[广告去除] NBE攻略'); namesStyle = [ ]; namesId = [ ]; namesClass = [ 'widget widget-tie zanzhu2',//右侧APP广告Class ]; } //****************** //---------A9VG电玩部落 //****************** else if (domain.includes('a9vg.com')) { console.log('[广告去除] A9VG电玩部落'); namesStyle = [ ]; namesStyleText = [ ]; namesId = [ 'guide-download',//底部横幅广告Id //A9VG论坛(例:https://bbs.a9vg.com/thread-8930434-1-1.html) 'qrcode',//右下APP二维码广告Id 'layer',//右下APP二维码广告Id //A9VG论坛(例:https://bbs.a9vg.com/forum-278-1.html) /\bSG_GG_CONTAINER_[0-9]{6}\b/,//帖子间横幅广告Id,例:SG_GG_CONTAINER_200822 ]; namesClass = [ 'vd-flexbox a9a-ad',//右侧图片广告Class 'a9-guide-download',//底部横幅广告Class 'vd-flexbox vdp-flex_1',//底部APP二维码广告Class //A9VG论坛(例:https://bbs.a9vg.com/thread-8930434-1-1.html) 'a_mu',//顶部通栏横幅广告Class 'qrcode',//右下APP二维码广告Class 'layer',//右下APP二维码广告Class ]; } /* //****************** //--------- //****************** else if (domain.includes('nbegame.com')) { console.log('[广告去除] '); namesStyle = [ ]; namesStyleText = [ ]; namesId = [ ]; namesClass = [ ]; } */ //**************其他 else { console.log('[广告去除] 其他'); namesStyle = [ ]; namesStyleText = [ ]; namesId = [ ]; namesClass = [ ]; } //************************************************************************************* //----------------------------------------广告去除函数 //************************************************************************************* function delAd(tagType,names) { //console.log("tagType:"+tagType); //console.log("names.length:"+names.length); if (names.length) { var flag = false; for (var name of names) { //console.log("name:"+name); var elements = []; switch (tagType) { case 'style': elements = document.querySelectorAll(`[${name}]`); break; case 'styleText': //需要匹配标签style的内容 elements = document.querySelectorAll('[style*="' + name + '"]'); break; case 'id': //elements.push(document.getElementById(name)); if (name instanceof RegExp) { elements = document.querySelectorAll('[id]'); elements = Array.prototype.filter.call(elements, function(element) { return name.test(element.id); }); } else { elements = document.querySelectorAll(`[id="${name}"]`); } //console.log("idelements:"+elements); break; case 'class': //elements = document.getElementsByClassName(name); if (name instanceof RegExp) { elements = document.querySelectorAll('[class]'); elements = Array.prototype.filter.call(elements, function(element) { return name.test(element.className); }); } else { elements = document.querySelectorAll(`[class="${name}"]`); } //console.log("classelements:"+elements); break; default: break; }; if (elements && elements.length) { if (elements.length > 0) { flag = true; for (var i = 0; i < elements.length; i++) { elements[i].remove(); } console.log(`[广告去除] ${name} 元素移除成功!`); } } else { //console.log(`[广告去除] 未发现 ${name} 元素!`); } } if (!flag) { //console.log("[广告去除] 未发现要移除的元素!"); } } else { //console.log("[广告去除] 暂不支持此站点。"); } } //************************************************************************************* //----------------------------------------广告去除 //************************************************************************************* // 定义要运行的函数 function runDelAd() { delAd('style',namesStyle); delAd('styleText',namesStyleText); delAd('id',namesId); delAd('class',namesClass); } runDelAd() // 每隔一秒运行一次函数 setInterval(runDelAd, 1000); })();