我有一个正常的http get Ajax调用,该调用返回html预格式化的字符串:'\u000a\u0009\u0009\u0009\u0009\u000a\u0009#07\/04\/2014#\u000a'
我正在尝试在pre标签中设置此值。
HTML:<pre id="preContainer"></pre>
JS:
var container = document.getElementById('preContainer');
如果我在代码硬编码值中传递它,则可以工作:
container.innerHTML = '\u000a\u0009\u0009\u0009\u0009\u000a\u0009#07\/04\/2014#\u000a';
但是,如果我直接传递ajax返回的对象(Angular JS GET Call),则不起作用:
httpFactory.getHTML(..id..).success(function (emailHTML, status) {
var container = document.getElementById('preContainer');
container.innerHTML = emailHTML;
});
硬编码值和emailHTML值完全相同。但是在以后,它没有在PRE标签中格式化。知道为什么吗?
最佳答案
我的猜测是它们并不完全相同,但是您要查看的值(例如chrome工具或w / e)只是显示其编码或w / e。 (如果它们完全相同,您将得到相同的结果)
您可以在放入innerHTML标签之前再次对输出进行编码吗?
container.innerHtml = encodeHoweverYouEncode(emailHTML);
(那可能不是您想要的编码方式,而是使用w / e在此处编码您的值)