一行代码解决IE浏览器的兼容问题

之前在开发项目的过程中,遇到过因为IE版本产生的兼容问题。在自己电脑上用IE浏览器打开没有发现问题,在他们的电脑上用360浏览器兼容模式打开项目,出现不兼容的问题,而我们的360浏览器版本是一样的。最后,经过查阅资料发现,360兼容模式出现的兼容问题,实质还是IE的兼容问题,每个电脑内置的IE版本是不一样的,我的电脑内置IE的版本高,而同事的版本低导致出现渲染页面时出现问题。
解决办法:
在head标签的最前面加上下面代码:

    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" charset="UTF-8">

http-equiv = "X-UA-Compatible":

这个是针对ie8以上浏览器的一个属性,ie8以下无法识别。就是说ie8以上浏览器遇到这个属性会执行content的描述,大小写不敏感。

<meta http-equiv="X-UA-Compatible" content="IE=7" />
无论页面是否包含 <!DOCTYPE> 指令,均使用 Windows Internet Explorer 7 的标准渲染模式。

<meta http-equiv="X-UA-Compatible" content="IE=edge" />
以最高级别的可用模式显示内容。

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
如果安装了 Google Chrome Frame (谷歌浏览器內嵌框架)则使用谷歌浏览器内核模式,否则使用最新的IE模式。
针对IE 6,7,8等版本的浏览器插件Google Chrome Frame,可以让用户的浏览器外观依然是IE的菜单和界面,但用户在浏览网页时,实际上使用的是Google Chrome浏览器内核。
如果不指定ie=edge时,当用户浏览器没有chrome内核时,会弹出提示框,提醒用户安装该内核。

面对依然使用旧版IE的用户,我们可以友好地提示其升级浏览器后再访问。
通过以下代码,当用户使用已经停止更新的IE10或旧版IE访问网站将会自动跳转到浏览器升级页:

<script>
/*@cc_on
window.location.href="http://support.dmeng.net/upgrade-your-browser.html?referrer="+encodeURIComponent(window.location.href); @*/
</script>

@cc_on 是 IE10 及更旧版IE特有的条件编译语句,因此可以用来判断是否除 IE11 的其他IE版本 。

PS:判断IE浏览器版本是否为IE10及以上
if(navigator.appName == "Microsoft Internet Explorer"&&parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE",""))<=9){
      alert("您的浏览器版本过低,请下载IE10及以上版本");
      return ;
}

高版本浏览器parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE",""))的值为NaN

原文作者技术博客:https://www.jianshu.com/u/ac4daaeecdfe

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值