Comment puis-je obtenir l'URL de la page avec les paramètres d'un agent de service?Récupération des paramètres d'URL de page à partir d'un agent de service
J'ai essayé self.registration.scope
mais cela n'inclut pas les paramètres.
Comment puis-je obtenir l'URL de la page avec les paramètres d'un agent de service?Récupération des paramètres d'URL de page à partir d'un agent de service
J'ai essayé self.registration.scope
mais cela n'inclut pas les paramètres.
Je ne suis pas clair de savoir si vous demandez à obtenir l'URL du script de travail de service, ou les URL de toutes les pages client ouvertes sous la portée de l'agent de service. Alors ... voici comment faire les deux:
// Get a URL object for the service worker script's location.
const swScriptUrl = new URL(self.location);
// Get URL objects for each client's location.
self.clients.matchAll({includeUncontrolled: true}).then(clients => {
for (const client of clients) {
const clientUrl = new URL(client.url);
}
});
Dans l'un de ces cas, une fois que vous avez un objet URL
, vous pouvez utiliser son searchParams
property si vous êtes intéressé par les paramètres de la requête:
if (url.searchParams.get('key') === 'value') {
// Do something if the URL contains key=value as a query parameter.
}
Vous pouvez obtenir waiting.scriptURL
ou active.scriptURL
, passer le résultat de constructeur URL()
, obtenir .search
propriété d'objet
navigator.serviceWorker.register("sw.js?abc=123")
.then(function(reg) {
const scriptURL = reg.waiting && reg.waiting.scriptURL || reg.active.scriptURL;
const url = new URL(scriptURL);
const queryString = url.search;
console.log(queryString);
}).catch(function(err) {
console.log("err", err);
});