【问题标题】:Ajax returned HTML is not rendering in PRE tagAjax 返回的 HTML 未在 PRE 标记中呈现
【发布时间】:2014-08-26 03:07:34
【问题描述】:

我有一个普通的 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 调用)则不起作用:

httpFactory.getHTML(..id..).success(function (emailHTML, status) {

            var container = document.getElementById('preContainer');
            container.innerHTML = emailHTML;                
        });

hardcode 值和 emailHTML 值完全相同。但后来它不是在 PRE 标签中格式化。知道为什么吗?

【问题讨论】:

    标签: javascript html angularjs ajax pre


    【解决方案1】:

    我的猜测是它们并不完全相同,但是您所查看的值(如 chrome 工具或 w/e)只是显示它已编码或 w/e。 (如果它们完全相同,您将得到相同的结果)

    你可以在放入innerHTML标签之前再次编码输出吗?

    container.innerHtml = encodeHoweverYouEncode(emailHTML);
    

    (这可能不是您想要的编码方式,但使用 w/e 编码您的值)

    【讨论】:

    • 嗨凯尔 - 当我在 chrome 控制台窗口中使用 console.log 进行 http 调用后记录时,它显示为字符串,但是当我在控制台窗口中再次复制和粘贴时,它显示为格式化。跨度>
    【解决方案2】:

    我刚刚尝试了 jquery Get 调用,并且 pre 标记可以很好地呈现 HTML。不知何故,它不适用于 Angular JS http 调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-19
      • 2015-01-20
      • 2016-02-29
      • 1970-01-01
      • 2011-01-13
      • 2019-07-22
      • 2020-12-19
      相关资源
      最近更新 更多