字符IE 11无效

时间:2016-11-08 20:07:52

标签: javascript jquery internet-explorer zurb-foundation

在IE 11和IE 10中,我在下面的行中出现无效字符错误:

if (!plugin.$element.attr(``data-${ pluginName }``)) {

我知道这是因为ES6不受支持,但我不知道如何解决这个问题。基金会已经包括了babel,我认为下面的这个脚本可以解决这个问题但是没有。

return gulp.src(PATHS.javascript)
    .pipe($.sourcemaps.init())
    .pipe($.babel())
    .pipe($.concat('foundation.js', {
      newLine:'\n;'
    }))
    .pipe($.if(isProduction, uglify))
    .pipe($.if(!isProduction, $.sourcemaps.write()))
    .pipe(gulp.dest('assets/javascript'))
    .pipe(browserSync.stream());
});

这是Foundation附带的foundation.core.js文件中的问题。

要查看此问题,您可以导航到以下网址并在IE 11或10中加载它: http://b20.2c7.mwp.accessdomain.com/

有没有人对此有所解决?

2 个答案:

答案 0 :(得分:2)

我很生气,因为这是一个实际的问题而得到了一次投票。

基金会应该为我做这个..

我通过重新安装的凉亭解决了问题,它工作得很好..奇怪..

答案 1 :(得分:1)

Internet Explorer 11不支持某些ES6功能。除了这些不受支持的还有模板文字

请参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals 为了兼容性。

最好的方法是使用babel及其插件来转换模板文字。

安装babel插件

npm install --save-dev babel-plugin-transform-es2015-template-literals

在.babelrc的“插件”部分中添加它

// without options
{
  "plugins": ["transform-es2015-template-literals"]
}

// with options
{
  "plugins": [
    ["transform-es2015-template-literals", {
      "loose": true,
      "spec": true
    }]
  ]
}

在gulpfile.babel.js中,请确保所有内容都是通过babel-loader进行解析的,因此请注释掉排除的文件(其中大多数与基础相关),以便通过babel-loader进行解析

因此,本示例中的文字如下:

`foo${bar}`;

会变成这样:

"foo" + bar;

查看更多:https://www.npmjs.com/package/babel-plugin-transform-es2015-template-literals