如何解决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新标签的问题