Edition for Web Developers — Last Updated 22 October 2025
マークアップを文書に動的に挿入するためのAPIはパーサーと相互作用するため、その動作は、HTML文書(およびHTMLパーサー)かXML文書(およびXMLパーサー)かのどちらで使用されるかによって異なる。
document = document.open()前のオブジェクトを再利用する場合を除き、あたかもそれが新しいDocumentオブジェクトであるかのように、Documentに正しい場所で置換され、その後返される。
結果として得られるDocumentはHTMLパーサーが関連付けられており、 document.write()を使用して解析するデータを与えることができる。
Documentがまだ解析されている場合、メソッドは効果がない。
DocumentがXML文書である場合、"InvalidStateError" DOMExceptionを投げる。
パーサーがカスタム要素コンストラクターを現在実行している場合、"InvalidStateError" DOMExceptionを投げる。
window = document.open(url, name, features)window.open()メソッドのように動作する。
document.close()document.open()メソッドによって開かれた入力ストリームを閉じる。
DocumentがXML文書である場合、"InvalidStateError" DOMExceptionを投げる。
パーサーがカスタム要素コンストラクターを現在実行している場合、"InvalidStateError" DOMExceptionを投げる。
document.write()document.write(...text)一般に、与えられた文字列をDocumentの入力ストリームに加える。
このメソッドは非常に特異な振る舞いを持つ。一部の場合において、このメソッドは、パーサーが実行されている間、HTMLパーサーの状態に影響を与えることができる。その結果、文書のソースに対応しないDOMをもたらす(たとえば、記述された文字列が、文字列"<plaintext>"または"<!--"である場合)。他の例では、あたかもdocument.open()が呼び出されていたかのように、呼び出しが最初に現在のページをクリアできる。さらに多くの例では、メソッドは単に無視されるか、または例外を投げる。User agents are explicitly allowed to avoid executing script elements inserted via this method. さらに悪いことに、このメソッドの正確な動作は、場合によってはネットワーク遅延に依存する可能性があり、これはデバッグが非常に困難な障害につながる可能性がある。これらすべての理由から、このメソッドの使用は強く勧めない。
XML文書で呼び出されるとき、"InvalidStateError" DOMExceptionを投げる。
パーサーがカスタム要素コンストラクターを現在実行している場合、"InvalidStateError" DOMExceptionを投げる。
このメソッドは、scriptまたはイベントハンドラーコンテンツ属性のような潜在的に危険な要素および属性を削除するためのサニタイズを実行しない。
document.writeln()document.writeln(...text)改行文字の後に、与えられた文字列をDocumentの入力ストリームに加える。必要ならば、open()メソッドを暗黙のうちに最初に呼び出す。
このメソッドは非常に特異な振る舞いを持つ。Use of this method is strongly discouraged, for the same reasons as document.write().
XML文書で呼び出されるとき、"InvalidStateError" DOMExceptionを投げる。
パーサーがカスタム要素コンストラクターを現在実行している場合、"InvalidStateError" DOMExceptionを投げる。
このメソッドは、scriptまたはイベントハンドラーコンテンツ属性のような潜在的に危険な要素および属性を削除するためのサニタイズを実行しない。
Support in all current engines.
DOMParserインターフェイスDOMParser インターフェイスは、HTMLまたはXMLのいずれかとして、文字列を解析することで新しいDocumentオブジェクトを作成することを可能にする。
parser = new DOMParser()新しいDOMParserオブジェクトを構築する。
document = parser.parseFromString(string, type)typeに応じて、HTMLまたはXMLパーサーのいずれかを使用して文字列を解析し、結果のDocumentを返す。typeは、"text/html"(HTMLパーサーを呼び出す)、または"text/xml"、"application/xml"、"application/xhtml+xml"、もしくは"image/svg+xml"(XMLパーサーを呼び出す)。
XMLパーサーの場合、文字列を解析できない場合、返されるDocumentは、結果のエラーを説明する要素が含まれる。
script 要素は解析中に評価されず、結果の文書のエンコーディングは常にUTF-8となることに注意する。文書のURLは、parserの関連するグローバルオブジェクトから継承される。
typeに上記以外の値を指定すると、TypeError例外が投げられる。
構築してからparseFromString()メソッドを呼び出す必要があるクラスとしてのDOMParserの設計は、不幸な歴史的成果物である。もし今日にこの機能を設計していたとしたら、それはスタンドアロン機能になっただろう。HTMLを解析する場合、現在の代替手段はDocument.parseHTMLUnsafe()である。
このメソッドは、scriptまたはイベントハンドラーコンテンツ属性のような潜在的に危険な要素および属性を削除するためのサニタイズを実行しない。
element.setHTMLUnsafe(html)HTMLパーサーを使用してhtmlを解析し、elementの子を結果に置き換える。elementは、HTMLパーサーのコンテキストを提供する。
shadowRoot.setHTMLUnsafe(html)HTMLパーサーを使用してhtmlを解析し、shadowRootの子を結果に置き換える。shadowRootのhostは、HTMLパーサーのコンテキストを提供する。
doc = Document.parseHTMLUnsafe(html)HTMLパーサーを使用してhtmlを解析し、結果のDocumentを返す。
script 要素は解析中に評価されず、結果の文書のエンコーディングは常にUTF-8となることに注意する。文書のURLは、about:blankになる。
これらのメソッドは、scriptまたはイベントハンドラーコンテンツ属性のような潜在的に危険な要素および属性を削除するためのサニタイズを実行しない。
html = element.getHTML({ serializableShadowRoots, shadowRoots })elementをHTMLにシリアル化した結果を返す。element内のシャドウルートは、指定されたオプションに従ってシリアル化される。
serializableShadowRootsがtrueの場合、シリアル化可能とマークされたすべてのシャドウルートがシリアル化される。
shadowRoots配列が指定されている場合、シリアル化可能としてマークされているかどうかに関係なく、配列で指定されたすべてのシャドウルートがシリアル化される。
どちらのオプションも指定しない場合、シャドウルートはシリアル化されない。
html = shadowRoot.getHTML({ serializableShadowRoots, shadowRoots })コンテキスト要素としてシャドウホストを使用して、shadowRootをHTMLにシリアル化した結果を返す。shadowRoot内のシャドウルートは、上記のように、指定されたオプションに従ってシリアル化される。
innerHTMLプロパティinnerHTMLプロパティには、DOM Parsing and Serialization issue trackerに未解決の問題が多数あり、その仕様に関するさまざまな問題が文書化されている。
element.innerHTML要素の内容を表すHTMLまたはXMLのフラグメントを返す。
XML文書の場合、要素をXMLにシリアル化できない場合、"InvalidStateError" DOMExceptionを投げる。
element.innerHTML = value要素の内容を、指定された文字列から解析されたノードに置き換える。
XML文書の場合、指定した文字列が整形式でない場合、"SyntaxError" DOMExceptionを投げる。
shadowRoot.innerHTMLシャドウルートの内容を表すHTMLのフラグメントを返す。
shadowRoot.innerHTML = valueシャドウルートの内容を、指定した文字列から解析されたノードに置き換える。
これらのプロパティのセッターは、scriptまたはイベントハンドラーコンテンツ属性などの潜在的に危険な要素および属性を削除するためのサニタイズを実行しない。
outerHTMLプロパティouterHTMLプロパティには、DOM Parsing and Serialization issue trackerに未解決の問題が多数あり、その仕様に関するさまざまな問題が文書化されている。
element.outerHTML要素とその内容を表すHTMLまたはXMLのフラグメントを返す。
XML文書の場合、要素をXMLにシリアル化できない場合、"InvalidStateError" DOMExceptionを投げる。
element.outerHTML = value要素を、指定された文字列から解析されたノードに置き換える。
XML文書の場合、指定した文字列が整形式でない場合、"SyntaxError" DOMExceptionを投げる。
要素の親がDocumentである場合、"NoModificationAllowedError" DOMExceptionを返す。
このプロパティのセッターは、scriptまたはイベントハンドラーコンテンツ属性などの潜在的に危険な要素および属性を削除するためのサニタイズを実行しない。
insertAdjacentHTML()メソッドinsertAdjacentHTML()メソッドには、DOM Parsing and Serialization issue trackerに未解決の問題が多数あり、その仕様に関するさまざまな問題が文書化されている。
element.insertAdjacentHTML(position, string)stringをHTMLまたはXMLとして解析し、結果のノードを次のようにposition引数で指定された位置にツリーに挿入する:
beforebegin"afterbegin"beforeend"afterend"引数に無効な値が含まれている場合に"SyntaxError" DOMExceptionを投げる(たとえば、XML文書の場合、指定された文字列が整形式でない場合)。
指定した位置が使用できない場合に"NoModificationAllowedError" DOMExceptionを投げる(たとえば、Documentのルート要素の後に要素を挿入する場合など)。
このメソッドは、scriptまたはイベントハンドラーコンテンツ属性のような潜在的に危険な要素および属性を削除するためのサニタイズを実行しない。
createContextualFragment()メソッドcreateContextualFragment()メソッドには、DOM Parsing and Serialization issue trackerに未解決の問題が多数あり、その仕様に関するさまざまな問題が文書化されている。
docFragment = range.createContextualFragment(string)fragmentが解析されるコンテキストとしてrangeの開始ノードを使用して、マークアップ文字列stringから作成された DocumentFragmentを返す。
このメソッドは、scriptまたはイベントハンドラーコンテンツ属性のような潜在的に危険な要素および属性を削除するためのサニタイズを実行しない。
XMLSerializerインターフェイス>XMLSerializeインターフェイスには、DOM Parsing and Serialization issue trackerに未解決の問題が多数あり、その仕様に関するさまざまな問題が文書化されている。DOM Parsing and Serializationの残りの部分は、この仕様に徐々にアップストリームされまる。
xmlSerializer = new XMLSerializer()新しいXMLSerializerオブジェクトを構築する。
string = xmlSerializer.serializeToString(root)rootをXMLにシリアル化した結果を返す。
rootをXMLにシリアル化できない場合、"InvalidStateError" DOMExceptionを投げる。
構築してからserializeToString()メソッドを呼び出す必要があるクラスとしてのXMLSerializerの設計は、不幸な歴史的成果物である。もし今日にこの機能を設計していたとしたら、それはスタンドアロン機能になっただろう。