IE 的 JS 兼容性问题

发布于 2021-12-26 01:35:06 字数 1551 浏览 951 评论 0

在与产品撕扯之后,确定了我们的系统,只支持 IE9+,而且控制台系统,只支持 IE11。但就算这样,IE 照样爆出 bug 来。

1、ajax 强制 304

例子:请求了一个列表——添加一条数据——再请求这个列表——数目不添加,打开 IE 的开发工具查看,数据又正常了,使用抓包工具查看,原来 IE 会把之前请求过的 ajax 地址,都当做 304 给处理,直接拿的缓存,没走实际的后台接口。

解决方案:ajax 请求加时间戳、或加随机数、或 jquery ajax 的 cache 设置为 false

PS:不只是 IE,其他浏览器也是一样。

2、汉字乱码

例子:搜索接口,输入汉字后检索,检索不出结果,抓包查看,汉字乱掉了

解决方案:ajax 将检索的关键字编码,使用 encodeURIComponent 都行

3、表格出不来

<table class="table-style-01">
<colgroup><!--如果不写colgroup的话,会挂掉-->
<col width="25%" />
…… </colgroup>
<thead>
  <tr>
  <th>分类</th>
  ……
  </tr>
</thead>
<tbody>
<tr>
……

如上代码,如果不写 colgroup 的话,先进的浏览器,会把 col 标签,默认使用 colgroup 包起来,界面还会正常显示。
但是 IE,会自作主张的用 colgroup 标签,将下面的直到 tbody 标签里面的内容都包起来,然后显示不了表格

解决方案:写 html 要符合 w3c 标准,不能随意简写。

4、icheck 点击两次才好使的 bug

icheck 是 jQuery 的一个优化单选、多选框的插件,在IE下,选中需要点击两下,直接使用别的 css 方案,替换掉 icheck,完全是让人上火的鸡肋插件。

5、在默认设置下,cookie 失效

某天 QA 报了一个 bug,IE 登录不了,其余的浏览器 OK,后台看了日志,说没有 cookie
检查了前后端代码,都没问题,忽然想起,是不是被 IE 禁用了 cookie 了。
IE 的默认安全设置,是中级,即只信任本网站的 cookie,不信任本网站调用第三方域名种的 cookie,刚好我们的就是不同的域名。
把权限放到最低,就好使了。

解决方案:

  • 1、cookie 本域名种植
  • 2、IE 下,给出单独提示,提示把权限打开

总结

其余的像 event 事件、dom 操作、宽高获取兼容性问题,已经被大家知悉,jQuery 已经帮大家处理掉这些兼容性问题,但是还会经常有一些注意不到的细节。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

虐人心

有一天你能到我的心里去,你会看到那里全是你给的伤悲。

文章
评论
24518 人气
更多

推荐作者

夢野间

文章 0 评论 0

doggiejohn

文章 0 评论 0

就此别过

文章 0 评论 0

初见终念

文章 0 评论 0

qq_rvKjBH

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文