IFrame(HTML)は廃止されましたか?[閉まっている]


87

そのことについて矛盾するメッセージを得ること、彼らがそうでないことを願っています。膨大な数のサイトで使用されているため、サポートが停止することは想像できません。

それに関するいくつかの追加の質問:

  1. このタグを段階的に廃止する必要があるのはなぜですか?
  2. その代わりはありますか?

回答:


51

私の意見では、W3CはStrict HTMLおよびXHTML Doctypeからiframeをダンプすることで銃を飛び越えました。理論的には、<object>要素を使用してドキュメントに外部オブジェクトを追加しますが、ブラウザの違いと制限により、多くの開発者にとってこれは初心者ではありません。はるかに実用的なHTML 5(これはまだドラフトです)により、iframeが復活し、2つの新しい属性seamless(と)が加わりましたsandbox


すばらしいです。ブラウザがAJAXファイルのアップロードをサポートし始めれば、iframeやフラッシュを使用する必要がないことを願っています。
Xeoncross 2011年

@Xeoncross Firefoxおよびchrome do:developer.mozilla.org/en/Using_files_from_web_applications
jches

2
更新:semless属性がhtml5から削除されました。参照:caniuse.com/#feat=iframe-seamless
Gabe

75

<iframe>HTML 5にはまだサポートがあるので、これは近い将来変更されるとは思いません。

他の質問に答えるには:

  1. <iframe>s(一般的にフレームとして)は、ほとんどの場合ユーザーフレンドリーではありません。
    • URLを介してフレーム内のコンテンツに簡単にアクセスすることはできません(少なくともフレーム外のコンテンツを失うことはありません)。
    • ほとんどの「テクノフォーブ」ユーザーはフレームにイライラします。
    • 私が知る限り、ブラウザでのレンダリングが遅い
  2. 代替手段には、動的ページ生成(SSI、PHP、Railsなど)やJavaScript / AJAXを使用して、 <div>

明確にするために:私は話している<iframe>インタフェース要素として。例えばGoogle Mailのように他のものをロードするための隠し要素ではありません。


29
+1は、Googleが高度に特殊化した目的でiframeを使用していることを示します。
cgp 2009

24

iframe ページレイアウトでは廃止されました。優れたCSSレイアウトの代わりにそれらを使用しないでください。テーブルベースのレイアウトの方が優れています。

iframeを使用する理由は次のとおりです。

  • 広告:たとえば、アドワーズ広告はこの手法を使用しており、カプセル化に適しています-広告のCSSによってページが破壊されることはありません。
  • 非表示のiframe:追跡、ajax代替など、何百もの使用可能なものに使用できます。

35
*** AdWordsにiframeを使用しないでください。これはTOSの違反です。*** scribd.com/doc/97655/...
CGP

37
altCognito:AdWordsは私ではなくiframeを使用します:)私は、Adword iframeを別のiframeに挿入することを意味していませんでした。
思想家

7
これはよくある間違いであることを知っているので(すべての記事)、あなたが言っていることを人々が理解できるようにフラグを立てたいと思いました。
cgp 2009

5
iframeは、別のドメインから提供する必要がある複雑なコンテンツを含める場合に必須であり、現在のページのCSSまたはJSコードで操作してはなりません。
vsync 2009年

4
あなたが話していることは、iframeとは何の関係もありません。ポイントは-ネストされた外部のブラウジングコンテキストを取り込むには、iframeを使用します。「ページレイアウト」には使用しません。ネストされたブラウジングコンテキストが必要な場合-代わりに、どのようにして「優れたCSSレイアウト」を代わりに使用できますか?それは意味がありません。
Chris B

23

IFrameは廃止されていませんが、使用する理由はまれです。

iframeを使用する理由:

  • 他のドメインから他の人のものを隔離するのに最適ですが、スムーズに統合されません。(スタイルシート、JavaScriptなど...)
  • マルチメディアの統合は、埋め込みタグを使用するのではなく、iframeを介して簡単に実行できる場合があります。
  • 本当に、彼らがサウンドと履歴管理のためにそれを使用しているgmailのケースのような本当に特別なケース。

また、iframeを削除する必要はありません。これは必要なタグであり、しばらくの間存在します。


12

IFrameの代わりとしてObjectタグを提案する多くのフォーラムを見てきました。これはおそらくほとんどの場合に機能します。

たとえば、IFrameでPDFを表示し(PDF以外にページに表示する必要があるものがあるため)、Objectを使用してそれを正常に表示することができました。

何だった:

<iframe id="confirmed_pdf" class="current_pdf" src="/prescriptions/show_pdf?id=123" height="570" width="480"></iframe>

なりました:

<object id="confirmed_pdf" class="current_pdf" data="/prescriptions/show_pdf?id=123" type="application/pdf" height="570" width="480">
  <p>[Show this message if displaying the PDF did not work]</p>
</object>

しかし、Objectは、ページのPDF部分のみを印刷できるという要件を満たすのに適した代替品ではありませんでした。

IFrameはページ内の独自のウィンドウ(基本的にはウィンドウ内のウィンドウ)に似ており、ウィンドウオブジェクトを取得したら、次のように.print()を呼び出すことができます。

jQuery("#confirmed_pdf").contentWindow.print();

IFrameにはcontentWindowプロパティがあります。これにより、その部分のみの印刷が可能になります。オブジェクトにはcontentWindowプロパティがないため、ページのセクションのみを印刷する方法はありません。

したがって、IFrameを使用して何かを表示しているだけの場合、代わりに使用できるObjectのような他のタグがあるようです。ただし、IFrameのコンテンツを特定の方法で操作する必要がある場合は、IFrameが必要になることがあります。


7

IFrameはAJAXでよく使用されます。たとえば、GMailは9つの非表示のIFrameを使用していると思います。


5
5つのiframeを数えます。1つは隠されておらず、実際には、ほぼ全体のビューの1つです。IFrameは通常Ajaxでは使用されません(いずれにせよ、主要なフレームワークでは使用されません)。Gmailは、履歴の追跡、サウンド(奇数)、キャンバスの描画などにiframeを使用しています。
cgp 2009

数年前に読んだ記事を読んでいました。
John Topley、

7

IFrameは死んでいませんが、Frameset / Framesは死んでいます。

IE(IE7 / IE8)の最後の2つのリリースでは、(IFrameではなく)フレームを拡大すると、悲惨な結果が生じました。

必ずIFrameを使用しますが、IMHOはフレームセット/フレームを避けます。


5

私の以前の会社では、顧客が自分のWebサイトに統合するホストアプリケーションを提供していました。時々、彼らはIFrameを使用してこれを行い、ホストされたページを既存のデザインに適合させます。これはシームレスに行われることもありました(つまり、IFrameには境界線やスクロールバーがなく、ページの一部のように見えました)。これはタグの良い使い方だと思いました。


iframeは、ユーザーのコードが壊れないように、独自のスタイルとJavaScriptを使用してクライアントのWebサイトに配置する必要があるものを処理するために必要です。CSSは簡単にオーバーライドでき、JSは時々(まれに)競合を引き起こす可能性があるため、「クローズドシステム」アプローチに最適です。
vsync 2009

5

状況によっては非常に便利ですが、制限があります。特に、複数のサイトに共通の機能を埋め込む。

たとえば、スコットランドの商品のeコマースサイトを多数運営しているクライアントがいます。この一環として、姓または選択したタータンから希望する氏名を見つけるための簡単なアプリケーションをいくつか開発しました(希望する場合は笑いますが、タータンは私たちの経済にとって年間7億ドルの価値があります)。この背後にあるデータベースは驚くほど大きく(コア名とタータンテーブルの1万行近く)、かなり定期的に更新されています。

したがって、1つのWebサイトで実行するようにアプリケーションを設定し、iframeを使用してこれらを他のWebサイトに埋め込み、タータンまたはクランの選択を埋め込みサイトの機能と統合できるように、簡単なJavaScriptパラメーターの受け渡しを有効にします。iframeはnoborderとして設定されているため、エンドユーザーには完全にシームレスに見えます。

もちろん、これを行う他の方法がありますが、iframeの使用はシンプルで堅牢です。そして、それは確かに時代遅れではありません。


5

コース用の馬... <iframe>は他のものと同じです...適切な目的のために、それらは適切なツールです。間違った目的のために、彼らは醜いハック、またはさらに悪いことです。

Ajaxでは、多くの場合<div>がより適切なコンテナーです。一部の場所では、<iframe>でサポートされているように、自分のサイトの一部として外部コンテンツを渡す行為は不適切です。

私のチームは、HTMLメールの履歴にユーザーがアクセスできるようにする理想的な方法として、先日<iframe>を使用しました。メールは、Webテンプレートに簡単に挿入したい完全な<html>ページでした。<iframe>は、そのデータを表示するのに最適でした。

一方、<iframe>は、ほとんどの場合、サイトに出力されるユーザー送信コンテンツでは削除または無効にする必要があります。そのコンテキストでは、それらは主要なセキュリティ問題であるためです。


4

現在、Googleガジェットの仕様はiframeに依存していますhttp : //code.google.com/apis/gadgets/docs/spec.html

現在、複数のドメイン/プロバイダーからプルされるJavaScriptアプリを分離するための唯一の簡単な方法です。

また、サードパーティからウェブサイトに埋め込まれているウィジェットの多くはiframeを使用しています。

iframeには欠点もありますが、Web上の一般的な問題に対する実用的なソリューションを提供します。私は彼らが来てしばらくの間存在することを推測する必要があります。


2

通常のフレームでは必要なことができなかったため、サイトを通常のフレームセットからiframeに変更しました。それ以外のコードベースでは問題は発生しませんでした。


2

コンプライアンスとセキュリティの問題により、iframeを使用するようになる場合もあります。ショッピングカートは、IFrameベースの一般的な実装であり、支払い処理側の責任を一切負わずに、一部のWebページの一部としてショッピングカートを視覚的に組み込む場合に使用します。

私たちは通常、iframeを提供して、eコマース関連のものと、ターンキーのようなクライアントを統合します。


0

私は、.net Webフォームの複雑さをカバーするために、プルダウンメニュー、リスト、コンテンツブロックなどのすべてにフレームを使用した会社で働いています。アプリケーションは非常に遅く、IEでのみ実行されます。これを行わないでください。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.