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.


var myController = navigator.serviceWorker.controller;


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.');


Specification Status Comment
Service Workers
The definition of 'ServiceWorkerRegistration.controller' in that specification.
Working Draft Initial definition

Browser compatibility

BCD tables only load in the browser