JavaScript - почему свойство innerHTML отображается в виде текста, если оно содержит HTML? - PullRequest
0 голосов
/ 01 октября 2019

У меня есть следующий бит кода JS, выполняемый в представлении ASP.CORE, который предназначен для основной установки содержимого элемента на странице.

if (notificationBanner) {
    var bannerText = unescape("@ViewData.GetClient().GetText("$.resetCredentials.step2.otpSendBanner")");
    console.log(bannerText);
    notificationBanner.innerHTML = bannerText;
}

В браузере регистрируется следующееconsole:

<p>A One Time Password (OTP) has been sent to your mobile number below. Enter the OTP in the field below. <strong>The OTP is valid for 10 minutes</strong>.</p>


И элемент заканчивается следующим образом:

enter image description here

Однако это не правильно, я хочу частьв <strong></strong> быть жирным шрифтом. Почему он добавляет его как текст?

1 Ответ

0 голосов
/ 03 октября 2019

Я искал ванильное решение для JS, поэтому посмотрел на предоставленный почтовый карандаш. Нашел хорошее решение. Спасибо за вашу помощь.

function decodeHtml(html) {
    var txt = document.createElement("textarea");
    txt.innerHTML = html;
    return txt.value;
}

if (notificationBanner) {
    var bannerText = unescape("@ViewData.GetClient().GetText("$.resetCredentials.step2.otpSendBanner")");
    console.log(bannerText);
    notificationBanner.innerHTML = decodeHtml(bannerText);
}
...