使用服务工作者更新dom

时间:2018-03-15 08:44:16

标签: javascript service-worker web-push

我已经实现了网络推送通知,现在我正在研究如果在浏览器中打开网站,可以使用服务工作者来更新DOM。 类似于社交媒体网站如果您收到消息(或就此而言是SO)更新的方式。

这是可能的,还是我在错误的树上咆哮?

我尝试过简单地告诉服务工作者寻找某个元素并更新其内容,但这并不起作用。

1 个答案:

答案 0 :(得分:3)

服务工作者(一般的网络工作者)无法访问窗口或文档元素。这意味着,网络工作者不能直接操纵DOM。

但是,Web worker可以使用Client.postMessage()向主线程(文档javascript)发送消息。 所以你需要做的是从服务工作者发送消息到文档javascript,其中包含id / class / tagname列表/你要操作的任何DOM元素,让主线程完成工作。