工人、网络或服务;无论如何访问窗口对象?

Mr *_*blo 6 html javascript webos web-worker cordova

我正在尝试在 webOS 中利用 Web Worker 来进行标牌应用程序,因为存在一个奇怪的错误,即使用 SCAP API 执行文件下载之间的时间呈指数级减慢。

我的想法是尝试网络工作人员下载文件,希望这意味着问题会消失/应用程序会更快一些。

然而,SCAP API 是基于 Cordova 的,而且 Cordova 似乎需要访问 Window 对象,而 Web Worker 似乎无法做到这一点(经过几个小时的尝试,我终于发现了!)

我的问题是,有没有办法让网络工作者与 Cordova 一起工作?

是否有其他类型的工作人员可以访问窗口对象?

基本上,有什么解决办法吗?或者尝试是10​​0%不可能和徒劳的吗?

Dou*_*ugA 4

您不能使用 Service Worker 来控制任何window对象。

服务工作人员在工作人员上下文(而不是浏览器上下文)中运行;因此它没有 DOM 访问权限

由于类似的东西postMessage()是一个window函数,并且window是 DOM 的一部分,所以你不能 window.postMessage()从 Service Worker 中获得。不幸的是,client.postMessage()它仅适用于来自同一域源(和服务工作线程“范围”)的浏览器上下文(选项卡、窗口等)。