这是我想要做的一个例子,为了在这里发布,它被简化了。我想添加几个实际调用相同函数的上下文菜单项,然后在函数内部,我希望能够区分调用哪一个并相应地对其进行操作。
此示例添加了两个上下文菜单项,一个用于缩短与bit.ly
的链接,另一个用于使用tinyURL
。
chrome.contextMenus.create({'title': 'Shorten with bit.ly',
'contexts': ['all'],
'onclick': shortenLink});
chrome.contextMenus.create({'title': 'Shorten with tinyURL',
'contexts': ['all'],
'onclick': shortenLink});
接收函数看起来像这样,默认情况下,info
和tab
都与请求一起发送,但我不认为我可以找出哪个上下文菜单称为函数从那起。
function shortenLink(info, tab){
}
这是这两个变量的控制台转储:
Picture.png http://img198.imageshack.us/img198/354/picturedw.png
我知道我可以为每个项目设置单独的功能,但是我想添加很多上下文菜单项,它们都共享很多相同的代码,所以我真的只想要一个“发送” “他们都使用的功能。我怎么能这样做?
修改
也许我可以使用menuItemId
变量找出它所调用的菜单项,但是我可以传递其他参数或其他一些数据,例如{method:'bitly'}
吗?
答案 0 :(得分:5)
chrome.contextMenus.create({'title': 'Shorten with bit.ly',
'contexts': ['all'],
'onclick': function(info, tab) {
shortenLink(info, tab, {method:'bitly'});
});
function shortenLink(info, tab, methodObj){
...
}