Кодирование атрибута высокого звука JavaScript

Объекты HTML должны быть закодированы в атрибуте высокого звука изображения в странице HTML. Так

A → B

будет работать хорошо.

С другой стороны, тот же код JavaScript не будет работать

document.getElementById('formula').alt = 'A → B';

и произведет → B вместо → B.

Как сделать это через JavaScript, когда не возможно поместить специальные (незакодированные) символы в исходный код?

8
задан Community 23 May 2017 в 10:33
поделиться

4 ответа

Вот альтернатива, если вы не можете сохранить файл в формате Unicode:

function decodeHTML(str) {
    return str.replace(/&#(\d+);?/g, function() {
        return String.fromCharCode(arguments[1])
    });
}

Однако для этого необходимо использовать числовое представление. В этом случае .

1
ответ дан 5 December 2019 в 18:57
поделиться

JavaScript имеет свою собственную систему для экранирования специальных символов в строках:

document.getElementById('formula').alt = 'A \u2192 B';
7
ответ дан 5 December 2019 в 18:57
поделиться
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Decode HTML entities using JavaScript</title>
  </head>
  <body>
    <img id="formula" src="vote-arrow-up-on.png" alt="A &rarr; C">
    <script>
      function html_entity_decode(str) {
        var p = document.createElement("p");
        p.innerHTML = str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
        return p.innerHTML;
      }

      var theValue = html_entity_decode('A &rarr; B');
      document.getElementById('formula').title = theValue;
    </script>
  </body>
</html>

Кредиты на Источник JavaScript .

РЕДАКТИРОВАТЬ: Я изменил исходный код, чтобы использовать только innerHTML в элементе

вместо значений innerHTML и из