gpt4 book ai didi

google-chrome - 如何从 chrome 扩展访问 IndexedDB(当前打开的域/选项卡)

转载 作者:行者123 更新时间:2023-12-04 01:52:48 25 4
gpt4 key购买 nike

我目前在 google.com 域上有 indexedDB。我希望能够从谷歌浏览器扩展中阅读它。我怎样才能做到这一点?我需要添加任何特定权限吗?我目前有:

"permissions": [ "tabs", "bookmarks", "unlimitedStorage", "*://*/*", "identity", "https://*.google.com/*", "https://ssl.gstatic.com/", "https://www.googleapis.com/", "https://accounts.google.com/" ],

用什么命令我可以做到这一点?谢谢!

编辑:我已经读过我可以从内容脚本访问它(只要带有域的选项卡打开 - 这是我的情况),但我不知道该怎么做......

最佳答案

要访问当前选项卡的 indexeddb,请将“activeTab”添加到 manifest.json 中的“permissions”标签,然后创建一个内容脚本,内容脚本将有助于访问在网页上下文中运行的 indexeddb,然后添加内容为 manifest.json 文件中的“content_scripts”标签创建的脚本。对于 eg in manifest.json 添加以下内容:

"permissions": ["activeTab"],
"content_scripts": [
{
"matches": ["add the domains of the webpages where content script needs to run"],
"js": ["contentScript.js"]
}
]

有关比赛的更多信息,请查看此处:https://developer.chrome.com/extensions/match_patterns.

里面的content script add打开store然后在object store上执行transaction和在object store上执行查询。例如,在内容脚本中添加以下内容:

if (!('indexedDB' in window)) {
alert("This browser doesn't support IndexedDB");
} else {
let indexdb = window.indexedDB.open('firebaseLocalStorageDb', 1);
indexdb.onsuccess = function () {
let db = indexdb.result;
let transaction = db.transaction('firebaseLocalStorage', 'readwrite');
let storage = transaction.objectStore('firebaseLocalStorage');
console.log(storage.getAll());
};
}

上面代码的解释:它访问窗口对象并打开版本为“1”的存储“firebaseLocalStorageDb”,然后在成功访问该对象后,它查找结果并在存储内部的对象存储“firebaseLocalStorage”上执行事务。最后查询objectstore“storage”的实例,得到所有的键值对。有关更多信息,请查看:https://javascript.info/indexeddb

关于google-chrome - 如何从 chrome 扩展访问 IndexedDB(当前打开的域/选项卡),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38589075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com