最近做前端开发遇到一个需求是后端返给我xml格式的文件内容,要我原封不动地将文件内容展示在一个新开的HTML页面内。
ret0是后端返给我的内容,ret0在控制台打印出来大概长这样,很多标签,html会对这些标签进行解析,但是可能有些标签html解析不了:
我开始想直接用document.write把ret0写到页面上,就像这样:
//打开新的html页面,定义为newWin
var newWin = window.open('about:blank', '_blank');
//将数据ret0通过document.write写进新开页面中
newWin.document.write(ret0)
这样写完后发现页面一片空白,大概是因为上面提到的html自动去解析了,但是很多标签它解析不了的原因,页面空白,但是元素有东西:
所以为了阻止html页面去解析xml文件内容,换个写法。
方法一:<xmp><a>${ret0}</a></xmp>标签
//打开新的html页面,定义为newWin
var newWin = window.open('about:blank', '_blank');
//将数据ret0通过document.write写进新开页面中
newWin.document.write(`<xmp><a>${ret0}</a></xmp>`)
方法二:<pre><textarea><a>${ret0}</a></textarea></pre>标签
//打开新的html页面,定义为newWin
var newWin = window.open('about:blank', '_blank');
//将数据ret0通过document.write写进新开页面中
newWin.document.write(`<pre><textarea><a>${ret0}</a></textarea></pre>`)
成功打印: