最近在做ie8兼容,把遇到的问题整理了一下
1. margin:0 auto; 无法居中
解决方法:1.换成h4的文档类型 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2. body,设置text-aligin:center; 缺点,其他标签也会居中
3. 需要居中的元素设置一个宽度,
{position:relative;width:1000px;left:50%;margin-left:-500px}
2. console 现象:
2.1 数据不加载,f12调试之后会出数据,并且不会报错。
解决方法:干掉所有的console
2.2 console未定义
解决方法,拓展一个
window.console = window.console || (function(){
var c = {}; c.log = c.warn = c.debug = c.info = c.error = c.time = c.dir = c.profile
= c.clear = c.exception = c.trace = c.assert = function(){};
return c;
})();
3. placeholder不生效
解决方法:进入 jquery.placeholder.min.js文件, $(‘input‘).placeholder();
4. border-radius 不生效
解决方法: 引入PIE.htc behavior:url(‘PIE.htc‘)
5. jquery load请求不回来数据 (跨域的情况下)
解决方法:使用ajax
6. IE8跨域的问题
jQuery.support.cors = true;
7. IE的解析方式,比较严格,所以记得闭合标签,标签符号
另外一句代码:在ajax请求的 header页面中。返回来之后会报语法错误,至于原因, I DON‘T KNOW.
var app_path="http://guiyang.scity.cn/portal";
8. CSS3的选择器不支持。
rem不支持。
背景颜色渐变不支持。
9. 不知道json,引入js文件 json2.js
10. ie8线上和线下的差异,多调试,反正我还没有找到规律。
可能原因:1.本地采用的是file协议,远程浏览是http协议,两个之间有区别。
2.文件编码问题,最好统一“<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />”
11. ajax请求回来的js文件
现象:1.要加载,不执行
2.只执行script便签里面的js代码,但是不执行script标签引入的js文件。
12.$(this).val() 获取回来有问题
解决方案: $("#id").val()
13. jquery的html()方法 和原生的innerHTML 属性的差异
1.在ie下的tbody的 tr,td的内容是只可读,html()采用了try catch的方法
IE不容易,且做且珍惜。