javascript 的navigator属性,不常用,但是用处也不少,主要用处是在做浏览器兼容的问题的时候,现在有的网站已经不兼容IE6,用户假如用IE6浏览网页的话,会提示浏览器升级等信息。或者判断是手机用户还是电脑用户,手机用户调整至手机网站,电脑用户之间跳转至电脑网页等等。

首先我们来谈谈navigator属性。

你可以在自己电脑上,用复制如下信息,运行一下,看看:

var x = navigator;
document.write("CodeName=" + x.appCodeName);
document.write("<br />");
document.write("MinorVersion=" + x.appMinorVersion);
document.write("<br />");
document.write("Name=" + x.appName);
document.write("<br />");
document.write("Version=" + x.appVersion);
document.write("<br />");
document.write("CookieEnabled=" + x.cookieEnabled);
document.write("<br />");
document.write("CPUClass=" + x.cpuClass);
document.write("<br />");
document.write("OnLine=" + x.onLine);
document.write("<br />");
document.write("Platform=" + x.platform);
document.write("<br />");
document.write("UA=" + x.userAgent);
document.write("<br />");
document.write("BrowserLanguage=" + x.browserLanguage);
document.write("<br />");
document.write("SystemLanguage=" + x.systemLanguage);
document.write("<br />");
document.write("UserLanguage=" + x.userLanguage);

我的电脑的运行结果如下:

CodeName=Mozilla
MinorVersion=undefined
Name=Netscape
Version=5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
CookieEnabled=true
CPUClass=undefined
OnLine=true
Platform=Win32
UA=Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
BrowserLanguage=undefined
SystemLanguage=undefined
UserLanguage=undefined

对照一下即可一目了然。

根据上面的navigator属性,我们可以来判断浏览器版本了,下面我们一起来做一个例子:

页面在IE7一下,提示浏览器升级,其他浏览器正常浏览

可以写如下代码:

if(window.ActiveXObject){var browser=navigator.appName var b_version=navigator.appVersion var version=b_version.split(";"); var trim_Version=version[1].replace(/[ ]/g,""); if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0"  || trim_Version=="MSIE7.0" ) { $(".ie7andie6").show();$(".contentnone").hide();} }

html我们可以这么写:

  <div class="contentnone" style="margin-top:30px;text-align: center;font-size:18px;">各位亲们,大家好,我在IE8以上可以正常浏览啊!</div><div class="ie7andie6 mod-main" style="display:none;"><div class=tip><p>您使用的浏览器版本较低,建议您换用下面这些浏览器试试吧。</p></div><ul class="clr mod-browsers"><li><A class=chrome href="http://www.google.cn/intl/zh-CN/chrome/" target=_blank>Chrome</A> </li><li><A class=ie href="http://windows.microsoft.com/zh-cn/internet-explorer/ie-10-worldwide-languages" target=_blank>IE10</A> </li><li><A class=ff href="http://firefox.com.cn/" target=_blank>Firefox</A> </li></ul><div class=switch-pic></div>
</div>

IE8及其别的版本就可以正常浏览了!

另外你也可以用这个方法来判断是手机端用户还是电脑用户:

var a=navigator.userAgent;
if(a.indexOf("Android")!=-1 || a.indexOf("iPhone")!=-1 || a.indexOf("iPad")!=-1 ){//跳转到手机网站}//tips: 也可以用try catch 对手机特有的touch事件监测,如果支持这些事件就可以跳转到H5页面;

 

js 判断安卓或者ios 之indexOf方式:

//判断访问终端
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.*/), //是否为移动终端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 , //是否为iPhone或者QQHD浏览器iPad: u.indexOf('iPad') > -1, //是否iPadwebApp: u.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部weixin: u.indexOf('MicroMessenger') > -1, //是否微信 (2015-01-22新增)qq: u.match(/\sQQ/i) == " qq" //是否QQ};}(),language:(navigator.browserLanguage || navigator.language).toLowerCase()
}

使用方法:

//判断是否IE内核
if(browser.versions.trident){ alert("is IE"); }
//判断是否webKit内核
if(browser.versions.webKit){ alert("is webKit"); }
//判断是否移动端
if(browser.versions.mobile||browser.versions.android||browser.versions.ios){ alert("移动端"); }

js 判断安卓或者ios 之正则表达式方式:

if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {//alert(navigator.userAgent);  //苹果端
} else if (/(Android)/i.test(navigator.userAgent)) {//alert(navigator.userAgent); //安卓端
} else {//pc端
};

js 判断微信访问页面:

var ua= navigator.userAgent.toLowerCase();
if(ua.match(/MicroMessenger/i)=="micromessenger") {alert("is wechat");
}

  

转载于:https://www.cnblogs.com/lidongfeng/p/5179856.html

通过浏览器navigator判断浏览器版本或者手机类型判断微信访问相关推荐

  1. php 判断后缀名,PHP 文件类型判断代码

    何为MIME类型,它是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开. 多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式. ...

  2. php上传文件类型判断,PHP上传文件类型判断

    文件后缀名 文件类型 3gp video/3gpp aab application/x-authoware-bin aam application/x-authoware-map aas applic ...

  3. 判断浏览器类型及是否能使用ES6部分特性

    工作需要判断当前浏览器是否能使用ES6特性: 1.首先肯定要先判断当前浏览器的类型 2.然后判断该浏览器是否支持ES6的部分特性: 解决1: var userAgent = navigator.use ...

  4. javascript判断浏览器和终端类型,js如何区分手机、电脑终端和浏览器

    判断浏览器类型 复制代码代码如下: if ( window.sidebar && "object" == typeof( window.sidebar ) & ...

  5. js判断移动终端(手机浏览器)

    方法1: <script type= "text/javascript" >          var  browser = {              versio ...

  6. vue对手机号的判断_Vue分享功能实现,判断不同手机、浏览器及微信内核

    Vue分享功能实现,判断不同手机.浏览器及微信内核,展示对应内容. HTML: JavaScript:data(){ return{ shareImg:"/static/img/share- ...

  7. JavaScript判断浏览器类型及版本

    JavaScript判断浏览器类型及版本 你知道世界上有多少种浏览器吗?除了我们熟知的IE, Firefox, Opera, Safari四大浏览器之外,世界上还有近百种浏览器. 几天前,浏览器家族有 ...

  8. 判断浏览器类型及版本

    公司前段时间做项目需要判断浏览器,因为项目进度急暂时只支持一种浏览器 使用window.navigator.userAgent属性,但是在国产浏览器上遇到了问题,下面这段代码只能判断内核,但是我想判断 ...

  9. js/jQuery判断浏览器名称、内核版本、浏览器壳

    1.js方法/* 判断浏览器名称和版本 目前只能判断:ie/firefox/chrome/opera/safari 2012年5月16日23:47:08 浏览器内核UA:UA; 浏览器内核名称:NV. ...

最新文章

  1. php获取svn文件,然后ftp上传服务器代码
  2. 作文计算机使用有什么问题,关于电脑利弊的作文
  3. 显式锁select for update 用法
  4. Windows编程中的映射模式和坐标转换
  5. Linux重定向的理解
  6. R语言在金融中的应用二
  7. 怎么修改html的空格大小,如何改变空格的大小 word空格间隔很大怎么调整
  8. 【转】MongoDB资料汇总专题
  9. php mkdir没有权限不能创建成功的问题
  10. (转)在FlashBuilder里的ActionScript工程中使用Flash CS5中的类 fl.controls库
  11. 计算机密码最满足安全的要求,win10怎么设置登录密码保证电脑安全性
  12. 有关lodop.js和CLodop服务
  13. java 上传文件接口_Java接口实现文件上传
  14. 解决服务器上中文显示乱码问题
  15. [附源码]Python计算机毕业设计电影票购票系统
  16. 【零基础-3】PaddlePaddle学习Bert
  17. 如何将前端代码写的优雅?
  18. 网络技术 | Cisco Packet Tracer 6.2安装包 安装教程
  19. JavaSE知识点(1)
  20. 水听器matlab,睿睿

热门文章

  1. vb计算机考试试题及答案,计算机二级考试《VB》操作试题及答案2016
  2. matlab 算法集锦
  3. Miniconda3+Tensorflow2.3(GPU版)+Win10_x64+GTX1060深度学习环境搭建
  4. 半导体基础知识(2):PN结二极管和二极管特性
  5. HDLBits 系列(17) 计数器的级联实现1000分频的分频器
  6. 【 FPGA 】UltraFast设计方法学:定义时钟分组
  7. 【 Verilog HDL 】避免出现锁存器的组合电路描述方式
  8. 工作流程怎么安排?用Edraw Max轻松创建工作流程图!
  9. PHP APM fiery 更新 v0.5.8.0
  10. 数据标准化处理,data.mean和data.std