Вот пример того, что я хотел бы сделать, это было упрощено с целью публикации здесь.Я хотел бы добавить несколько пунктов контекстного меню, которые фактически вызывают одну и ту же функцию, а затем внутри функции я хотел бы иметь возможность различать, какой из них был вызван, и действовать соответствующим образом.
Этот пример добавляетдва элемента контекстного меню, один для сокращения ссылки с 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'}
?