貌似jQuery从1.9开始就不支持$.browser方法了,这让习惯使用jQuery判断浏览器类型的我们情何以堪~
其实百度一下使用js判断浏览器类型的博文还是有很多的,也都能满足基本的需求~
要搞懂其中的机制,首先还要看一下五大浏览器的UA~
这里使用最普通的alert语句,使各浏览器弹出自己的UA
-
alert(navigator.userAgent.toLowerCase());
效果如下:
Chrome:
FireFox:
IE:
Opera:
Safari:
document.getBoxObjectFor 在FF中已经失效了,而window.opera在Opera中也不怎么好用了~
于是乎,只能从UA下手了~
以下是一段比较简陋且稍许繁琐的代码,仅给大家提供思路用
-
!(function(){
-
browse = {};
-
browse.ua = navigator.userAgent.toLowerCase(),
-
browse.msie = (window.ActiveXObject && browse.ua.match(/msie ([\d.]+)/) &&
-
browse.ua.match(/msie ([\d.]+)/).length == 2) ? true : false,
-
browse.firefox = (browse.ua.match(/firefox\/([\d.]+)/) && (browse.ua.match(/firefox\/([\d.]+)/)).length == 2) ? true : false,
-
browse.chrome = (!browse.ua.match(/opr\/([\d.]+)/) &&
-
browse.ua.match(/chrome\/([\d.]+)/) && (browse.ua.match(/chrome\/([\d.]+)/)).length == 2) ? true : false,
-
browse.opera = (browse.ua.match(/opr\/([\d.]+)/) && (browse.ua.match(/opr\/([\d.]+)/)).length == 2) ? true : false,
-
browse.safari = (!browse.ua.match(/chrome\/([\d.]+)/) && !browse.ua.match(/opr\/([\d.]+)/) &&
-
browse.ua.match(/version\/([\d.]+)/) && (browse.ua.match(/version\/([\d.]+)/)).length == 2) ? true : false,
-
browse.version = browse.msie ? browse.ua.match(/msie ([\d.]+)/)[1] :
-
(browse.firefox ? browse.ua.match(/firefox\/([\d.]+)/)[1] :
-
(browse.chrome ? browse.ua.match(/chrome\/([\d.]+)/)[1] :
-
(browse.opera ? browse.ua.match(/opr\/([\d.]+)/)[1] :
-
(browse.safari ? browse.ua.match(/version\/([\d.]+)/)[1] : -1))));
-
})();
在各浏览器运行下段代码
-
alert("ie:" + browse.msie +
-
"\nfirefox:" + browse.firefox +
-
"\nchrome:" + browse.chrome +
-
"\nopera:" + browse.opera +
-
"\nsafari:" + browse.safari +
-
"\nversion:" + browse.version);
效果如下:
Chrome:
FireFox:
IE:
Opera:
Safari:
基本的功能是有了,代码的优化还是要继续的!
阅读(575) | 评论(0) | 转发(0) |