【问题标题】:IE 11, Modernizr and SCRIPT1002 syntax errorIE 11、Modernizr 和 SCRIPT1002 语法错误
【发布时间】:2017-03-18 08:49:25
【问题描述】:

我有一个网站使用 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 false,但是 IE 给我一个错误(SCRIPT1002 不正确的语法)因为不识别 es6 方法.map。

我的问题是,如果 IF 返回 FALSE,为什么 IE 会通过 TRUE 的情况? 我怎样才能避免这种情况?

谢谢!

【问题讨论】:

  • 在代码中包含 babel js 以编写所有浏览器都接受的 es6 语法
  • 感谢您的回复,但我不能包含任何其他 js 文件或其他任何内容。 :(
  • IE 11 仍然无法识别 es6 的语法,我认为是这样。要使用 polyfill,请使用 babeljs。

标签: internet-explorer ecmascript-6 modernizr


【解决方案1】:

首先,代码不检查 ES6 支持,它检查是否支持单个功能。

更重要的是你定义了一个箭头函数,而 IE 不支持箭头函数。整个(!)代码在执行之前被解析。 IE 甚至没有达到检查Modernizr.es6number 的程度。

您不能使用浏览器不支持的语法。您不能在 IE 11 中使用箭头函数。

【讨论】:

    猜你喜欢
    • 2018-04-06
    • 1970-01-01
    • 2021-10-25
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 2016-11-30
    相关资源
    最近更新 更多