如何从主框架测试 Fetch API 在 Web Worker 中是否可用

How to test if Fetch API is available in Web Worker from main frame

我通过简单地测试 window.fetch.

在浏览器中可用时使用 Fetch API

但是在Safari 10的情况下,fetch在主框架中可用,它实例化了一个web worker,但在web worker框架中不可用。

有没有办法从主框架测试 web worker 中的顶级功能是否可用?

理想情况下,我们可以引用 Web Worker 实例并测试 属性 在 self 对象上是否可用。

Is there a way to test if a top level function is available in a web worker from the main frame ?

不同步。

但是,在许多浏览器中,您可以从 blob 或 data-uri 创建 Web Worker 实例。您可以创建一个运行 typeof 测试并将结果作为消息发回的网络工作者。有关详细信息,请参阅 How to create a Web Worker from a string

我认为这可能是更适合浏览器版本检测的少数情况之一。