解决js下referer兼容各大浏览器的方法
作者:bea
HTTP Header referer这玩意主要是告诉人们我是从哪儿来的,就是告诉人家我是从哪个页面过来的,可以用于统计访问本网站的用户来源,也可以用来防盗链。获取这个东西最好的方式是js,如果在服务器端获取(PHP方法如:$_SERVER['HTTP_REFERER']) 不靠谱,人家可以伪造,用js获取最好,人家很难伪造, 方法:利用js的 document.referer 方法可以准确地判断网页的真实来路。 目前百度统计,google ads统计,CNZZ统计,都是用的
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 = 'http://';
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;
}
有用 | 无用
方法:利用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 = 'http://';
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中的style.cssText使用教程
- JavaScript组合拼接字符串的效率对比测试
- 5个书写JavaScript代码的坏习惯,看看你中枪了没?
- javascript解析json实例详解
- JavaScript中发布/订阅模式的简单实例
- JavaScript不刷新实现浏览器的前进后退功能
- Javascript检查图片大小不要让大图片撑破页面
- node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
- node.js中Socket.IO的进阶使用技巧
- node.js中的Socket.IO使用实例
- Node.js的特点和应用场景介绍
- Node.js中的模块机制学习笔记
- Node.js异步I/O学习笔记
- JavaScript中的ubound函数使用实例
- JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
- 网页中表单按回车就自动提交的问题的解决方案
- 详解jquery中$.ajax方法提交表单
- jquery处理json对象
- js格式化时间小结