2012-03-26 276 views
0

我一直想弄清楚如何讓Greasemonkey用戶腳本在後臺打開搜索引擎頁面並獲取搜索結果。我試圖查找示例來打開HTML頁面,但afaik請求的所有示例處理ajax調用而不是html調用。如何從搜索引擎獲取搜索結果?

任何提示將不勝感激。

回答

1

標準Greasmonkey GM_xmlhttpRequest函數(link to API)可以處理任何類型的請求,而不僅僅是JSON。在示例下,查看GET request代碼片段。

請注意。像谷歌這樣的搜索引擎不會喜歡屏幕截圖(如果你太快抓取太多結果,可能會阻止你)。

0

在GreaseMonkey中沒有做到這一點(事實上不知道,如果你能做到的話); 雖然如果你真的想要通過打開一個新的選項卡,如果你沒有在你的代碼中使用任何GM特定的東西(並且不想自動運行代碼,那麼這可以是障礙),你可以看看自定義按鈕擴展。

有了它,您可以創建可以訪問Firefox內部的按鈕,並調用諸如gBrowser.addTab()之類的內容。

但與CB合作比GM更棘手。

這些訊息可能幫助,如果你有興趣:

代碼示例從Mozilla的複製:

var newTabBrowser = gBrowser.getBrowserForTab(gBrowser.addTab("http://www.google.com/")); 
newTabBrowser.addEventListener("load", function() { 
    newTabBrowser.contentDocument.body.innerHTML = "<div>hello world</div>"; 
}, true); 
0

我做過類似的東西。
您只需將GM_xmlhttpRequest響應保存在DIV中即可。
有了這個DIV,你可以做任何你想要的(顯示,隱藏,僅顯示一些內容,等等)

只要看看my script源代碼。
我很積極,它會幫助你。

我知道你不需要,14K代表先生,但無論如何,我會打破它給你:)

功能conectar()調用GM_xmlhttpRequest [GET]和存儲內容的只有一部分,我想要在#divtempora中使用,這是一個用戶從不會看到(隱藏)的虛擬div。
然後函數resp_dxlegacy()遍歷虛擬div,將我想要的信息保存到一個變量中,並再次調用conectar()傳遞此參數並將內容存儲在另一個div中,最後將該內容顯示給用戶。

+0

Mr. 14k rep? :-)是的,我最終包含了jQuery,並將GM_xmlhttpRequest放入$()函數中(儘管我必須先從HTML中刪除DTD行)。 – Spoike 2012-04-05 14:28:07