IE8及其以下版本会有哪些兼容性问题

不支持console

IE8及其以下版本下使用console会报错:console未定义。
需要自定义console函数,代码如下:

//解决ie浏览器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;
})();

不支持trim() 等函数,不支持Map等对象,不支持 等元素

IE8及其以下版本下使用一些函数或对象会报错:对象不支持此属性或方法。
解决办法仍然是自己编写代码去实现想要的功能或者引入相关js文件。

对标识符敏感,语法要求严格

IE8及其以下版本对于语法要求特别严格,如果控制台报语法错误、缺少标识符、由于出现错误 xxx 而导致此项操作无法完成,请务必检查:

  1. 括号是否有多余或遗漏
  2. 是否有多余的标点符号,例如json对象最后的逗号多余:{a:‘1’, b:‘2’,}
  3. 注释是否规范
  4. js脚本加载顺序是否正确

for in 会比预期多循环一次

IE8及其以下版本使用循环for(var v in obj){}会比预期多循环一次,因为for-in循环是对对象每个属性(包括对象原型链的属性)的枚举,这会导致很多错误的发生。解决方法当然是使用其他形式的循环。

当然,IE还有很多兼容性问题,尤其IE8及其以下版本,如果大家还遇到其他兼容性问题,欢迎指出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值