我想知道浏览器是否支持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