2010-02-06 70 views

回答

4

使用GM_xmlhttpRequest的請求,併爲createContextualFragment HTML解析。有關使用createContextualFragment的示例,請參閱Best Addons for Greasemonkey。爲了解析有效的XML,你可以使用DOMParser.parseFromString

編輯:這是一個非常簡單但完整的例子來說明一切如何組合在一起:

// ==UserScript== 
// @name   Parse HTML demo 
// @namespace 
// @include  * 
// ==/UserScript== 

GM_xmlhttpRequest({ 
    method: 'GET', 
    url: 'http://www.google.com', 
    onload: function(resp){ 
    var range = document.createRange(); 
    range.setStartAfter(document.body); 
    var xhr_frag = range.createContextualFragment(resp.responseText); 
    var xhr_doc = document.implementation.createDocument(null, 'html', null); 
    xhr_doc.adoptNode(xhr_frag); 
    xhr_doc.documentElement.appendChild(xhr_frag); 
    var node = xhr_doc.evaluate("//span//b[@class='gb1']", xhr_doc, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; 
    GM_log("node.localName: " + node.localName); 
    GM_log("node.textContent: " + node.textContent); 
    } 
}); 
0

如果您正在使用XML或寫得很好XHTML工作,你可以做如下:

// XMLDocument 
var doc = new DOMParser().parseFromString(xhr.responseText, "text/xml"); 

否則:

// HTMLDocument 
var doc = document.implementation.createHTMLDocument(""); 
doc.documentElement.innerHTML = xhr.responseText; 

一旦你有了文檔,你可以使用任何東西像一個正常的文件。