JS前端广告拦截实现原理解析


Posted in Javascript onFebruary 17, 2020

这篇文章主要介绍了JS前端广告拦截实现原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

主流的浏览器,默认都开启了广告过滤,这对于用户(浏览者)来说,不但加快了访问网页的速度,而且也避免了勿点一些垃圾色情的东西,可以说绿色了网络环境。

第一、对于正常的广告拦截前端开发需要注意的是:

在请求图片与js文件、接口、文件内容最好不要包含ad、guanggao等关键词,可能被拦截

我们可以用一个请求来判断浏览器有没有开启广告拦截,如果我们需要插入广告,可以提示用户关闭广告拦截

<script src="http://demo.3water.com/adview_pic_cpc_cpm_cpa_guanggao_gg_ads_300x250.js" type="text/javascript"></script>
/*这个js文件的内容为var killads = true;*/
<script type="text/javascript"> 
if (typeof(killads)=='undefined'){alert('广告被过滤');} 
</script>

第二、浏览器对window.opne()的拦截,我们可以通过var x =window.open(url);然后判断x == undefined来判断新窗口是否被拦截。

(一)、 一般情况下,如果在js中调用window.open()函数去打开一个新tab页,浏览器会进行拦截,认为打开的是一个广告页。

(二)、所以如果不想让浏览器拦截,可以将这个“函数”改为用户点击时触发,这样浏览器就认为是用户想访问这个页面,而不是你直接弹出给用户。

(三)、即使是用户点击事件,如果在一次事件里调用多次window.open()函数,则只有第一次被当作正常打开,之后的还是会被当作广告页。

(四)、如果在点击事件里有ajax调用,window.open()在回调函数里执行,则浏览器仍然认为是js调用并当作广告拦截。除非ajax设置为“同步”模式。也可以用下面的方法解决

var newWin = window.open(); 
$.ajax({ 
  url:xxx, 
  success: function(data){ 
    newWin.location = data.url; 
  } 
});

(五)、其他场景:

有的下载功能是这样实现的,当用户点击某个按钮后,在后台生成一个地址返回给前端,前端在请求的回调方法中,通过window.open()打开这个链接

由于前端需要给后台发送异步请求,所以window.open()也会被拦截

可行的方法是,在回调之后,生成一个<a>标签,且href设置为下载地址,然后触发这个<a>标签的点击事件,注意:<a>标签一定要加一个download属性,否则还是会被拦截

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Track Image Loading效果代码分析
Aug 13 Javascript
js 操作select与option(示例讲解)
Dec 20 Javascript
js保留小数点后几位的写法
Jan 03 Javascript
实现无刷新联动例子汇总
May 20 Javascript
值得分享的Bootstrap Ace模板实现菜单和Tab页效果
Dec 30 Javascript
JavaScript字符串常用的方法
Mar 10 Javascript
ES6入门教程之Iterator与for...of循环详解
May 17 Javascript
DVA框架统一处理所有页面的loading状态
Aug 25 Javascript
VueJs组件prop验证简单介绍
Sep 12 Javascript
iview tabs 顶部导航栏和模块切换栏的示例代码
Mar 04 Javascript
js实现select下拉框选择
Jan 11 Javascript
jQuery HTML css()方法与css类实例详解
May 20 jQuery
JavaScript代码异常监控实现过程详解
Feb 17 #Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 #Javascript
npx create-react-app xxx创建项目报错的解决办法
Feb 17 #Javascript
Vue的双向数据绑定实现原理解析
Feb 17 #Javascript
JavaScript函数Call、Apply原理实例解析
Feb 17 #Javascript
javascript异常处理实现原理详解
Feb 17 #Javascript
Vue+webpack实现懒加载过程解析
Feb 17 #Javascript
You might like
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
YII框架http缓存操作示例
2019/04/29 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
js将iframe中控件的值传到主页面控件中的实现方法
2013/03/11 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
2015/10/14 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
深入浅析Vue组件开发
2016/11/25 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
bootstrap select2插件用ajax来获取和显示数据的实例
2018/08/09 Javascript
详解基于原生JS验证表单组件xy-form
2019/08/20 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
three.js 将图片马赛克化的示例代码
2020/07/31 Javascript
vue-resource 拦截器interceptors使用详解
2021/01/18 Vue.js
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
Python语言快速上手学习方法
2018/12/14 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
python的pytest框架之命令行参数详解(上)
2019/06/27 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
python调用HEG工具批量处理MODIS数据的方法及注意事项
2020/02/18 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
python使用正则表达式匹配txt特定字符串(有换行)
2020/12/09 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
英语系本科生求职信范文
2013/12/18 职场文书
最经典的商业地产项目广告词
2014/03/13 职场文书
公司总经理任命书
2014/06/05 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
2016年6.5世界环境日宣传活动总结
2016/04/01 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python