1

私は今Polymerをチェックしています。いくつかの驚くべき機能があります。を使用して、いくつかの分散ノードにアクセスするカスタム要素がありgetDistributedNodesます。chrome と firefoxgetDistributedNodesでは ではなく配列を返しますNodeListが、chrome canary では . を取得しNodeListます。

Polymer を使用しない場合 (shadowDom のみを使用し、カスタム要素を使用しないはるかに単純な例)、Chrome 安定版と Chrome Canary の両方で NodeList を取得します。

これらのうちどれが正しい戻り値であるはずですか?また、その原因は何ですか?

ここにPolymerのjsfiddleがあります

また、Polymer を使用しない場合、カスタム要素はなく、ネイティブの shadowDom サポートでのみ機能するため、Firefox は使用できません)

4

1 に答える 1

2

これは、Chrome (安定版) およびその他のブラウザーでは、Polymer が DOM オブジェクトをラップする Shadow DOM ポリフィルを使用するためです。をネイティブに作成することはできないNodeListため、呼び出しは、配列を返すことによって、可能な限りネイティブ API を模倣します。

Canary では (about:flags で "Experimental Web Platform features" をオンにして)、Polymer はネイティブの Shadow DOM を使用します。その理由は、Canary にはまだ導入されていない多くの新しい Shadow DOM 機能/修正/パフォーマンスの最適化があるためです。まだ安定したチャネルではありません.安定するまで積極的にポリフィルを強制しています:)

于 2013-10-06T18:01:51.867 に答える