JavaScript/DOM/Document
Document(ドキュメント)
JavaScriptにおける「Document(ドキュメント)」オブジェクトは、ウェブページの内容を操作するために使用される中心的なオブジェクトです。これは、DOM(Document Object Model)の一部であり、HTMLやXML文書の構造にアクセスして操作するためのインターフェースを提供します。
Document
オブジェクトの役割
Document
オブジェクトは、ウェブページの内容をプログラムから操作するための基本的なインターフェースです。JavaScriptからHTML要素を動的に操作したり、新しい要素を追加したり、既存の要素を変更したりすることができます。
主な機能
1. ドキュメントのアクセス
Document
オブジェクトは、document
というグローバル変数として自動的に提供され、現在表示されているウェブページの内容を指し示します。
- 例
console.log(document); // 現在のドキュメント情報を表示
2. 要素の取得
Document
オブジェクトには、ページ内のHTML要素を取得するためのメソッドがいくつか用意されています。例えば、getElementById()
やgetElementsByClassName()
、querySelector()
などがあります。
- 例
let element = document.getElementById("myElement");
3. 新しい要素の作成
Document
オブジェクトを使って、新しいHTML要素を作成し、ページに追加することができます。createElement()
を使って新しい要素を生成し、appendChild()
を使ってその要素を追加できます。
- 例
let newDiv = document.createElement("div"); newDiv.textContent = "新しい要素"; document.body.appendChild(newDiv);
4. イベントの処理
Document
オブジェクトは、ページのさまざまなイベント(例えば、クリックやキーボード入力)を管理するためのイベントリスナーを設定することもできます。
- 例
document.addEventListener("click", function() { alert("ページがクリックされました"); });
静的プロパティ
静的プロパティ
Document.arguments
非推奨の静的プロパティです。現在のJavaScriptでは使用すべきではありません。
Document.caller
非推奨の静的プロパティです。現在のJavaScriptでは使用すべきではありません。
Document.length
Document
コンストラクタの引数の数を表します。常に0を返します。
Document.name
Document
コンストラクタの名前を表す文字列プロパティです。"Document"という値を持ちます。
Document.prototype
Document
オブジェクトのプロトタイプを参照します。全てのDocument
インスタンスはこのプロトタイプを継承します。
静的メソッド
Document.parseHTMLUnsafe
HTML文字列をパースしてDOMノードを生成する非標準のメソッドです。セキュリティ上の理由から、一般的な使用は推奨されません。代わりにDOMParser
の使用を推奨します。
- 例
// 非推奨の使用例 const node = Document.parseHTMLUnsafe("<div>test</div>"); // 推奨される代替方法 const parser = new DOMParser(); const doc = parser.parseFromString("<div>test</div>", "text/html");
インスタンスプロパティ
Document.prototype.location
現在のドキュメントのURL情報を含むLocation
オブジェクトを返します。このプロパティを通じて、ページのURLの取得や変更が可能です。
- 例
// 現在のURLを取得 console.log(document.location.href); // 新しいページへ移動 document.location.href = "https://example.com";
インスタンスメソッド
Document.prototype.write
指定された文字列をドキュメントに書き込みます。ドキュメントの読み込み中に使用された場合は、その位置に文字列が挿入されます。ドキュメントの読み込み完了後に使用すると、既存のドキュメントの内容が消去されます。
- 例
document.write("<p>新しいコンテンツ</p>");
Document.prototype.writeln
write()
メソッドと同様に動作しますが、書き込む文字列の末尾に改行文字(\n)を追加します。
- 例
document.writeln("<p>1行目</p>"); document.writeln("<p>2行目</p>");
これらのメソッドは、特にモダンなWeb開発では推奨されません。代わりにinnerHTML
やinsertAdjacentHTML()
などの安全なDOM操作メソッドを使用することが推奨されます。
Document
オブジェクトと他のDOMオブジェクト
Document
オブジェクトは、DOMツリーのルートノードに相当します。ウェブページ内の全ての要素は、このDocument
からアクセスすることができます。各HTML要素はElement
オブジェクトとして表され、Document
オブジェクトと連携して動的な操作が可能となります。
まとめ
Document
オブジェクトは、ウェブページの内容を操作するための基本的なインターフェースであり、DOMを通じて、JavaScriptがウェブページ内の要素を取得、変更、作成、削除、イベントを処理することを可能にします。これにより、インタラクティブで動的なウェブページの構築が実現できます。