インラインフレームで外部ソースからのコンテンツをページに含めることができます
通常は「iframe」と呼ばれるインラインフレームは、HTML5で許可される唯一のタイプのフレームです。 これらのフレームは本質的に、あなたがページを切り落としたセクションです。 あなたがページから切り取ったスペースでは、外部のウェブページをフィードすることができます。 本質的に、iframeはウェブページのすぐ内側に設定された別のブラウザウィンドウです。 Googleマップなどの外部コンテンツやYouTubeの動画を含める必要があるウェブサイトで一般的に使用されているiframeが表示されます。
これらの一般的なWebサイトでは、埋め込みコードでiframeを使用しています。
IFRAME要素の使用方法
この要素は、HTML5グローバル要素と他のいくつかの要素を使用します。 4つはHTML 4.01の属性です。
- - フレームのソースのURL
- - ウィンドウの高さ
- ウィンドウの幅
- - ウィンドウの名前
HTML5では3つの新しい機能が追加されました。
- srcdoc - フレームのソースのHTML。 この属性は、src属性の任意のURLよりも優先されます
- サンドボックス - フレームウィンドウで許可する必要がある機能のリスト
- シームレスに、iframeをレンダリングする必要があることをユーザエージェントに通知する
単純なiframeを作成するには、ソースのURLと幅と高さを設定します。
iframeの設定にピクセル値を使用しないことを選択できますが、パーセンテージを使用することもできます。
異なるサイズの画面でサイジングが変更されるレスポンシブウェブサイトを構築する場合は、これらの割合が重要になります。
HTML 4.01では有効ですが、HTML5では廃止された属性もあります。 現在のウェブサイトのほとんどはHTML5 +を使用しているため、これらの属性は使用したくない属性です(ただし、一部の従来のドキュメントでは表示される可能性があります)。
- - 代わりに、A要素を使用して説明にリンクする
- 代わりに、CSSのfloatプロパティを使用します
- allowtransparency - 代わりに、CSSの背景プロパティを使用してiframを透明にします
- 代わりにborder CSSプロパティを使用する
- marginheight -代わりに、CSS marginプロパティを使用します。
- marginwidth -代わりに、CSS marginプロパティを使用する
- 代わりに、CSSオーバーフロープロパティを使用します
IFRAMEブラウザのサポート
IFRAME要素は、現代のすべてのブラウザでサポートされています。
- アンドロイド
- クロム
- Firefox
- Internet Explorer 2以降
- iOS / Safari Mobile
- Netscape 7+
- Opera 3+
- サファリ
上記のリストにバージョン番号が表示されていない場合は、そのバージョンのすべてのバージョンでサポートされているためです。
注意すべき点は、すべてのブラウザがIFRAME要素をサポートしていますが、一部のHTML5機能のサポートがまだ限られていることです。
- オーバーフローを使用してスクロールをオフにすることは信頼できません。 iframeにスクロールバーを表示したくない場合は、引き続きスクロールアトリビュートを使用する必要があります。
- 現時点では、srcdoc、sandbox、およびseamless属性は、どのブラウザーでもサポートされていません。
Iframeとリンクする
iframeに名前またはIDを渡すと、そのフレームのリンクをA要素の属性で指すことができます。 ユーザーがリンクをクリックすると、現在のウィンドウではなく、参照されているiframe内で開きます。
自分で試してみてください。 Webページに次のように入力します。
IFRAMEで開いたドキュメントにターゲットが設定されていない場合、それらのリンクはすべて親ドキュメントと同じiframeで開きます。
この機能を使用して、ある IFRAME 内のリンクが同じページ上の別のIFRAMEの内容を変更するようにすることができます。
IFrameとセキュリティ
IFRAME要素は、あなた自身またはあなたの読者にとってセキュリティリスクではありません。
残念ながら、iframeは悪意のあるWebサイトで使用され、訪問者のコンピュータに感染する可能性のあるコンテンツをページに表示することなく使用できるため、評判が悪いです。 これは、目に見えないIFRAMEとそのスクリプトが悪意のあるコードを指し示すようにリンクすることによって行われます。 ユーザーはリンクをクリックし、何も起こっていないためリンクが壊れていると思っていますが、スクリプトが見えないところにスクリプトが設定されています。
あなたのウェブページに目に見えないIFRAMEを注入し、効果的にあなたのウェブサイトをボットネットに変えるコンピュータウィルスもあります。 SQLインジェクションやその他の攻撃によってこれを行うことができます。
あなたのウェブページにIFRAMEを含めるときに覚えておくべきことは、あなたのユーザーはリンク先のすべてのサイトのコンテンツと同じくらい安全だということです。 サイトが信頼できないと感じる理由がある場合は、リンクを張らないでください。また、そのコンテンツをIFRAMEに含めるのは間違いありません。 ただし、iframe内の自分のページにリンクしても、あなたやあなたのユーザーにとってセキュリティ上のリスクはありません。
Jennifer Kryninのオリジナル記事。 Jeremy Girardによって11/7/16に編集されました