簡體   English   中英

Ajax 返回的 HTML 未在 PRE 標記中呈現

[英]Ajax returned HTML is not rendering in PRE tag

我有一個正常的 http get Ajax 調用,它返回 html 預先格式化的字符串: '\ \ \ \ \ \ \ #07\\/04\\/2014#\ '

我試圖在 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 可以在那里對您的值進行編碼)

我剛試過 jquery Get call 和 pre 標簽渲染 HTML 很好。 不知何故,它不適用於 Angular JS http 調用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM