旧版浏览器无法识别 javascript 中的 `

older browsers won't recognize ` in javascript

我正在构建一个带有 Foundation 范围滑块的计算器。它在 Safari 9、最新的 Chrome 和 Firefox 中工作正常,适用于 Mac 和 Windows,Edge 14。但它在 Safari 8 或 IE 11 中不起作用。在 Safari 8 中,我看到一个错误 SyntaxError: Invalid character: '`' 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);
  }
});

如果我将 ` 更改为 ',它在任何浏览器中都不起作用。有人知道吗?谢谢!

如果你必须支持旧的浏览器,你唯一真正的选择就是不使用模板文字。它是 JavaScript 中的一项相对较新的功能,因此较旧的浏览器将无法理解如何解释它。

这里是 link 文档,显示它的支持:

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

您可以随时返回 "old fashioned way":

这个

 `${movement}%`

变成这样:

 movement + "%"