2016-03-30 5 views
3

Gibt es eine Möglichkeit, alle Browser registrierte Service-Mitarbeiter aufzulisten? Lässt sagen, dass ich ein paar Servicearbeiter registriert/installiert habe. kann ich über js eine Liste der Dateinamen erhalten?Liste chromes registrierte Service-Mitarbeiter

+0

Soweit ich weiß, gibt es keine API, um registrierte Arbeiter aufzulisten, da Web Workers nur begrenzten Zugriff auf 'window'' document' und 'parent' haben. Eine einfache Problemumgehung wäre, Arbeiterreferenzen in ein JS-Objekt zu speichern ... –

+0

Es würde helfen, genau zu wissen, was Sie mit "allen Browsern" und "I" in Ihrer Frage meinen. Möchten Sie wirklich, dass alle Service-Mitarbeiter auf jeder Seite in einem beliebigen Bereich registriert sind? Oder wollen Sie nur, dass alle Service-Mitarbeiter von Seiten in einem bestimmten Umfang registriert werden? Und ist "ich" eine Firefox/Chrome-Erweiterung oder eine Webseite? –

Antwort

8

Anscheinend habe ich zwei Möglichkeiten gefunden, die für mich (für Chrom) gut funktioniert: sind Kürzel Befehl:

chrome://serviceworker-internals/ 

andere ist:

gehen zu Developers Tool -> Resources -> Service Workers

7

Es gibt keine Möglichkeit, "alle im Browser registrierten" Service Worker programmgesteuert von einer Webseite zu erhalten, da eine Webseite nur auf Service Worker zugreifen kann, die für ihren Bereich registriert sind. Aber wenn Sie nach einer Möglichkeit, diejenigen zu bekommen, dann navigator.serviceWorker.getRegistrations rufen ein Versprechen zu erhalten, die der registrierten Service-Mitarbeiter auf ein Array löst:

navigator.serviceWorker.getRegistrations().then(function(registrations) { 
    registrations.forEach(function(v) { console.log('service worker: ' + v) }); 
}); 
4

Wenn Sie wirklich wollen „alle Browser des“ eingetragene Dienstleistungs Arbeiter, können Sie es nicht programmatisch tun, indem Sie diese URLs öffnen:

Firefox

about:serviceworkers 

Chrome

chrome://serviceworker-internals/ 

Opera

browser://serviceworker-internals 

Siehe auch: Is ServiceWorker Ready? für eine up-to-date Liste der Debug-Helfer.


(. Vermutlich gibt es auch eine Möglichkeit, dies in einer Firefox-Erweiterung programmatisch zu tun)