2009-05-29 155 views
30

在基於Web的系統中,我維護最近上線的工作,它使Object元素在主網頁中嵌入第二個網頁。 (實際上主要的網頁包含菜單和標題,主要應用頁面中的對象)使用Iframe或Object標籤在另一個網頁中嵌入網頁

例如

<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雖然做到這一點。我發現通過使用對象標籤,嵌入式網頁的行爲與先前在IFRAME中託管時的行爲不同。例如,在IE中,工具提示看起來不起作用(我將發佈一個關於它的單獨問題!),並且它看起來像嵌入式頁面不能在腳本中訪問父頁面,儘管如果它是IFRAME 。

我被告知贊成在IFRAME上使用object標籤的原因是IFRAME已被棄用,所以不能依賴於未來版本的瀏覽器。這是真的嗎?是否最好在iframe上使用Object標籤來嵌入網頁?或者IFRAME很可能會在未來得到很好的支持(很久以後我老了,灰色,並且超過了我所維護的應用程序的使用壽命)?

回答

43

IFRAME elementupcoming HTML5 standard的一部分。此外,HTML5由主要瀏覽器供應商(Mozilla,Opera,Safari,IE)開發,基本上保證我們在可預見的將來擁有IFRAME元素。其中一些已經支持一些HTML5元素,例如AUDIO和VIDEO以及一些新的JavaScript API。

the OBJECT element is in the draft也是如此,但那是因爲IFRAME和OBJECT會有不同的用途。 IFRAMES主要設計用於沙盒網絡應用程序。

所以,我的建議是使用IFRAME而不是OBJECT。

+1

+1對於參考和澄清對象和iframe做不同的工作 – annakata 2009-05-29 09:06:28

8

IFRAME不屬於XHTML 1.0 Strict DTD的一部分。我相信它們在HTML 4和XHTML 1.0 Transitional中完全有效。僅僅因爲這些原因,IFRAME將繼續得到很長時間的支持。

很多書籤和分析代碼仍然使用IFRAME。

2

儘管W3C規範可能表明IFRAME標籤被棄用,(在XHTML至少是這樣),瀏覽器開發商並不一定遵循正是這些規範說(IE6的人?)

由於使用iframe目前非常流行,W3C似乎無法確定它們是否是未來的一部分(HTML 4.01 vs XHTML),我確定它們是幾乎所有瀏覽器都使用的更安全的實現。

5

如果你是嵌入HTML頁面,這裏是iframeobject之間的一個顯着的區別:與iframe更新src將改變瀏覽器歷史記錄(添加新條目)

  • object更新data

    • 不會改變瀏覽器歷史記錄

    另外它好像拖動了& drop d如果頁面嵌入在object標籤中,但不適用,但可在iframe標籤中使用。我注意到它自己使用react-draggable,並且我可以看到有人有同樣的問題(https://stackoverflow.com/questions/31807848/replacing-iframe-with-object-tag-drag-and-drop-not-working