Chrome Omnibox扩展程序将表单数据发布到网站?

时间:2012-08-08 01:58:13

标签: search post google-chrome-extension

Omnibox扩展如何创建表格数据并将其发布到网站,然后显示结果?

这是我想要做的一个例子。当您在多功能框中输入lookup bieber时,我希望我的扩展程序发布表单数据,如

searchtype: all
searchterm: bieber
searchcount: 20

到网址http://lookup.com/search

这样浏览器最终会加载http://lookup.com/search搜索结果。

如果我可以在GET中发送数据,这将是微不足道的,但lookup.com需要HTTP POST。我能想到的唯一方法是将一个表单注入当前页面然后提交它,但(a)只有在当前页面时才有效,并且(b)它不能似乎无论如何工作(可能需要设置权限)。

在走这条路之前,我认为其他人必须至少尝试过这样做。你呢?

1 个答案:

答案 0 :(得分:0)

你可以使用omnibox api:

来做到这一点
chrome.omnibox.onInputChanged.addListener(
  function(text, suggest) {
    doYourLogic...
  });

由于您键入的某个关键字,您的分机“已激活”,您可以拨打以下内容:

var q = the params you wish to pass
var url = "http://yourSite.com";

var req = new XMLHttpRequest();
req.open("POST", url, true);
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
 req.onreadystatechange = function() {
  if (req.readyState == 4) {
    callback(req.responseXML);
  }
}
req.send(q);