有没有办法将HTML dom对象JSON.STRING化?[JavaScript]
我正在尝试加载一个外部html文件,并对正文中的内容进行字符串化,但如果不产生不希望的结果,我似乎无法这样做。有没有办法做到这一点有没有办法将HTML dom对象JSON.STRING化?[JavaScript],javascript,html,json,xmlhttprequest,stringify,Javascript,Html,Json,Xmlhttprequest,Stringify,我正在尝试加载一个外部html文件,并对正文中的内容进行字符串化,但如果不产生不希望的结果,我似乎无法这样做。有没有办法做到这一点 var xhr = new XMLHttpRequest(); function loadFile(){ xhr.open("GET", 'index.html'); xhr.responseType = "document"; xhr.send(); } xhr.onload = function(data) { myData
var xhr = new XMLHttpRequest();
function loadFile(){
xhr.open("GET", 'index.html');
xhr.responseType = "document";
xhr.send();
}
xhr.onload = function(data) {
myData = data;
myString = JSON.stringify(myData.srcElement.responseXML.body.children);
console.log(myString)
//logs: {"0":{},"length":1}
}
loadFile();
但我需要加载的是实际的div内容,例如:
//log: '<div id ='mydiv'>...</div>
//日志:'。。。
我做错了什么 你的问题不是很清楚,但我想试一试。灵感来自那里:。演示:
函数string2dom(html){
变量iframe,doc;
iframe=document.createElement('iframe');
iframe.style.display='none';
document.body.appendChild(iframe);
doc=iframe.contentDocument | | iframe.contentWindow.document;
iframe.parentNode.removeChild(iframe);
doc.open();
doc.write(html);
doc.close();
退货单;
}
var dom=string2dom(“”)
+ ''
+ ''
+“测试”
+ ''
+ ''
+“allo la terre”
+ ''
+ ''
);
document.body.innerHTML=(
dom.getElementById('test').innerHTML
);
我可以通过将响应类型更改为“DOMString”来解决这个问题:
function buildAd(file){
xhr.open("GET", file);
xhr.responseType = "DOMString";
xhr.send();
}
您必须将想要的内容提取到自己的JavaScript数据结构中,然后将其字符串化。内置序列化程序无法直接在DOM上工作。请使用document.body.innerHTMLIf如果只需要实际的div内容,则无需对其进行
JSON.stringify
。改为这样做:myString=myData.srcmelement.responseXML.body.children
@raghavendra我需要将值创建为字符串,以便替换某些值或ID、属性、文本等。是否跨浏览器兼容?
function buildAd(file){
xhr.open("GET", file);
xhr.responseType = "DOMString";
xhr.send();
}