关于ie8的兼容性
描述
在开发中,需要兼容ie8的情况,记录一下遇到的问题和解决方案
bootstrap:
只能使用2.0及以下版本
jquery:
只能使用1.x 版本
js语句:
严格要求书写,语法规范,属性结束时的逗号
ie8 JSON未定义的问题:
JSON是包含在JScript 5.8中,而为了向下兼容ie8只有在文档模式是”Internet Explorer 8 Standards”的时候才使用JScripte 5.8,其他时候使用JScripte 5.7特性。因此如果文档模式没有声明为”Internet Explorer 8 Standards”,ie8是找不到JSON对象的。因为没有兼容到ie6/7,所以必然在ie6/7中,JSON会出现未定义的问题。我项目中采用的是方法1,完美解决。
解决方法:
引入定义json的文件json2.js,
下载地址:https://github.com/douglascrockford/JSON-js
引入包含json的jQuery文件。
如果不用兼容到ie6/7,只需要声明”Internet Explorer 8 Standards”模式,方法如下:
- 在文档头中添加<meta http-equiv="X-UA-Compatible" content="IE=8" >
- 使用<!DOCTYPE>来声明文档
console.log:
ie8 执行会报错,程序不执行,打开F12,程序可执行,代码中删掉此语句
ie8页面的编码问题:
当IE右键不勾选自动选择编码的时候,IE是从解析页面标签优先再http header信息,而其他浏览器刚好相反。
由于这个原因,title里如果包含了中文字符,就会导致编码自动选择成gb2312导致页面乱码或者空白。
因此一定要把<meta http-equiv=Content-Type content="text/html; charset=utf-8">代码放在title标签之前。
静态文件编码和浏览器编码不一致:
浏览器默认编码,将页面文件的字符集,修改一致