2012-08-08 38 views
1

的网址列扩展如何创建和后表单数据到一个网站,然后显示结果?Chrome Omnibox扩展以将表单数据发布到网站?

这里是我想要做的一个例子。当您键入lookup bieber到多功能框,我想我的分机发布表单数据看起来像

searchtype: all 
searchterm: bieber 
searchcount: 20 

到URL http://lookup.com/search

使浏览器最终将装载http://lookup.com/search与搜索的结果。

这将是微不足道的,如果我能在一个GET发送数据,但预计lookup.com一个HTTP POST。我能想到的唯一的办法就是注入形式进入当前页面,然后提交,但(一),只有当有当前页面,和(b)似乎不反正工作(工作可能需要设置权限)。

下班前这条路线,我计算过,其他人必须至少有尝试过这样做。你有吗?

回答

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); 
+0

谢谢为你的答案,但它遗漏了关键的最后一步。在回调中,我想实际在浏览器中显示搜索结果页面。也许我可以创建一个新选项卡,将HTML注入其中,并使用历史记录API将URL设置为http://yourSite.com?这似乎有点曲折,如果不是不可能的话。 – 2012-08-08 23:01:22

相关问题