Как я могу получить параметры, которые установлены в options.html? - PullRequest
0 голосов
/ 03 марта 2012

Я внимательно прочитал Руководство разработчика расширений Google Chrome , в нем говорилось, что нужно сохранить параметры в 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>

1 Ответ

2 голосов
/ 03 марта 2012

Я думаю, вы могли бы использовать API chrome.extensions. * Для создания линии связи с фоновой страницей, которая работает под вашим идентификатором расширения, что дает вам локальное хранилище.

Я думаю, что это возможно, поскольку документы Content Script указывают, что API-интерфейсы chrome.extensions * доступны для сценариев содержимого. Но я никогда не пробовал этого.

Затем вам нужно будет просто отправить сообщения с фоновой страницы в скрипт контента, когда будет установлено соединение. Вы даже можете отправить одно сообщение со всеми настройками в буквальном объекте.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...