HTMLElement メンバーが継承チェーンのすべてに継承されなくなりました

公開日: | カテゴリー: DOM

概要

従来、リーフクラスのインターフェイスプロトタイプオブジェクト上で継承チェーン (例: HTMLDivElementHTMLElementElementNodeEventTarget) 全体のすべてのメンバーを取得することが可能でしたが (例: HTMLDivElement.prototype === document.createElement("div").__proto)、今後 HTMLElement のメンバーは HTMLElement.prototype (=== HTMLDivElement.prototype.__proto__) だけにとどまります。

少なくともひとつの人気ライブラリ (Optimizely) がこの誤った挙動に依存していることが分かりました。ライブラリ側で既に修正が行われていますので、ウェブサイトでこのライブラリを使っている場合は必ず最新版に更新してください。

DOMString 引数を取るメソッドに null を渡すと、空文字列の代わりに "null" という文字列に変換されるようになりました。例えば、element.setAttribute("foo", null) とした場合、<div foo=""> ではなく <div foo="null"> という出力になります。

DOMParserparseFromStreamparseFromBuffer メソッド、XMLSerializerserializeToStream メソッドは廃止予定となり、コンテンツ上では使用できなくなりました。クローム=拡張機能のコードでは引き続き使用可能です。

参考資料