IE8 兼容性问题 - AJAX 结果里面使用 .html() 以及 innerHTML 报错

首先祝所有还在使用 IE8 的电脑全部原地自爆

然后祝所有还支持 IE8 浏览器的公司全部原地自爆

好好好我们看看问题所在.

$.ajax({
  url: 'xxxxx',
  type: 'get'
})
.done(function(res) {
  $("#abc").html(res); // 报错
})

报了个 Unknown Runtime Error, 这个该死的 Error 居然连解释都没有。

首先这个兼容性错误仅仅出现在 IE8,后续版本不存在,其他浏览器不存在。

可能有以下原因:

  1. 标签的错误嵌套使用,比如
    • li 前后没有正确的 ul 或者 ol 头尾符号
    • p 标签被错误地嵌套
    • h1 前后可能没有闭合
  2. form 标签被嵌套使用

一般就是 form 标签嵌套使用的原因

解决方法:

将嵌套的标签移除

  • 比如我是在 form 里面开一个 modal, modal 里面显示另一个 form, 这时候只需要将 modal 放到 form 之外即可
  • p 标签里面嵌套是不正确的, 换成 div

References

Internet Explorer FIX: Unknown Runtime Error Using innerHTML & Ajax

  • 文章标题: 《IE8 - Unknown Runtime Error Using innerHTML & Ajax》
  • 发布日期: 2019-03-29
  • 文章分类: Tech
  • 相关标签: 3DS