IE兼容常见问题及解决方案
一、IE8及以下不支持css3的@media查询
解决方法1、解决方法是引入respond.js
相关链接:https://www.bootcdn.cn/respond.js/
<script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.js"></script>
解决方法2、用if判断是否是IE浏览器,然后给IE8设定一组比较适合的样式,以此来替代@media
if (navigator.appName === 'Microsoft Internet Explorer') { //判断是否是IE浏览器 if (navigator.userAgent.match(/Trident/i) && navigator.userAgent.match(/MSIE 8.0/i)) { //判断浏览器内核是否为Trident内核IE8.0 $('#Zbody').css('top','19%') .css('height','57.5%'); }; } }
if (window.ActiveXObject || "ActiveXObject" in window) {//判断是否IE9,10,11,edge alert("IE"); }
二、IE8及以下,不支持HTML5的视频功能
解决方法:引入html5media.js
相关链接:https://github.com/etianen/html5media
<script src="<%=JsUrl %>Template/<%=config.TemplateFolder%>/inc/html5media.min.js"></script>
三、IE不兼容ES6
解决方法1:使用babel将es6转换为es5 相关链接:https://www.cnblogs.com/webwangjie/p/10948284.html
解决方法2:引入browser.min.js 然后将需要转换的代码块的script标签的type值设为‘’text/label
四、高版本JQuery不兼容IE8及以下
解决方法1:通过 <!--[if IE 8]> 仅IE8可识别 <![endif]--> 引入低版本JQuery
<!--[if IE 8]> ... <![endif]-->放在html页面,仅在浏览器是IE8的时候可以识别并加载
备注:IE9、IE7同理可用<!--[if IE 9]> ... <![endif]-->
解决方法2:<script>/*@cc_on 内容 @*/</script>,可兼容IE10及以下的版本
<script>/*@cc_on alert("只有IE10及以下会弹出"); @*/</script>
<script type="text/javascript" src="<%=path%>/js/jquery-3.1.1.min.js"></script>
<!--[if IE 8]>
<script type="text/javascript" src="<%=path%>/js/jquery-1.9.1.min.js"></script>
<![endif]-->