如何求值xmlhttpRequest



我试图使用firefox制作一个篡改猴脚本,其中我使用xmlhttpRequest来检索外部信息,但我一直在控制台中得到相同的错误:未捕获的DOMException: Node不能在创建它的文档之外的文档中使用。我不想使用responseText来查找我需要的信息,我想将其转换为一个DOM,我可以在其上应用evaluate和reference元素。但我的做法似乎行不通。有人知道我怎么处理吗?

GM_xmlhttpRequest({
method: "get",
url: someurl,
onload: function(responseDetails) {
if(responseDetails.readyState == 4 && responseDetails.status == 200){
var parser = new DOMParser()
var to_DOM = parser.parseFromString(responseDetails.responseText, "text/html")
alert(to_DOM.evaluate("//tr[@bgcolor]/b[1]",document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null).snapshotItem(0).innerText)
}
}
})

您引用的是浏览器中加载的文档,而不是您创建的文档。

const parser = new DOMParser()
const responseText = "<html><body><p><strong>Hello World</strong><p></body></html>";
const doc = parser.parseFromString(responseText, "text/html");
console.log(document.evaluate("//p/strong", doc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0).innerText)

最新更新