Связь со всплывающей страницы со страницей скрипта контента - PullRequest
2 голосов
/ 07 июня 2011

Я разрабатываю расширение и не хочу использовать страницу настроек.Я использую действие браузера (значок появляется в правом верхнем углу), и на этой странице выполняются некоторые настройки, и я сохраняю их в localStorage.

Однако мой сценарий содержимого должен прочитать это localStorage, но я знаю,что он не может получить к нему доступ.Я посмотрел передачу сообщений, но не смог выполнить то, что хотел.

Вот что я попробовал:

popup.js

$(document).ready(function(){
    chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
        if (request.method == "getList")
            sendResponse({status: localStorage['list']});
        else
            sendResponse({}); // snub them.
        });
});

content.js

$(document).ready(function(){
    var p;
    chrome.extension.sendRequest({method: "getList"}, function(response) {
        p = response.status;
        alert(response.status);
    });
});

1 Ответ

6 голосов
/ 07 июня 2011

Всплывающее окно эфемерно, что означает, что код живет только в течение времени, когда оно открыто. Это означает, что ваш слушатель будет потерян.

Переместите код для слушателя из вашего popup.html на фоновую страницу , тогда это должно работать нормально.

...