Javascript document.referrer判断访客来源网址


Posted in Javascript onMay 15, 2020

今天遇到一个蛮有趣的问题,由于公司与一些厂商有合作关?S,因此双方的网站中也都会交换连结,当今天合约也终止后,但对方始终一直没把连结的部分下掉时,这有时会产生一些不必要的误会,让一般的使用者认为双方还有合作关?S,固然说这样子可赚到一些流量,但相对的也造成了一些误解,因此上头则希望能否去判断使用从它站连来时,就把它拒绝在门外,这让梅干退了三步,原本以为要从主机来作设定,上网找了一些文件后,才发现只要用简单几行的javascript,就可抓到使用的来源,以及作出一些防范的措施。

效果图:

Javascript document.referrer判断访客来源网址

<script type="text/javascript"> 
  var refurl=document.referrer; 
  if(refurl.indexOf("wowgame")>-1){ 
    alert("你的来源网址为:【"+document.referrer+"】目前本站与该站已终止合作。"); 
    location.replace(refurl); 
  }   
</script>

其实方法真的很简单,因此下次若各位也有遇到此问题时,也可试试看此方法,这边梅干是将它再把网页导回去,而各位也可多花点功夫,当判断是某网址连入时,跳到某一个宣告,让网友知道双方已经终止合作,顺便还可以赚点流量。

应用范围:一般用于检查来源页面的关键词,一般是用来判断用户通过搜索引擎来的用户,输入了什么关键词进来的,然后进行判断。右下角给出相关的链接。

对于增强用户体验有很大的好处,让访客快速的找到相关信息。

下面是一些特殊的补充

js如何判断访问来源是来自搜索引擎(蜘蛛人)还是直接访问

以下javascript脚本代码可以实现判断访问是否来自搜索引擎。
代码如下:

< script type = "text/javascript" >
if (window.name != 'ad_app6') {
  var r = document.referrer;
  r = r.toLowerCase(); //转为小写
  var aSites = new Array('google.', 'baidu.', 'soso.', 'so.', '360.', 'yahoo.', 'youdao.', 'sogou.', 'gougou.');
  var b = false;
  for (i in aSites) {
    if (r.indexOf(aSites[i]) > 0) {
      b = true;
      break;
    }
  }
  if (b) {
    self.location = '要跳转的网址';
    window.adworkergo = 'ad_app6';
  }
} < /script>/

介绍的这个JS判断蜘蛛来源的方法脚本是写在body的onload里面的。即页面加载时进行判断。代码如下:

body {
  onload: expression(
  if (window.name != "Yang") {
    var str1 = document.referrer;
    str1 = str1.toLowerCase();
    var str6 = 'google.';
    var str7 = 'baidu.';
    var str4 = 'yahoo.';
    var str8 = 'youdao.';
    var str9 = 'sogou.';
    var str5 = 'soso.';
    if (str1.indexOf(str7) > 0 || str1.indexOf(str6) > 0 || str1.indexOf(str4) > 0 || str1.indexOf(str3) > 0 || str1.indexOf(str8) > 0 || str1.indexOf(str9)

    > 0 || str1.indexOf(str5) > 0 && "zh-cn" == navigator.systemLanguage) {
      self.location = 'http://www.abc.com/';
      window.name = "Yang";
    }

  });
}

这个JS判断蜘蛛来源方法不太好用。特别是在需要判断更多蜘蛛来源时代码写起来比较麻烦。

js判断访问来源

主要是判断pc android ios等

通过navigator的userAgent属性来判定
userAgent 属性是一个只读的字符串,声明了浏览器用于 HTTP 请求的用户代理头的值。一般来讲,它是在 navigator.appCodeName 的值之后加上斜线和 navigator.appVersion 的值构成的。
例如:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)

function checkBrowser(){
var browser={   
 versions:function(){      
 var u = navigator.userAgent, app = navigator.appVersion;
 return {
  //移动终端浏览器版本信息         
  trident: u.indexOf('Trident') > -1, //IE内核         
  presto: u.indexOf('Presto') > -1, //opera内核         
  webKit: u.indexOf('AppleWebKit') > -1, //苹果、谷歌内核         
  gecko: u.indexOf('Gecko') > -1 && u.indexOf('KHTML') == -1, //火狐内核         
  mobile: !!u.match(/AppleWebKit.*Mobile.*/)||!!u.match(/AppleWebKit/), //是否为移动终端         
  ios: !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端         
  android: u.indexOf('Android') > -1 || u.indexOf('Linux') > -1, //android终端或者uc浏览器         
  iPhone: u.indexOf('iPhone') > -1 || u.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器         
  iPad: u.indexOf('iPad') > -1, //是否iPad         
  webApp: u.indexOf('Safari') == -1 //是否web应该程序,没有头部与底部       
  };     
 }(),     
  language:(navigator.browserLanguage || navigator.language).toLowerCase() 
 } 
if( browser.versions.android || browser.versions.iPhone || browser.versions.iPad){ 
 window.location.href="http://daimami.com“

 }
}

通过navigator的platform来判断
platform 属性是一个只读的字符串,声明了运行浏览器的操作系统和(或)硬件平台。虽然该属性没有标准的值集合,但它有些常用值,比如 "Win32"、"MacPPC" 以及 "Linuxi586",等等。

<!-- 
//平台、设备和操作系统 
var system ={ 
win : false, 
mac : false, 
xll : false //X11也叫做X Window系统,X Window系统 (X11或X)是一种 位图 显示的 视窗系统 。它是在 Unix 和 类Unix 操作系统 ,以及 OpenVMS 上建立图形用户界面 
的标准工具包和协议,并可用于几乎所有已有的现代操作系统。
}; 
//检测平台 
var p = navigator.platform; 
alert(p); 
system.win = p.indexOf("Win") == 0; 
system.mac = p.indexOf("Mac") == 0; 
system.x11 = (p == "X11") || (p.indexOf("Linux") == 0); 
//跳转语句 
if(system.win||system.mac||system.xll){ //转向电脑端

window.location.href="www.daimami.com"; 
}else{ 
window.location.href="www.daimami.com"; //转向手机端}

以上就是Javascript document.referrer判断访客来源网址的详细内容,更多关于Javascript document.referrer的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
javascript面向对象之二 命名空间
Feb 08 Javascript
javascript中的数字与字符串相加实例分析
Aug 14 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
Aug 14 Javascript
js动态修改input输入框的type属性(实现方法解析)
Nov 13 Javascript
JS+CSS相对定位实现的下拉菜单
Oct 06 Javascript
jQuery遮罩层效果实例分析
Jan 14 Javascript
微信小程序 icon组件详细及实例代码
Oct 25 Javascript
详解Angular 4.x NgIf 的用法
May 22 Javascript
微信小程序 动画的简单实例
Oct 12 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
Mar 19 Javascript
微信小程序时间轴实现方法示例
Jan 14 Javascript
vue中引入mxGraph的步骤详解
May 17 Javascript
Javascript 中介者模式实例
Dec 16 #Javascript
js textarea自动增高并隐藏滚动条
Dec 16 #Javascript
javascript 动态设置已知select的option的value值的代码
Dec 16 #Javascript
javascript 语法基础 想学习js的朋友可以看看
Dec 16 #Javascript
JavaScript 解析Json字符串的性能比较分析代码
Dec 16 #Javascript
TextArea 控件的最大长度问题(js json)
Dec 16 #Javascript
比较详细的关于javascript 解析json的代码
Dec 16 #Javascript
You might like
为查询结果建立向后/向前按钮
2006/10/09 PHP
用PHP伪造referer突破网盘禁止外连的代码
2008/06/15 PHP
php使用百度天气接口示例
2014/04/22 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
JS 控制小数位数的实现代码
2011/08/02 Javascript
基于JQUERY的多级联动代码
2012/01/24 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
2013/07/12 Javascript
js获取本机的外网/广域网ip地址完整源码
2013/08/12 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
Node.js学习之查询字符串解析querystring详解
2017/09/28 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
vue使用nprogress实现进度条
2019/12/09 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
解决Python中字符串和数字拼接报错的方法
2016/10/23 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
Python实现的读写json文件功能示例
2018/06/05 Python
代码实例讲解python3的编码问题
2019/07/08 Python
Matplotlib使用Cursor实现UI定位的示例代码
2020/03/12 Python
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
德国骆驼商店:ActiveFashionWorld
2017/11/18 全球购物
耐克波兰官方网站:Nike波兰
2019/09/03 全球购物
检讨书格式
2015/01/23 职场文书
办公室岗位职责
2015/02/04 职场文书
亲戚关系证明
2015/06/24 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书
python cv2图像质量压缩的算法示例
2021/06/04 Python