首页 > 解决方案 > 检查模板文字是否在脚本中可用

问题描述

我正在尝试找到一种方法来检查给定浏览器是否支持 JS 中的模板文字。这个想法是如果浏览器不支持ES6功能,则将Babel创建的不同脚本传递给它们。所以我正在尝试:

function check_es6() {
    try { `foo` }
    catch (e) { return false; }

    return true;
}

alert(check_es6());

但是,在我的旧 iPhone 上,我得到:

无效字符位于 https://m.xxx.org/2018/js/app.js的第 141 行,位于 1 页。

出现在 Mobile Safari 7 中。最后一次出现在 20 分钟前。迄今为止发生过一次。在页面加载之前发生。

第 141 行是:

try { `foo` }

有没有更好的方法来做我需要的事情?

标签: javascriptecmascript-6

解决方案


好的,所以设法自己解决了:)

try { eval("`foo`"); }

当浏览器不支持模板文字时,现在正确显示“false”,而在以后支持的浏览器中显示“true”。


推荐阅读