js判断ie版本及是否是IE环境

博客介绍了项目针对IE浏览器做单独适配的方法。为保证正常浏览器和IE浏览器的样式,可采用编写两套样式的方案,如引入两套CSS、使用CSS样式后缀,还推荐用JS判断浏览器环境添加样式,包括封装判断IE浏览器及其版本的函数并调用添加适配样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候因为开发需要,我们的项目需要针对ie浏览器做单独的适配,这是我们就需要用到一些比较特殊的手段。这种情况我们首先既要保证正常浏览器(如谷歌、火狐、360、QQ等等)样式又要保证ie浏览器的样式,所以大多时候采用的解决方案是编写两套样式,这里我们简要举例说明一下一般的解决方案:

1、项目方案–引入两套css

在ie9以下浏览器环境里面,可以识别一个css判断代码,引用这段代码就意味着所引入的样式只在ie9以下的环境中生效,这样的话就可以让我们做到对ie9以下的版本做两套代码的适配:

  <script src="js/jquery.min.js"></script>
 <!--[if IE 8]>
  <script type="text/javascript" src="js/h5js.js" ></script>
  <script type="text/javascript" src="js/jquery.min.l.js" ></script>
  <![endif]-->

从上面的代码可以简单了解到,我们在ie8的环境里面单独引入了h5.js和jquery.min.l.js,当然这里引入其他你自己针对ie8浏览器单独做兼容的样式文件也是可以的。(这里h5js是对html语义化标签的一个兼容,有兴趣的朋友可以私信我发)

2、css样式后缀

一般比较通用的是在css样式后面加上ie特定版本才会识别的后缀,加上之后相当于此样式只会在ie的特定版本才会生效,也就是说我们写两套样式,一套是普通浏览器生效的,另一套是ie特定版本生效的:

		  background-color:#FF0000;  /* 红色 - 一般浏览器*/

          background-color:#FFFF00\9;  /* 黄色 - IE11*/

          background-color:#0000FF\0;  /* 蓝色 - IE8、IE9*/

但是很明显,这种方案解决不了某些特殊情况。这时候就可以用另外一种更完美的方案

3、js判断浏览器环境添加样式

因为ie浏览器现在ie9及以上是使用的和谷歌一样的webkit内核,所以ie9及以上所表现的样式基本上可以和谷歌浏览器一致,但是在ie9一下还是以前的ie内核,其下版本不兼容css3的所有样式,且还有一系列兼容问题(这里就不一一说明)。这里为了完美适配ie9以下版本,我推荐使用js来适配,具体方案如下:

(1)封装判断ie浏览器及其版本的公共函数

/**
 * 判断ie浏览器版本
 * */
function IEVersion() {
	var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
	var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
	var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
	var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
	if(isIE) {
		var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
		reIE.test(userAgent);
		var fIEVersion = parseFloat(RegExp["$1"]);
		console.log('ie版本:', fIEVersion);
		if(fIEVersion == 7) {
			return 7;
		} else if(fIEVersion == 8) {
			return 8;
		} else if(fIEVersion == 9) {
			return 9;
		} else if(fIEVersion == 10) {
			return 10;
		} else {
			return 6;//IE版本<=7
		}
	} else if(isEdge) {
		console.log('isEdge!');
		return 12;//edge
	} else if(isIE11) {
		console.log('isIE11!');
		return 11; //IE11
	}else{
		return 13;//不是ie浏览器
	}
}

(2)需要做ie兼容时,调用该函数添加适配样式

//ie 样式适配
  if (IEVersion() > 10 && IEVersion() < 13) {
    $('main .main-cont .main-2 .main-2-ban-box .swiper-slide .main-2-ban-desc').css({marginBottom: 0});
  }
  if (IEVersion() < 9) {
    $('main .main-cont .main-2 .main-2-ban-box .swiper-wrapper').css({marginLeft: '15px'});
  }

以上便是我推荐的几种方案,欢迎小伙伴们阅读,希望能帮到你们!

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值