特定の外部Webサイトに「service-worker」があるかどうかを区別できますか?
私の最善の推測は:
(これを行う方法もわかりません)
与えられたデータは次のようになります:
const sitesToCheck = {
'www.site1.com',
'www.site2.com',
'www.site3.com',
}
これをコードで実行する場合は、チェックするワーカーと同じオリジン内でのみ実行できます。同じオリジン内で、 getRegistration(url)
を使用できます(これにより、undefined
または ServiceWorkerRegistration
object URLの場合)、または getRegistrations()
(これにより、 ServiceWorkerRegistration
オブジェクト の配列が約束されます)。例えば。:
navigator.serviceWorker.getRegistrations().then(registrations => {
console.log(registrations);
});
Service Worker Detector 、a Chrome拡張機能は、Webサイトがnavigator.serviceWorker.controller
プロパティを読み取ることでServiceWorkerを登録するかどうかを検出します。これも機能する可能性があります。 in Web拡張機能をサポートする他のブラウザ ですが、まだそのように配布されていないようです。
ただし、スクリプトをブラウザで実行する必要があるため、ニーズに対応できない場合があります。スクリプト可能な ヘッドレスChrome で試すことができます。