IE 的 JS 兼容性问题

发布于 2021-12-26 01:35:06 字数 1551 浏览 941 评论 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技术交流群

发布评论

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

关于作者

虐人心

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

0 文章
0 评论
24514 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

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