2012-08-08 146 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

相關問題