javascript-如何从通过XMLHttpRequest接收的html页面创建DOM对象?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-如何从通过XMLHttpRequest接收的html页面创建DOM对象?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1843字,纯文字阅读大概需要3分钟。
内容图文
![javascript-如何从通过XMLHttpRequest接收的html页面创建DOM对象?](/upload/InfoBanner/zyjiaocheng/652/c2ed27bd92f043598cc63b659492b64a.jpg)
我正在开发一个Chrome扩展程序,因此对于我要获得权限的域,我对XMLHttpRequests具有跨主机权限.
我已经使用XMLHttpRequest并获得了HTML网页(txt / html).我想使用XPath(document.evaluate)从中提取相关位.不幸的是,我无法从html返回的字符串构造DOM对象.
var xhr = new XMLHttpRequest();
var name = escape("Sticks N Stones Cap");
xhr.open("GET", "http://items.jellyneo.net/?go=show_items&name="+name+"&name_type=exact", true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xhr.responseText,"text/xml");
console.log(xmlDoc);
}
}
xhr.send();
console.log用于在Chromium JS控制台中显示调试内容.
在所说的JS控制台中.我得到这个:
Document
<html>?
<body>?
<parsererror style=?"display:? block;? white-space:? pre;? border:? 2px solid #c77;? padding:? 0 1em 0 1em;? margin:? 1em;? background-color:? #fdd;? color:? black">?
<h3>?This page contains the following errors:?</h3>?
<div style=?"font-family:?monospace;?font-size:?12px">?error on line 1 at column 60: Space required after the Public Identifier
?</div>?
<h3>?Below is a rendering of the page up to the first error.?</h3>?
</parsererror>?
</body>?
</html>?
那么我应该如何使用XMLHttpRequest->接收HTML->转换为DOM->使用XPath横向?
我应该使用“隐藏的” iframe hack来加载/接收DOM对象吗?
解决方法:
DOMParser使DOCTYPE定义令人窒息.在任何其他非xhtml标记(例如< link>没有结束/.您可以控制要发送的文件吗?如果不是,最好的选择是将其解析为字符串.使用正则表达式查找所需内容.
编辑:您可以通过将浏览器注入到隐藏的div中来使浏览器为您解析正文的内容:
var hidden = document.body.appendChild(document.createElement("div"));
hidden.style.display = "none";
hidden.innerHTML = /<body[^>]*>([\s\S]+)<\/body>/i(xhr.responseText)[1];
现在,在隐藏的内容内搜索以查找所需内容:
var myEl = hidden.querySelector("table.foo > tr > td.bar > span.fu");
var myVal = myEl.innerHTML;
内容总结
以上是互联网集市为您收集整理的javascript-如何从通过XMLHttpRequest接收的html页面创建DOM对象?全部内容,希望文章能够帮你解决javascript-如何从通过XMLHttpRequest接收的html页面创建DOM对象?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。