Javascript IE 11不支持方法&x2018;从’;

Javascript IE 11不支持方法&x2018;从’;,javascript,internet-explorer-11,Javascript,Internet Explorer 11,我的3000行代码在chrome和Firefox中执行良好,报告的错误为零 但是,在IE11(代码必须运行的地方)中,我收到一个错误,指出在以下行不支持“from”方法: var inputsArray = Array.from(document.querySelectorAll('input.input' + b)); 我如何解决这个问题 HTML文件包含edge的正确兼容模式,因此这不是问题所在。简短回答 使用塑料填充物。Mozilla在数组中提供一个 进一步帮助 其他好的网站可以用来检

我的3000行代码在chrome和Firefox中执行良好,报告的错误为零

但是,在IE11(代码必须运行的地方)中,我收到一个错误,指出在以下行不支持“from”方法:

var inputsArray = Array.from(document.querySelectorAll('input.input' + b));
我如何解决这个问题

HTML文件包含edge的正确兼容模式,因此这不是问题所在。

简短回答 使用塑料填充物。Mozilla在
数组中提供一个

进一步帮助 其他好的网站可以用来检查功能是否在特定的浏览器版本中可用


    • 数组​.from
方法在IE中根本不起作用。请检查MDN页面的兼容性

您可以使用polyfill使其工作:

从文件中:

在第6版(ES2015)中,ECMA-262标准中添加了
Array.from
;因此,它可能不会出现在标准的其他实现中。您可以通过在脚本开头插入以下代码来解决此问题,允许在本机不支持的实现中使用
Array.from
。此算法正是ECMA-262第6版中指定的算法,假设
对象
类型错误
具有其原始值,并且
回调.call
计算为
函数.prototype.call的原始值。此外,由于真正的可移植性不能是多填充的,因此该实现不支持ECMA-262第6版中定义的通用可移植性

以下是文件中建议的polyfill:

//ECMA-262第6版22.1.2.1的生产步骤
如果(!Array.from){
Array.from=(函数(){
var toStr=Object.prototype.toString;
var isCallable=函数(fn){
返回类型fn==“函数”| | toStr.call(fn)===“对象函数]”;
};
var toInteger=函数(值){
var编号=编号(值);
如果(isNaN(编号)){
返回0;
}
if(number==0 | |!isFinite(number)){
返回号码;
}
返回(编号>0?1:-1)*数学楼层(数学abs(编号));
};
var maxsafeinger=Math.pow(2,53)-1;
var toLength=函数(值){
var len=toInteger(值);
返回Math.min(Math.max(len,0),maxSafeInteger);
};
//from方法的长度属性为1。
从(arrayLike/*,mapFn,thisArg*/)返回函数{
//1.设C为该值的最大值。
var C=这个;
//2.将项目设为对象(类似于阵列)。
变量项=对象(类似于阵列);
//3.返回故障(项目)。
if(arrayLike==null){
抛出新的TypeError('Array.from需要类似于数组的对象-不为null或未定义');
}
//4.如果mapfn未定义,则让mapping为false。
var mapFn=arguments.length>1?参数[1]:未定义为void;
变量T;
如果(映射类型Fn!==“未定义”){
//5.其他
//5.a如果IsCallable(mapfn)为false,则抛出TypeError异常。
如果(!isCallable(mapFn)){
抛出新的TypeError('Array.from:提供时,第二个参数必须是函数');
}
//5.b.如果提供了thisArg,则T为thisArg;否则T为未定义。
如果(arguments.length>2){
T=参数[2];
}
}
//10.获取lenValue(项目“长度”)。
//11.让len为ToLength(lenValue)。
var len=总长度(项目长度);
//13.如果IsConstructor(C)为真,则
//13.a.让a作为调用[[Construct]]内部方法的结果
//使用包含单个项len的参数列表的C。
//14.a.否则,让a成为ArrayCreate(len)。
var A=isCallable(C)?对象(新的C(len)):新的数组(len);
//16.设k为0。
var k=0;
//17.当k}
您可以尝试添加
Polyfill
var-inputsArray=Array.prototype.slice.call(document.queryselectoral('input.input'+b))这真的不是堆栈溢出的问题。IE 11在几年前就停止了更新,并且不支持任何新的ECMAScript API。“你可以在谷歌上搜索一下这个。”斯科特马库斯·伊阿格里和你在一起。我仍然有数百个客户仍然要求我们提供与IE11兼容的站点。@CodeHacker,这与什么样的问题适合堆栈溢出无关。这个问题是真实的,但堆栈溢出并不适用于您可能遇到的任何老问题。我们希望你在发帖前做些调查,在谷歌上搜索一下就可以找到答案。