【发布时间】:2012-02-15 20:47:33
【问题描述】:
这是一个我无法破解的坚果。考虑以下 HTML 正文:
<body onload="console.debug(document.documentElement);">
<a href="#" onclick="console.debug(document.documentElement);">Click me</a>
</body>
第一个调试语句的输出和在您单击链接时触发的第二个调试语句的输出在 Safari 的 Inspector 控制台中有所不同。点击链接后,两个输出如下:
> HTMLHtmlElement
> <html>...</html>
两者都是可扩展的,但第一个似乎更像是一个适当的 DOM 元素,其中包含所有细节(原型、事件侦听器、子和父关系等),而第二个仅将元素及其子元素显示为HTML。
在 Firefox 的 Firebug 控制台中给出的输出没有区别,每个输出只链接到 HTML 检查器。
【问题讨论】:
-
很明显第一个脚本是内联运行的,在文档被完全解析之前。也许
HTMLHtmlElement是Safari 在完成构建DOM 之前使用的占位符对象? -
该错误(如果有)也发生在 Chrome 中,但在重新打开控制台时会自行纠正。
-
[Chrome 最新开发]。实际上,如果你用这个刷新页面,有时你会得到 HTMLHtmlElement 其他时候你会得到标记。
-
如果使用按钮而不是标签会有什么不同
-
Philip:如果我没记错的话,结果是一样的。
标签: javascript html safari dom-events