`
moneyinto
  • 浏览: 32458 次
  • 性别: Icon_minigender_1
  • 来自: 东台
社区版块
存档分类
最新评论

判断浏览器类型的一些方法

阅读更多

在做项目时总会要调整IE浏览器兼容性,在html中,通常可以使用条件注释法,这也是IE专有的hack方法。

 

<!--[if IE]>
	只在IE浏览器显示
<![endif]-->

<!--[if !IE]>
	只在非IE浏览器显示
<![endif]-->
	
<!--[if IE 6]>
	只在IE6浏览器显示
<![endif]-->
	
<!--[if ! IE 8]>
	在非IE8浏览器显示
<![endif]-->

 

但经过测试,发现该方法只在IE9及以下版本试用,不适用于IE10和IE11。而且因为在IE9及以下有用,也导致<!--[if !IE]>是个鸡肋,没有用。这时需要判断IE10以上,则不能使用条件注释法了。

 

如果要判断IE10,可以这样判断:

<style>
	@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
		.class {
			/* 仅限IE10的代码 */
         	}
	}
</style>

但要判断IE11又不知如何判断了,网上看了看有js的方法,后来找到一款不错的JavaScript的判断游览器的方法,特别的全面。如下:http://www.cnblogs.com/leadzen/archive/2008/09/06/1285764.html

 

$(function () {
        var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        var s;
        (s = ua.match(/rv:([\d.]+)\) like gecko/)) ? Sys.ie = s[1] :
        (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
        (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
        (s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
        (s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
        (s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
        
        if (Sys.ie) document.write('IE: ' + Sys.ie);
        if (Sys.firefox) document.write('Firefox: ' + Sys.firefox);
        if (Sys.chrome) document.write('Chrome: ' + Sys.chrome);
        if (Sys.opera) document.write('Opera: ' + Sys.opera);
        if (Sys.safari) document.write('Safari: ' + Sys.safari);
    });

 

不过这样判断虽然简单,但是代码质量不是很好,总要通过操作DOM来修改样式,如果有别的简单方法可以先考虑其他的方法,实在不行在使用。js判断浏览器DEMO

0
1
分享到:
评论
2 楼 moneyinto 2015-09-06  
white_crucifix 写道
判断10和11应该还比较少吧,毕竟没有7、8的兼容性这么坑

嗯,情况比较少,不过上次做一个项目调兼容性时就遇到了要判断IE10的,有1px的差距,导致界面有点不美观
1 楼 white_crucifix 2015-09-05  
判断10和11应该还比较少吧,毕竟没有7、8的兼容性这么坑

相关推荐

Global site tag (gtag.js) - Google Analytics