Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
* Some parts of this feature may have varying levels of support.
<iframe> は HTML の要素で、入れ子になった閲覧コンテキストを表現し、現在の HTML ページに別のページを埋め込むことができます。
それぞれの閲覧コンテキストにはそれぞれの文書があり、URL でナビゲーションができます。それぞれの埋め込み閲覧コンテキストのナビゲーションは、最上位の閲覧コンテキストのセッション履歴で直線化されます。他の閲覧コンテキストを埋め込んでいる閲覧コンテキストは、親閲覧コンテキスト と呼ばれます。最上位 の閲覧コンテキスト(親を持たないもの)は、通常はブラウザーのウィンドウで、 Window オブジェクトで表されます。
警告: それぞれの閲覧コンテキストは完全な文書環境であるため、ページの中で <iframe> を使用するごとに、必要となるメモリーやその他の計算リソースが増加します。理論的には好きなだけ <iframe> を使用することができますが、パフォーマンスの問題を確認してください。
この要素にはグローバル属性があります。
allow権限ポリシーを <iframe> に指定します。このポリシーは、 <iframe> が利用可能な機能(例:マイク、カメラ、バッテリー、ウェブ共有 API へのアクセスなど)をリクエストのオリジンに基づいて定義します。
例については、Permissions-Policy のトピックの iframes を参照してください。
メモ: allow 属性で指定され権限ポリシーは Permissions-Policy ヘッダーで指定されたポリシーの上に、さらに制限を実装するものです。置き換えるものではありません。
この <iframe> が requestFullscreen() を呼び出して全画面モードにすることができる場合は、 true に設定します。
メモ: この属性は古い属性とみなされており、 allow="fullscreen" として再定義されました。
異なるオリジンの <iframe> で 決済リクエスト API の実行を許可する場合は true に設定します。
メモ: この属性は古い属性とみなされており、 allow="payment" として再定義されました。
論理属性で、表示されている場合、現在のユーザーの選択されたトピックを <iframe> のソースのリクエストと共に送信することを指定します。詳細は、トピック API の使用を参照してください。
credentiallesstrue に設定すると <iframe> を無信頼であることを示します。 つまり、そのコンテンツは新しい、一時的なコンテキストで読み込まれることになります。これはそのオリジンに関連するネットワーク、クッキー、ストレージデータへのアクセス権がありません。最上位の文書の存続期間に依存する新しいコンテキストを使用します。その代わりに Cross-Origin-Embedder-Policy (COEP) 埋め込みルールは解除され、COEP を設定した文書はそうでない第三者の文書を埋め込むことができるようになります。詳しくは無信頼の iframe を参照してください。
csp埋め込みリソースを制限するコンテンツセキュリティポリシーです。詳しくは HTMLIFrameElement.csp をご覧ください。
heightフレームの高さを CSS ピクセル数で示します。既定値は 150 です。
loadingブラウザーが iframe をどのように読み込むかを示します。
eagerページ読み込み時に、直ちに iframe を読み込みます(これが既定値です)。
lazyブラウザーで定義された視覚的ビューポートからの計算された距離に達するまで iframe の読み込みを延期します。 その目的は、ブラウザーがフレームを使用すると合理的に確信できるまで、フレームの取得に必要なネットワークとストレージの帯域幅を使用しないようにすることです。 これにより、ほとんどの典型的な使用用途において、特に初期ページの読み込み時点が縮小され、パフォーマンスとコストが改善されます。
メモ: JavaScript が有効な場合のみ、読み込みが遅延されます。 これはトラッキング対策です。
埋め込み閲覧コンテキストのターゲットの名前です。 <a>, <form>, <base> 要素における target 属性の値、 <input> や <button> 要素における formtarget 属性の値、 window.open() メソッドの windowName 引数の値として使用することができます。さらに、この名前は Window および Document プロパティとなり、埋め込まれたウィンドウや要素自身への参照が入ります。
referrerpolicyフレームのリソースにアクセスする際にどのリファラーを送信するかを示します。
no-referrerReferer ヘッダーを送信しません。
no-referrer-when-downgradeReferer ヘッダーは TLS (HTTPS) のないオリジンには送信しません。
origin送信するリファラーを、参照しているページのオリジン(スキーム、ホスト名、ポート番号)に限定します。
origin-when-cross-origin他のオリジンへ送信されるリファラーは、スキーム、ホスト名、ポート番号のみにします。同じオリジンへの移動では、パスも含めます。
same-originリファラーは同じオリジンには送信しますが、異なるオリジンへのリクエストにはリファラー情報を送信しません。
strict-originプロトコルのセキュリティ水準が同じ (HTTPS→HTTPS) である場合は、文書のオリジンのみをリファラーとして送信しますが、宛先の安全性が劣る場合 (HTTPS→HTTP) には送信しません。
strict-origin-when-cross-origin (既定値)同じオリジンへのリクエストには URL 全体を送信し、プロトコルのセキュリティ水準が同じ (HTTPS→HTTPS) である場合は、文書のオリジンのみをリファラーとして送信し、宛先の安全性が劣る場合 (HTTPS→HTTP) にはヘッダーを送信しません。
unsafe-urlリファラーにオリジンおよびパスを含めます(ただし、フラグメント、パスワード、ユーザー名は含めません)。オリジンやパスの情報が TLS で保護されたリソースから安全性の劣るオリジンへ漏えいしますので、これは安全ではありません。
sandbox<iframe> に埋め込まれたコンテンツに適用される制限を制御します。フレーム内のコンテンツに追加の制約を適用します。この属性の値は、空にするとすべての制約を適用し、空白区切りのトークンにすると特定の制約を外します。
allow-downloadsdownload 属性を持つ <a> または <area> 要素を通して、またファイルのダウンロードにつながるナビゲーションを通してファイルのダウンロードを可能にします。これは、ユーザーがリンクをクリックしたか、JS コードがユーザーとの対話なしに開始したかに関係なく、動作します。
allow-formsページがフォームを送信することを許可します。このキーワードを使用しない場合、フォームは通常通り表示されますが、フォームを送信しても入力の検証、ウェブサーバーへのデータ送信、ダイアログの終了が行われません。
allow-modalsページが Window.alert(), Window.confirm(), Window.print(), Window.prompt() によってモーダルウィンドウを開くことができるようにしますが、 <dialog> は、このキーワードに関わらず開くことが可能です。また、ページが BeforeUnloadEvent イベントを受信することができるようにもします。
allow-orientation-lockリソースが画面の向きをロックすることができるようにします。
allow-pointer-lockリソースがポインターロック API を使用できるようにします。
allow-popupsポップアップ(Window.open()、target="_blank" などで作成されたもの)を許可します。このキーワードが使用されていない場合、その機能は静かに失敗します。
allow-popups-to-escape-sandboxサンドボックス化された文書が、サンドボックス化フラグを強制することなく、新しい閲覧コンテキストを開くことができるようにします。これにより、例えばサードパーティ広告を、その広告がリンクしているページに同じ制限を強いることなく、安全にサンドボックス化することができます。このフラグが記載されていない場合、リダイレクトされたページ、ポップアップウィンドウ、新しいタブは元の <iframe> と同じサンドボックスの制限を受けることになります。
allow-presentation埋め込み側が、 iframe がプレゼンテーションセッションを開始できるかどうかを制御することを許可します。
allow-same-originこのトークンが使用されていない場合、リソースは同一オリジンポリシーに常に失敗する特別なオリジンからのものとして扱われます(潜在的にデータストレージやクッキーへのアクセスや一部の JavaScript API の使用を阻止することがあります)。
allow-scriptsページがスクリプトを実行することを許可します(ただし、ポップアップウィンドウは作成しません)。このキーワードが使用されない場合、この操作は許可されません。
allow-storage-access-by-user-activation<iframe> で読み込んだ文書がストレージアクセス API を使用して、分離されていないクッキーへのアクセスをリクエストできるようにします。
allow-top-navigationリソースが最上位の閲覧コンテキスト(_top という名前のもの)に移動できるようにします。
allow-top-navigation-by-user-activationリソースが最上位の閲覧コンテキストに移動できるようにしますが、ユーザーの操作によって開始されたものに限ります。
allow-top-navigation-to-custom-protocolsブラウザーに組み込まれている、またはウェブサイトによって登録された http 以外のプロトコルへのナビゲーションを可能にします。この機能は allow-popups や allow-top-navigation キーワードでも有効になります。
メモ:
メモ: ユーザーをリダイレクトするとき、ポップアップウィンドウを開くとき、または sandbox 属性を持つ <iframe> 内に埋め込まれたページから新しいタブを開くとき、新しい閲覧コンテキストは同じ sandbox の制限に従います。例えば、sandbox="allow-forms"またはsandbox="allow-popups-to-escape-sandbox" 属性が設定されていない<iframe>内に埋め込まれたページが別個のタブで新しいサイトを開いた場合、その新しい閲覧コンテキストでのフォーム送信は静かに失敗します。
埋め込むページの URL です。同一オリジンポリシーに従う空白ページを埋め込む場合は、 about:blank の値を使用してください。また、プログラムから <iframe> の src 属性を削除すると (例えば Element.removeAttribute() などで)、 Firefox (バージョン 65 以降)、 Chromium ベースのブラウザー、 Safari/iOS では about:blank が読み込まれます。
メモ: about:blank ページは、アンカーリンクなどの相対 URL を解決するときに、埋め込み文書の URL をベース URL として使用します。
埋め込むインライン HTML で、 src 属性を上書きします。そのコンテンツは完全な HTML 文書の構文に従う必要があります。この構文には doctype ディレクティブ、<html>、<body> タグなどが含まれますが、そのほとんどは省略して body のコンテンツだけにすることができます。この文書は位置が about:srcdoc となります。ブラウザーが srcdoc 属性に対応していない場合は、 src 属性の URL で代替されます。
メモ: about:srcdoc ページは、アンカーリンクなどの相対 URL を解決するときに、埋め込み文書の URL をベース URL として使用します。
フレームの幅を CSS ピクセル数で示します。既定値は 300 です。
以下の属性は非推奨であり、すべてのユーザーエージェントが対応しているとは限りません。新しいコンテンツでは使用せず、既存のコンテンツから削除するようにしましょう。
alignフレームを含むコンテキストに対する、フレームの整列方法を指定します。
frameborder値が 1 (既定) ならば、このフレームの周りに境界線を描きます。値が 0 ならば、このフレームの周りの境界線を削除しますが、代わりに CSS の border プロパティを使用して <iframe> の境界線を制御してください。
longdescフレームの内容についての長い説明の URL です。誤用が広がっているため、非視覚ブラウザーでは有用ではありません。
marginheightフレームの内容と上下の境界との間における、ピクセル単位の余白の量です。
marginwidthフレームの内容と左右の境界との間における、ピクセル単位の余白の量です。
scrollingブラウザーがフレームにスクロールバーを表示することを示します。
autoフレームの内容が、フレームの寸法よりも大きい場合のみ。
yes常にスクロールバーを表示する。
noスクロールバーを一切表示しない。
インラインフレームは、<frame> 要素のように window.frames 擬似配列に入ります。
DOM の HTMLIFrameElement オブジェクトでは、スクリプトはフレーム化されたリソースの window オブジェクトに contentWindow プロパティを使ってアクセスすることができます。 contentDocument プロパティは iframe の内側の document 要素を参照します (contentWindow.document と等価です)。
スクリプトは、フレームの内側からは window.parent で親ウィンドウを参照できます。
フレームの内容にアクセスするスクリプトは、同一オリジンポリシーに従います。別なオリジンから読み込まれたスクリプトは、フレーム内のスクリプトがフレームの親にアクセスする場合を含め、他の window オブジェクトのほとんどのプロパティにアクセスできません。オリジンをまたいだやりとりは Window.postMessage() を使用して実現できます。
置換要素であるため、 <iframe> 要素のボックス内における埋め込み文書の位置は、 object-position プロパティで設定することができます。
メモ: object-fit プロパティは、<iframe> 要素には効果がありません。
<iframe> で発生する error イベントと load イベントを使用すると、ローカルネットワークの HTTP サーバーの URL 空間を推測することができる可能性があります。そのため、セキュリティ対策として、ユーザーエージェントは <iframe> に対して error イベントを発生させず、<iframe> のコンテンツの読み込みに失敗しても、常に load イベントが発生します。
読み上げソフトのような支援技術を利用して操作している人は、 <iframe> 上の title 属性を使用して内容をラベル付けします。 title の値で埋め込みコンテンツを正確に説明してください。
この title がないと、埋め込みコンテンツが何であるかを特定するために <iframe> の内容に移動しなければならなくなります。このコンテキストの移動は、特に複数の <iframe> が存在するページや、動画や音楽などの対話型コンテンツが埋め込まれているページでは、混乱を招き、時間のかかる作業になる可能性があります。
この例では、https://example.org のページを <iframe> で埋め込みます。これは iframe の一般的な用途で、他のサイトのコンテンツを埋め込むことです。例えば、ライブサンプル自体も、一番上の試してみましょうの例も、他の MDN サイトのコンテンツを <iframe> で埋め込んでいます。
この例では、iframe 内のソースコードを直接レンダリングしています。これは sandbox 属性と組み合わせることで、ユーザー生成コンテンツを表示する際にスクリプトインジェクションを防ぐテクニックとして使用することができます。
srcdoc を使用する場合、埋め込みコンテンツ内の相対 URL は埋め込みページの URL からの相対 URL で解決することに注意してください。埋め込みコンテンツ内の場所を指すアンカーリンクを使用したい場合は、ベース URL として about:srcdoc を明示的に指定する必要があります。
srcdoc を使用する際のエスケープシーケンスの書き方を説明します。
| フローコンテンツ, 記述コンテンツ, 埋め込みコンテンツ, 対話型コンテンツ, 知覚可能コンテンツ |
| なし。 |
| なし。開始タグと終了タグの両方が必須です。 |
| 埋め込みコンテンツを受け入れるすべての要素。 |
| 対応するロールなし |
| application, document, img, none, presentation |
| HTMLIFrameElement |
| HTML # the-iframe-element |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2025年12月3日 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.