2014-11-24 2 views
3

Я узнал о кодировке символов, но в некоторой путанице.HTML-объекты, созданные по-разному в браузере

В коде ниже, в консоли я получаю выход в «>» и браузер делает это правильно, как «>».

<div id="test">&gt;</div> 
</body> 
<script type="text/javascript"> 
x = document.getElementById("test").innerHTML; 
console.log(x); 
</script> 

Но, если я использую эту сущность «&weierp;» вместо «&gt;», я получаю обработанный выход как в консоли и в браузере.

В чем разница между обеими объектами и почему это отображается в консоли?

enter image description here

+0

Для этого символа нужен соответствующий шрифт с глифом. – Gumbo

+2

@ Gumbo Возможно, вы неправильно поняли? '>' выводится как объект HTML в консоли, а '& weierp;' интерпретируется и отображается как правильный символ в консоли. Отсутствующие шрифты здесь не проблема. – deceze

+0

'innerText' выводит отображаемый символ ... – feeela

ответ

2

При записи элемента в журнале консоли, браузеры применяются HTML-сериализации, как описано в пункте 8.3 Serializing HTML fragments из спецификации W3C HTML5. Выделяющийся правила в конце статьи указать:

  1. Заменить возникновение «&» символа в строке «&amp;».

  2. Заменить любые вхождения символов U + 00A0 NO-BREAK SPACE на строку «&nbsp;».

  3. Если алгоритм был вызван в режиме атрибута, при необходимости заменить вхождения «»»символа в строке„"“.

  4. Если алгоритм не был вызван в режиме атрибута, заменить любого вхождения «<» характер по строке «&lt;», а также любые вхождения «>» символа в строке «&gt;».

Таким образом, при записи содержимого элемента в журнал амперсанды и пространства без прерывания отображаются как символьные ссылки, другие символы как таковые. Когда браузер создает внутреннее представление, DOM, с вашей разметки HTML, он заменяет ссылку &weierp; фактическим символом «℘». Подобная операция происходит со всеми ссылками на символы, включая &gt;, но указанные два символа отображаются как ссылки, независимо от того, как они были представлены в источнике HTML.

+0

Это оправдывает. Thanx для усилий ура – Abhinav

Смежные вопросы