使用Iframe或Object标签将网页嵌入另一个

Tim*_*m C 31 html iframe object

在基于Web的系统中,我维护最近上线的工作,它使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>
Run Code Online (Sandbox Code Playgroud)

此应用程序的旧版本使用IFRAME执行此操作.我发现通过使用object标签,嵌入式Web页面的行为与先前在IFRAME中托管的行为不同.例如,在IE中,工具提示看起来不起作用(我将发布一个单独的问题!),看起来嵌入式页面无法访问脚本中的父页面,尽管它可以是IFRAME .

我被告知在IFRAME上支持对象标记的原因是IFRAME已被弃用,因此不能依赖于未来版本的浏览器.这是真的吗?是否最好在Iframe上使用Object标签来嵌入网页?或者很可能IFRAME将来会得到很好的支持(很久以后我老了,灰色,并且超过了我维护的应用程序的使用寿命)?

Ion*_*tan 44

IFRAME元素是部分即将到来的HTML5标准.此外,HTML5是由主要的浏览器厂商(Mozilla,Opera,Safari,IE)开发的,它们基本上保证了我们在可预见的未来将拥有一个IFRAME元素.其中一些已经支持一些HTML5元素,如AUDIO和VIDEO以及一些新的JavaScript API.

OBJECT元素在草稿中也是如此,但这是因为IFRAME和OBJECT有不同的用途.IFRAMES主要用于沙盒Web应用程序.

所以,我的建议是使用IFRAME而不是OBJECT.


kim*_*3er 8

IFRAME不是XHTML 1.0 Strict DTD的一部分.我相信它们在HTML 4和XHTML 1.0 Transitional中完全有效.仅凭这些原因,IFRAME将继续得到长期支持.

许多bookmarklet和分析代码仍然使用IFRAME.


JBE*_*JBE 6

如果您要嵌入HTML页面,则以下是iframe和之间的一个明显区别object:

  • iframe更新src将改变浏览器历史记录(添加新条目)
  • object更新data不会改变浏览器历史记录

此外,如果页面嵌入在object标记中,拖放操作似乎不起作用,但在iframe标记中有效.我注意到它个人使用react-draggable,我可以看到有人有同样的问题(/sf/ask/2226549391/)