私が最近稼働している職場で維持しているWebベースのシステムでは、メインWebページ内に2番目のWebページを埋め込むためのObject要素が作成されます。 (事実上、メインWebページにはメニューとヘッダーが含まれ、メインアプリケーションページはオブジェクト内にあります)
例えば
<object id="contentarea" standby="loading data, please wait..."
title="loading data, please wait..." width="100%" height="53%"
type="text/html" data="MainPage.aspx"></object>
このアプリケーションの古いバージョンでは、IFRAMEを使用してこれを行っています。オブジェクトタグを使用すると、埋め込まれたWebページの動作が、以前にIFRAMEでホストされていたときとは異なることがわかりました。たとえばIEでは、ツールヒントが機能していないようです(これについては別の質問を投稿します!)。IFRAMEの場合は、埋め込みページがスクリプトで親ページにアクセスできないようですが、 。
IFRAMEよりもオブジェクトタグを優先する理由は、IFRAMEが非推奨になり、ブラウザーの将来のバージョンに依存できないためと言われています。これは本当ですか? Webページを埋め込むために、IframeでObjectタグを使用することは望ましいですか?それとも、IFRAMEは将来にわたって十分にサポートされる可能性がありますか(私が古くて灰色になってからずっと、私が保守しているアプリケーションの耐用年数を過ぎている)。
IFRAME要素 は 今後のHTML5標準 の一部です。また、HTML5は世界中の主要なブラウザーベンダー(Mozilla、Opera、Safari、IE)によって開発されており、基本的には近い将来にIFRAME要素が存在することを保証します。それらのいくつかは、AUDIOやVIDEOやいくつかの新しいJavaScript APIなど、すでにいくつかのHTML5要素をサポートしています。
OBJECT要素はドラフトにある であることも事実ですが、これはIFRAMEとOBJECTの目的が異なるためです。 IFRAMESは主にWebアプリケーションをサンドボックス化するために設計されています。
したがって、私のアドバイスは、OBJECTではなくIFRAMEを使用することです。
IFRAMEはXHTML 1.0 Strict DTDの一部ではありません。それらはHTML 4およびXHTML 1.0 Transitionalで完全に有効です。これらの理由だけでも、IFRAMEは長い間サポートされ続けます。
多くのブックマークレットと分析コードはまだIFRAMEを使用しています。
HTMLページを埋め込む場合は、iframe
とobject
の顕著な違いが1つあります。
iframe
を更新するとsrc
はブラウザの履歴を変更します(新しいエントリを追加します)object
を更新するとdata
はブラウザの履歴を変更しませんまた、ページがobject
タグに埋め込まれている場合、ドラッグ&ドロップは機能しないようですが、iframe
タグでは機能します。 react-draggable
、そして誰かが同じ問題を抱えているのを見ることができます( https://stackoverflow.com/questions/31807848/replacing-iframe-with-object-tag-drag-and-drop-not-working =)
W3C仕様ではIFRAMEタグが廃止されていることを示している可能性がありますが(少なくともいずれにしても)XHTMLでは、ブラウザー開発者は必ずしもそれらの仕様の説明に厳密に従うとは限りません(IE6は誰ですか?)
現在のところIFRAMEの使用は非常に一般的であり、W3Cはそれらが将来の一部であるかどうかを判断できないようです(HTML 4.01とXHTML)、それらはほとんどすべてで使用するのに安全な実装です。ブラウザ。