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

前端之家收集整理的这篇文章主要介绍了解决js下referer兼容各大浏览器的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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


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


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


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


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


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


@H_404_0@<div class="codetitle"><a style="CURSOR: pointer" data="73530" class="copybut" id="copybut73530" onclick="doCopy('code73530')"> 代码如下:
<div class="codebody" id="code73530">
var url = '//www.jb51.cc';
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;
}

原文链接:https://www.f2er.com/js/57391.html

猜你在找的JavaScript相关文章