Client.type

The type read-only property of the Client interface indicates the type of client the service worker is controlling.

Syntax

var myClientType = client.type;

Value

A string, representing the client type. The value can be one of

  • "window"
  • "worker"
  • "sharedworker"

Example

// service worker client (e.g. a document)
function sendMessage(message) {
  return new Promise(function(resolve, reject) {
    // note that this is the ServiceWorker.postMessage version
    navigator.serviceWorker.controller.postMessage(message);
    window.serviceWorker.onMessage = function(e) {
      resolve(e.data);
    };
  });
}

// controlling service worker
self.addEventListener("message", function(e) {
  // e.source is a client object
  e.source.postMessage("Hello! Your message was: " + e.data);
  // Let's also post the type value back to the client
  e.source.postMessage(e.source.type);
});

Specifications

Specification
Service Workers 1
# client-type

Browser compatibility

BCD tables only load in the browser