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

具体代码如下:

<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就是:


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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值