2014-02-14 28 views
4

據我所知,getElementsByNameHTMLDocument中定義的函數,HTMLDocument繼承自Document,而Document繼承自Node爲什麼在Chrome中存在Document.prototype.getElementsByName?

那麼爲什麼我可以在Chrome瀏覽器中看到Document.prototype.getElementsByName而不是Firefox?Chrome不實現DOM2規範嗎?

+0

爲什麼它會*錯*提供它甚至在'文檔'?他們*遵循規範,因爲它可以在'HTMLDocument'上找到。 – Bergi

+0

鏈接到規範是在這裏:http://www.w3.org/TR/DOM-Level-2-HTML/html.html#ID-71555259 –

+2

[這個討論](http://lists.whatwg.org /htdig.cgi/whatwg-whatwg.org/2011-August/032878.html),雖然日期,似乎是相關的。 –

回答

3

Chrome不實現DOM2規範嗎?

是的,可能不是。我猜他們至少實現DOM 3,如果沒有一個morecurrent version :-)

然而,那些沒有定義getElementsByName無論是。那麼他們是如何得到這個的?

DOM規範定義了文檔的界面,其中該[HTML5]規範顯著延伸[...]

而在http://dev.w3.org/html5/spec-LC/dom.html#documents-in-the-dom:它實際上是在HTML5(WHATWG/W3)上Documentpartial interface指定我發現便條

因爲HTMLDocument接口現在是使用綁定特定的轉換方法而不是簡單地作爲主接口獲得的o如果文檔對象不再被定義爲從Document繼承。

因此這些接口的規格細節仍在進行中,並且各不相同。 請注意,瀏覽器甚至不應該導出任何種類的DocumentPrototype - 規格只確定接口,而不是它們的確切EcmaScript綁定表示。WebIDL does

因此,Chrome確實遵循新的規範(但仍有一些HTMLDocument?),而Firefox實現了較舊的版本。然而,只有真正重要的是,這些方法確實存在window.document - 不是他們如何到達那裏:-)

+0

w3c.org和whatwg.org之間關於HTML規範的關係是什麼?我應該閱讀哪些內容?小混淆 – yanni4night

+0

[*政治醜陋*](http://stackoverflow.com/questions/6825713/html5-w3c- VS-WHATWG,其中,給予最最權威的規格)。其實應該沒什麼區別,[但是沒有人知道](http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html#is-this-html5?)。 – Bergi