*Document 節・Document 界面 (DOM) [2] [CODE(DOM)[Document]] 界面は、 [[HTML]] 又は [[XML]] の文書自体を表します。 [CODE(DOM)[Document]] は、 文書中の全ての[[節]]の大元の[[根]]です。新しい節を作るには、 [CODE(DOMi)[Document]] の method を使うことが出来ます。 [1] [RUBYB[文書節] [Document node]]の子になれる[[節]]は: :[[Element]] :最大1個 [DOM1] :[[ProcessingInstruction]]:[DOM1] :[[Comment]] :[DOM1] :[[DocumentType]] :[DOM1] [3] [[DOM0]] の [[JavaScript]] 束縛 (HTML の [[script]] 要素の中などで使う場合。) では、物体 [CODE(JS)[window.document]] が当該窓で表示中の文書を表します。 この [CODE(JS)[document]] 物体は DOM の [CODE(DOMi)[Document]] 界面の実現値です。 DOM の[[節]]の [CODE(DOMattr)[[[ownerDocument]]]] は、その節が所属する文書 ([CODE(DOM)[Document]]) を返します。 - [5] [CODE(DOM)[Document]] 物体を作る方法は、 DOM 1 の範囲ではありません。 DOM 2 [WEAK[(で、 HTML のみの実装でない)]] なら、 [CODE[[VAR(DOMi)[[[DOMImplementation]]]].[CODE(DOMmethod)[[[createDocument]]]]]] で作成できます。 - [6] >>5 その他にも、実装によってそれぞれ [CODE(DOM)[Document]] 物体を作ったり取得したりする方法があるかもしれません。例えば、 [[DOM0]] では、 [CODE(JS)[[CODE(DOM)[window]].[CODE(DOMattr)[document]]]] などが使えます。 - [7] [[WWWブラウザ]]のような実装では、 [CODE(DOM)[Document]] 物体で [CODE(DOMi)[Document]] 界面のみならず [CODE(DOMi)[[[DocumentView]]]] 界面も実装されていることが期待されます。 [[#comment]] **構成員 [4] [CODE(DOMi)@en[[[Node]]]], [CODE(DOMi)@en[[[EventTarget]]]], [CODE(DOMi)@en[[[DocumentView]]]], [CODE(DOMi)@en[[[DocumentWindow]]]], [CODE(DOMi)@en[[[DocumentCSS]]]], [CODE(DOMi)@en[[[DocumentTraversal]]]], [CODE(DOMi)@en[[[HTMLDocument]]]], [CODE(DOMi)@en[[[SVGDocument]]]], [CODE(DOMi)@en[[[MathMLDocument]]]] ,[CODE(DOMa)@en[[[activeElement]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[addBinding]]]] ,[CODE(DOMa)@en[[[all]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[attachEvent]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[baseUrl]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[captureEvents]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMa)@en[[[charset]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[classes]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMm)@en[[[clear]]]],"[CODE(DOMi)@en[[[Document]]]] ([[WinIE 3]])" ,[CODE(DOMa)@en[[[compatMode]]]] ,[CODE(DOMm)@en[[[contextual]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMa)@en[[[cookie]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMm)@en[[[createDocumentFromUrl]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[createElement]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]]), [CODE(DOMi)@en[[[Document]]]] ([[DOM水準1中核]])" ,[CODE(DOMm)@en[[[CreateEventObject]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[createExpression]]]] ,[CODE(DOMm)@en[[[createRenderStyle]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[createStyleSheet]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[defaultCharset]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[detachEvent]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[dir]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,読取専用属性,[[doctype]] ,文書型 ,[DOM1] ,[CODE(DOMa)@en[[[domain]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.1]])" ,[CODE(DOMm)@en[[[elementFromPoint]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[enableDownload]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[execCommand]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[execCommandShowHelp]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[expando]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[fileCreatedTime]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[fileModifiedTime]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[fileUpdatedTime]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[FireEvent]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[all]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[fileSize]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[focus]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[getAnonymousNodes]]]] ,[CODE(DOMm)@en[[[getAnonymousElementByAttribute]]]] ,[CODE(DOMm)@en[[[getBindingParent]]]] ,[CODE(DOMm)@en[[[getBoxObjectFor]]]] ,[CODE(DOMa)@en[[[getSelection]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMm)@en[[[handleEvent]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMa)@en[[[height]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMa)@en[[[ids]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,読取専用属性,[[implementation]],DOM 実装 ,[DOM1] ,読取専用属性,[[documentElement]],文書要素,[DOM1] ,method ,[[createElementNS]],要素作成 ,[DOM2] ,method ,[[createDocumentFragment]],文書断片作成,[DOM1] ,method ,[[createTextNode]],文節作成 ,[DOM1] ,method ,[[createComment]] ,注釈作成 ,[DOM1] ,method ,[[createCDATASection]],文字データ区間作成,[DOM1] ,method ,[[createProcessingInstruction]],処理指令作成,[DOM1] ,method ,[[createAttribute]],属性作成,[DOM1] ,method ,[[createAttributeNS]],属性作成,[DOM2] ,method ,[[createEntityReference]],実体参照作成,[DOM1] ,[CODE(DOMm)@en[[[focus]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,method ,[[getElementById]],識別子による子要素取得,[DOM2] ,method ,[[getElementsByTagName]],要素型名による子要素取得,[DOM1] ,method ,[[getElementsByTagNameNS]],要素型名による子要素取得,[DOM2] ,[CODE(DOMm)@en[[[hasFocus]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[inheritStyleSheets]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[lastModified]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMm)@en[[[loadBindingDocument]]]] ,[CODE(DOMa)@en[[[location]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript]] [[非推奨]], [[WinIE 3]])" ,[CODE(DOMa)@en[[[media]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[mimeType]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[nameProp]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[namespaces]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onactivate]]]],"[CODE(DOMi)@en[[[HTMLDocument5]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onafterupdate]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onbeforeactivate]]]],"[CODE(DOMi)@en[[[HTMLDocument5]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onbeforedeactivate]]]],"[CODE(DOMi)@en[[[HTMLDocument5]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onbeforeeditfocus]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onbeforeupdate]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[oncellchange]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onclick]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMa)@en[[[oncontextmenu]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[oncontrolselect]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[ondataavailable]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[ondatasetchanged]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[ondatasetcomplete]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[ondblclick]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMa)@en[[[ondeactivate]]]],"[CODE(DOMi)@en[[[HTMLDocument5]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[ondragstart]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onerrorupdate]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onfocusin]]]],"[CODE(DOMi)@en[[[HTMLDocument5]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onfocusout]]]],"[CODE(DOMi)@en[[[HTMLDocument5]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onhelp]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onkeydown]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMa)@en[[[onkeypress]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMa)@en[[[onkeyup]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMa)@en[[[onmousedown]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMa)@en[[[onmouseup]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMa)@en[[[onmousewheel]]]],"[CODE(DOMi)@en[[[HTMLDocument5]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onpropertychange]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onreadystatechange]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[removeBinding]]]] ,[CODE(DOMa)@en[[[onrowexit]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onrowenter]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onrowsdelete]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onrowsinserted]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onselectionchange]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onselectstart]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[onstop]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[parentDocument]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[parentWindow]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[plugins]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.1]])" ,[CODE(DOMm)@en[[[postMessage]]]] ,[CODE(DOMa)@en[[[protocol]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[queryCommandEnabled]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[queryCommandIndeterm]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[queryCommandState]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[queryCommandSupported]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[queryCommandText]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[queryCommandValue]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[recalc]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[readyState]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[referrer]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMm)@en[[[releaseCapture]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[releaseEvents]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMm)@en[[[routeEvent]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMa)@en[[[security]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[selection]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMm)@en[[[setBoxObjectFor]]]] ,[CODE(DOMa)@en[[[styleSheets]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[tags]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" ,[CODE(DOMa)@en[[[text]]]] ,[CODE(DOMa)@en[[[uniqueID]]]],"[CODE(DOMi)@en[[[HTMLDocument3]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[URL]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.0]])" ,[CODE(DOMa)@en[[[url]]]],"[CODE(DOMi)@en[[[HTMLDocument2]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[URLUnencoded]]]],"[CODE(DOMi)@en[[[HTMLDocument4]]]] ([[Trident]])" ,[CODE(DOMa)@en[[[width]]]],"[CODE(DOMa)@en[[[document]]]] ([[JavaScript 1.2]])" Related: [CODE(DOMi)@en[[[HTMLDocument]]]], [CODE(DOMi)@en[[[SVGDocument]]]], [CODE(DOMi)@en[[[DocumentTraversal]]]] -[8] [CODE(DOMm)[getElementById]] は DOM 1 では [CODE(DOMi)[[[HTMLDocument]]]] 界面にありましたが、 DOM 2 で移動してきました。 [[#comment]] ** [CODE(DOMi)[Document]] 物体が実装し得る界面 [9] [CODE(DOMi)[Document]] 物体が実装しているかもしれない[[界面]]には、 次のようなものがあります。 :[CODE(DOMi)[Document]]:DOM水準1〜3 :[CODE(DOMi)[[[DocumentView]]]]:DOM水準2 :[CODE(DOMi)[[[DocumentEvent]]]]:DOM水準2〜3 :[CODE(DOMi)[[[DocumentStyle]]]]:DOM水準2 :[CODE(DOMi)[[[DocumentCSS]]]]:DOM水準2 など [[#comment]] **参考文献 -[DOM1] ''Document Object Model (Core) Level 1'' -[DOM2] ''Document Object Model Core'' [[#comment]] *メモ