выбор и поиск по сайту в расширении Chrome II - PullRequest
0 голосов
/ 07 апреля 2011

продолжение до это .Я почти на месте.Но есть одна проблема.Когда я захожу на страницу параметров и нажимаю кнопку «Сохранить», элементы контекстного меню не обновляются.чтобы заменить их новыми, мне нужно перезагрузить расширение !!Как это исправить??Может быть, я должен использовать удалить или обновить методы расширения API?Как ??

мой код сейчас:

manifest.json:

{
  "name": "Context Site Search",
  "version" : "0.0.0.1",
  "background_page" : "bg.html",
  "options_page": "options.html",
  "permissions" : [
    "tabs",
    "contextMenus",
    "http://www.google.com"
    ]
}

options.html

function save() { // save button click event handler


var nodes = document.querySelectorAll("input[type=text]");
for (var i=0; i<nodes.length; i++){
    if (nodes[i].value == "" ){
        alert('Enter Data!');return false;
} else {
 arr.push( nodes[i].value);


   }}


localStorage['arr'] =  JSON.stringify(arr);

if (localStorage["arr"]){
var elem = document.getElementById("sav").textContent = "Saved!";

}



}

background.html:

<script type="text/javascript">

var ar =  JSON.parse(localStorage.getItem("arr"));

for (var i  in  ar)  {


chrome.contextMenus.create({
    "title": "find ' %s' в "+ ar[i],
    "contexts": [ "selection"],
    "onclick" : (function(element){
          return function(info, tab) {
    var baseUrl = "http://www.google.com/search?q=site%3A";
    if (info.selectionText) {
    baseUrl += element + "&q="+ encodeURI(info.selectionText);
     chrome.tabs.create({"url": baseUrl});
     }
     }
     })(ar[i])


});


}


</script>

Заранее спасибо !!

1 Ответ

0 голосов
/ 07 апреля 2011

Для обновления контекстного меню Chrome Расширение необходимо перезапустить Chrome.

Эта проблема не может быть исправлена ​​кодом.Поскольку контекстное меню может быть создано только на фоновой странице, однако фоновая страница загружается только при запуске расширения, то есть при запуске Chrome.

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