现在的位置: 首页php>正文
rss
解决js下跳转无referer的方法
2013年09月13日 php 评论数 1 ⁄ 被围观 29,930 次+

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就能保留了。

  1. varurl='http://www.xinqingchina.com';
  2. if(/msie(\d+\.\d+);/.test(navigator.useragent)||/msie(\d+\.\d+);/.test(navigator.useragent))
  3. {
  4. varreferlink=document.createelement('a');
  5. referlink.href=url;
  6. document.body.appendchild(referlink);
  7. referlink.click();
  8. }
  9. else
  10. {
  11. location.href=url;
  12. }
本文地址:/42/1243.html
如非注明则为本站原创文章,欢迎转载。转载请注明转载自:moon's blog
 

目前有 1 条留言 其中:访客:1 条, 博主:0 条

  1. heyuan : 2014年01月23日10:46:45  1楼

    谢博主,果断来看看