谷歌Chrome扩展程序:多功能框关键字如何?

时间:2014-12-15 13:14:32

标签: javascript google-chrome google-chrome-extension

我的Chrome'搜索扩展程序'有一个关键字,我想取用户的输入来触发搜索查询。在我的扩展程序的清单文件中,我声明了:

"omnibox": { "keyword" : "i" },

当我在多功能框中键入'i'并点击TAB / SPACE时,我看到我的扩展名生效了...但是,当我输入搜索查询并按ENTER(或选择建议的命令)时,没有任何反应。

以下是我使用的示例,可在Google Code>中找到。多功能框:

// This event is fired each time the user updates the text in the omnibox,
// as long as the extension's keyword mode is still active.

chrome.omnibox.onInputEntered.addListener(function(text) {
  var serviceCall2 = 'http://www.google.com/search?q=' + text;
});

// This event is fired with the user accepts the input in the omnibox.

chrome.omnibox.onInputEntered.addListener(function(text) {  
  chrome.windows.create({"url": serviceCall2});
});

我还缺少其他代码或上面的代码是错误的吗?

1 个答案:

答案 0 :(得分:3)

  1. 您的两个活动完全相同。我认为这是一个复制粘贴错误。

    每次文字更改时触发的正确事件为chrome.omnibox.onInputChanged

  2. 您的代码无论如何都无法工作,因为serviceCall2是第一个消息监听器的本地代码。它在第二部分中未定义。

  3. 你不需要两个听众,这应该有效:

    chrome.omnibox.onInputEntered.addListener(function(text) { 
      var serviceCall2 = 'http://www.google.com/search?q=' + text;
      chrome.windows.create({"url": serviceCall2});
    });