HTML/CSS/JS ライブエディタ
ブラウザだけで動く小さな遊び場 — HTML・CSS・JSを書くと、サンドボックス化されたプレビューにその場で反映されます。アカウントやビルド不要。
1,208回閲覧
仕組み
HTML・CSS・JSタブに入力すると、入力するそばからプレビュー領域が更新され、結合された結果がサンドボックス化されたiframe内にレンダリングされます。sandbox属性はallow-same-originを付けずにallow-scriptsだけを設定しています — これが実際の安全性を生み出している部分です。プレビュー内で実行されるスクリプトは、別個の不透明なオリジンで実行されるため、このページのクッキーやローカルストレージ、DOMを読み取ることができず、このページの側からもiframeの中に立ち入ることはできません。この分離は単なる見た目上の枠ではなく、ブラウザが強制するセキュリティ境界です — サイトが信頼できないサードパーティのコンテンツ(広告、ウィジェット、ユーザーが投稿したコード片)を、その中身を信頼することなく安全に埋め込むために使うのと同じ仕組みです。
編集画面そのものは意図的に簡素です。3つのテキストエリアがあるだけで、シンタックスハイライトも自動補完もありません。これは機能の欠落ではなく、意識的なトレードオフです — 本格的なコード編集体験(キーワードのトークン化、括弧の対応づけ、タグの自動補完)を実現するには、相応の規模のサードパーティ製エディタライブラリを読み込む必要があり、それは重量増加と、1文字を入力する前の読み込み遅延につながります。このツールはその正反対を最適化しています — ページを開いた瞬間に、依存関係ゼロ、ビルド手順ゼロで即座に入力を始められることです。
3つのタブのいずれかで1文字入力するたびに再構築がトリガーされます。現在のHTML、<style>タグで包まれた現在のCSS、<script>タグで包まれた現在のJSが1つの文書にまとめられ、iframeに書き込まれます。差分の計算も段階的なパッチ適用もありません — プレビュー文書全体を単純に置き換えるだけで、この規模であれば実装をシンプルに保ちながら即時に感じられるほど高速です。
知っておくとよいこと
編集もレンダリングもすべてブラウザ内で完結するため、サーバーとの通信は発生せず、アカウントも不要です。CSSの小技をすばやく試す、より大きなコードベースからJavaScriptのバグを報告前に切り分ける、実プロジェクトに動作確認済みの結果をコピーする前に小さなコンポーネントを試作するといった用途に向いています。入力した内容はどこにも自動保存されないため、これをメモ帳のように扱ってください — タブを閉じる前に、残しておきたいものはコピーしておきましょう。
よくある質問
自分のコードはどこかに送信されますか?
いいえ — すべて完全にブラウザ内でローカルに実行されます。プレビューは同じページ上のサンドボックス化されたiframe内でレンダリングされ、サーバーへのアップロードや保存は一切行われません。
なぜシンタックスハイライトがないのですか?
本格的なコードエディタ(シンタックスハイライト、自動補完)を追加するには、重量級のサードパーティ製エディタライブラリを読み込む必要があります。このツールは意図的に軽量に保たれています — シンプルなテキストエリア、瞬時の読み込み、依存関係ゼロで、入力を始める前にダウンロードするものは何もありません。
プレビューで信頼できないコードを実行しても安全ですか?
プレビュー用iframeは<code>allow-same-origin</code>を付けずに<code>sandbox="allow-scripts"</code>を使用しているため、内部のスクリプトはこのページのクッキーやローカルストレージなど、いかなる情報も読み取れません — 信頼できない埋め込みコンテンツと同じ方法で隔離されています。これは見た目だけのものではなく、ブラウザが実際に強制する境界です。
プレビュー内の自分のJavaScriptが、このサイトの他の部分に影響を与えることはありますか?
いいえ — サンドボックス化されたiframeは、ブラウザによって別個の不透明なオリジンとして扱われます。内部のスクリプトはそのiframe自身の文書内に閉じ込められており、スクリプトが何を試みようとも、このページの変数やネットワークリクエスト、クッキー、ストレージに到達する経路は一切ありません。
プレビューは1文字入力するたびに更新されますか?
はい — 入力しているあいだ、現在のHTML・CSS・JSタブの内容からiframeの中身がその場で再構築されるため、別途「実行」ボタンをクリックしたりビルド手順を待ったりすることなく、変更(新しいCSSルール、修正した関数など)の効果をすぐに確認できます。
関連ツール
問題を報告
HTML/CSS/JS ライブエディタ
コメント
まだコメントはありません — 最初のコメントを書いてみましょう!