chrome.contextMenus.create不起作用

时间:2013-08-06 13:47:33

标签: 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"
}

这里是我的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>

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

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

HTML文件中的内联JavaScript通常不再起作用;把你的JavaScript放到自己的文件中。

您还可以让Chrome为您创建background page,节省空间。

所以,要使你的扩展工作:

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});

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

"background": {
    "scripts": ["background.js"]
},