我仔细阅读Google Chrome Extensions Developer's Guide,它告诉我在localStorage中保存选项,但content_scripts
如何能够访问这些选项?
样品:
我想为几个域编写脚本,这个脚本应该在这些域上共享一些选项。
content_scripts:
//Runs on several domains
(function(){
var option=getOptions();
//Get options which have been set in options.html
if(option){
doSome();
}
})
option_page:
<html>
<head>
<title>My Test Extension Options</title>
</head>
<body>
option: <input id="option" type="text" /><br />
<input id="save" type="submit" /><br />
<span id="tips">option saved</span>
<script type="text/javascript">
(function(){
var input=document.getElementById('option');
var save=document.getElementById('save');
var tips=document.getElementById('tips');
input.value=localStorage.option||'';
// Here localStorage.option is what I want content_scripts to get.
function hideTips(){
tips.style.visibility='hidden';
}
function saveHandler(){
localStorage.option=input.value||'';
tips.style.visibility='visible';
setTimeout(hideTips,1000);
}
hideTips();
save.addEventListener('click',saveHandler);
})();
</script>
</body>
</html>
答案 0 :(得分:2)
我认为您可以使用chrome.extensions。* API来创建与您的扩展ID下运行的后台页面的通信线路,从而为您提供本地存储。
我认为这是可能的,因为Content Script文档指定chrome.extensions * API可供内容脚本使用。但我从未尝试过这个。
然后,您必须在建立连接时将消息从后台页面发送到内容脚本。您甚至可以使用文字对象中的所有设置发送一条消息。
Here is an example创建我之前写过的双向沟通。您可以实现此功能或创建自定义解决方案,但我认为这是您实现所需目标的方式。