Jordan Baker
Jordan Baker

Reputation: 4625

How to load Javascript file in a Service Worker dynamically?

I can't use any solutions that involve creating a <script> tag dynamically because document does not exist in a ServiceWorker context.

In this case I want to load analytics toolkit so I can track when SW-triggered Notifications are interacted with by the user.

Any ideas?

Upvotes: 8

Views: 8215

Answers (1)

Jeff Posnick
Jeff Posnick

Reputation: 56064

That sounds like the intended use case of the importScripts() method.

The imported script shares the global scope with your service worker, so modifying self via, e.g., self.addEventListener() or self.someIdentifier = 'blah' will have the same effect as it would from within the main service worker script.

Upvotes: 11

Related Questions