我需要有关 Chrome 本地存储访问的说明。假设我设计了两个 Chrome 扩展程序 - Extension1 和 Extension2。我通过调用“chrome.storage.sync.set”在 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 API 主要是用 JavaScript 编写的。其他类型的 Firefox 扩展可以(如果他们选择)修改 Firefox 附带的 JavaScript。因此,虽然没有可用的特定 API 允许您执行此操作,但您可以编写一个扩展来执行此操作,即使这需要该扩展来修改 Firefox 附带的 JavaScript 代码。1 显然,修改现有的 Firefox 代码不应该是您完成某些任务的首选,但它可能是完成您想要的任务所需要的。
- One of my extensions修改现有的 Firefox 代码,以便将一个文件中的值从定义为
const
更改为可通过选项页面进行配置。在该特定扩展中,代码被完全替换。不过,也可以通过编程方式更改部分 Firefox 代码。
关于google-chrome - 如何访问其他 Chrome 或 Firefox 扩展程序的存储值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42247034/