什么是多功能框中的“运行命令”?
我创建了一个与多功能框集成的扩展。当我在关键词+空格,然后发送到扩展短语键入,我可以看到,在网址列中最上面一行写着“运行我-extenison名命令:”什么是多功能框中的“运行<extension>命令”?
究竟这是什么道理?我可以用这种方式在我的扩展中调用方法吗? 这将是非常好的,如果有可能,但我无法找到任何信息。
当用户选择该命令时,您添加到onInputEntered
事件的任何听众都将被触发。
参见:http://code.google.com/chrome/extensions/omnibox.html#event-onInputEntered
所以,是的,你可以有网址列命令调用方法在扩展,只需添加一个侦听器的事件,像这样:
的chrome.omnibox.onInputEntered.addListener(function(text) {
console.log('User entered command: ' + text);
};
您还可以得到通知用户在输入时的多功能框活动,或者如果他们取消输入,则为上面链接的页面上列出的其他活动添加监听器。
“Run <your-extension-name> command
”仅仅是您的扩展程序的多功能框的“默认”默认建议。它基本上是当前输入内容的占位符,并且应该指出如果用户在该点按下输入时会发生什么(“搜索我的站点以查找'x'”)。要改变它,只需添加到您的背景页
chrome.omnibox.setDefaultSuggestion({"description" : "your description here"});
您可以使用“%S”在那里,以及什么用户在打字的占位符。
杰森是正确的如何可以使用onInputEntered来对用户在多功能框中输入内容做出反应。
我这样做是为了我的Chrome扩展Lil’ Launch,它没有用于默认建议(它只会搜索您的书签)。
完整的来源是on Github,但总体思路是这样的。 chrome.omnibox.onInputEntered
的回调通过您选择的content
属性或通过用户输入的值(如果建议是默认值)。所以我在所有content
属性的前面附加了一个已知的字符串,并在chrome.omnibox.onInputEntered
激发时检查相同的字符串。它需要是使用不太可能键入的内容,否则匹配将会中断。
var resultsList = [], // Accessible from the callback scope
unlikely = "GOSHDARNYOUCHROME"; // Our unlikely to be typed String
chrome.omnibox.onInputChanged.addListener(
function(text, suggest) {
var searchResults = chrome.bookmarks.search(text, function(searchResults) {
resultsList = [];
for (var i = 0; i < searchResults.length; i++) {
resultsList.push({
content: unlikely + item.url, // Prepend our unlikely string to the URL
description: "bar"
});
};
// Chrome adds a completely useless default suggestion in our case
// So set the default and slice it off the suggestions
chrome.omnibox.setDefaultSuggestion({ description: resultsList[0].description });
suggest(resultsList.slice(1, -1));
})
}
);
chrome.omnibox.onInputEntered.addListener(
function(text) {
// If text doesn't have unlikely prepended its the stupid default
if(text.substring(0, unlikely.length) !== unlikely) {
text = resultsList[0].content;
}
text = text.substring(unlikely.length); // Trim the unlikely string
// Do something with text
}
);
笨,但有效。
是的,这些是我用来处理用户输入的监听器。对于这个特定的扩展,我列出了一些用户可以选择的URL,但是这些列在这个“运行命令”行下面。我想知道的是第一行所代表的基本内容。 – 2012-02-18 10:52:32
嗯,我看到你现在说的话,在我发布的链接截图中。这很奇怪。也许它运行一个名为'initfromvalue'的JS命令?我不确定。 – 2012-02-19 19:37:16