Установка Div Content для свойства JSON Object приводит к отображению HTML-тегов на экране - PullRequest
1 голос
/ 01 апреля 2012

У меня есть макрос umbraco, который выплевывает содержимое страницы на http://cleanfeed.mysolutionuk.com/projects

Все работает хорошо, но когда я пытаюсь установить содержимое div для свойства объекта JSON (проанализированоиз необработанного HTML в скрытом div), вывод показывает фактический текст, а не интерпретировать его как HTML.Вы можете увидеть результат, нажав на плитку в демонстрационном URL.

В итоге:

var jsonString = $(dataElementId).html();
var data = $.parseJSON(jsonString);

//Set Properties of Player with the selected project:
$("#projectCompanyLogo").attr("src", data.ProjectCompanyLogoUrl);
$("#smallTitlePg").html(data.SmallTitle);
$("#mainTitlePg").html(data.MainTitle);

//Change the content of a div to the data in project description, should show as pure html:     
$("#flexScrollDynamicContent").html(unescape(data.ProjectDescription).replace('"',''));
$("#projectContent").attr("style", data.RightColumnBg);

Не уверен, что я делаю неправильно ... Но когда контент установлен, вывидеть физические теги <p> и &nbsp; на экране, а не отображать их как HTML.

1 Ответ

0 голосов
/ 01 апреля 2012

Вы можете сделать:

$("#flexScrollDynamicContent").html($('<div/>').html(data.ProjectDescription).text());

Это по существу делает jQuery-декодирование html-сущностей (которые есть в вашей строке Json), например:

$('<div/>').html("&lt;p&gt;Hello&lt;/p&gt;").text();

дает:

<p>Hello</p>
...