web端兼容到IE7、8的问题记录

  • IE6-8 不支持 media query min/max-width
引入 respond.js
  • IE 识别并支持 HTML5 元素
引入 html5shiv.min.js

html5shiv 是一个针对 IE 浏览器的 HTML5 JavaScript 补丁,目的是让 IE 识别并支持 HTML5 元素。

  • 判断 IE 调用 js 写法
/* 非 IE 浏览器 和 IE10+ */
<!--[if !IE]><!-->
<script src=".js"></script>
<!--<![endif]-->

/* IE 7\8 */
<!--[if lte IE 8]>
<script src=".js"></script>
<![endif]-->
  • $.ajax提交数组作为参数,传的参数会在键名后面多个[],无法传参到后台
需要进行JSON.Stringfy()转换
  • $.ajax获取状态码status
$.ajax()
 .error(result){
  console.log(result.status)
 }
  • 内部元素长度不换行超出容器元素长度后,容器元素的宽度不变,若要容器宽度被撑开
IE8+ 设置容器元素的 display:inline-block;
IE7  设置 *display:inline; *zoom:1;
  • 兼容问题
      1. “SCRIPT1010: 缺少标识符”这个错误有两种常见的问题:
        一个就是使用了JavaScript保留字问题;
        另一个就是json格式不标准,多了“,”等问题;
      2. console.log 在 ie9及以下版本会报错;
        删除console
        或 F12 打开管理者工具 就不会报错 console 为定义了
      3. IE7下table的td为空时,border就不会显示;
        可以用空字符&nbsp;填充;
        IE8 可以设置 td 的 empty-cells:show;
      4. IE7中行内元素,不能设置高度和宽度;
        可以通过line-height设置高度;通过padding设置左右间距;
      5. IE7、IE8 中 jquery 的 load 功能一直不生效;
        原来是 load 的页面中多了一个结束的</div>,高版本浏览器中会忽略这个错误;
      6. jQuery兼容性
        jQuery1.x 兼容IE6-8、jQuery2.0 开始支持IE9+
      7. file文件上传,ie上不是直接 click 点击的 input[file],不会触发onchange事件
        ie上使用 a 标签包含input[file],input使用绝对定位到a标签上并设置input透明,点击 a 时其实是点击了 input
      8. url传递的字段中有中文,ie8及以下版本 不识别
        使用 encodeURI 编码后再发送,后台使用 decodeURI 解码
      9. IE8 页面内容不展示,一直白屏
        很可能是因为 div 等元素,没有闭合或者多了闭合标签
      10. IE8、7 ul标签的高度100%不生效
        设置min-height来撑开容器
      11. 层在 ie7 中被父级遮挡,显示不出来
        父级的父级设置了position:relative;
        解决:

        删除父级的父级的position:relative;只在父级写relative;
      12. IE7、8 input 框里的文本上下不居中
        需要设置 line-height
      13. SCRIPT438: 对象不支持 “indexOf” 属性或方法
        jquery.timepicker,indexOf 和 lastIndexOf 对字符串的处理方法兼容所有浏览器
        数组对象的indexOf和lastIndexOf方法,IE浏览器都不支持。
        解决方案:

        ["error","initial"].indexOf(c) 修改为 ["error","initial"].join('').indexOf(c)
      14. IE8 下 display:inline-block 不生效
        IE8 只支持行内元素的 inline-block

        如: span,a等行内元素支持.
        div等块级元素不支持.

      15. :first-child
        IE7 不支持动态创建的元素的 :first-child
        
        IE8 不支持 a 标签在点击时的 :first-child

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注