--- title: WindowClient slug: Web/API/WindowClient tags: - API - Client - Experimental - Interface - Reference - Service Workers - ServiceWorker - WindowClient translation_of: Web/API/WindowClient --- <p>{{APIRef("Service Workers API")}}</p> <p>Интерфейс <code>WindowClient</code> <a href="/en-US/docs/Web/API/ServiceWorker_API">ServiceWorker API</a> представляет область действия клиента сервис-воркера, который представляет собой документ в контексте просмотра, управляемый активным исполнителем. Клиент сервис-воркера самостоятельно выбирает и использует сервис-воркера для собственной загрузки и загрузки подресурсов.</p> <h2 id="Методы">Методы</h2> <p><em><code>WindowClient</code> наследует методы от своего родительского интерфейса {{domxref("Client")}}.</em></p> <dl> <dt>{{domxref("WindowClient.focus()")}}</dt> <dd>Фокусирует пользователя на текущем окне.</dd> <dt>{{domxref("WindowClient.navigate()")}}</dt> <dd>Загружает указанный URL-адрес на управляемую клиентскую страницу.</dd> </dl> <h2 id="Свойства">Свойства</h2> <p><em><code>WindowClient</code> наследует методы от своего родительского интерфейса {{domxref("Client")}}.</em></p> <dl> <dt>{{domxref("WindowClient.focused")}} {{readonlyInline}}</dt> <dd>Логическое значение, указывающее, находится ли текущая страница в фокусе.</dd> <dt>{{domxref("WindowClient.visibilityState")}} {{readonlyInline}}</dt> <dd>Указывает, отображается ли текущая страница. Это значение может быть одним из <code>"hidden" (скрыта)</code>, <code>"visible" (отображена)</code> или <code>"prerender" (предварительно отрисована)</code>.</dd> </dl> <h2 id="Пример">Пример</h2> <pre class="brush: js notranslate">self.addEventListener('notificationclick', function(event) { console.log('On notification click: ', event.notification.tag); event.notification.close(); // Проверяем, открыто ли окно и // сфокусированы ли на нем 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('/'); })); });</pre> <h2 id="Спецификации">Спецификации</h2> <table class="standard-table"> <tbody> <tr> <th scope="col">Спецификация</th> <th scope="col">Статус</th> <th scope="col">Комментарий</th> </tr> <tr> <td>{{SpecName('Service Workers', '#windowclient', 'WindowClient')}}</td> <td>{{Spec2('Service Workers')}}</td> <td>Initial definition</td> </tr> </tbody> </table> <h2 id="Совместимость_с_браузером">Совместимость с браузером</h2> <div> <p>{{Compat("api.WindowClient")}}</p> </div> <h2 id="Смотрите_также">Смотрите также</h2> <ul> <li><a href="/en-US/docs/Web/API/ServiceWorker_API/Using_Service_Workers">Использование сервис-воркеров</a></li> <li><a href="https://github.com/mdn/sw-test">Пример базового кода сервис-воркеров</a></li> <li><a href="https://jakearchibald.github.io/isserviceworkerready/">Is ServiceWorker ready?</a></li> <li><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise">Promises</a></li> <li><a href="/en-US/docs/Web/Guide/Performance/Using_web_workers">Использование веб-воркеров</a></li> <li><a href="/en-US/docs/Web/API/Channel_Messaging_API">Channel Messaging API</a></li> </ul>