【jQuery】判断浏览器类型和版本

这与《【HTML】根据不同的浏览器类型写不同的HTML代码》(点击打开链接)一文是姊妹篇,IE注释能够帮你在网页的HTML根据不同的版本,渲染不同的代码。

此文是在脚本部分利用jQuery判断浏览器类型和版本而执行不同的Javascript脚本。

由于直接利用Javascript实现判断浏览器的版本的代码比较复杂,Javascript没有封装接口,Jquery有封装接口,不用写这么多代码,所以直接用Jquery来实现。

不过值得注意的是,jQuery从1.9版开始,移除了$.browser和$.browser.version, 取而代之的是$.support。在更新的 2.0 版本中,将不再支持IE 6/7/8。 以后,如果用户需要支持IE 6/7/8,只能使用 jQuery 1.9。 也就是说,以下的判断仅适用于jQuery 1.9的版本,连jQuery 1.10都不行,亲测。

具体代码如下:


由于就几个弹框就不展示了。

这里就是利用到$.browser.version。也是主要判断IE7与非IE7足矣,因为部分代码在IE7以上与以下的实现实在是不同……

对于jQuery 1.9以上的版本,由于移除了$.browser,一般自己利用正则表达式定义$.browser.version几个来判断:

$.browser.mozilla = /firefox/.test(navigator.userAgent.toLowerCase());
$.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase());
$.browser.opera = /opera/.test(navigator.userAgent.toLowerCase());
$.browser.msie = /msie/.test(navigator.userAgent.toLowerCase());

然后利用IE6没有的的属性来判断IE6:

('undefined' == typeof(document.body.style.maxHeight)) {}

如果判断IE8则利用leadingWhitespace。leadingWhitespace:如果在使用innerHTML的时候浏览器会保持前导空白字符,则返回true,目前在IE 6-8中返回false。

if (!$.support.leadingWhitespace) {}

不使用Jquery直接利用Javascript则更为复杂,主要是对navigator.appName,navigator.appVersion两个浏览器标示属性进行字符串方法切割,再来判断。这里就不贴代码了。有兴趣看看不同的浏览器,alert(navigator.appName+","+navigator.appVersion);是什么鬼。比如IE8就是:


之后你就对这些字符串慢慢用字符串方法切割。

你可能感兴趣的:(jQuery,jQuery,javascript,浏览器版本,浏览器判断,兼容)