Печать кода Javascript вместо его выполнения при изменении содержимого HTML

Руководство разработчика Mozilla Developer Network для регулярных выражений предоставляет эту функцию экранирования:

function escapeRegExp(string){
    return string.replace(/([.*+?^${}()|\[\]\/\\])/g, "\\$1");
}

1
задан iceicebabeh 18 January 2019 в 01:58
поделиться

2 ответа

Вы можете использовать DOMParser для разбора вашей строки с сущностями HTML на строку HTML, которая затем может быть визуализирована как элемент DOM.

document.getElementById("body").innerHTML = htmlDecode("<ul> \n <li>Place item in the <strong>Garbage Bin.</strong></li> \n</ul>");

function htmlDecode(input) {
  var doc = new DOMParser().parseFromString(input, "text/html");
  return doc.documentElement.textContent;
}
<div id="body"></div>

Вы можете использовать это так:

<div id="title"></div>
<div id="body"></div>

<script>

  function htmlDecode(input) {
    var doc = new DOMParser().parseFromString(input, "text/html");
    return doc.documentElement.textContent;
  }

  var requestURL = 'https://secure.toronto.ca/cc_sr_v1/data/swm_waste_wizard_APR?limit=1000';
  var request = new XMLHttpRequest();
  request.open('GET', requestURL);
  request.responseType = 'json';
  request.send();
  request.onload = function() {
    var data = request.response;
    document.getElementById("title").innerHTML = htmlDecode(data[0].title);
    document.getElementById("body").innerHTML = htmlDecode(data[0].body);
  }
</script>

Кредит это [ 114] ответ для DOMParser.

0
ответ дан Nick Parsons 18 January 2019 в 01:58
поделиться

Я использовал функцию «unescape» в Jquery. Вы можете прочитать его в https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/unescape

Функция unescape () вычисляет новую строку, в которой шестнадцатеричные escape-последовательности заменяются символом, который он представляет. Экранирующие последовательности могут быть введены с помощью функции, такой как escape. Обычно decodeURI или decodeURIComponent предпочтительнее unescape.

Пожалуйста, попробуйте это, надеюсь, это поможет. Thnx

var requestURL = 'https://secure.toronto.ca/cc_sr_v1/data/swm_waste_wizard_APR?limit=1000';
  var request = new XMLHttpRequest();
  request.open('GET', requestURL);
  request.responseType = 'json';
  request.send();
  request.onload = function() {
    var data = request.response;
    var title_ = $("<p/>").html(data[0].title).text(); 
    var body_ = $("<p/>").html(data[0].body).text(); 
    //$('#body').append($.parseHTML(unescape(data[0].body)));
    $('#title').append(title_);
    $('#body').append(body_);
  }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="title">

</div>

<div id="body">

</div>

Необходимо добавить / добавить данные [i] к элементам. Не установить значение (например, ht)

0
ответ дан Ashutosh 18 January 2019 в 01:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: