// ==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
// ==/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);
})();