当前位置:  编程技术>WEB前端

使用jQuery判断IE浏览器版本的代码

    来源: 互联网  发布时间:2014-08-25

    本文导语:  IE还真是让设计师恨的牙痒痒的东西,且现在已经有IE6、IE7、IE8、IE9、IE10这个五种不同版本的浏览器,且都有一点小差异。但是没办法,为了让网页在每个浏览器中显示都一样还必须迁就它。 不过现在我基本上都不太愿意对低...

IE还真是让设计师恨的牙痒痒的东西,且现在已经有IE6、IE7、IE8、IE9、IE10这个五种不同版本的浏览器,且都有一点小差异。但是没办法,为了让网页在每个浏览器中显示都一样还必须迁就它。

不过现在我基本上都不太愿意对低版本的IE去做兼容了。比如IE6、IE7这些直接忽略!IE8的话还凑合一下。好在IE9和IE10对网络标准支持都比较了,等IE9版本以上的浏览器普及以后就好很好了。

但是不做兼容归不做兼容,还是要简单的处理一下的。幸运的是 jQuery 提供了 browser 标记来让我们能判断现在的访客是用什么浏览器及版本:

代码如下:



 $(function() {
  var userAgent = window.navigator.userAgent.toLowerCase();
  var version = $.browser.version;
  $(".info").html(
   "userAgent:" + userAgent + "
" +
   "version:" + version
  );
 });



 


我用了一点简单的范例来显示目前浏览器的 userAgent 及 jQuery.browser.version,接着在 IE 6~8 中测试,但其中显示的结果还真是让错愕咧!


从结果看来, IE 7 的判断是错误的,在仔细看它的 userAgent 时会发现,里面除了 msie 7.0 之外,还包含了 msie 6.0,因此导致 jQuery.browser.version 的比对就有问题了。既然已经知道问题,那我们就能针对问题来解决。

第一种方式是比较直接的方式,先判断 userAgent 中如果有出现较高版本的话,那就是依该版本为主:

当要使用时,就能用 $.browser.msie6~10 来做判断处理了。另一种就是直接修正 jQuery.browser.version 的比对方式:

代码如下:



 $(function() {
  var userAgent = window.navigator.userAgent.toLowerCase();

  $.browser.msie10 = $.browser.msie && /msie 10.0/i.test(userAgent);
  $.browser.msie9 = $.browser.msie && /msie 9.0/i.test(userAgent);
  $.browser.msie8 = $.browser.msie && /msie 8.0/i.test(userAgent);
  $.browser.msie7 = $.browser.msie && /msie 7.0/i.test(userAgent);
  $.browser.msie6 = !$.browser.msie8 && !$.browser.msie7 && $.browser.msie && /msie 6.0/i.test(userAgent);

  $(".info").html(
   "userAgent:" + userAgent + "
" +
   "Is IE 10?" + $.browser.msie10 +
   "Is IE 9?" + $.browser.msie9 +
   "Is IE 8?" + $.browser.msie8 +
   "Is IE 7?" + $.browser.msie7 +
   "Is IE 6?" + $.browser.msie6
  );
 });



 


经过这样的修正之后,当我们再使用 jQuery.browser.version 来判断时就能正确的显示 IE 的版号了。两种方式都有其方便性,就看各位要选择那一种来使用啰!


    
 
 

您可能感兴趣的文章:

  • 怎样在服务器端判断客户使用的浏览器是使用的简体中文的还是英文的还是日文的或者其他的?
  • jquery使用$(element).is()来判断获取的tagName
  • 简单问题:如何判断计算机的某一端口正在使用
  • 同时使用教育网和电信宽带,如何判断使用的是电信还是教育网?
  • 有没有办法在打开一个文件之前判断当前是否有进程在使用(读或写)该文件
  • 如何使用telnet mail.domain.com 25 判断一个某个邮件大地址是否存在
  • 使用popen来执行gcc命令,如何根据读出来的gcc的输出来判断gcc是否编译成功?
  • 关于在shell中使用循环和条件判断的问题( 内详)
  • 使用SQL Server判断文件是否存在后再删除(详解)
  • Java得到一个整数的绝对值,不使用任何判断和比较语句,包括API
  • 请教:如何判断一个DNS服务器使用了chroot呢?
  • oracle使用instr或like方法判断是否包含字符串
  • 如何判断当前屏幕在使用的是哪个终端或者是控制台?
  • 使用SQL Server判断文件是否存在并删除的实例代码
  • 使用c语言判断100以内素数的示例(c语言求素数)
  • Python中请使用isinstance()判断变量类型
  • s:set 和 s:date 使用, 在jsp判断日期
  • 如何判断网卡是否使用NAPI方式
  • 使用Python判断IP地址合法性的方法实例
  • 在SQL Server中使用ISNULL执行空值判断查询
  • 使用php检测用户当前使用的浏览器是否为IE浏览器
  • 请教如何使用Java编写的Applet程序关闭浏览器??
  • 如何获取客户端浏览器所使用的语言,特别是要区分简繁体!
  • 浏览器的使用 LINUX(UNIX)字符模式下
  • 使用Applet能不能实现基于浏览器的打印呢???
  • rh9 下可以使用IE一类的浏览器吗!
  • 我希望在applet里使用dom怎么办?浏览器能够支持吗?
  • 如何在red hat的网页浏览器中浏览使用ipv6协议的网页?
  • servlet使用RequestDispatcher到jsp页面,浏览器url栏还是servlet
  • VMware中使用redhat的Mozilla浏览器时不能上网
  • 浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 怎么才能知道当前正在使用的linux的版本名和版本号??
  • 现在使用的Solaris 10 版本,做DNS client设置时,找不到resolv.conf 文件? 是UNIX版本问题,还是本来就需要自己新建?
  • 驱动编译环境的内核版本到底是不是必须和使用环境的内核版本一致?
  • redhat ent 4 u4上,如何象readhat ent3 u6版本那样使用top可以查看每个逻辑CPU的利用率以及运行进程的资源使用情况?
  • 请问有没有在Windows环境下使用的Emacs和Vi版本下载?
  • 郁闷,如何使用JB7和JDK1.3以前版本调试程序?
  • 请问对于初学者应该使用哪种版本的linux比较好?
  • 推荐一个好用点的适合家里使用的 LINUX OS 版本。
  • redhat7.3中使用gcc调试c程序,用的是什么版本的库?
  • 调查!谈谈现在大家使用的版本及感想!
  • 想使用Kliyx把Delphi写的代码编译为Linux程序, 装什么Linux什么版本最好?请明人指教,谢谢!?
  • 在unix上如何使用磁带机,相关命令有那些,操作系统版本为aix 4.3
  • 200分求没有license的jive(jive的早期版本可以免费使用的)
  • 200分求没有license的jive(jive的早期版本可以免费使用的)(kkhui(jacky) 请近来)
  • ATCS10_SCO505版本,免费的类似TUXEDO消息中间件,欢迎大家使用!!!
  • 可否在同一个分区上不同内核使用不同的ext版本
  • 哪个Linux版本比较适合服务器使用?
  • 请问再Linux下进行C/C++网络方面的编程 推荐使用哪个版本?
  • 我常未开发过Linux下的程序,请问Linux下可以使用那些开发工具,最好的开发工具是什么版本?
  • 刚要开始使用linux应该安装什么版本,看些什么书,注意一些什么问题,多谢大家知道,谢谢。
  • C++ I/O 成员 tellg():使用输入流读取流指针
  • 在测试memset函数的执行效率时,分为使用Cash和不使用Cash辆种方式,该如何控制是否使用缓存?
  • C++ I/O 成员 tellp():使用输出流读取流指针
  • 求ibm6000的中文使用手册 !从来没用过服务器,现在急需使用它,不知如何使用! 急!!!!!
  • Python不使用print而直接输出二进制字符串
  • 请问:在使用oracle数据库作开发时,是使用pro*c作开发好些,还是使用库函数如oci等好一些啊?或者它们有什么区别或者优缺点啊?
  • Office 2010 Module模式下使用VBA Addressof
  • 急求结果!!假设一个有两个元素的信号量集S,表示了一个磁带驱动器系统,其中进程1使用磁带机A,进程2同时使用磁带机A和B,进程3使用磁带机B。
  • windows下tinyxml.dll下载安装使用(c++解析XML库)
  • c#中SAPI使用总结——SpVoice的使用方法
  • tcmalloc内存泄露优化c++开源库下载,安装及使用介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3