Вебсправочник
Ваш первый сайт

Исходный HTML и DOM: почему инспектор показывает другую структуру

Исходный ответ сервера и текущее дерево DOM могут различаться. Браузер разбирает разметку, исправляет некоторые ошибки структуры, а скрипты затем могут менять документ.

Назначение

Исходный ответ сервера и текущее дерево DOM могут различаться. Браузер разбирает разметку, исправляет некоторые ошибки структуры, а скрипты затем могут менять документ.

Как это работает

Response у запроса документа показывает полученное содержимое. Elements показывает живой DOM после разбора и изменений. Для воспроизводимой проверки сравнивайте один и тот же ответ, а не две независимые загрузки с разным состоянием.

Пример

<!-- Намеренно ошибочное вложение для отдельного учебного файла: -->
<p>Начало абзаца<div>Блочный фрагмент</div>Продолжение</p>

Что должно получиться

В инспекторе браузер не оставит div обычным потомком p в таком виде: алгоритм разбора завершает абзац. Дополнительные узлы и расположение текста нужно смотреть в DOM, а не угадывать по отступам исходника.

Граница применения и частая ошибка

Не публикуйте намеренно ошибочный пример как рабочий шаблон. View Source может запрашивать документ отдельно, а расширения и скрипты влияют на живое дерево. Различие не обязательно означает вмешательство сервера или потерю данных.

Самостоятельная проверка

Сохраните пример отдельно, сопоставьте Response и Elements, затем исправьте вложение. После этого добавьте простое изменение textContent скриптом и отделите результат разбора HTML от последующей модификации DOM.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.