如何从Chrome扩展程序的content_scripts中读取选项页面中的配置集?

时间:2014-01-31 14:04:21

标签: javascript google-chrome-extension

使用localStorage,我尝试存储用户配置,并且效果很好。

// in options_page
localStorage.setItem('myKey',someVal);

但是很难从content_scripts('·ω·`)中读取这些配置

localStorage.getItem('myKey');
// because different 'window' scope

我是通过使用runtime.sendMessage

来实现的
// in content_scripts
chrome.runtime.sendMessage(null, {purpose:'getConfig',configKey:'myKey'},
    function(confHere){
        // some action
    }
);

我认为这很复杂! (并使用'chrome.storage'需要许可,丑陋) 有没有办法从Chrome扩展程序的content_scripts中读取配置文件?

1 个答案:

答案 0 :(得分:0)

内容脚本在与他们共享DOM而不是扩展名的页面的上下文中运行。因此,尝试从localStorage读取的内容脚本将从页面的localStorage读取,而不是扩展名。

您提出的方式是正确的,据我所知,在您的内容脚本中访问设置信息的最佳方式。因此,在创建内容脚本时,向后台发送消息以获取设置(如您所做),然后在后台添加将返回这些设置的侦听器。它不是超级干净......但是当你想到什么内容脚本应该是(而不是)时,它是直观的。

Here是一个SO答案,它完全概述了你的需求(虽然从它的声音你已经知道必须做什么:))另外,如果你感兴趣content script page of the extension docs有一些好处(以及简短的)底部的视频帮助我理解了内容脚本应该能够做的事情。