Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

<iframe>

『iframe』は別のHTMLページや外部コンテンツをページ内にインラインフレームとして埋め込むための要素です。

構文
<!-- 基本的な使い方 -->
<iframe src="https://example.com" width="600" height="400"></iframe>

<!-- YouTubeの動画を埋め込む -->
<iframe
  src="https://www.youtube.com/embed/動画ID"
  width="560"
  height="315"
  allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope"
  allowfullscreen>
</iframe>
主な属性
属性概要
src埋め込むページのURLを指定します。
widthフレームの横幅をピクセルまたはパーセントで指定します。
heightフレームの縦幅をピクセルで指定します。
allowフレーム内で許可する機能(カメラ・位置情報・自動再生など)をスペース区切りで指定します。
sandboxフレーム内のコンテンツに制限を加えます。値を空にすると全制限が有効になり、「allow-scripts」などで個別に解除できます。
loading読み込みタイミングを指定します(eager: 即時 / lazy: 遅延読み込み)。
titleフレームの内容を説明するテキストを指定します。スクリーンリーダー対応に重要です。
サンプルコード
<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>iframeサンプル</title>
  <style>
    iframe {
      border: 1px solid #ccc;
      border-radius: 4px;
    }
  </style>
</head>
<body>

  <p>外部ページの埋め込みサンプル</p>

  <!-- Googleマップを埋め込む -->
  <iframe
    src="https://www.google.com/maps/embed?pb=!1m18..."
    width="600"
    height="450"
    style="border: 0;"
    loading="lazy"
    title="Googleマップ">
  </iframe>

  <!-- sandboxで制限を加えたフレーム -->
  <iframe
    src="sandbox-content.html"
    width="400"
    height="200"
    sandbox="allow-scripts"
    title="制限付きコンテンツ">
  </iframe>

</body>
</html>
実行結果

ページ内に外部のWebページやマップが埋め込まれた形で表示されます。枠線がある場合はフレームの境界がわかります。

┌─────────────────────────────────────┐
│  [Google マップが表示される領域]    │
│                                     │
│  ← 外部コンテンツがここに表示される │
│                                     │
└─────────────────────────────────────┘
概要

『iframe』はYouTube動画・Googleマップ・SNSの埋め込みウィジェットなど、外部サービスのコンテンツをページに組み込む際によく使われます。埋め込む外部サービスのサイトが提供する「埋め込みコード」をそのままコピーして使うのが一般的です。

セキュリティ上の理由から、信頼できないコンテンツを『iframe』で埋め込む場合は必ず『sandbox』属性を指定してください。『sandbox』を空にするとスクリプト実行・フォーム送信・ポップアップなどほぼすべての操作が制限されます。必要な機能だけ「allow-scripts」「allow-forms」のように個別に解除します。

アクセシビリティの観点から、『title』属性でフレームの内容を説明するテキストを必ず指定しましょう。スクリーンリーダーがフレームの内容を読み上げる際に使用されます。また、遅延読み込み(『loading="lazy"』)を活用するとページの初期読み込みを高速化できます。

対応ブラウザ
Chrome Chrome
49 以降
全バージョンで対応しています
Firefox Firefox
57 以降
全バージョンで対応しています
Safari Safari
18 以前 ×
Edge Edge
80 以降
11 以前 ×
IE IE
11 以前 ×
Opera Opera
48 以前 ×
iOS Safari iOS Safari
18 以前 ×
Android Browser Android Browser
37 以降
4 以前 ×
Chrome Android Chrome Android
36 以降
17 以前 ×
Firefox Android Firefox Android
79 以降
3 以前 ×

記事の間違いや著作権の侵害等ございましたらお手数ですがまでご連絡頂ければ幸いです。