【发布时间】:2010-02-09 23:53:39
【问题描述】:
我制作了一个 Firefox 扩展,它使用 xmlhttprequest 加载网页。
我的扩展在主 Firefox 旁边打开了自己的窗口。
我的扩展的想法是在内存中加载一个网页,修改它并在Firefox中新打开的标签中发布。
网页有一个 id 为“内容”的 div。这就是我要修改的 div。我一直在greaseMonkey脚本中使用XPath,所以我想在我的扩展中使用它,但是,我有一个问题。似乎它不像我想要的那样工作。我总是得到 0 的结果。
var pageContents = result.responseText; //webpage which was loaded via xmlhttprequest
var localDiv = document.createElement("div"); //div to keep webpage data
localDiv.innerHTML = pageContents;
// trying to evaluate and get the div i need
var rList = document.evaluate('//div[@id="content"]', localDiv, null XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
正如我所说,结果始终为 0。现在我创建了本地 div 来存储网站数据,因为我无法使用 XPath 解析文本。在这种情况下,document 是我的扩展名XUL 文档/窗口。
我确实希望它可以工作,但我错了。
我知道如何使用string.indexOf(str) 和slice(..) 提取 div。但是,这很慢而且不方便,因为我需要修改内容。更改此 div 内许多表单的背景、边框。对于这项工作,我还没有看到比评估 XPath 来获得我需要的所有节点更好的方法。
所以主要的问题是,如何使用 XPath 来解析 firefox 扩展中加载的网页?
谢谢
【问题讨论】:
标签: firefox xpath firefox-addon xul