如何检测浏览器是否安装了Adblock,uBlock Origin,Adguard,uBlock等广告屏蔽插件
由于我们网站上的广告经常被一些广告插件给屏蔽掉,上级给我下达了一个检测浏览器是否安装了屏蔽广告的插件的任务。
经过研究,借鉴,参考,整合了如下三种解决方案。
方案一:
利用广告插件通过对含有google-ad,testad,ad等,带ad的敏感词汇的dom元素进行屏蔽的方式寻找突破口,我模拟了一个<div class="google-ad">这里是一个广告位</div>将这个div加载在页面的dom节点的最顶端,发现所有的广告插件,都能检测到这个广告位并且采用dispaly:none,或者将div的高度塌陷变为0,于是我们有了下面的方法。
在页面顶部加上<div class="google-ad testAd"> 这里是一个广告位</div>,然后加入如下代码:
<script src="jquery.min.js"></script>
<script>
$(function(){
if($('.google-ad').height()==0 || $('.google-ad').css('display') == 'none'){
console.log($('.google-ad').height());
console.log($('.google-ad').css('display'));
alert('您的浏览器安装了屏蔽广告的插件Adblock,or uBlock Origin,要使您能够正常使用网站请先屏蔽浏览器上的相关的广告屏蔽插件。');
} })
</script>
方案二:
模拟动态加载一个广告(ads.js)的方式,如果安装了广告插件,则这个广告js(ads.js)不会被加载成功。
新建一个空白的ads.js文件。
在页面上写上如下代码:
<script src="jquery.min.js"></script>
<div style="text-align:center;clear:both;">
<script>
$(function(){
$.ajax({
url: "ads.js",
dataType: "script"
}).fail(function () {
alert('您的浏览器安装了屏蔽广告的插件Adblock,or uBlock Origin,要使您能够正常使用网站请先屏蔽浏览器上的相关的广告屏蔽插件。');
});
})
</script>
方案三:
参照网上一位仁兄写的代码,亲测有效。项目地址:https://github.com/sitexw/FuckAdBlock。
方案四:逆向思维
要想自己网站上的广告位图片不被屏蔽掉,网站上加载的广告js能够正常加载,就不要使用能够被广告插件轻易读取识别的命名规则去命名广告了。
这个问题的解决方法,再次检验了一个实用方法论:当苦苦思索的方法解决不了问题时,不妨转化思路可以采取迂回的战术间接寻求问题的解决方法。
如何检测浏览器是否安装了Adblock,uBlock Origin,Adguard,uBlock等广告屏蔽插件的更多相关文章
- adblockTester通过js检测用户浏览器是否安装了AdBlock
adblockTester 简介 首先有必要介绍一下AdBlock,它是一款知名网页广告屏蔽插件,在各大主流浏览器上均有AdBlock插件. AdBlock为用户带来了一片蓝天,却苦了站长,尤其是苦逼 ...
- 怎样检测浏览器是否安装了某个插件, 比如flash
首先, 我们可以获取浏览器安装的所有在插件: navigator.plugins 它会返回一个类似数组的对象, 包含所有已安装插件的具体信息. navigator.plugins; 然后我们可以通过正 ...
- 谷歌浏览器安装adblock广告屏蔽插件
访问不到google的应用商店的话,就从网上直接查找adblock for chrome.打开浏览器的开发者模式,下载解压后直接拖拽到浏览器即可.下载地址http://www.cr173.com/so ...
- Google广告屏蔽插件adBlock
今天在博客园写博客的时候发现莫名其妙的在右侧被植入了广告,询问了管理员得知存在以下几种可能: 1.电信网络供应商劫持网页,植入广告 2.ADSafe(是一款去除广告的软件,效果很不错) 但经过最终排除 ...
- 判断客户端浏览器是否安装了Flash插件
<script> /*检测浏览器是否安装了插件(在IE 中无效)*/ function hasPlugin(name){ name = name.toLowerCase(); for(va ...
- js检测浏览器中是否安装了flash播放插件
这两天工作中需要在网页中嵌入flash小游戏,我使用的是swfobject.js version:1.5.其他方面都很好,唯独版本检测这里一直没有搞通,后来实在无奈之下,改用js来检测浏览器的flas ...
- 检测Office是否安装以及获取安装 路径 及安装版本 QQ,迅雷,旺旺 C#代码
#region 检测Office是否安装 ///<summary> /// 检测是否安装office ///</summary> ///<param name=" ...
- navigator,JS检测浏览器插件
最早由Netscape Navigator 2.0引入的navigator对象,现在已经成为识别客户端浏览器的事实标准.虽然其它浏览器也通过其它方式提供了相同或相似的信息(例如,IE中的window. ...
- JS检测浏览器Adobe Reader插件
Web应用中当我们希望向用户显示pdf文档时候,如果用户安装了Adobe Reader之类的pdf阅读器,就可以直接打开文档在浏览器中显示, 但是,当用户没有安装这类软件的时候,自然是打不开的,为了系 ...
随机推荐
- “几何画板+MathType”双11组合特价,优惠多多
工欲善其事,必先利其器!几何画板和MathType作为数学老师必备工具,在数学教学中起着非常重要的作用.为回馈老师们做出的伟大贡献,在双11狂欢节期间,MathType和几何画板迎来史上第一次组合特惠 ...
- Ubantu apt source 国内
位置 /etc/apt/sources.list apt-get update deb http://mirrors.163.com/ubuntu/ precise main restricted u ...
- 20 个常用的 CSS 技巧
1. 黑白图像 这段代码会让你的彩色照片显示为黑白照片,是不是很酷? img.desaturate { filter: grayscale(100%); -webkit-filter: g ...
- Eclipse之相关快捷键
Eclipse的编辑功能非常强大,掌握了Eclipse快捷键功能,能够大大提高开发效率.Eclipse中有如下一些和编辑相关的快捷键. 1.[ALT+/] 此快捷键为用户编辑的好帮手,能为用 ...
- MY97默认只能选择昨天的时间
<input type="text" id="startTime" class="Wdate" style="width: ...
- PE导入表分析
A.dll 导入 B.dll 导出函数 A.dll 表内容 这个结构指向的B导出函数的地址 Hook这个位置 等同于 Hook B.dll导出函数
- linux, sysrq,acpi,apci,uio,subsystem daemon
linux, sysrq,acpi,apci Linux设备模型 一.sysfs文件系统: sysfs文件系统是Linux2.6内核引入的,它被看成是与proc.devfs和devpty等同类别的文 ...
- 用Python构建你自己的推荐系统
用Python构建你自己的推荐系统 现如今,网站用推荐系统为你提供个性化的体验,告诉你买啥,吃啥甚至你应该和谁交朋友.尽管每个人口味不同,但大体都适用这个套路.人们倾向于喜欢那些与自己喜欢的其他东西相 ...
- 剑指Offer——孩子们的游戏(圆圈中最后剩下的数)
题目描述: 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此.HF作为牛客的资深元老,自然也准备了一些小游戏.其中,有个游戏是这样的:首先,让小朋友们围成一个大圈.然后,他随机 ...
- 转!!mybatis xml 传值 if test判断
当mapper方法传参数 为 String时,且xml中药进行参数比较 比如 是不是等于1 或者等于2 方式1. 方式2. 转自:https://blog.csdn.net/chenaini119/a ...