1

我正在撰寫一個Chrome擴展程序,用於搜索Google羣組中包含給定字符串的帖子。在瀏覽器中,使用搜索查詢「subject:」,我得到搜索結果:0結果或> 0,並根據結果是否出現採取不同的操作。皺紋是,如果我只是使用取了結果頁面的頁面數據,說,無法確定在Chrome擴展程序中使用Javascript的Google網上論壇搜索結果

try 
    { 
    var request = new XMLHttpRequest(); 
    request.open("GET", url, false); 
    request.send(null); 
    } 
catch (e) 
    { 
    console.log(e); 
    return; 
    } 
if (request.status == 200) 
    { 
    var tmp = request.responseText; 
    } 

我只是得到模糊的數據,並不能讀取。如果我能得到一個Document對象,那麼我可以搜索某個類名,像doc.getElementsByClassName一樣,只有當搜索結果爲非零時才存在。

+0

我以前的「答案」並不令人滿意,而且非常糟糕;任何人有更好的主意?必須有一種方法可以將一串HTML數據轉換爲文檔。 – FractalBob

回答

0

下面是如何將responseText的轉向一個DOM ....

var page = document.implementation.createHTMLDocument(""); 
page.documentElement.innerHTML = request.responseText; 
// Now you can find things 
var thing = page.documentElement.querySelector('#find'); 

...但是這不會永遠是不夠的某些網頁,因爲它們是AJAX驅動,新的谷歌組是當然。
所以這個頁面只是頁面加載時js將獲得的所有其他內容的框架。
有時您可以通過查看WebInspector中的網絡面板來查看如何複製頁面製作和複製的ajax請求,並觀察當您按搜索按鈕時會發生什麼。
但谷歌第2組做一些時髦的東西,我不會有一個線索;)
還有其他事情可以做,像覆蓋的XMLHttpRequest和監視什麼叫它和它做什麼,當就緒狀態更改爲4或監視onload。然後使用該信息試圖找出哪些函數處理responseText,並有時以這種方式找到您需要的內容。但我目前找不到我的代碼,因爲我知道它不會很漂亮,所以不會真的覺得這樣做)
祝你好運。

相關問題