我有一个正常的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在此处编码您的值)

10-07 14:44