Объекты HTML должны быть закодированы в атрибуте высокого звука изображения в странице HTML. Так
будет работать хорошо.
С другой стороны, тот же код JavaScript не будет работать
document.getElementById('formula').alt = 'A → B';
и произведет → B вместо → B.
Как сделать это через JavaScript, когда не возможно поместить специальные (незакодированные) символы в исходный код?
Вот альтернатива, если вы не можете сохранить файл в формате Unicode:
function decodeHTML(str) {
return str.replace(/&#(\d+);?/g, function() {
return String.fromCharCode(arguments[1])
});
}
Однако для этого необходимо использовать числовое представление. В этом случае →
.
JavaScript имеет свою собственную систему для экранирования специальных символов в строках:
document.getElementById('formula').alt = 'A \u2192 B';
<!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 → C">
<script>
function html_entity_decode(str) {
var p = document.createElement("p");
p.innerHTML = str.replace(/</g,"<").replace(/>/g,">");
return p.innerHTML;
}
var theValue = html_entity_decode('A → B');
document.getElementById('formula').title = theValue;
</script>
</body>
</html>
Кредиты на Источник JavaScript .
РЕДАКТИРОВАТЬ: Я изменил исходный код, чтобы использовать только innerHTML
в элементе
вместо значений innerHTML
и
из
.
В этом конкретном случае вам не нужно кодировать специальные символы HTML в JavaScript.
Валидатор W3C не должен жаловаться на это (только что проверил), и документ должен подтвердиться. Если нет, опубликуйте свой код, и я обновлю свой ответ.