Document.write()

Document.write() メソッドは、テキストの文字列を document.open() で開かれた文書ストリームに書き込みます。

メモ: document.write は文書ストリームに書き込みを行うため、閉じられた (読み込み済みの) 文書で document.write を呼び出すと、自動的に document.open が呼び出され、文書はクリアされます

構文

document.write(markup);

引数

markup
文書に書き込まれるテキストを含む文字列です。

<html>

<head>
  <title>書き込み例</title>

  <script>
    function newContent() {
      document.open();
      document.write("<h1>新しい内容では、古い内容は削除されます!</h1>");
      document.close();
    }
  </script>
</head>

<body onload="newContent();">
  <p>元の文書コンテンツ。</p>
</body>

</html>

メモ

document.open() を呼び出さずに読み込まれた文書へ書き込みを行うと、自動的に document.open の呼び出しが実行されます。一度出力し終わったとき、ブラウザーにページの読み込みの終了を伝えるために、 document.close() を呼び出すことが推奨されます。出力したテキストは文書構造モデルにおいて構文解析されます。上記の例では、 h1 要素は文書中の一つのノードになります。

document.write() の呼び出しがインラインの HTML の <script> タグ内で行われた場合、 document.open() は呼び出されません。次に例を示します。

<script> 
  document.write("<h1>Main title</h1>") 
</script>
メモ: document.write および document.writeln は、 XHTML 文書では動作しません (エラーコンソールに "Operation is not supported" [NS_ERROR_DOM_NOT_SUPPORTED_ERR] エラーが表示されます)。これは、 .xhtml の拡張子を持つローカルファイルを開いたり、何らかの文書が application/xhtml+xmlMIME タイプで提供されたときに発生します。詳細は W3C XHTML FAQ で確認することができます。
メモ: document.writedeferred または asynchronous のスクリプト内では無視され、エラーコンソールに "A call to document.write() from an asynchronously-loaded external script was ignored" などのメッセージが表示されます。
メモ: Edge のみ、document.write<iframe> 内で複数回呼び出すと、 SCRIPT70: Permission denied エラーが発生します。
メモ: 2G 接続のユーザーのため、Chrome 55 からは、キャッシュされていない HTTP の場合、document.write() を通じて挿入された <script> 要素は実行されなくなります。これが成立するのに必要な条件の一覧については、こちらをご覧ください。

仕様書

仕様書 状態 備考
HTML Living Standard
document.write(...) の定義
現行の標準  
Document Object Model (DOM) Level 2 HTML Specification
document.write(...) の定義
廃止された  

ブラウザーの対応

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
writeChrome 完全対応 45
補足
完全対応 45
補足
補足 Before Chrome 64, this method was accessed through the HTMLDocument alias.
Edge 完全対応 12Firefox 完全対応 ありIE ? Opera 完全対応 ありSafari 完全対応 ありWebView Android 完全対応 45
補足
完全対応 45
補足
補足 Before Chrome 64, this method was accessed through the HTMLDocument alias.
Chrome Android 完全対応 45
補足
完全対応 45
補足
補足 Before Chrome 64, this method was accessed through the HTMLDocument alias.
Firefox Android 完全対応 ありOpera Android 完全対応 ありSafari iOS 完全対応 ありSamsung Internet Android ?

凡例

完全対応  
完全対応
実装状況不明  
実装状況不明
実装ノートを参照してください。
実装ノートを参照してください。

関連情報