我正在开发一个简单的扩展,我想在其中展示RealTime
通过网络套接字连接从我的服务器发送的数据。
我正在使用 chrome 的清单 v3 来实现这一点。我尝试通过网络套接字连接我的扩展background.js
它作为 Service Worker 在 chrome 后台运行。
我们无法访问window
Service Worker JS(background.js) 中的对象,甚至无法在后台 JS 中添加更多脚本。我从上周开始就读到了这一问题,但仍然没有找到任何解决方案。
有谁知道如何在 Service Worker jS(background.js) 中连接 Web 套接字,以便服务器可以将数据发送到扩展。
任何小小的帮助都会对我有很大帮助。请帮我。
我自己也在寻找 WebSocket 的解决方案。
但是,您还提到无法向服务工作线程background.js 添加更多脚本。有一个解决方案;服务人员有一个importScripts()
函数(顺便说一句,它在文档/窗口中不可用)。下面是一些例子:
//// Single Script
let scriptURL = '/js/otherScript.js';
try {
importScripts(scriptURL);
} catch (e) {
console.error('Error Loading Script', scriptURL);
console.error(e);
}
//// Multiple Scripts, Easy Way; Limited error detail
let scripts = [ '/js/script1.js', '/js/script2.js', '/js/script3.js' ];
try {
importScripts(scripts);
} catch (e) {
console.error(e);
}
//// Multiple Scripts, Manual foreach; More error detail
let scripts = [ '/js/script1.js', '/js/script2.js', '/js/script3.js' ];
let continueImport = true;
scripts.forEach(function(scriptURL) {
if (continueImport) {
try {
importScripts(scriptURL);
} catch (e) {
console.error('Error Loading Script', scriptURL);
console.error(e);
continueImport = false;
}
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)