我正在愉快地将一些Chrome扩展程序重建为MV3。但我卡住了,因为我不知道如何从服务工作者中使用IndexedDB。
更具体地说,我没有找到任何可以正常访问JS服务工作者脚本的IndexedDB访问实例。
参考这个页面,我曾像这样打开一个数据库:
var idb = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB || window.shimIndexedDB;
var dbName = "DatabaseName";
var open = idb.open(dbName, 1);
但众所周知,在MV3中,服务工作者无法再从window中访问。
简单来说,背景页为扩展程序作者提供了一个独立于任何其他窗口或选项卡的环境。
(https://developer.chrome.com/docs/extensions/mv3/migrating_to_service_workers/#state)
那么我该如何做呢?
感谢您的帮助、时间和耐心。祝您周末愉快!
window.xxx
的示例假定所有的网络浏览器都包括 IE,这对于仅在现代浏览器中运行的 Chrome 扩展来说是不必要的,因此可以直接访问 API,假设它在规范或 MDN 中为工作者公开(请参见兼容性表)。 - wOxxOm