--- title: Clients.openWindow() slug: Web/API/Clients/openWindow translation_of: Web/API/Clients/openWindow ---
{{SeeCompatTable}}{{APIRef("Service Workers API")}}
La méthode openWindow()
de l'interface {{domxref("Clients")}} crée un nouveau niveau de contexte de navigation et charge une URL donnée. Si le script d'origine n'a pas la permission d'ouvrir une popup, openWindow()
lèvera une InvalidAccessError.
Dans Firefox, une méthode est authorisée d'ouvrir une popup seulement lorsqu'elle est appelée à la suite d'un click sur une notification.
ServiceWorkerClients.openWindow(url).then(function(WindowClient) { // Faire quelque chose avec le WindowClient });
url
// Quand l'utilisateur click sur une notification, focus sur la fenêtre si elle existe, // ou ouvre en une autre. onotificationclick = function(event) { var found = false; clients.matchAll().then(function(clients) { for (i = 0; i < clients.length; i++) { if (clients[i].url === event.data.url) { // La fenêtre existe, focus dessus. found = true; clients[i].focus(); break; } } if (!found) { // Crée une nouvelle fenêtre clients.openWindow(event.data.url).then(function(windowClient) { // Faire quelque chose avec le WindowClient }); } }); };
Spécification | Statut | Commentaire |
---|---|---|
{{SpecName('Service Workers', '#clients', 'Clients')}} | {{Spec2('Service Workers')}} | Définition initiale |
{{Compat("api.Clients.openWindow")}}