2016-08-12 101 views
1

我正在用Foundation范围滑块构建一个计算器。它在Safari 9,Mac和Windows Edge 14的最新Chrome和Firefox中工作正常。但在Safari 8或IE 11中无法正常工作。在Safari 8中,我看到一个错误SyntaxError:无效的字符:'`' JavaScript代码如下所示:旧版浏览器将无法识别`in javascript

Foundation.Move(moveTime, $hndl, function() { 
    //adjusting the left/top property of the handle, based on the percentage calculated above 
    $hndl.css(lOrT, `${movement}%`); 

    if (!_this.options.doubleSided) { 
    //if single-handled, a simple method to expand the fill bar 
    _this.$fill.css(hOrW, `${pctOfBar * 100}%`); 
    } else { 
    //otherwise, use the css object we created above 
    _this.$fill.css(css); 
    } 
}); 

如果我改变'为”,它不以任何浏览器。任何人有任何想法?谢谢!

+0

当然,他们不会,ES2015不适用于旧浏览器,在新浏览器中几乎不可靠,模板字符串是ES2015的一项功能。 – adeneo

+0

使用Babel来传输你的JavaScript https://babeljs.io/ – OregonTrail

回答

3

如果您必须支持旧版浏览器,那么您唯一真正的选择是不使用模板文字。这是JavaScript中一个相对较新的功能,因此旧版浏览器不会理解如何解释它。

这链接到文件,显示它的支持:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals

您可以随时备份到 “老式方法”:

`${movement}%` 

变成这样:

movement + "%" 
+0

感谢Kevin!我必须对滑块进行一些自定义,所以我基本上从Foundation的滑块插件复制了该函数。我以前从未使用过模板文字。它现在完美。 – DimSum

+0

很高兴能帮到你! – kemiller2002