DOM0

DOM0 (Web)

[7] DOM0 (DOM 水準 (レベル) (level) 0) は、 主に Webブラウザーによって実装されている、Web 利用者エージェントプラットフォーム API の総称です。

[8] 長らく DOM0 は標準不在の状況が続いていましたが、最近では Web Applications 1.0 (HTML5) によって規定されています。 (もっとも、 WA1 では「DOM0」という語は使っていません。)

目次

  1. DOM0 API
  2. 歴史
    1. 「DOM0」の登場
    2. Web Applications 1.0
  3. 関連
  4. メモ

DOM0 API#

[28]DOM0」の範囲は曖昧ですが、次の機能 (の一部) を指して DOM0 と言うことがあります。

機能現行仕様旧仕様
[13] WindowHTML Standard
[14] NavigatorHTML Standard
[15] HistoryHTML Standard
[16] LocationHTML Standard
URLUtilsHTML StandardURL Standard
[17] BarPropHTML Standard
[20] ScreenCSSOM View
[19] Option, ImageHTML Standard
[21] HTMLDocumentHTML StandardDOM1 HTML, DOM2 HTML
HTMLCollectionDOM StandardDOM1 HTML, DOM2 HTML, HTML Standard
[18] navigator.mimeTypes, navigator.pluginsHTML Standard
[30] String extrasES (ES2015 以後)JavaScript Standard
[22] イベントハンドラー (event handler attributes) HTML StandardHTML4
[23] EventHTML Standard, DOM Standard, UI EventsDOM2イベント, DOM3イベント

[29] Netscape 2/3 や IE3 が実装していた原初の DOM (当時でいう JavaScript のうち、クライアント側でのみ実装されていた API) という意味では以上でしょうが、 W3C DOM 以前という意味で次のものも DOM0 に含められることがあります。

機能現行仕様旧仕様
[24] IE4 DOMHTML Standard / DOM Standard
document.layers廃止
[25] IEのイベントモデル廃止
[26] Netscape4のイベントモデル廃止
[27] IEのCSSOM廃止
cryptoWeb Crypto (ただし旧機能は廃止)
escape, unescapeECMAScript
atob, btoaHTML Standard
window.externalHTML Standard (しかしその後廃止)
[33] ちなみに IE4 / Netscape4 当時の JavaScript+DOM の機能は、 ECMAScript 本体仕様にあるものとここに示したものの他、 LiveConnectJSSSwatchcode signing (<script archive>)、 ActiveXObject くらいでしょうか。

歴史#

「DOM0」の登場#

[9] DOM1 ではそれまで Webブラウザーで実装されていた JavaScript API のすべてが標準化されたわけではありませんでした (むしろ旧来の JS API と共通する部分の方が少なかったです)。 そのため、DOM1 以前の DOM ということでそれらは「DOM水準0」と呼ばれるようになりました。

[1]

DOM 水準 (level) 0 とは、 NN 3.0 及び IE 3.0 で提供されていた機能の混合である。

[10] DOM0 の範囲はそもそも明確ではありません。 >>1DOM1 の説明に従うなら NN3 と IE3 が実装していた機能ですが、その和集合なのか積集合なのか、 DOM0 とそれ以外の JavaScript API の境界はどこなのか、 と細かいことを言えばきりがありません。現在では DOM1 以降に含まれる機能は「DOM0」 に含まないニュアンスで語られることが多いように感じますが、 >>1 では「DOM0 との互換性」が語られており、元々は DOM1 の機能を除外する意図はなかったようです。 また、時代が下ると NN4IE4 以降で追加された非標準の機能を「DOM0」 に含めることも出てきました。

Web Applications 1.0#

[11] W3CDOM1 以後も「DOM0」の標準化に興味を示しませんでした。 しかし Webブラウザー後方互換性のために引き続き DOM0 API を実装し続ける必要がありました。そうはいっても DOM0 はほとんど undocumented に近く、他の Webブラウザーの動作をリバースエンジニアリングするしかない状況でした。 ですから、大まかな動作こそ共通してはいても、すべてが実装されていなかったり、 細かな挙動が異なっていたりしていました。

[12] 2004年に設立された WHATWG は、Webアプリケーションのための新規 API を整備すると共に、既存の Webブラウザーの undocumented な API を標準化し、Web相互運用性を向上させることを目指していきました。 DOM0 の機能は当初は Web Controls 1.0 で、後に Web Applications 1.0 で文書化されていき、現在ではほとんどの API が明確に規定されるに至っています。

関連#

[32] Xendom0 とは無関係です。

メモ#

[5] The Object Models <http://book.itzero.com/read/others/McGraw.Hill.Osborne.JavaScript.2.0.The.Complete.Reference.Second.Edition.eBook-LiB_html/8166final/LiB0066.html> (名無しさん)

[6] mrclay.org &#187; Archive &#187; Kill these DOM0 shortcuts ( 版) <http://mrclay.org/index.php/2007/06/25/kill-these-dom0-shortcuts/> (名無しさん 2007-06-26 13:25:59 +00:00)

[31] Bring outdated parts of the FAQ up to date (sideshowbarker著, ) <https://github.com/whatwg/html/commit/5d512fe6f54a332d13ff2d0fee59f12a8d1701b3>

[34] Re: compatibility with the DOM Level 0 (Michael Champion著, ) <https://lists.w3.org/Archives/Public/www-dom/1999OctDec/0188.html>