Javascript 使Chrome扩展上下文菜单加载

Javascript 使Chrome扩展上下文菜单加载,javascript,json,google-chrome,google-chrome-extension,contextmenu,Javascript,Json,Google Chrome,Google Chrome Extension,Contextmenu,我正在开发一个chrome扩展,它是一个上下文菜单,出现在右键单击菜单中。但问题是,您必须从chrome的右上角打开扩展,使其显示在右键单击菜单中。我的Java脚本是外部的。 以下是我的javascript代码: window.onload = myOnload; function myOnload(){ var button = document.getElementById("button"); button.onclick= function(){myClick()}; chr

我正在开发一个chrome扩展,它是一个上下文菜单,出现在右键单击菜单中。但问题是,您必须从chrome的右上角打开扩展,使其显示在右键单击菜单中。我的Java脚本是外部的。 以下是我的javascript代码:

window.onload = myOnload;
function myOnload(){
  var button = document.getElementById("button");
  button.onclick= function(){myClick()};
  chrome.contextMenus.create({
      "title":"MissLang Fix",
      "contexts":["all"]
  });
  document.getElementById("input").innerHTML = "mojtaba";
}


function myClick(){
    var myString = document.getElementById("input").value;

    for(var i=0;i<myString.length;i++){
        myString = myString.replace("q","ض");
        myString = myString.replace("w","ص");
    }

    document.getElementById("output").innerHTML = myString;
}
我想知道我应该把chrome.contextMenus.create代码放在哪里,这样即使在用户从地址栏右侧打开扩展之前,图标也会出现在右键单击菜单中
非常感谢

您需要一份工作

manifest.json

...
"background": {
  "scripts": ["background.js"]
},
...
将脚本放入
background.js
中,以便在用户打开浏览器时运行

额外(相关) 您还可以在用户登录到Windows/Apple/linux时通过以下方式运行扩展:

"permissions": [
    "background"
]

感谢Derek,我尝试了这两种方法,但在没有打开地址栏右侧的扩展名的情况下,我仍然没有在右键单击中显示图标。我将这两行添加到manifest.json:“background”:{“scripts”:[“script.js”]},权限中的另一行是:“background”但它仍然不起作用,不需要后台权限,因为所有逻辑只有在浏览器的UI可见时才有意义。当扩展在没有浏览器时也很有用时,请使用后台权限,例如报警+通知扩展。谢谢,它现在可以工作了,chrome.contextMenus.create前面有两行,如下所示:var button=document.getElementById(“button”);button.onclick=function(){myClick()};我把这两行放在chrome.contextMenus.creat之后,现在它可以工作了。我想知道为什么这两条线阻止了货物的装载script@smtabatabaie-Chrome可能认为
。onclick
是内联脚本,因此会抛出错误。或者可能只是因为按钮
#按钮
不存在。
"permissions": [
    "background"
]