HTML5ではフレームが非推奨になったのに、iFrameは非推奨だったのはなぜですか?結局のところ、2つの間にほとんど違いはありません。多くの場合、それらのいずれかを使用すると同じ出力が得られます(間違っている場合はご容赦ください)。
HTML5ではフレームが非推奨になったのに、iFrameは非推奨だったのはなぜですか?結局のところ、2つの間にほとんど違いはありません。多くの場合、それらのいずれかを使用すると同じ出力が得られます(間違っている場合はご容赦ください)。
回答:
投稿にはいくつかの誤解があります。まず、frame
およびframeset
要素はHTML5で廃止予定されていない、彼らはしている時代遅れ(つまり、彼らは完全に削除されました)。
第二に、要素frame
とframeset
要素は要素と同じものではなくiframe
、同じ出力もしません:
このframeset
要素は、Webページの別のドキュメントモデルを含める手段としてページのbody要素を置き換えます。これらは使いやすさとアクセシビリティに悪影響を及ぼし、達成しようとしていたものがCSSとユビキタスなサーバー側開発によって完全に置き換えられました。
iframe
一方、この要素はページの本文を置き換えません。コンテンツのブロックに埋め込まれた新しいブラウジングコンテキストを含める手段として機能します。フレームセットモデルと同じ使いやすさやアクセシビリティの問題は発生せず、埋め込みブラウジングコンテキストを含める必要のあるほぼすべての場所で使用されます(ウィジェットが最も豊富な例です)。1
iframe
HTML5でもそれができることで追加機能を取るサンドボックス親文書は、その中に実行されますかを決定することができ、。これにより、信頼されていないコンテンツを埋め込むときに、親ドキュメント(および親ドキュメントへの訪問者)のセキュリティ対策が可能になります。
注1:object
要素は要素と多少重複してiframe
いますが、異なるコンテンツモデル(主にプラグインを対象としています)を持ち、独自の注意事項があり、iframe
要素が持つサンドボックス属性はありません。
フレームセットは、多くの場合、Webの基本原則(各ドキュメントには単一のURLが含まれる)を破る方法で使用されます。これは、リンク、ブックマーク、検索エンジンなどの問題につながります。
フレームセットの一般的な使用方法は、上部にロゴまたはヘッダーが付いたフレーム、横にメニューが付いたフレーム、およびコンテンツフレームです。ただし、検索エンジンは個々のページにインデックスを付けるため、Googleでページを見つけると、フレームセットなしでコンテンツページに直接リンクするため、ナビゲーションが失われます。リンクとブックマークの問題は、通常、フレームセット自体を失うことなく、フレームセット内の特定のコンテンツページをリンクまたはブックマークすることです。これは簡単な方法ではありません。
そもそもフレームセットが人気を博した理由は、スクロールコンテンツエリアを備えた静的に配置されたヘッダーとメニューを許可したためです。しかし、今日のCSSを使用すれば、はるかに簡単に実現できます。さらに、フレームを使用すると、サーバー側のコーディングを使用せずに、複数のページでロゴやメニューなどの一般的な要素を使用できます。これは、サーバー側のコーディングが面倒でエラーが発生しやすい(CGIスクリプトなど)ときに利点であり、多くのホストはサーバー側のスクリプトをまったく許可しませんでした。現在、コンテンツ管理システム(CMS)とより優れたサーバー側プラットフォームにより、これはサーバー側でより適切に処理されます。
したがって、基本的にフレームセットを使用する利点はなく、多くの問題があります。
IFrame は、フレームセットが使用されたのと同じ方法で使用でき、その場合、同じ問題が発生します。しかし、iframeの合法的な使用も多くあり、これらは同じ問題を引き起こしません。