【发布时间】: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 文件。
一个问题可能会问很多。但是,有人可以帮我在哪里输入错误的代码,如果有人请帮我解决问题。
提前致谢。
【问题讨论】:
-
后台脚本是一个服务工作者,所以它没有
window或localStorage。你不能在那里使用这些脚本。 -
谢谢@wOxxOm
标签: google-chrome-extension chrome-extension-manifest-v3