我在网站上进行的XMLHttpRequest没有官方API,而且我在xhr.responseText
收到了HTML响应。但是,我无法xhr.responseText.getElementsByName("something")[0].value;
提取特定元素的值,这些元素称为"某些内容"。
我可以打开一个新窗口并使用document.write在该窗口上编写xhr.responseText
,然后使用window_name.getElementsByName("something")[0].value;
,但我不会这样做。
我的代码中有问题的部分:
xhr.responseText.getElementsByName("something")[0].value;
答案 0 :(得分:1)
您可以在支持它的浏览器中使用DOMParser API:
var parser = new DOMParser();
var doc = parser.parseFromString(xhr.responseText, "text/html");
现在doc
是HTMLDocument
个对象,getElementsByName
和所有对象。
在IE9 +和其他标准浏览器中可用(用于HTML文档的IE10,在Safari中不可用)。
<强>替代强>
你也可以create HTML documents而不需要新的窗口/框架:
doc = document.implementation.createHTMLDocument("");
doc.documentElement.innerHTML = xhr.responseText;
这也应该在IE9和Safari中可用。