W3cubDocs

/DOM

WindowClient

This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The WindowClient interface of the ServiceWorker API represents the scope of a service worker client that is a document in a browser context, controlled by an active worker. The service worker client independently selects and uses a service worker for its own loading and sub-resources.

Methods

WindowClient inherits methods from its parent interface, Client.

WindowClient.focus()
Gives user input focus to the current client.
WindowClient.navigate()
Loads a specified URL into a controlled client page.

Properties

WindowClient inherits properties from its parent interface, Client.

WindowClient.focused Read only
A boolean that indicates whether the current client has focus.
WindowClient.visibilityState Read only
Indicates the visibility of the current client. This value can be one of hidden, visible, prerender, or unloaded.

Example

self.addEventListener('notificationclick', function(event) {
  console.log('On notification click: ', event.notification.tag);
  event.notification.close();

  // This looks to see if the current is already open and
  // focuses if it is
  event.waitUntil(clients.matchAll({
    type: "window"
  }).then(function(clientList) {
    for (var i = 0; i < clientList.length; i++) {
      var client = clientList[i];
      if (client.url == '/' && 'focus' in client) {
        client.focus();
        break;
      }
    }
    if (clients.openWindow)
      return clients.openWindow('/');
  }));
});

Specifications

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

Browser compatibilityUpdate compatibility data on GitHub

Desktop
Chrome Edge Firefox Internet Explorer Opera Safari
Basic support 42 Yes 44
44
Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
No ? No
focus 42 Yes 44
44
Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
No ? No
navigate 49 Yes 44
44
Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
No ? No
focused 42 Yes 44
44
Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
No ? No
visibilityState 42 Yes 44
44
Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR).
No ? No
ancestorOrigins ? ? ? ? ? ?
Mobile
Android webview Chrome for Android Edge Mobile Firefox for Android Opera for Android iOS Safari Samsung Internet
Basic support No 42 ? 44 ? No 4.0
focus No 42 ? 44 ? No 4.0
navigate No 49 ? 44 ? No 4.0
focused No 42 ? 44 ? No 4.0
visibilityState No 42 ? 44 ? No 4.0
ancestorOrigins ? ? ? ? ? ? ?

See also

© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WindowClient