The controller read-only property of the ServiceWorkerContainer interface returns a ServiceWorker object if its state is activating or activated (the same object returned by This property returns null if the request is a force refresh (Shift + refresh) or if there is no active worker.


A ServiceWorker object.


if ('serviceWorker' in navigator) {
  // Do a one-off check to see if a service worker's in control.
  if (navigator.serviceWorker.controller) {
    console.log(`This page is currently controlled by: ${navigator.serviceWorker.controller}`);
  } else {
    console.log('This page is not currently controlled by a service worker.');
} else {
  console.log('Service workers are not supported.');


Service Workers
# navigator-service-worker-controller

Browser compatibility

BCD tables only load in the browser