如何访问其他 Chrome 或 Firefox 扩展的存储值

How to access stored values of other Chrome or Firefox extensions

我需要有关 Chrome 本地存储访问的说明。比如说,我设计了两个 Chrome 扩展 - Extension1Extension2。我通过调用 "chrome.storage.sync.set".[=11 在 Extension1 中设置值 val_ext1 并在 Extension2 中设置值 val_ext2 =]

我需要知道是否可以从 Extension1 访问 val_ext2 和从 Extension2 访问 val_ext1。如果是,那么如果有人可以分享一些关于如何做同样的事情的建议,那将会很有帮助。另外,我也想知道Mozilla扩展是否也一样。

Chrome

不,这是不可能的。 chrome.storage.* 只能由存储数据的扩展程序访问。没有 API 允许您访问存储在 StorageArea.

中的数据

如果您想访问该数据,则需要使用 Cross-extension messaging。但是,这需要编写两个扩展以方便这样做。对于您无法控制的扩展,情况不太可能如此。

火狐

在这方面(以及大多数其他方面),Firefox WebExtensions 与 Chrome 扩展具有相同的限制。

Other types of Firefox extensions 显着 比 WebExtensions/Chrome 扩展更强大。使用任何其他类型的 Firefox 扩展,您应该能够编写代码来授予您访问存储在不同 WebExtensions 的 StorageArea 数据中的数据的权限。 WebExtensions APIs 主要写成 JavaScript。其他类型的 Firefox 扩展可以选择修改 Firefox 附带的 JavaScript。因此,虽然没有特定的 API 可以让您这样做,但您可以编写一个扩展来执行此操作,即使这需要该扩展来修改 Firefox 附带的 JavaScript 代码.1 显然,修改现有的 Firefox 代码不应该是您完成某事的首选,但它可能是完成您想要的东西所需要的。


  1. One of my extensions 修改现有的 Firefox 代码,以便将一个文件中的值从定义为 const 更改为可通过选项页面配置。在那个特定的扩展中,代码被完全替换了。但是,也可以通过编程方式更改部分 Firefox 代码。