web-dev-qa-db-ja.com

JavaScript DOM APIはどこに文書化されていますか?

私はC/C++プログラマーであり、現在いくつかのJavascriptコードで遊んでいますが、ブラウザーで使用できる標準のJavascriptライブラリーのドキュメントがどこにあるかを見つけるのに問題があります。

具体的には、new Image()で作成されたonloadHTMLImageElementコールバック関数を設定しています。 srcプロパティについても読みたいと思います。これは非標準の動作であるためです。このプロパティが割り当てられると、イメージが再ロードされます。

Mozillaには、ここにさまざまな属性のスケルトンドキュメントがいくつかあります。 https://developer.mozilla.org/en/DOM/Image ここにはドキュメントはなく、プロパティのリストのみがあります。 onloadプロパティは言及されていません。 srcプロパティがリストされていますが、ドキュメントはありません。

MSDNには、より優れたドキュメントがあります: http://msdn.Microsoft.com/en-us/library/cc197055(VS.85).aspx

私の質問は「標準のドキュメントはどこにありますか?」です。 Image()はグローバル変数ですか、それともwindowのプロパティですか? windowdocumentのAPIを作成するのは誰ですか?標準はありますか、それとも各ブラウザはお互いをコピーするだけですか?

33
Marc O'Morain

DOMは実際にはJavaScriptとは別のものです。 DOMには、IEのVBScriptなどの他の言語からアクセスできます。また、Java、Python、PHPなどの汎用プログラミング言語には、独自の非ブラウザーベースのDOMライブラリがあります。

HTMLドキュメントと一般的なXMLドキュメントの両方で機能する基本的なDOM操作は、 DOM Core ;にあります。 HTMLドキュメントは、 DOM HTML で定義された追加のメソッドを取得します。これらは、W3で定義されている最新の「レベル」のサポートです。すべてのブラウザがDOMレベル3コアのすべてをサポートしているわけではありません。しかし DOMレベル1コア はかなり堅実です。

紛らわしいことに、DOM HTMLはさらに発展しましたが、独自のDOM仕様ではありません。代わりに、HTML5の一部です。これにより、innerHTMLなど、ブラウザですでに広くサポートされている多くの拡張機能が標準化され、まだ広く実装されていないものが多数追加されます(ドキュメントが標準化される前に変更される可能性があります)。

DOMは、ドキュメントオブジェクトモデルにすぎません。documentオブジェクト内に何を取得するかを指定します。 windowの内容など、他のブラウザ機能は指定していません。ブラウザオブジェクトモデル(BOM)は、以前は標準化されていませんでした。 HTML5は、それを適切に文書化するための最初の努力をしています。

HTML5は、以前は標準化されていなかったブラウザーオブジェクトモデル(BOM)の部分も指定します。 windowコンテンツに直接接続されていないdocumentのようなもの。

これらすべての結果として、Webスクリプトで使用できるメソッドとプロパティについてすべてを説明するドキュメントは1つもありません。いつかDOMCoreとHTML5がすべてをカバーするようになりますが、今日のHTML5には信頼できないものがたくさん含まれており、標準ドキュメントの標準でも、ガイドの中で最も読みやすいものではありません。そうです、MDCとMSDNで人気のあるサポートを引き続きチェックする必要があるのではないかと思います。

'Image'はグローバル変数ですか、それとも 'window'のプロパティはグローバルオブジェクトですか?

Imageは、HTML5によってwindowオブジェクトのメンバーとして指定されています。これは、グローバルコンテキストであるため、単にImage...として参照できます。 quiteグローバル変数と同じですが、ほとんどの場合十分に近いです。

これは、HTMLImageElementインターフェイスを実装するDOMオブジェクトを返すコンストラクター関数です(DOMレベル1 HTMLから、HTML5で拡張)。これは元々、画像をプリロードするメカニズムとしてNetscape3.0で導入されました。さらに、作成済みのイメージに_document.images_からアクセスして、srcを変更することもできます。今日、new Image()document.createElement('img')と何も変わりません。

'src'プロパティについても読みたいと思います。これは非標準の動作であるためです。このプロパティが割り当てられると、イメージが再ロードされます。

画像は必ずしも再読み込みされるわけではありませんが、一部のブラウザではloadイベントが発生する可能性があります。残念ながら、これは標準化されていません(私が見る限り、HTML5でも)。 IE、Firefox、およびOpera loadセットごとにsrcを起動します(srcが変更されていない場合でも)が、WebKit(Chrome/Safari )最初の画像の読み込み時にのみ起動します。

この種のことは、さまざまなブラウザの動作の大きなテーブルを持つサイトが存在する理由であり、さまざまなブラウザで積極的にテストする必要がある理由です。

40
bobince

新しいお気に入り: http://devdocs.io/dom/ (Devdocs.ioは一般に、多くの参考資料にとってかなり素晴らしいです)

(古い)私はこのDOMリファレンスが本当に好きです: http://krook.org/jsdom/

11
papercowboy

初心者の場合、これは、作業内容を理解し、次の概念を分離するのに役立ちます。

  • Javascript(DOMへのアクセスに使用される言語、他のスクリプト言語を使用できます)、

  • hTMLまたはXMLドキュメント(Webページの基礎を形成するマークアップ)

  • およびDOM(ドキュメントの構造と内容を操作できるようにするAPIとして機能するドキュメントのモデル)。

http://css-tricks.com/dom/

また、これらの有益なドキュメントへのリンクもあります。

W3C: ドキュメントオブジェクトモデルとは何ですか?
MDN: はじめに-ドキュメントオブジェクトモデル
ウィキペディア: ドキュメントオブジェクトモデル

DOMが歴史的な文脈でどのように開発されたかを知ることは、その構造とその操作方法を理解するのにも役立ちます。これについても、上記のリンクで説明しています。

4
user1063287

標準はW3Cによって書かれていると思います。

http://www.w3.org/TR/REC-DOM-Level-1/

DOMレベル2および3の標準もあります;)

3
Golmote Kinoko

私は時々 javascriptkit を使用しますが、非常に便利です。

2
kta