1. ホーム
  2. iframe

[解決済み] なぜ人々はまだiframeを使うのか?[クローズド]

2023-02-23 07:57:36

質問

私にとってiframeは純粋な悪です(まあ、それほど純粋ではないかもしれませんが)。多くの問題を引き起こすようです。確かに、あなたのサイト全体は一度ロードされ、その後、単一のページをロードすることができます。しかし、人々はこの目的のためにAJAXを発明しました。

私が見つけた最大の問題の1つは iframe の最大の問題は、URLが変更されないため、サブページの 1 つにリンクを貼り付けることができないことでした (はい、この回避策があることは知っています)。2 つ目は、Web 検索エンジンがそのようなページをインデックスする際に問題が発生する可能性があることです。

時には、このサイトのアクセシビリティが悪化し、一部のブラウザでは不適切に表示されることがあります。

iframeを使用しないレイアウトをデザインするためのより良い方法があります。毎日、「jQueryでiframeにアクセスするにはどうしたらいいですか?

では、iframeの利点は何なのでしょうか?まだそれらを使用する理由は何でしょうか?私はただその理由を知りたいだけなのです。

どのように解決するのですか?

人々がAJAXの代わりにiframeをまだ使用する2つの理由を(現時点で)思いつくことができます。

1) iframe は、クロスドメイン起源ポリシーを回避します (画像、スクリプト、およびスタイルは回避できません)。 これは、他のドメイン名からサイト/コンテンツを比較的安全に取り込むのに便利です。 基本的に、これは、無制限のアクセスでページを踏みつけさせることなく、他のドメインからのデータを視覚的に示すことができるという利点を可能にします (JSONP のようなものができるようになる)。

2) 特定の MIME タイプだけでなく、iframe 内から複数のタイプのリソースをロードできます (スクリプト、XHR、画像、ソースでは、比較的 application/javascript, application/x-javascript, text/css, text/xml, image/png, image/jpeg, image/gif に制限されています). 例えば、PDFを見せたい場合、iframeを開いて、Adobe Readerのプラグインにそのファイルを表示させることができます。 さらに、同じドメインで、スクリプト、スタイル、画像をすべて一緒にパイプラインで表示したい場合(ページ上でインライン、画像はデータ URI でなければならない)、iframe でこれを実現できます(同じドメイン、ポート、およびプロトコルであれば JavaScript でアクセスも可能です)。

Gmail が iframe のセットであることをご存知ですか? 表示されている部分は、単に巧みな位置決めです。 さらに、多くの OAuth 実装 (Twitter、Facebook、Google、Yahoo!) は通常、iframe を使用して、ドメイン上のユーザーと成功した認証 URL (ユーザーがログインした後用) を関連付けています。