Я знаю, что мы должны использовать JSON при получении удаленных «предложений автозаполнения», но я вынужден использовать стандартный DOM действительный XHTML
Я зарегистрировал компонент интерфейса nsIAutoCompleteSearch
и, используя этот код, получил удаленный XHTML через XmlHttpRequest
var request = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
.createInstance(Components.interfaces.nsIXMLHttpRequest);
пока нормально. затем я получаю текст от request.responseText
, и мне нужно проанализировать DOM и получить значения, слишком сложные с регулярным выражением
вот код с ошибкой:
Components.classes["@mozilla.org/feed-unescapehtml;1"]
.getService(Components.interfaces.nsIScriptableUnescapeHTML)
.parseFragment(request.responseText, false, null, document);
ошибка говорит document not defined
. Поскольку я работаю в компоненте XPCOM, у меня нет доступа к DOM страницы или оверлеям XUL. Этот код взят прямо из документов MDN
Я пытался создать экземпляр nsIDOMDocument
или nsIDOMHTMLDocument
и загрузить их из @mozilla.org/dom/core;1
или @mozilla.org/dom/html;1
, но кажется, что эти пакеты недоступны (ошибка говорит Components.classes['@mozilla.org/dom/core;1'] is undefined
)
Итак, есть ли способ создать новый DOMDocument, вставить request.responseText
как HTML, а затем пройтись по его структуре DOM?
функция HTMLParser
из данной ссылки выдает ту же ошибку о document not defined
Спасибо