Clients.openWindow()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since avril 2018.
Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.
La méthode openWindow()
de l'interface 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.
Syntaxe
ServiceWorkerClients.openWindow(url).then(function (WindowClient) {
// Faire quelque chose avec le WindowClient
});
Paramètres
Valeur de retour
Une Promise
qui résoud un objet WindowClient
si l'URL est de la même origine que le service worker, et null value sinon.
Exemples
// Quand l'utilisateur click sur une notification, focus sur la fenêtre si elle existe,
// ou ouvre en une autre.
(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écifications
Specification |
---|
Service Workers> # clients-openwindow> |
Compatibilité des navigateurs
Loading…