发现 var str = String.fromCharCode.apply(null,arr);时由于arr数组太长,会导致IE浏览器报出“堆栈溢出”的错误。
但谷歌浏览器不会产生这种错误。
我的理解是,其实相当于IE浏览器执行了arr.length深度的递归。导致ie堆栈溢出了。网上查IE递归据说只支持3000层,
所以我用了一个最笨的解决方法,直接写
var str='';
for(var i;i<arr.length;i++){
str+=String.fromCharCode(arr[i]);
}
自己不是专业的搞前端,一直写服务端,最近开始接手了一个Chrome向IE兼容的工作,也只能是在工作中摸索了。