随着所有新的主要浏览器都支持WebAssembly,如何检查正在访问我的网站的当前浏览器是否支持它?
您可以通过几种方法来检测WebAssembly的存在。最基本的方法是检查全局范围内的WebAssembly类型是否为"object",但是在不同的JavaScript环境(主浏览器线程,worker,node.js)中,“全局范围”是一件棘手的事情。 >
WebAssembly
"object"
这样做在技术上还不够,因为您可能具有WebAssembly支持,但由于CSP而无法实际编译或实例化(并且CSP不允许的功能尚未标准化,正在进行here)。
保守的检查可能如下:
(信誉不足,无法发表评论。...)如果您正在较旧的浏览器上进行测试,则不支持() =>语法,因此可以将其全部用作一个函数:
() =>
function wasmSupported() { // try/catch, return false; as in JF Bastien's answer } if(wasmSupported()) { ... }