3

要素内のテキストを処理するフレームワーク用のメソッドを作成しようとしていますが、FF と IE で問題が発生しています。

<div id="myDiv" style="border: 1px solid red;">
    Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas suscipit lacus non hendrerit cursus.
</div>

<script>
    console.log(document.getElementById('myDiv').hasOwnProperty("innerHTML"));
</script>

これは、FF と IE では false を返します。Chromeではtrueを返しますが。そして、それはなぜですか?

4

1 に答える 1

3

Chrome 43 の時点で、仕様ごとに、innerHTMLプロパティはElement.prototype要素インスタンスではなく (getter/setter ペアとして) オンになっています。Firefox と IE は仕様を適切に実装しています。Chrome は、JS から C++ への呼び出しがプロトタイプに配置すると遅くなると主張しているため、仕様に違反しています (ただし、実際には、SpiderMonkey は DOM プロパティ ゲッターの呼び出しを V8 よりも高速にしています)。

この変更の詳細については、https ://developers.google.com/web/updates/2015/04/DOM-attributes-now-on-the-prototype?hl=en を参照してください。

于 2013-10-06T04:32:07.047 に答える