4
  "manifest_version": 3,
  "background": {
    "service_worker": "background.js"
  }

我需要在 background.js 中使用 Jquery。我无法在清单中添加 jquery.min.js,因为使用新的升级 v3 我无法在 service_worker 中声明多个 JS。我该如何解决?

背景.js

$.ajax({
   type: "POST",
   url: "https://wwww",
   data: {text: "xxx"}
});
4

1 回答 1

5

jQuery 是基于 DOM 的,因此它的 $.ajax 或 $.put 或 $.get 不会在服务工作者中运行,因为没有 DOM/document/window,因此没有这些方法使用的 XMLHttpRequest。jQuery 的其他基于 DOM 的特性在 service worker 中也无法使用。

解决方案是使用fetch()
如果您需要更多像 onprogress 这样的花里胡哨,还有基于 fetch 的库。

如果您仍然想使用它的其他实用功能,请在 background.js 中调用importScripts('jquery.min.js') MDN,它会同步导入列出的脚本,以便之后可以立即使用它们(更多信息在这里),

于 2021-03-04T05:02:30.167 回答