在没有“unsafe-eval”的情况下检查基本的ES6支持

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在没有“unsafe-eval”的情况下检查基本的ES6支持相关的知识,希望对你有一定的参考价值。

我想知道浏览器是否支持ECMAScript 6(ES6)(基本支持就足够了),但我也想使用合理的内容安全策略(CSP)头。我到目前为止的解决方案,见“Check if a browser supports ES6”,需要'unsafe-eval'。那么解决“Javascript ES6 cross-browser detection”的解决方案。有没有想过绕过这个?

    var supportsES6 = function() {
      try {
        new Function("(a = 0) => a");
        return true;
      }
      catch (err) {
        return false;
      }
    }();
答案

我想你想要检测es6支持的原因是要么决定是否提供es6代码或es5或显示错误。最简单的方法是使用es模块系统

<script type="module" src="script.es6.js"></script>
<script nomodule src="script.es5.js"></script>

支持es6的浏览器将加载script.es6.js并忽略script.es5.js,不支持es6的浏览器将忽略script.es6.js并加载script.es5.js

以上是关于在没有“unsafe-eval”的情况下检查基本的ES6支持的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 \n 的情况下从 txt 中获取特定行(Python)

在没有系统提示的情况下检查蓝牙关闭

即使添加了“unsafe-eval”,CSP 也会阻止对 function() 的调用

Angular - 如何在没有 fs 的情况下检查文件是不是存在

在没有数组边界检查、强制转换检查等的情况下运行 Java

Laravel sanctum 检查用户是不是在没有重定向的情况下通过身份验证