Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么onclick侦听器提供不同的输出?_Javascript_Html_Safari_Dom Events - Fatal编程技术网

Javascript 为什么onclick侦听器提供不同的输出?

Javascript 为什么onclick侦听器提供不同的输出?,javascript,html,safari,dom-events,Javascript,Html,Safari,Dom Events,这是一个我无法破解的坚果。考虑下面的HTML正文: <body onload="console.debug(document.documentElement);"> <a href="#" onclick="console.debug(document.documentElement);">Click me</a> </body> 在Safari上的Inspector控制台中,第一条调试语句的输出和第二条调试语句的输出(单击链接时激发

这是一个我无法破解的坚果。考虑下面的HTML正文:

<body onload="console.debug(document.documentElement);">
    <a href="#" onclick="console.debug(document.documentElement);">Click me</a>
</body>

在Safari上的Inspector控制台中,第一条调试语句的输出和第二条调试语句的输出(单击链接时激发)不同。单击链接后,两个输出如下所示:

> HTMLHtmlElement
> <html>...</html>
>HTMLHtmlElement
> ...
两者都是可扩展的,但第一个元素看起来更像是一个适当的DOM元素及其所有细节(原型、事件侦听器、子关系和父关系等),而第二个元素仅将元素及其子元素显示为HTML


Firefox中Firebug控制台中给出的输出没有区别,每个输出只链接到HTML检查器。

这可能是safari中的一个错误,因为Firefox和IE9都给出相同的输出

如果它真的存在bug,您可以报告bug:


或者这是引擎中的一个差异。

显然,第一个脚本是在文档完全解析之前内联运行的。也许
HTMLHtmlElement
是Safari在完成构建DOM之前使用的占位符对象?该错误(如果是)也会发生在Chrome中,但在重新打开控制台时会自行更正。[Chrome最新开发]。事实上,如果你用这个刷新页面,有时你会得到HTMLHtmlElement,有时你会得到标记。如果你用一个按钮而不是一个标记,这有什么不同吗菲利普:如果我没记错,结果是一样的。如果它也发生在Chrome中,那可能是Webkit中的一个“bug”。我怀疑我会称之为bug,它可能只是解析器的一个实现细节。