gpt4 book ai didi

google-chrome - 使用 "navigator.serviceWorker.controller.postMessage"它总是 "TypeError: Cannot read property ' postMessage' of null"

转载 作者:行者123 更新时间:2023-12-01 03:13:59 26 4
gpt4 key购买 nike

我遇到的问题是,在注册服务 worker 后,navigator.serviceWorker.controller 始终为 null

我想使用 postMessage 向 service worker 发送消息。然而,navigator.serviceWorker.controller总是返回null,并显示错误 TypeError: Cannot read property 'postMessage' of null

有时我可以使用navigator.serviceWorker.controller.postMessage,但有时navigator.serviceWorker.controller返回null,我不确定如何处理这个问题...

我做了一些研究,但我仍然无法解决我的问题...

有人有什么想法吗?

谢谢,特里

这是我创建的测试页。 https://terrylee7788.github.io/test_web_worker.html

最佳答案

使用navigator.serviceWorker.ready

navigator.serviceWorker.ready.then(function(serviceWorkerRegistration) {
// Let's see if you have a subscription already
return serviceWorkerRegistration.pushManager.getSubscription();
})
.then(function(subscription) {
if (!subscription) {
// You do not have subscription
}
// You have subscription.
// Send data to service worker
navigator.serviceWorker.controller.postMessage({'data': dataToServiceWorker});

})

关于google-chrome - 使用 "navigator.serviceWorker.controller.postMessage"它总是 "TypeError: Cannot read property ' postMessage' of null",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36448233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com