特定のメニュー項目に関する情報を取得する既存の API メソッドはありません。これは、この情報が必要になることはほとんどなく、拡張機能の開発者が既に利用できるためです。
結果を達成するための汎用関数を次に示します。
/**
* Creates a menu item using chrome.contextMenus.create.
* When the second argument is specified, the click handler receives a
* third argument: The original creation data.
* When the "onclick" property is set in the creationData, the "onclick"
* event does not receive a third parameter.
*
* @param object creationObject Basic creation object
* @param function onclickHandler "click" property of the creationObject
*/
function createMenuItem(creationObject, onclickHandler) {
if (onclickHandler) {
creationObject.onclick = function(onClickData, tab) {
onclickHandler(onClickData, tab, creationObject);
};
}
return chrome.contextMenus.create(creationObject);
}
// Usage:
createMenuItem({"title": "sometitle", "contexts":["selection"]}, searchSelection);
function searchSelection(info, tab, creationData) {
var query = "<i want title " + creationData.title + " here>" + info.selectionText;
var url = "http://www.google.com/search?q=" + query;
chrome.tabs.create({url: url});
}
いいえ、インライン編集可能なメニュー項目を追加する方法はありません (使用可能なオプションのみがドキュメントにchrome.contextMenus.create
記載されています)。