2017-10-18 9 views

Répondre

4

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. 
} 
0

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); 
    });