最近有个在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渲染页面。-->