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

2017-01-13 10:50:31来源:csdn作者:yongh701人点击


这与《【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都不行,亲测。


具体代码如下:


<script type="text/javascript">
if($.browser.msie){
alert("IE浏览器");
if($.browser.version<8){
alert("IE7及其以下");
}
else{
alert("IE8及其以上");
}
}
else if($.browser.webkit){
alert("苹果的Safari、谷歌的Chrome浏览器");
}
else if($.browser.mozilla){
alert("野狐禅FireFox浏览器");
}
else if($.browser .opera){
alert("Opera浏览器");
}
</script>由于就几个弹框就不展示了。


这里就是利用到$.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就是:



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

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台