Вот орех, который я просто не могу взломать. Рассмотрим следующий HTML тело:Почему слушатель onclick дает разные результаты?
<body onload="console.debug(document.documentElement);">
<a href="#" onclick="console.debug(document.documentElement);">Click me</a>
</body>
Выход первого оператора отладки, а выход второго, срабатывающая при нажатии на ссылку, отличающуюся в консоли инспектора на Safari. После нажатия на ссылку, два выхода выглядеть следующим образом:
> HTMLHtmlElement
> <html>...</html>
Оба расширяемые, но первый, кажется более как надлежащий DOM элемент со всеми его гайками и болтами (прототипом, слушателями событий, ребенком и родительскими отношениями , и т. д.), а второй отображает только элемент и его дочерние элементы в виде HTML.
Нет никакой разницы между выходом, указанным в консоли Firebug в Firefox, где каждый вывод связан только с инспектором HTML.
Ну, очевидно, первый скрипт запускается встроенным, прежде чем документ будет полностью проанализирован. Возможно, HTMLHtmlElement является объектом-заполнителем, который использует Safari до того, как он завершил построение DOM? –
Ошибка (если она одна) также происходит в Chrome, но исправляет себя при повторном открытии консоли. – pimvdb
[Chrome новейший разработчик]. На самом деле, если вы обновляете страницу с этим, иногда вы будете получать HTMLHtmlElement в другое время, когда получите разметку. –