Я сделал расширение Firefox, которое загружает веб-страницу, используя xmlhttprequest
.
У моего расширения есть собственное окно, открытое рядом с основным Firefox.
Идея моего расширения - загрузить веб-страницу в память, изменить ее и опубликовать во вновь открытой вкладке в Firefox.
На веб-странице есть div с идентификатором «Content». И это div, который я хочу изменить. Я использовал XPath много в сценариях greaseMonkey, и поэтому я хотел использовать его в своем расширении, однако у меня есть проблема. Кажется, это не работает так, как я хотел бы. Я всегда получаю результат 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
document / window.
Я ожидал, что это сработает, но я ошибся.
Я знаю, как извлечь div, используя string.indexOf(str)
, а затем slice(..)
. Тем не менее, это очень медленно и не удобно, потому что мне нужно изменить содержимое. Измените фон, границы многих форм внутри этого div. И для этой работы я не видел лучшего способа, чем оценка XPath, чтобы получить все нужные мне узлы.
Итак, главный вопрос: как использовать XPath для анализа загруженной веб-страницы в расширении Firefox?
Спасибо