WebExtensions可以在storage.local本地存储数据。 Apparently它是一个键值存储,值可以是基本类型(如数字,布尔值和字符串)或数组类型。
我想检查一下特定的WebExtension(我没有制作)在这个区域中存储的内容。
如何做到这一点?
可以自动化的方法的奖励,允许我从bash
脚本中提取数据。但GUI解决方案也是非常可接受的。
答案 0 :(得分:1)
在Firefox中
about:debugging
,然后按Enter Enable add-on debugging
debug
链接。Incoming Connection
提示。点击OK
即可。 Console
标签粘贴以下代码以获取storage.local
内容:
chrome.storage.local.get(null, function(items) {
console.log(items);
});
编辑:
如果要下载对象,可以对其进行字符串化,从中创建blob,然后从blob创建数据URL并在新选项卡中打开或下载。像这样:
chrome.storage.local.get(null, function(items) {
var blob = new Blob([JSON.stringify(items, null,' ')], {type: "text/plain"});
var url = URL.createObjectURL(blob);
chrome.tabs.create({ url: url }); // requires that the extension has the "tabs" permission
//chrome.downloads.download({ url: url }); // requires that the extension has the "downloads" permission
});
目标扩展程序需要有"标签"允许打开标签或"下载"允许开始下载。 您还可以查找其他访问数据的方法。例如通过" browserAction" /" pageAction" -popup或通过向提交帖子正文中的数据的外部服务器发送ajax调用...
答案 1 :(得分:1)
要从Bash访问数据,您可以尝试从扩展的storage.js文件中读取它。您应该在主目录(Linux)中找到它。对我而言,它位于~/.mozilla/firefox/{profile}/browser-extension-data/{extension}/storage.js
之下。在Windows上它将在appdata中的某个地方。在OS X上,我不知道。
storage.js
文件是json文件。
我不会依赖于未来的工作。 Firefox可能会在某些时候切换到以加密格式存储数据。也不要依赖于最新的数据。 Firefox可能无法立即将存储与磁盘上的文件同步。