UPDATE
Начиная с Chrome 20 теперь вы можете использовать API хранилища .....
http://code.google.com/chrome/extensions/storage.html
Старый путь
Я создаю iframe, который указывает на страницу в моем расширении, в которой есть скрипт, который получает нужные мне настройки из локального хранилища, а затем отправляет его своему родителю в сообщении, которое затем получает скрипт контента ..... хорошо это было дерьмовое объяснение, код говорит это лучше;) .......
Сценарий содержимого
// create the iframe for our page that sends the settings
var el = document.createElement("iframe");
el.setAttribute('src', chrome.extension.getURL("gimmeSettings.html"));
el.style.visibility="hidden";
document.body.appendChild(el);
// create the listner that listens for a message from our page that sends the settings
window.addEventListener("message", receiveSettings, false);
// function that gets called when we recieve a message from the page that sends the settings
function receiveSettings(event) {
//check to make sure the message came from our page
if (event.origin !== "chrome-extension://"+chrome.i18n.getMessage("@@extension_id")) return;
//message came from our extension, do stuff with it
console.debug(event.data);
// clean up
window.removeEventListener("message", receiveSettings, false);
el.parentNode.removeChild(el);
}
GimmeSettings.html's JS
// post the message with our settings
parent.postMessage( localStorage.getItem("testing"), "*" );
JS Options.html
localStorage.setItem("testing","bleh");
Manifest
{
"name": "Getting at an extensions local storage from a content script",
"description" : "Getting at an extensions local storage from a content script. Be aware that other pages/extensions can use this to get at your settings, but not change them...so dont include sensitvie data.",
"content_scripts": [
{
"matches": ["<all_urls>"],
"js" : ["myscript.js"],
"run_at":"document_idle"
}
],
"permissions": [
"tabs", "<all_urls>"
],
"manifest_version": 2,
"web_accessible_resources": [
"gimmeSettings.html"
],
"options_page": "options.html",
"version":"1.0"
}
Некоторые вещи, на которые стоит обратить внимание ....
Другие страницы и расширения могут легко использовать это, чтобы также получить настройки от вашего расширения, поэтому не используйте любые конфиденциальные данные с этим методом.
Насколько я могу судить, у них нет возможности изменить ваши настройки через эту страницу, хотя, если кто-то знает другое, объясните.
Я использую манифест версии 2 и установил доступность страницы gimmeSettings. Если вы не знаете, как добавить версию манифеста 2-й версии, вам действительно следует прочитать об этом .... http://code.google.com/chrome/extensions/trunk/manifestVersion.html
А если вам нужен рабочий пример, тогда иди сюда .....
http://forum.valorsolo.com/viewtopic.php?f=36&t=375