在没有“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() 的调用