今天在使用encharts的时候由于要兼容IE8,所以最终决定在非IE8浏览器使用encharts,在IE8使用amcharts。于是需要使用JS判断使用的浏览器版本:

  1. function IEVersion() {
  2. var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
  3. var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
  4. var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
  5. var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
  6. if(isIE) {
  7. var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
  8. reIE.test(userAgent);
  9. var fIEVersion = parseFloat(RegExp["$1"]);
  10. if(fIEVersion == 7) {
  11. return 7;
  12. } else if(fIEVersion == 8) {
  13. return 8;
  14. } else if(fIEVersion == 9) {
  15. return 9;
  16. } else if(fIEVersion == 10) {
  17. return 10;
  18. } else {
  19. return 6;//IE版本<=7
  20. }
  21. } else if(isEdge) {
  22. return 'edge';//edge
  23. } else if(isIE11) {
  24. return 11; //IE11
  25. }else{
  26. return -1;//不是ie浏览器
  27. }
  28. }

返回值类型:

值类型 值说明
-1 Number  不是ie浏览器
6 Number ie版本<=6
7 Number ie7
8 Number ie8
9 Number ie9
10 Number ie10
11 Number ie11
'edge' String ie的edge浏览器

通过进一步的封装可以返回boolean值类型是否是IE8以下浏览器:

  1. function IEVersion() {
  2. var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
  3. var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
  4. var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
  5. var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
  6. if (isIE) {
  7. var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
  8. reIE.test(userAgent);
  9. var fIEVersion = parseFloat(RegExp["$1"]);
  10. if (fIEVersion == 7) {
  11. return 7;
  12. } else if (fIEVersion == 8) {
  13. return 8;
  14. } else if (fIEVersion == 9) {
  15. return 9;
  16. } else if (fIEVersion == 10) {
  17. return 10;
  18. } else {
  19. return 6; //IE版本<=7
  20. }
  21. } else if (isEdge) {
  22. return 'edge'; //edge
  23. } else if (isIE11) {
  24. return 11; //IE11
  25. } else {
  26. return -1; //不是ie浏览器
  27. }
  28. }
  29. var sureIsIEAndLower8 = function() {
  30. var version = IEVersion();
  31. if (-1 == version) {
  32. return false;
  33. } else if (8 < version || "edge" == version) {
  34. return false;
  35. }else{
  36. return true;
  37. }
  38. }

返回true表示是IE8以及IE8以下浏览器,返回false表示不是IE或者是IE8以上。

补充今天在翻阅jQueryAPI的时候发现jQuery自带检测浏览器内核的方法:

例如我的测试:

  1. alert( JSON.stringify($.browser));
  2. alert( $.browser.version );

结果:

chrome:

IE11:WC--IE11用的火狐的引擎

:

IE10:(microsoft internet explorer

火狐:

JS判断客户浏览器是否是IE8浏览器、jQuery判断浏览器内核的更多相关文章

  1. js判断客户浏览器类型,版本

    在JS中判断浏览器的 类型,估计是每个编辑过页面的开发人员都遇到过的问题.在众多的浏览器产品中,IE.Firefox.Opera.Safari........众多品牌 却标准不一,因此时常需要根据不同 ...

  2. js/jquery判断浏览器的方法小结

    在网站前端开发中,浏览器兼容性是前端开发框架要解决的第一个问题,要解决兼容性问题就得首先准确判断出浏览器的类型及其版本,而判断浏览器的版本一般只能通过分析浏览器的userAgent才能知道.今天我们把 ...

  3. js/jquery判断浏览器 & 停止加载

    JS获取浏览器信息 复制代码代码如下: 浏览器代码名称:navigator.appCodeName浏览器名称:navigator.appName浏览器版本号:navigator.appVersion对 ...

  4. js,onblur后下一个控件获取焦点判断、html当前活跃控件、jquery版本查看、jquery查看浏览器版本、setTimeout&setInterval

    需求: input控件在失去焦点后直接做验证,验证通不过的话,显示相应错误.但是如果失去焦点后点击的下个控件是比较特殊的控件(比如,退出系统),那么不执行验证操作,直接退出系统(防止在系统退出前,还显 ...

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

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

  6. js/jquery判断浏览器的方法总结

    JS获取浏览器信息浏览器代码名称:navigator.appCodeName浏览器名称:navigator.appName浏览器版本号:navigator.appVersion对Java的支持:nav ...

  7. jquery判断浏览器版本插件,jquery-browser.js

    jquery判断浏览器版本插件,jquery-browser.js,jquery 判断是否为ie浏览器插件 >>>>>>>>>>>&g ...

  8. JS/JQuery判断是否移动设备+JS/JQuery判断浏览器类型

    原文:https://blog.csdn.net/Little_Stars/article/details/48624669 JS代码如下(点击事件依赖JQuery): //判断设备类型 $(&quo ...

  9. JAVASCRIPT和JQUERY判断浏览器信息总汇(备忘)

    <script type="text/javascript">        //jquery判断浏览器信息        $(function(){          ...

  10. jQuery兼容浏览器IE8方法

    在维护公司网站的时候,发现在IE8下jquery会报对象不支持此属性或方法.缺少对象的错误:  在其他浏览器就可以正常运行,当前使用的jquery版本是3.1.1,查资料发现jquery从2.0开始不 ...

随机推荐

  1. Android的环境搭建

    尽管以前并没有接触过软件开发.但是,现在网络资源实在是太丰富了.所以网搜了一下,认为Android的环境搭建可分为以下五个步骤来完成.第一步:安装JDK:第二步:配置Windows上JDK的变量环境: ...

  2. Photoshop的混合模式

    1.亮度是一种颜色的相对亮度,饱和度是指一种颜色的纯度(颜色中包含多少灰) 2.混合模式 下层图片的颜色像素称为"基本颜色":选定的称为"混合"颜色,对于大部分 ...

  3. 【iMooc】全面解析java注解

    在慕课上学习了一个关于java注解的课程,下面是笔记以及一些源码. Annotation——注解 1.JDK中的注解 JDK中包括下面三种注解: @Override:标记注解(marker annot ...

  4. [开源中国]Windows 10 全球市场份额正式超越 Windows 7

    Windows 10 全球市场份额正式超越 Windows 7 全球知名科技数据调查公司 Netmarketshare 昨天发布了2018年12月份最新的桌面操作系统份额报告.对于微软来说,这是历史一 ...

  5. [转贴]CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群

    CentOS7.5 Kubernetes V1.13(最新版)二进制部署集群 http://blog.51cto.com/10880347/2326146   一.概述 kubernetes 1.13 ...

  6. WebSocket 时时双向数据,前后端(聊天室)

    https://blog.csdn.net/lecepin/article/details/54632749 实例内容 今天主要说一下微信的WebSocket接口以及在小程序中的使用. WebSock ...

  7. Spring之c3p0连接池xml配置和使用举例

    1.导入jar包 c3p0-0.9.5.2.jar mchange-commons-java-0.2.11.jar 2.源码: beans.xml <beans xmlns="http ...

  8. BZOJ2324 ZJOI2011营救皮卡丘(floyd+上下界费用流)

    虽然不一定每次都是由编号小的点向编号大的走,但一个人摧毁的顺序一定是从编号小的到编号大的.那么在摧毁据点x的过程中,其只能经过编号小于x的点.并且这样一定合法,因为可以控制其他人先去摧毁所经过的点.那 ...

  9. P4932 浏览器

    题目背景 __stdcall在用Edge玩slay的时候,鼠标会经常失灵,这让她十分痛苦,因此她决定也要让你们感受一下Edge制造的痛苦. 题目描述 __stdcall给了你n个点,第i个点有权值x[ ...

  10. PL/SQL如何设置当前格局确保每次打开都给关闭前一样

    打开plsql  --> windows-->save layout 即可