我“高兴地”将我的一些 Chrome 扩展重建为 MV3。但是我卡住了,因为我不明白如何使用 索引数据库 来自服务人员。
更具体地说,我没有找到任何从 JS 服务 worker 脚本访问 IndexedDB 的工作示例。
引用 this page ,我曾经像这样打开一个数据库:
var idb = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB;
var dbName = "DatabaseName";
var open = idb.open(dbName, 1);
但众所周知,在 MV3 中,服务 worker 无法再访问窗口。To put it simply, background pages provide extension authors with an environment that lives independent of any other window or tab.
(https://developer.chrome.com/docs/extensions/mv3/migrating_to_service_workers/#state)
我该怎么做?
感谢您的帮助、时间和耐心。周末愉快!
最佳答案
答案比我想象的要简单。
indexedDB 在 service worker 中使用时已经定义好了,不需要和 window 对象关联。它可以立即使用。
var dbName = "DatabaseName";
var open = indexedDB.open(dbName, 1);
我会留下这个问题,以防其他人有同样的疑问。
关于javascript - 如何从 Chrome 扩展服务 worker 中使用 IndexedDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71451848/