innerhtml игнорирует экранированные символы HTML

0

У меня есть div как

<div id="first"></div> 

и я пытаюсь изменить содержимое (которое я получаю из backend html escaped), поскольку

$( "#first" ).html( "Some text <div style=&#34;font-size:150%&#34;>This text should look bigger</div>" );

----------ИЛИ------------

$( "#first" ).html( "Some text <div style=&quot;font-size:150%&quot;>This text should look bigger</div>" );

Вывод в браузере

<div id="first">Some text <div style="&quot;font-size:150%&quot;">This text should look bigger</div></div>

Это не применяется к стилю, который я хотел применить, как в DOM, который я вижу два раза "(цитата). Я также пробовал классический способ document.getElementById без каких-либо успехов.

Заранее благодарю за любую идею.

Теги:

1 ответ

1

Вы можете декодировать экранированный текст с помощью этой функции:

function htmlDecode(value) {
    if (value) {
        return $('<div />').html(value).text();
    } else {
        return '';
    }
}

Вы должны передать экранированный HTML из бэкэнд через эту функцию, прежде чем записывать ее на страницу.

  • 0
    Проблема в том, что сервер предоставляет ему & quot ;. экранирование с помощью \ на стороне клиента не исправит это. Я бы предложил прояснить, что это решение требует изменения того, как сервер возвращает данные (если это то, что вы предлагаете)
  • 0
    Хорошая точка зрения; Я не уловил это. Редактирование сейчас :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню