解决js下referer兼容各大浏览器的方法


Posted in Javascript onNovember 03, 2014

HTTP Header referer这玩意主要是告诉人们我是从哪儿来的,就是告诉人家我是从哪个页面过来的,可以用于统计访问本网站的用户来源,也可以用来防盗链。获取这个东西最好的方式是js,如果在服务器端获取(PHP方法如:$_SERVER['HTTP_REFERER']) 不靠谱,人家可以伪造,用js获取最好,人家很难伪造,

方法:利用js的 document.referer 方法可以准确地判断网页的真实来路。 目前百度统计,google ads统计,CNZZ统计,都是用的这个方法。防盗链也很简单了,js里判断来路url如果不是本站不显示图片。

众所周知,我们web开发人员痛恨IE浏览器,因为IE不支持标准,标准外的默认行为又和其他浏览器经常不一致:

在IE中用javascript做跳转,比如用window.location.href = “”; google如果使用document.referrer无法取到浏览器请求的HTTP referrer,因为IE清空了

而其他主流浏览器Firefox和Chrome都会保留referrer,没办法,这意味着IE又要享受“部长级”特殊待遇了:

以下代码可以解决ie的这个问题:
//检测如果是ie浏览器,则手动的给增加一个referer
这样的原理就是给IE浏览器的页面偷偷加了个链接,然后自动点这个链接,于是referrer就能保留了。

var url = 'https://3water.com';   

if (/MSIE (\d+\.\d+);/.test(navigator.userAgent) || /MSIE(\d+\.\d+);/.test(navigator.userAgent))   

{   

    var referLink = document.createElement('a');   

    referLink.href = url;   

    document.body.appendChild(referLink);   

    referLink.click();   

}   

else  

{   

    location.href = url;   

} 
Javascript 相关文章推荐
字符串的replace方法应用浅析
Dec 06 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
Mar 12 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
js中取得变量绝对值的方法
Jan 03 Javascript
JavaScript事件委托用法分析
Jan 24 Javascript
JavaScript操作cookie类实例
Mar 31 Javascript
JavaScript基于原型链的继承
Jun 22 Javascript
vue实现通讯录功能
Jul 14 Javascript
VUE项目中加载已保存的笔记实例方法
Sep 14 Javascript
node+multer实现图片上传的示例代码
Feb 18 Javascript
如何在JavaScript中等分数组的实现
Dec 13 Javascript
JavaScript实现九宫格拖拽效果
Jun 28 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
Nov 02 #Javascript
jQuery中ajax和post处理json的不同示例对比
Nov 02 #Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
Nov 02 #Javascript
加载列表时jquery获取ul中第一个li的属性
Nov 02 #Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
Nov 02 #Javascript
jQuery ajax serialize() 方法使用示例
Nov 02 #Javascript
js获取UserControl内容为拼html时提供方便
Nov 02 #Javascript
You might like
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
自己写的兼容低于PHP 5.5版本的array_column()函数
2014/10/24 PHP
PHP 实现人民币小写转换成大写的方法及大小写转换函数
2017/11/17 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
JMenuTab简单使用说明
2008/03/13 Javascript
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
JavaScript Sort 表格排序
2009/10/31 Javascript
Javascript学习笔记5 类和对象
2010/01/11 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
JS中的异常处理方法分享
2013/12/22 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
JS使用ajax方法获取指定url的head信息中指定字段值的方法
2015/03/24 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
jquery实现经典的淡入淡出选项卡效果代码
2015/09/22 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
vue异步加载高德地图的实现
2018/06/19 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
JS操作Fckeditor的一些常用方法(获取、插入等)
2020/02/19 Javascript
[01:45]绝对公平!DOTA2队长征召模式详解
2014/04/25 DOTA
Python中用altzone()方法处理时区的教程
2015/05/22 Python
python/golang 删除链表中的元素
2020/09/14 Python
详解pycharm配置python解释器的问题
2020/10/15 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
de Bijenkorf比利时官网:荷兰最知名的百货商店
2017/06/29 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
大学生的四年学习自我评价
2013/12/13 职场文书
企业总经理岗位职责
2014/02/13 职场文书
银行先进个人事迹材料
2014/05/11 职场文书
幼儿园教学反思范文
2016/03/02 职场文书
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript