IE11中Array的find()方法、String的repeat()方法 等兼容性问题

最近有个在Chrome浏览器正常运行的项目,客户需要用IE浏览,发现在IE11及以下版本浏览异常,有两个原因:

1. IE11不支持箭头函式表达式=>,改成function匿名函数解决;

2. IE11中Array没有此项目中使用到的find方法,因此兼容的写一个【需放在引用的地方之前,比如在“$(document).ready(function(){})”中】

if(!Array.prototype.find){
    Array.prototype.find = function(callback) {
        return callback && (this.filter(callback)|| [])[0];
    };
}

3.  String.prototype.repeat()方法:重复指定字符并返回拼接后的字符串

对于Chrome内核有个很早就能用“‘字符串’.repeat(n) ”方法直接取得字符串重复n次的新字符串,但repeat方法IE内核并不支持,自己实现也很简单:

//重复n个*:
new Array(n+1).join('*')    //new Array(5).join('*') 结果为: ****

//为兼容IE自己来实现String.prototype.repeat()方法:
if(!String.prototype.repeat){
    String.prototype.repeat = function(n) {
        return new Array(n+1).join(this);
    };
}

4. 另外再次提醒注意,页面不要忘了做IE兼容性标记设置【详见本人另一博文 Web开发时不要忽略的IE兼容性设置】:


<!DOCTYPE html>   <!--使用HTML5-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />  <!--告诉IE使用最新的渲染器Edge渲染页面。-->

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值