我有一个正常的 http get Ajax 调用,它返回 html 预格式化字符串:
'\u000a\u0009\u0009\u0009\u0009\u000a\u0009#07\/04\/2014#\u000a'
我正在尝试在预标记中设置此值。
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 在那里编码您的值)
关于javascript - Ajax 返回的 HTML 未在 PRE 标记中呈现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24580009/