С помощью bucabay мы можем кодировать специальные символы в html-узлы ниже ссылки для ссылки: (Как преобразовать символы в объекты HTML с использованием обычного JavaScript). Теперь мы хотим их декодировать, т.е. снова преобразовать объекты HTML в специальные символы.
С уважением, А.А.
Для надежного решения, которое позволяет избежать проблем в других ответах, используйте библиотеку he. Из README:
он (для "HTML-сущностей") является надежным кодировщиком/декодером объектов HTML, написанным на JavaScript. Он поддерживает все стандартизированные именованные символьные ссылки в соответствии с HTML, обрабатывает неоднозначные амперсанды и другие граничные случаи, как и браузер, имеет обширный набор тестов и, вопреки многим другим решениям JavaScript, отлично справляется с астральными символами Unicode. Доступна онлайн-демонстрация.
Вот как вы его используете:
var html = 'Übergroße Äpfel mit Würmern';
var decoded = he.decode(html);
// → 'decoded' is now 'Übergroße Äpfel mit Würmern'
Вы можете сделать это, если браузер проанализирует текст как HTML, например
var text = "Übergroße Äpfel mit Würmern";
var span = document.createElement('span');
span.innerHTML = text;
alert(span.innerHTML); // contains the characters as decoded
text
) содержат что-то вроде <svg onload=alert(1)>
, то alert(1)
будет выполнено. Это решение также зависит от поддержки браузером ссылок на символы, которые даже в современных браузерах не идеальны для всех: mathias.html5.org/tests/html. Это также не будет работать в средах без браузера.
Вы можете сделать это, используя базовый javascript или используя jQuery.
newText = "Übergroße Äpfel mit Würmern";
var my_unescaped_text = jQuery (''). html (newText).text();
newText
) содержит что-то вроде <svg onload=alert(1)>
, это alert(1)
будет выполнено. Это решение также зависит от поддержки браузером ссылок на символы, которые даже в современных браузерах не идеальны для всех: mathias.html5.org/tests/html. Это также не будет работать в средах без браузера.