解决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 相关文章推荐
JS在textarea光标处插入文本的小例子
Mar 22 Javascript
JavaScript获取页面中表单(form)数量的方法
Apr 03 Javascript
jQuery实现模仿微博下拉滚动条加载数据效果
Dec 25 Javascript
js实现div模拟模态对话框展现URL内容
May 27 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
原生js实现鼠标跟随效果
Feb 28 Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
Mar 17 Javascript
Vue.js实现的表格增加删除demo示例
May 22 Javascript
vue-cli V3.0版本的使用详解
Oct 24 Javascript
小程序实现长按保存图片的方法
Dec 31 Javascript
详解微信小程序之提高应用速度小技巧
Jan 07 Javascript
详解JS预解析原理
Jun 16 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
SONY ICF-F10中波修复记
2021/03/02 无线电
Mysql的GROUP_CONCAT()函数使用方法
2008/03/28 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
十个PHP高级应用技巧果断收藏
2015/09/25 PHP
php+ajax实现无刷新的新闻留言系统
2020/12/21 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
[全兼容哦]--实用、简洁、炫酷的页面转入效果loing
2007/05/07 Javascript
js获取url参数的使用扩展实例
2007/12/29 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
跟我学习javascript的函数和函数表达式
2015/11/16 Javascript
js实现跨域访问的三种方法
2015/12/09 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
2017/04/27 Javascript
vue使用stompjs实现mqtt消息推送通知
2017/06/22 Javascript
Angular4绑定html内容出现警告的处理方法
2017/11/03 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
vue组件中的样式属性scoped实例详解
2018/10/30 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
jquery树形插件zTree高级使用详解
2019/08/16 jQuery
vue实现倒计时获取验证码效果
2020/04/17 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
JS实现随机点名器
2020/04/12 Javascript
简单说明Python中的装饰器的用法
2015/04/24 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
2016/08/28 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Python 监测文件是否更新的方法
2019/06/10 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
Python partial函数原理及用法解析
2019/12/11 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
Python基于数列实现购物车程序过程详解
2020/06/09 Python
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
物理力学求职信
2014/02/18 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
学生抄作业检讨书(2篇)
2014/10/17 职场文书
零基础学java之带返回值的方法的定义和调用
2022/04/10 Java/Android
Mysql调整优化之四种分区方式以及组合分区
2022/04/13 MySQL