我想在获取事件监听器中访问我的服务 worker 的范围。我计划的解决方法是使用 window.location.host
,但 window
在 service worker 中不可用。我还尝试使用 ServiceWorkerRegistration.scope ( MDN doc ),它会返回我想要的值,但这在获取事件处理程序中也是不可访问的。
我希望有类似于 event.scope
的东西(在注册处理程序中可用),但用于获取处理程序。这可能吗?
最佳答案
在 Chrome 开发工具中进行了一些挖掘之后,我找到了我正在寻找的变量:self.location.host
。这引用了具有“位置”属性的 ServiceWorkerGlobalScope。
我在 Google Chrome 团队的 example service worker 中发现了类似的用法使用 self.location.origin 代替:
// Skip cross-origin requests, like those for Google Analytics.
if (event.request.url.startsWith(self.location.origin)) { ... }
关于javascript - 在获取事件监听器中获取服务 worker 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47144179/