chrome.contextMenus.create不起作用

Slo*_*lot 6 google-chrome-extension

我尝试创建一个简单的chrome扩展,在chrome的上下文菜单中添加一个选项.

这是我的manifest.json

{
   "manifest_version": 2,
   "background": "background.html",
   "description": "Add a context menu item to search for selected text at Google Maps.",
   "icons": {
      "16": "icon16.png"
   },
   "name": "Google Maps Right Click",
   "permissions": [ "contextMenus", "tabs" ],
   "version": "1.0"
}
Run Code Online (Sandbox Code Playgroud)

在这里我的background.html:

<script>

function searchgooglemaps(info)
{
 var searchstring = info.selectionText;
 chrome.tabs.create({url: "http://maps.google.com/maps?q=" + searchstring})
}

chrome.contextMenus.create({title: "Search Google Maps", contexts:["selection"], onclick: searchgooglemaps});

</script>
Run Code Online (Sandbox Code Playgroud)

但是,当我加载扩展程序并右键单击某个选项时,"搜索Google地图"按钮不会出现,我不明白为什么......

预先感谢您的帮助.

Chr*_*and 4

HTML 文件中的内联 JavaScript 通常不再起作用;将您的 JavaScript 放入其自己的文件中。

您还可以让 Chrome 为您创建一个背景页面,以节省空间。

因此,要使您的扩展正常工作:

1)创建一个文件(例如background.js)并将 JavaScript 放入其中:

function searchgooglemaps(info)
{
 var searchstring = info.selectionText;
 chrome.tabs.create({url: "http://maps.google.com/maps?q=" + searchstring})
}

chrome.contextMenus.create({title: "Search Google Maps", contexts:["selection"], onclick: searchgooglemaps});
Run Code Online (Sandbox Code Playgroud)

2) 在您的清单中,将您的background行替换为:

"background": {
    "scripts": ["background.js"]
},
Run Code Online (Sandbox Code Playgroud)

  • 因为 `"persistent":true` 是后台页面,而不是事件页面(`"persistent":true` 是默认值,所以可以省略)。 (5认同)