Работя върху разширение за Chrome и съм нов в процеса. Разширението, върху което работя, инжектира HTML странична лента в страницата, инжектира функции на java-script към заглавката, след което позволява на потребителя да натисне бутоните в страничната лента, за да създаде/запише данните на моето разширение.
Въпреки това, когато искам да запазя информацията, използвам localStorage, но localStorage винаги записва по отношение на текущия уебсайт. Как мога да използвам localStorage за запазване по отношение на нашето разширение?
Освен това бих искал да използвам някои глобални javascript променливи в разширението за chrome. Къде принадлежат тези? Знам, че в момента нямам достъп до тях от инжектирания Javascript.
Разгледах предаването на съобщения и имах проблеми с него. Не съм сигурен как работи в обхвата на инжектиран javascript в заглавката на страницата. Опитах се да работя с този пример, но разширението ми изглежда не улавя съобщението.
// This function is called in the injected header javascript.
function sendToExtension() {
setTimeout(function() {
console.log('page javascript sending message');
window.postMessage({ type: 'page_js_type',
text: "Hello from the page's javascript!"},
'*' /* targetOrigin: any */);
}, 10);
}
// This is installed in a background script.
window.addEventListener('message', function(event) {
console.log('content_script.js got message:', event);
});
chrome.storage
вместоlocalStorage
. Тъй като postMessage вече е асинхронен, вероятно няма да имате проблеми с промяната на вашия код. - person Rob W   schedule 30.03.2013postMessage
иonmessage
. - person Rob W   schedule 31.03.2013