chrome extension II中的选择和站点搜索

时间:2011-04-07 02:35:10

标签: javascript google-chrome-extension

this的后续行动。我快到了。但是有一个问题。 当我在选项页面输入网站并单击“保存”按钮时,不会更新上下文菜单项。 为了用新的替换它们我必须重新加载扩展!! 我该如何解决??也许我必须使用删除或更新扩展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 :(得分:0)

要更新上下文菜单,Chrome扩展程序需要重新启动Chrome。

此问题似乎无法通过代码修复。 由于上下文菜单只能在后台页面中创建,但是后台页面仅在扩展程序启动时加载,即Chrome已启动。