IE 11、Modernizr 和 SCRIPT1002 语法错误
IE 11, Modernizr and SCRIPT1002 syntax error
我有一个网站使用 Modernizr 检查浏览器是否支持 es6。
我有这个脚本:
if (Modernizr.es6number) {
Object.keys(objFiltri).map(key => objGrid_CustomFilter.perQuery[key] = objFiltri[key]);
} else {
labelsPrint.map(function (key) { objGrid_CustomFilter.perQuery[key] = objFiltri[key] });
}
在 IE11 中的代码
Modernizr.es6number
return 错误,但 IE 给我一个错误(SCRIPT1002 语法错误)因为不识别 es6 方法 .map.
我的问题是,如果 IF return FALSE,为什么 IE 通过 TRUE 案例?
我怎样才能避免这种情况?
谢谢!
首先,代码不检查是否支持 ES6,它检查是否支持单个功能。
更重要的是你定义了一个箭头函数,而 IE 不支持箭头函数。整个(!)代码在执行之前被解析。 IE 甚至没有达到检查 Modernizr.es6number
.
的地步
您不能使用浏览器不支持的语法。您不能在 IE 11 中使用箭头函数。
我有一个网站使用 Modernizr 检查浏览器是否支持 es6。
我有这个脚本:
if (Modernizr.es6number) {
Object.keys(objFiltri).map(key => objGrid_CustomFilter.perQuery[key] = objFiltri[key]);
} else {
labelsPrint.map(function (key) { objGrid_CustomFilter.perQuery[key] = objFiltri[key] });
}
在 IE11 中的代码
Modernizr.es6number
return 错误,但 IE 给我一个错误(SCRIPT1002 语法错误)因为不识别 es6 方法 .map.
我的问题是,如果 IF return FALSE,为什么 IE 通过 TRUE 案例? 我怎样才能避免这种情况?
谢谢!
首先,代码不检查是否支持 ES6,它检查是否支持单个功能。
更重要的是你定义了一个箭头函数,而 IE 不支持箭头函数。整个(!)代码在执行之前被解析。 IE 甚至没有达到检查 Modernizr.es6number
.
您不能使用浏览器不支持的语法。您不能在 IE 11 中使用箭头函数。