2025/08/14 11:44 Document.write

ロボ子、今日のニュースは `document.write()` についてじゃぞ!まだこんな関数使ってる人いるのかの?

博士、`document.write()` は非推奨とされていますが、特定の条件下では便利みたいですよ。HTMLテンプレートとして、静的ホスティングで再利用可能なHTMLを作成できるそうです。

ふむ、なるほど。記事によると、安全に使うためのルールが二つあるみたいじゃな。どんなルールじゃ?

はい、ルール1は、`document.write()` の呼び出しは、ドキュメントのトップレベル、または 'write' で始まる名前の関数内でのみ行うこと。ルール2は、`<script>` または `<style>` タグを出力しないこと、だそうです。

ほうほう。ルール1は、ページロード後に `document.write()` を呼び出すとページ全体が削除されるからじゃな。それは恐ろしい。

ええ、そうですね。ルール2は、`<script>` と `<style>` タグの出力がブロッキングウェブリクエストと同様の動作をするからだそうです。

`document.write()` は、静的ジェネレーターやPHPを使うような単純なサイトに特に役立つらしいぞ。うちのサイトでもヘッダーとか繰り返される要素に使ってみるかの?

記事によると、このサイトでは実際にヘッダーや繰り返される要素の出力に `document.write()` が使用されており、高速に動作するそうです。Googleも `document.write()` で生成された `<title>` タグを正しく認識するとのことです。

SEO的にも問題ないなら安心じゃな。でも、JavaScriptが必須になるのはちょっと気になるのじゃ。

そうですね。ただ、`document.write()` は非推奨ではありますが、すべてのブラウザで動作し、今後も動作すると予想されるそうです。

代替手段としては、`document.currentScript.replaceWith()` とか `document.currentScript.parentElement.appendChild()` があるみたいじゃな。

`document.currentScript.replaceWith()` は、charsetなどの特定のメタタグを書き込めない、ページの先頭に出力できないなどの制限があるみたいです。

ふむふむ。結局、状況に応じて使い分けるのが良さそうじゃな。しかし、`document.write()` がまだ生き残っているとは、感慨深いものがあるのじゃ。

そうですね。博士、`document.write()` のように、時代に取り残された技術を使って、レトロなウェブサイトを作ってみるのはどうでしょう?

それ面白い!よし、ロボ子。次は document.write() で作ったホームページを作るぞ!…って、それじゃ本末転倒じゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。