【问题标题】:Why does Document.prototype.getElementsByName exist in Chrome?为什么 Document.prototype.getElementsByName 存在于 Chrome 中?
【发布时间】:2014-03-13 08:47:05
【问题描述】:

据我所知,getElementsByNameHTMLDocument中定义的函数,HTMLDocument继承自DocumentDocument继承自Node

那么为什么我可以在 Chrome 中看到 Document.prototype.getElementsByName 而在 Firefox 中看不到?Chrome 没有实现 DOM2 规范吗?

【问题讨论】:

标签: javascript html dom getelementsbyname


【解决方案1】:

Chrome 不实现 DOM2 规范吗?

是的,可能不会。我猜他们至少实现了DOM 3,如果不是more current version :-)

但是,那些也没有定义getElementsByName。那么他们是怎么得到这个的呢?它实际上是在HTML5(WHATWG/W3)上指定的Documentpartial interface

DOM 规范定义了一个 Document 接口,这个 [HTML5] 规范对它进行了显着扩展 […]

我在 http://dev.w3.org/html5/spec-LC/dom.html#documents-in-the-dom 找到了该便条

由于 HTMLDocument 接口现在是使用特定于绑定的转换方法获得的,而不是简单地作为文档对象的主要接口,因此不再将其定义为从 Document 继承。

因此,这些接口的规范细节仍在制定中,并且会发生变化。 请注意,浏览器甚至不应该导出任何类型的DocumentPrototype - 规范只定义接口,而不是它们的确切 EcmaScript 绑定表示。 WebIDL does

所以 Chrome 确实遵循较新的规范(但仍有一些 HTMLDocument?),而 Firefox 实施的是旧版本。然而,真正重要的是这些方法确实存在每个window.document - 而不是它们是如何到达那里的:-)

【讨论】:

猜你喜欢
  • 2016-12-08
  • 2015-06-29
  • 2017-01-13
  • 2019-05-23
  • 1970-01-01
  • 1970-01-01
  • 2017-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多