cwd*_*cwd 1 javascript google-chrome contextmenu google-chrome-extension
这是我想要做的一个例子,为了在这里发布,它被简化了.我想添加几个实际调用相同函数的上下文菜单项,然后在函数内部,我希望能够区分调用哪一个并相应地对其进行操作.
此示例添加了两个上下文菜单项,一个用于缩短链接,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});
Run Code Online (Sandbox Code Playgroud)
接收功能看起来是这样的,默认情况下都info和tab与请求一起发送,但我不认为我可以找出哪些上下文菜单,只是从调用函数.
function shortenLink(info, tab){
}
Run Code Online (Sandbox Code Playgroud)
这是这两个变量的控制台转储:
Picture.png http://img198.imageshack.us/img198/354/picturedw.png
我知道我可以为每个项目设置单独的函数,但是我想添加很多上下文菜单项,它们都共享很多相同的代码所以我真的只想拥有一个"dispatch"函数他们都使用.我怎样才能做到这一点?
编辑
也许我可以通过使用menuItemId变量找出它所调用的菜单项,但我可以传递一个额外的参数或一些额外的数据,如{method:'bitly'}?
chrome.contextMenus.create({'title': 'Shorten with bit.ly',
'contexts': ['all'],
'onclick': function(info, tab) {
shortenLink(info, tab, {method:'bitly'});
});
function shortenLink(info, tab, methodObj){
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1851 次 |
| 最近记录: |