- From: Kang-Hao (Kenny) Lu <kennyluck@w3.org>
- Date: Tue, 26 Jun 2012 08:41:03 +0800
- To: John Hax <johnhax@gmail.com>
- CC: W3C HTML5 中文興趣小組 <public-html-ig-zh@w3.org>, DX Jin <dox.jin@gmail.com>, 牛晓光 <niuxg0@hotmail.com>, 劭非程 <csf178@gmail.com>
(12/06/21 19:53), John Hax wrote: > 有这个是太好了。 但是目前 Chrome 團隊的實驗似乎顯示有一些兼容問題[1],未來還不怎麼明確。 > 不过问题是DOM4里为啥只有NodeList是ArrayClass?为啥 HTMLCollection就不 > 是(大量API返回这个,比如 getElementsByTagName/ClassName、 > Element.children等)? 喔,聽你這樣說我才想起來我忘了多附一些連結了。這裡有兩個提案: 1. 讓 HTMLCollection 繼承 NodeList 2. 讓 HTMLCollection 繼承 Array 提案討論[2]、W3C Bug(把自己加進 Cc 裡吧)[3]。主要的問題都是 interface HTMLCollection { getter object? namedItem(DOMString name); // 仅返回Element。 }; 這裡 getter 的意思基本上就是 htmlcollection[x] 等價於 htmlcollection.namedItem(x)(getter 的 WebIDL 誠徵翻譯),而根據規範[4] 敘述的 'namedItem': # namedItem(key)方法必须返回集合中的第一个符合下列类别的元素: # # # 1. 其为HTML命名空间下的a、applet、area、embed、form、frame、 # frameset、iframe、img和object元素,且其name属性等于key。或者 # 其为一个元素,且其ID等于key。 # 2. 如果没有找到这样的元素,则该方法必须返回空。 (再次感謝牛尾巴的翻譯!) 也就是在一個有 <a name="forEach">HTMLCollection</a> 的 HTMLCollection 裡,'htmlcollection.forEach' 究竟是那個 HTML 元素還是 Array 的方法還有這 個衝突或是兼容問題,還需要一個完整的提案(Window 就有用 [OverrideBuiltins]) > 还有DOMStringList、 # DOMStringList will be removed from this specification in the near # future. If you are using it now, please use DOMString[] or # sequence<DOMString> instead. Thanks! > DOMTokenList等等…… 這個看起來沒有 getter 的問題,有沒有興趣去回報錯誤一下?(規範上面的 file a bug 連結。) [1] https://mail.mozilla.org/pipermail/es-discuss/2012-June/023581.html [2] http://lists.w3.org/Archives/Public/public-webapps/2012JanMar/1155 [3] https://www.w3.org/Bugs/Public/show_bug.cgi?id=14834 [4] http://www.w3.org/html/ig/zh/wiki/DOM4#dom-htmlcollection-nameditem 以上 Kenny
Received on Tuesday, 26 June 2012 00:41:32 UTC