Experimental: 这是一个实验中的功能

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.


WindowClient inherits methods from its parent interface, Client.

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


WindowClient inherits properties from its parent interface, Client.

WindowClient.focused (en-US) 只读
A boolean that indicates whether the current client has focus.
WindowClient.visibilityState (en-US) 只读
Indicates the visibility of the current client. This value can be one of hidden, visible, prerender, or unloaded.


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

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


Specification Status Comment
Service Workers
Working Draft Initial definition

Browser compatibility

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help! (en-US)
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 42.0 44.0 (44.0)[1] 未实现 ? 未实现
navigate() 49.0        
Feature Android Android Webview Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support 未实现 未实现 44.0 (44.0) (Yes) 未实现 ? 未实现 42.0
navigate() 未实现 未实现           49.0

[1] Service workers (and Push) have been disabled in the Firefox 45 and 52 Extended Support Releases (ESR.)

See also