小编Kir*_*aar的帖子

Service Worker“安装”事件在 Firefox 上未触发(适用于 Chrome)

我开始了解服务工作者并创建了一个简单的测试者。它似乎在 Chrome 上可以正常注册、激活和工作,但在 Firefox 上却不行。

这是 sw.js (从我的根文件夹提供):

console.log("sw");

self.addEventListener("install", (event) => {
  self.skipWaiting();
  console.log("Installed!");
});

self.addEventListener("activate", function () {
  clients.claim();
  console.log("Activated!");
});

self.addEventListener("fetch", (event) => {
  console.log("fetch");
});

self.addEventListener("push", (event) => {
  console.log("push");
});

Run Code Online (Sandbox Code Playgroud)

我将其加载到入口点:

    if ("serviceWorker" in navigator) {
      window.addEventListener("load", () => {
        navigator.serviceWorker
          .register("/sw.js")
          .then((registration) => {
            console.log("SW registered: ", registration);
          })
          .catch((registrationError) => {
            console.log("SW registration failed: ", registrationError);
          });
      });
    }

Run Code Online (Sandbox Code Playgroud)

Chrome 控制台显示了我所期望的内容:

SW registered: >ServiceWorkerRegistration
    [...] 
    state: "activated"
    scope: "https://my.web.site/"
sw
Installed!
Activated!
fetch …
Run Code Online (Sandbox Code Playgroud)

javascript firefox service-worker

6
推荐指数
1
解决办法
791
查看次数

标签 统计

firefox ×1

javascript ×1

service-worker ×1