如何解决HTML5在老版本IE下的兼容性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决HTML5在老版本IE下的兼容性相关的知识,希望对你有一定的参考价值。

解决兼容性可以使用css来实现。
为老版本ie专门写一个old.css,在html里面加一段js来识别浏览器版本,当老版本ie访问时自动启用old.css,即可兼容。
另外老版本ie现在使用的人并不是很多,如果嫌写代码麻烦的话,也完全可以忽略老版本ie用户,或者在html里面加js识别老ie访问时显示一段话“您的ie版本太旧了,不能很好的展示网站功能,建议更新ie浏览器或者下载google、火狐浏览器等”目前腾讯邮箱好像就是这样提示 的,也就是做一个友好提示。
参考技术A HTML5兼容低版本的浏览器:
在JS代码中加入
1. <script type="text/javascript">document.createElement('header');
2. document.createElement('nav');
3. document.createElement('figcaption');
4. document.createElement('figure');
5. document.createElement('section');
6. document.createElement('article');
7. document.createElement('aside');
8. document.createElement('footer');</script>
或者:
1. <script type="text/javascript">(function()var e="abbr,article,aside,audio,canvas,datalist,details,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','),i=e.length;while(i--)document.createElement(e[i]);());</script>
或者下载Google的html5兼容性js,最好下载到本地用
1. <script type="text/javascript" src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
参考技术B 需要让IE支持HTML5标签。这个简单,随便在网上搜一下就能找到。下载一个html5.js,并拷贝到自己的目录里就可以了。

加上对浏览器的判断就行啦, 如下:。
<!--[if IE]>
<script src="/js/html5.js" type="text/javascript"></script>
<![endif]-->
参考技术C 可以用框架的方法,加一段Google的html5shiv包:

<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
判断浏览器是否是IE9以下版本,如果是执行js代码,不是就忽略。

注意:要初始化新标签的CSS。HTML5在默认情况下表现为内联元素,对这些元素进行布局我们需要用CSS把它们转为块状元素方便布局,代码如下:
/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menudisplay:block
参考技术D 使用js 网上一堆
其实就是把一些新标签 转换成 div 之类的

FCKEditor在IE10下的不兼容问题解决方法

环境介绍:FCKEditor 版本 2.x.x

问题:IE10 下FCKEditor不兼容,显示不出来

关键词:不同于其他方法之处是第一个关键点,其他网友的正则表达式不对

解放方法:(可以直接<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />解决,也可以如下)

1.在 fckeditor/fckeditor.js 文件 > 方法: FCKeditor_IsCompatibleBrowser

 代码如下 复制代码

var sBrowserVersion = navigator.appVersion.match(/MSIE (...)/)[1] ;

替换成 >>

var sBrowserVersion = navigator.appVersion.match(/MSIE\s([\d.]+)/)[1] ;

 

2.在fckeditor/editor/js/fckeditorcode_ie.js这个文件

 

找到

 代码如下 复制代码

e.scopeName!=‘HTML‘

把if条件换成

 代码如下 复制代码

if(FCKBrowserInfo.IsIE&& e.scopeName && e.scopeName!=‘HTML‘)

找到

 代码如下 复制代码

D.parentElement().document!=B

把if条件换成

 代码如下 复制代码

if(D.parentElement().document && D.parentElement().document!=B)

找到

 代码如下 复制代码

B.open("GET",A,false);

添加下面红色部分

 代码如下 复制代码

B.open("GET",A,false);try{B.responseType=‘msxml-document‘;}catch(e){}B.send(null);

 

笔者亲测,完美解决,不同于其他方法之处是第一个关键点,其他网友的正则表达式不对

 

 

来源:http://blog.csdn.net/abudexiatian/article/details/41314635

以上是关于如何解决HTML5在老版本IE下的兼容性的主要内容,如果未能解决你的问题,请参考以下文章

如何解决IE6/IE7/IE8浏览器不兼容HTML5新标签的问题

超全的IE兼容性问题及解决方案

完美解决IE低版本语义化标签不兼容的方案

整理低版本ie兼容问题的解决方案

怎么解决bootstrap在各版本IE浏览器中的兼容性问题???

FCKEditor在IE10下的不兼容问题解决方法