【问题标题】:Not able to import scripts inside service_worker js in chrome extension manifest version 3无法在 chrome 扩展清单版本 3 中导入 service_worker js 中的脚本
【发布时间】:2021-08-16 09:57:30
【问题描述】:

我在 chrome 扩展清单版本 2 中有多个后台脚本。 现在我需要迁移到清单版本 3,因此需要进行必要的更改。

根据文档,我在 service_worker 中只保留了一个文件,如下所示:

"background": {
    "service_worker": "background.js"
},

在 background.js 中,我编写了以下 javascript 语句:

try {
importScripts('js/google-analytics.js', 'js/google-analytics-bundle.js', 'js/eventSender.js', 'js/api-gsc.js', 'js/api-sm.js', 'js/lib/jquery.js');
} catch (e) {
console.error(e);
}

google-analytics.js中的代码如下:

window.onload = startApp;

另外,在 background.js 中,我使用的是localStorage

当我尝试加载扩展时,它给了我以下错误:

background.js:16 ReferenceError: window is not defined
at google-analytics.js:23
at background.js:14

Error in event handler: ReferenceError: localStorage is not defined
at chrome-extension://<ExtensionId>/background.js:99:28

TypeError: Cannot read property 'createElement' of undefined
at ja (jquery.js:2)
at jquery.js:2
at jquery.js:2
at jquery.js:2
at jquery.js:2
at background.js:14

Error handling response: ReferenceError: XMLHttpRequest is not defined
at getUserStatus (chrome-extension://<extensionId>/js/api-gsc.js:9:19)
at chrome-extension://<ExtensionId>/background.js:112:17

还有许多其他错误。

似乎无法正确导入 javaScript 文件。

一个问题可能会问很多。但是,有人可以帮我在哪里输入错误的代码,如果有人请帮我解决问题。

提前致谢。

【问题讨论】:

  • 后台脚本是一个服务工作者,所以它没有windowlocalStorage。你不能在那里使用这些脚本。
  • 谢谢@wOxxOm

标签: google-chrome-extension chrome-extension-manifest-v3


【解决方案1】:

尝试使用fetch()替换XMLHttpRequest

我想你可以在这个页面找到答案Cross-origin XMLHttpRequest

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 2023-01-17
    • 2012-08-02
    • 2021-10-16
    • 2021-05-04
    • 2021-11-28
    • 2022-12-16
    • 2021-09-21
    • 2021-07-05
    相关资源
    最近更新 更多