0

我想在 onClick 函数中获取 chrome.contextMenus.create title 属性的参考。

例如:

chrome.contextMenus.create({"title": "sometitle", "contexts":["selection"], "onclick": searchSelection});

function searchSelection(info, tab){
    var query = "<i want title (sometitle) here>"+info.selectionText;
    var url = "http://www.google.com/search?q="+query;
    chrome.tabs.create({url: url});
}

我搜索了,但没有找到这样做的选项。


+1 问题:有没有办法内联编辑 contextMenu 项目?还是在 CM 元素之后附加一个可编辑的输入字段?我认为没有,但值得提出一个问题:)

4

1 回答 1

0

没有现有的 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中提到了唯一可用的选项)。

于 2012-05-06T09:07:43.240 回答