1

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

这是我想做的一个例子。当您lookup bieber在多功能框中输入内容时,我希望我的扩展程序可以发布看起来像的表单数据

searchtype: all
searchterm: bieber
searchcount: 20

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

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

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

在沿着那条路线走之前,我想至少其他人之前一定尝试过这样做。你?

4

1 回答 1

0

您可以使用多功能框 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);
于 2012-08-08T08:56:29.057 回答