我怎么能实现对访问的其中内容脚本如选项页面上设置的数据。 谷歌浏览器扩展(How could i

2019-08-01 11:16发布

我在选择页面设置一些值。 这是现在的工作好了。 但我无法访问在background.html或内容脚本设置好的数据。 我看过这样的事情是可能的,但消息对我来说是文档硬一点点的了解。 如果有人可以点我出了正确的方向,将是一件好事。 例如故事>我设置的选项页这个值localStorage.setItem("somedata" , "true"); 然后,如果我将访问页面上的相同数据,其中扩展,可运行我得到这样的:

localStorage.getItem("somedata");

和值是null

Answer 1:

内容脚本不能直接从后台页面读取localStorage的值。 如果你想读localStorage的键值对,看到这个答案,提供了实现这一解释加代码: 从内容脚本访问全局对象在浏览器扩展程序

虽然以前的方法有效,我建议chrome.storage而是API:这可以通过所有的扩展页面中使用。 之间的巨大差异localStoragechrome.storagechrome.storage是一个异步 API。

下面就来说明dfferences一个例子:

// synchronous localStorage
localStorage.setItem('keyname', 'value');
alert(localStorage.getItem('keyname'));

// asynchronous chrome.storage
chrome.storage.local.set({keyname: 'value'}, function() {
    chrome.storage.local.get('keyname', function(items) {
        alert(items.keyname);
    });
});

在第一眼看到时, chrome.storage API看起来更加令人费解。 但是,如果你想扩展中的数据保存,它是这样做的最佳方式。 在localStorage方法需要更多的代码(请参阅我在这个答案的顶部相连的答案)来实现相同的功能。 而且,它也是异步的。



文章来源: How could i achieve to access the data which where set on options page in the content script eg. in the google chrome extension