通过浏览器navigator判断浏览器版本或者手机类型&&判断微信访问
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, //是否iPad
- webApp: 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");
- }
通过浏览器navigator判断浏览器版本或者手机类型&&判断微信访问的更多相关文章
- Cocos Creator (JavaScript手机类型判断)
手机类型判断 var BrowserInfo = { userAgent: navigator.userAgent.toLowerCase() isAndroid: Boolean(navigator ...
- 使用window.navigator.userAgent属性判断浏览器类型及版本
使用window.navigator.userAgent属性判断浏览器类型及版本 2011-12-11 22:03:11 window.navigator.userAgent属性包含了浏览器类型.版本 ...
- javascript判断浏览器的版本
在javascript中直接的使用navigator.userAgent就可以获取当前浏览器的版本等信息,以下是列出来的关于不同浏览器显示的值(Windows.Android.iPhone): IE6 ...
- js判断移动终端(手机浏览器)
方法1: <script type="text/javascript"> var browser = { versions: f ...
- JavaScript 判断浏览器及版本
/* 智能机浏览器版本信息: alert("语言版本: "+browser.language); alert(" 是否为移动终端: "+browser.vers ...
- js判断浏览器类型以及浏览器版本
判断浏览器类型: if navigator.userAgent.indexOf(”MSIE”)>0) {} //判断是否IE浏览器 if(isFirefox=navigator.userAg ...
- JQuery 判断浏览器及其版本
JQuery 中用 方法 jQuery.browser 来判断浏览器,返回值可以为: safari opera msie mozilla. 当然有时候我们还需要区分版本 这就要用到 jQuery.br ...
- js/jQuery判断浏览器名称、内核版本、浏览器壳
1.js方法 /* 判断浏览器名称和版本 目前只能判断:ie/firefox/chrome/opera/safari 2012年5月16日23:47:08 浏览器内核UA:UA; 浏览器内核名称:NV ...
- js实现判断浏览器版本
//判断浏览器版本是否过低 var ua = navigator.userAgent.toLowerCase(); if (window.ActiveXObject) var IEversion = ...
随机推荐
- 基本的dom操作方法
childNodes 返回当前元素所有子元素的数组firstChild 返回当前元素的第一个下级子元素lastChild 返回当前元素的最后一个子元素nextSibling 返回紧跟在当前元素后面的元 ...
- ural1628 White Streaks
White Streaks Time limit: 1.0 secondMemory limit: 64 MB The life of every unlucky person has not onl ...
- java SWT嵌入IE,SafeArray .
java SWT嵌入IE,SafeArray ); // Create a by ref variant Variant variantByRef = new Variant(pVaria ...
- Hibernate---第一个helloworld程序 (XML版本, annotation版本)
Hibernate作为JPA的一种实现,jpa的注解已经是hibernate的核心,hibernate只提供了一些补充,而不是两套注解.hibernate对jpa的支持够足量,在使用hibernate ...
- MAC使用GITHUB
作者:珊姗是个小太阳链接:https://www.zhihu.com/question/20070065/answer/79557687来源:知乎著作权归作者所有,转载请联系作者获得授权. #什么是 ...
- WPF教程:附加属性
一.附加属性的特点1.特殊的依赖属性2.用于非定义该属性的类 例如Grid面板的RowDefinition.ColumnDefinition.Canvas面板的Left.RightDockPanel面 ...
- hibernate---性能优化, 1+N问题
session级缓存 保存一个hashmap, 读出来的对象放在里面, 如果读出来50条放50条, 如果另起session原来的50条就被清除.可以手动session.clear清除. 如果同一个se ...
- js局部变量,参数
作者:zccst 所有函数的参数都是按值传递的.也就是说,把函数外部的值复制给函数内部的参数,就和把值从一个变量复制到另一个变量一样.基本类型值的传递如同基本类型变量的赋值一样.而引用类型值的传递,则 ...
- uos事件控制块与任务同步
Ucos为了任务之间的通讯定义了信号量,互斥性信号量,消息对象 消息队列等结构以及api,为了统一的管理这些同步,定义了一个结构叫做时间控制块OS_EVENT,如下 typedef struct os ...
- LPC1788 nand驱动
Lpc 1788自带有emc接口用于驱动nandflash,norflash,sdram设备,对于nandflash驱动因为配置简单,时序也简单 首先,针对nandflash而言应当在系统中有三个地址 ...