使用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中读取配置文件?
答案 0 :(得分:0)
内容脚本在与他们共享DOM而不是扩展名的页面的上下文中运行。因此,尝试从localStorage
读取的内容脚本将从页面的localStorage
读取,而不是扩展名。
您提出的方式是正确的,据我所知,在您的内容脚本中访问设置信息的最佳方式。因此,在创建内容脚本时,向后台发送消息以获取设置(如您所做),然后在后台添加将返回这些设置的侦听器。它不是超级干净......但是当你想到什么内容脚本应该是(而不是)时,它是直观的。
Here是一个SO答案,它完全概述了你的需求(虽然从它的声音你已经知道必须做什么:))另外,如果你感兴趣content script page of the extension docs有一些好处(以及简短的)底部的视频帮助我理解了内容脚本应该能够做的事情。