如何在 Service Worker 中动态加载 Javascript 文件?

7
我无法使用任何涉及动态创建<script>标签的解决方法,因为在ServiceWorker上下文中,document不存在。
在这种情况下,我希望加载分析工具包,以便跟踪用户与由SW触发的通知交互的情况。
有什么想法吗?
1个回答

11
这似乎是importScripts()方法的预期使用情况。
导入的脚本与您的服务工作者共享全局作用域,因此通过self.addEventListener()self.someIdentifier ='blah'进行self的修改将产生与从主服务工作者脚本中执行的效果相同的效果。

1
是的,那肯定能解决问题。不幸的是,在我问问题后,我意识到我想要加载的分析库也依赖于“document”,所以我必须找另一种方法。 - Jordan Baker
1
虽然importScripts是一种不错的方法,但它并不能真正实现JS文件的动态加载,因为它无法在函数中定位。因此,要动态调用JS,您必须“fetch” JS,然后执行“eval”。除非有比我知道的更好的方法。 - Jon49

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接