最近遇到有些广告的问题,首先是在手机端,可能是用户访问了一些小网站的,(你懂得),然后在访问我的网站时,会带小广告过来,通常是wifi被dns劫持的情况下导入到广告脚本,

1、处理这些要知道广告的根源,广告脚本种子基本上是动态创建script来加载的,比如百度的pos广告

处理这些需要禁止动态加载脚本,防止广告加载,

(function () {

var createElement = document.createElement;

document.createElement = function (tag) {

switch (tag) {

case 'script':

console.log('禁用动态添加脚本,防止广告加载');

break;

default:

return createElement.apply(this, arguments);

}

}

})();

这是一种方法,如果你的脚本也是动态加载的话就需要自己配置自己脚本的“白名单”--过滤规则

2、另一种是通用的js广告,常见的是div嵌套iframe,就需要js清楚,话不多说

//注入页面的脚本文件

;

$(function() {

var clearAd = {

//由于manifest文件匹配规则只有通配没有非功能,所以可在此处添加不想删除广告的页面

checkUrl: function() {

var Checkflag = 0,

url = window.location.href;

//手动添加不需要清除广告的域

var notDel = [

"www.baidu.com",

"taobao.com",

"tmall.com",

"jd.com"

];

//正则匹配

for (var i = 0; i < notDel.length; i++) {

var reg = new RegExp(notDel[i], "g");

if (reg.test(url)) {

console.log('This page does not clear ads.');

break;

} else {

if (i == notDel.length - 1) {

Checkflag = 1;

}

}

}

if (Checkflag == 1) {

this.clear();

this.findSomeAdPossible();

}

},

clear: function() {

console.log('Clear Start');

//此处可手动添加广告框id名,去除顽疾ad必备

var ad_id_name = [

"cproIframe2001holder",

"cproIframe2002holder",

"cproIframe2003holder",

"cproIframe2004holder",

"cproIframe2005holder",

"cproIframe2006holder",

"cproIframe2007holder",

"cproIframe2008holder",

"cproIframe2009holder",

"id_300x250_banner_top",

"ads",

"google_image_div",

"mx_cs_71603_1261456",

"AC_TR86_71603",

"cproIframe_u2060917_1",

"content_right",

"left-promotion",

"top_ads",

"layerd"

];

//此处添加广告框类名

var ad_css_name = [

"cproIframe_u410704_3",

"img_ad",

"hover_btn"

];

for (var i = 0; i < ad_id_name.length; i++) {

//使用remove删除节点,提升性能

$('#' + ad_id_name[i]).remove();

}

for (var i = 0; i < ad_css_name.length; i++) {

$('.' + ad_css_name[i]).remove();

}

},

//简单的智能算法

findSomeAdPossible: function() {

var sap = $('div iframe'),

ad_img = $('div script').parent().find('img,embed'),

float_img = $('div object').parent().find('img,embed');

this.arrayDel(sap, 360, 200);

this.arrayDel(ad_img, 350, 150);

this.arrayDel(float_img, 350, 150);

},

arrayDel: function(arr, conWidth, conHeight) {

var len = arr.length;

for (var i = 0; i < len; i++) {

var self = arr.eq(i);

if (self.width() <= conWidth || self.height() <= conHeight) {

self.remove();

}

}

},

init: function() {

this.checkUrl();

}

}

$(document).ready(function() {

clearAd.init();

//为防止ajax异步延时加载的广告隔4s再清除一次

setTimeout(function() {

clearAd.init();

}, 4000)

});

})

引入这个文件可以过滤大部分的广告,其他的还需要继续完善广告。

如果有其他更好的方法,请联系我,蟹蟹。

java 屏蔽广告js_手机端JS屏蔽广告相关推荐

  1. php代码适配手机端,js / php 手机端适配代码

    第一. 使用js让广告适配合适的设备(当然你也可以直接让css来隐藏掉广告,但是js可以让网页的速度快一点,因为不需要去加载web端的广告了) function is_mobile() { var r ...

  2. android 全屏广告,手机端全屏广告展示问题

    我最近在做一个手机端展示全屏广告的demo,广告素材的尺寸是320x480,是标准的全屏尺寸.我在屏幕小一点的手机可以全屏显示图片,但是针对一些大的屏幕就会最下面有一段是空白的.我想问下怎么设置可以让 ...

  3. H5手机端JS常用屏幕宽度和高度获取方法

    js获取手机屏幕宽度.高度 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document. ...

  4. android手机 环境变量 文件,【图片】【教程】配置安卓Java环境变量【手机端反编译吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我:Baksmaling- 我:加载资源表-- 我:加载. 我:解码AndroidManifest.xml资源-- 从文件加载资源表:? / apktoo ...

  5. 安卓java环境配置文件_【图片】【教程】配置安卓Java环境变量【手机端反编译吧】_百度贴吧...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我:Baksmaling- 我:加载资源表-- 我:加载. 我:解码AndroidManifest.xml资源-- 从文件加载资源表:? / apktoo ...

  6. 手机html5卡,手机端js和html5刮刮卡效果

    H5的Canvas实现刮刮卡效果. 刮开之后是随机生成的8位码. IE8不行... HTML5 刮刮卡 .demo{width:320px; margin:10px auto 20px auto; m ...

  7. 网站右侧广告悬浮代码html,js网站广告悬浮代码

    var flo = document.getElementById('flo'); var open = document.getElementById('open'); var max_left = ...

  8. 彻查手机端浏览博客园出现广告一事!

    背景: 不知什么起,用手机端浏览博客园的频率变多了. 也不知什么时候,浏览就成了这个样子,满屏是广告: 手机端就那么点空间,三分之二都是广告,我靠!!!!! 于是,不断追寻着真相!!! 1:怀疑打赏插 ...

  9. android毕业设计——基于Android+Java+Python的手机端办公自动化OA系统设计与实现(毕业论文+程序源码)——办公自动化OA系统

    基于Android+Java+Python的手机端办公自动化OA系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Android+Java+Python的手机端办公自动化OA系统设计与实 ...

  10. pc变手机端html,让移动端的事件变为PC端的事件

    最近看到了一个手机端的小程序,可是在电脑端无法使用,原因是其中一个js是手机端js,怎么将这个js专为PC端可以使用的js function tabLoad(obj,oJson){ var This= ...

最新文章

  1. 使用python建立简单的树机构
  2. 如何提升深度学习性能?数据、算法、模型一个都不能少
  3. linux搭建gitlab
  4. retargeting PHP,Retargeting the Animation 教学
  5. C++ 基础概念、语法和易错点整理
  6. WebCast学习链接
  7. python3-开发进阶-RESTful 软件架构风格
  8. 【重难点】【Java基础 06】浅克隆与深克隆、Object类的常用方法、util包下的接口
  9. redis源码剖析(3):基础数据结构dict
  10. linux下载tar.gz文件夹,手把手给你细说linux-Ubuntu如何安装tar.gz文件
  11. char和char*
  12. Javascript 535种方式!!!实现页面重载
  13. asp.net体育用品销售系统
  14. Unity 2D 自定义碰撞系统(一)
  15. Snapchat面试题:移除K位
  16. MATLAB学习笔记 MATLAB仿PhotoShop油画/毛玻璃/漩涡/锥形等特效
  17. 金融机构数字化转型对央企建筑公司数字化转型的启示
  18. 修改linux系统的时间EDT和EST为CST
  19. Techo TVP物联网开发者峰会青润的总结(带视频和完整未剪切音频版本)
  20. 各种友(e)善(xin)数论总集(未完待续),从入门到绝望

热门文章

  1. 基于STM32硬币识别检测
  2. hotmail手机端_hotmail邮箱app下载
  3. Android Studio 解决数据库手机电脑不同步
  4. va_list使用方法
  5. Javase 第五次作业智商题
  6. 售价占激光电视价格一半 抗光幕为何这么贵?
  7. Matlab 仿真——直流电机速度控制(1)直流电机建模
  8. win10防火墙_怎么关闭防火墙
  9. Tomcat:The server encountered an internal error () that prevented it from fulfilling this request.
  10. 【OpenGrok代码搜索引擎】一、OpenGrok简介