Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20626
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 67
  • 用 户 组: 普通用户
  • 注册时间: 2013-12-30 19:06
个人简介

时不时的会发两篇博文

文章分类

全部博文(7)

文章存档

2014年(5)

2013年(2)

我的朋友

分类: JavaScript

2013-12-31 09:49:37

貌似jQuery从1.9开始就不支持$.browser方法了,这让习惯使用jQuery判断浏览器类型的我们情何以堪~
其实百度一下使用js判断浏览器类型的博文还是有很多的,也都能满足基本的需求~
要搞懂其中的机制,首先还要看一下五大浏览器的UA~

这里使用最普通的alert语句,使各浏览器弹出自己的UA
  1. alert(navigator.userAgent.toLowerCase());
效果如下:

Chrome:
 

FireFox:


IE:


Opera:


Safari:



document.getBoxObjectFor 在FF中已经失效了,而window.opera在Opera中也不怎么好用了~
于是乎,只能从UA下手了~
以下是一段比较简陋且稍许繁琐的代码,仅给大家提供思路用

  1. !(function(){
  2.     browse = {};
  3.     browse.ua = navigator.userAgent.toLowerCase(),
  4.     browse.msie = (window.ActiveXObject && browse.ua.match(/msie ([\d.]+)/) &&
  5.         browse.ua.match(/msie ([\d.]+)/).length == 2) ? true : false,
  6.     browse.firefox = (browse.ua.match(/firefox\/([\d.]+)/) && (browse.ua.match(/firefox\/([\d.]+)/)).length == 2) ? true : false,
  7.     browse.chrome = (!browse.ua.match(/opr\/([\d.]+)/) &&
  8.         browse.ua.match(/chrome\/([\d.]+)/) && (browse.ua.match(/chrome\/([\d.]+)/)).length == 2) ? true : false,
  9.     browse.opera = (browse.ua.match(/opr\/([\d.]+)/) && (browse.ua.match(/opr\/([\d.]+)/)).length == 2) ? true : false,
  10.     browse.safari = (!browse.ua.match(/chrome\/([\d.]+)/) && !browse.ua.match(/opr\/([\d.]+)/) &&
  11.         browse.ua.match(/version\/([\d.]+)/) && (browse.ua.match(/version\/([\d.]+)/)).length == 2) ? true : false,
  12.     browse.version = browse.msie ? browse.ua.match(/msie ([\d.]+)/)[1] :
  13.         (browse.firefox ? browse.ua.match(/firefox\/([\d.]+)/)[1] :
  14.         (browse.chrome ? browse.ua.match(/chrome\/([\d.]+)/)[1] :
  15.         (browse.opera ? browse.ua.match(/opr\/([\d.]+)/)[1] :
  16.         (browse.safari ? browse.ua.match(/version\/([\d.]+)/)[1] : -1))));
  17. })();
在各浏览器运行下段代码

  1. alert("ie:" + browse.msie +
  2.     "\nfirefox:" + browse.firefox +
  3.     "\nchrome:" + browse.chrome +
  4.     "\nopera:" + browse.opera +
  5.     "\nsafari:" + browse.safari +
  6.     "\nversion:" + browse.version);
效果如下:

Chrome:


FireFox:


IE:


Opera:


Safari:


基本的功能是有了,代码的优化还是要继续的!
阅读(575) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~