Pet*_*ter 85 html iframe obsolete
得到相互矛盾的信息,希望他们不是.我无法想象它的支持会停止,因为很多网站都使用它们.
关于此的一些其他问题:
Kor*_*tor 75
<iframe>
HTML 5中仍然存在支持,所以我认为这不会在不久的将来发生变化.
回答你的其他问题:
<iframe>
s(通常为框架)大多数时候不是用户友好的:
<div>
要明确:我所说的<iframe>
是一个界面元素.不是用于加载其他东西的隐藏元素,例如Google Mail.
Dav*_*lar 51
在我看来,W3C从严格的HTML和XHTML文档类型中倾销了iframe.从理论上讲,您可以使用该<object>
元素将外来对象添加到文档中,但浏览器的差异和限制使得许多开发人员无法启动它.随着更加务实的HTML 5(仍然是草稿),iframe又回来了,甚至有两个新的属性:seamless
和有趣的sandbox
.
Thi*_*ker 24
用于页面布局的iframe 已过时.永远不要使用它们而不是好的CSS布局,即使基于表格的布局也更好.
使用iframe的充分理由是:
cgp*_*cgp 23
IFrame不会过时,但使用它们的原因很少见.
使用iframe的原因:
我也回答说,没有必要删除iframe,这是一个必需的标签,并且会存在一段时间.
Gay*_*yle 12
我见过很多论坛都建议将Object标签作为IFrame的替代品,这在大多数情况下都有效.
例如,我在IFrame中显示了一个PDF(因为除了PDF之外我们还需要在页面上显示其他内容)并且能够使用Object显示它.
什么是:
<iframe id="confirmed_pdf" class="current_pdf" src="/prescriptions/show_pdf?id=123" height="570" width="480"></iframe>
Run Code Online (Sandbox Code Playgroud)
变成了:
<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>
Run Code Online (Sandbox Code Playgroud)
但是对象不是一个合适的替代品,以满足只能打印页面的PDF部分的要求.
IFrame就像它自己在页面中的窗口(基本上是一个窗口内的窗口),一旦你得到了窗口对象,就可以在它上面调用.print(),如:
jQuery("#confirmed_pdf").contentWindow.print();
Run Code Online (Sandbox Code Playgroud)
IFrame有一个contentWindow属性,这就是只打印那部分的原因.对象没有contentWindow属性,因此无法仅打印页面的部分.
所以,看起来如果您只是使用IFrame来显示某些东西,那么可以使用其他像Object这样的标签.但是如果您需要以某种方式与IFrame的内容进行交互,那么IFrame可能是必要的.
IFrame与AJAX一起使用很多.例如,GMail使用九个隐藏的IFrame,我相信.
IFrame没有死,但Frameset/Frames正在死亡.
在IE(IE7/IE8)的最后两个版本中,放大帧(而非IFrames)已经产生了灾难性的结果.
无论如何使用IFrame,但IMHO保持清晰的帧集/帧.
在我以前的公司,我们提供了一个托管应用程序,客户可以将其集成到自己的网站中.有时,他们会使用IFrame执行此操作,将我们的托管页面安装到他们现有的设计中.有时这甚至是无缝完成的(即IFrame没有边框或滚动条,它只是看起来像页面的一部分).我认为这是一个很好的标签使用.
它们在某些情况下非常有用,但它们是有限的.特别是在多个站点中嵌入通用功能.
例如,我有一个客户经营着许多苏格兰商品电子商务网站.作为其中的一部分,我们开发了几个简单的应用程序来查找您的姓氏或您选择的格子呢中的可能的氏族名称(如果您愿意,可以傻笑,但格子呢每年对我们的经济来说价值7亿美元).这背后的数据库非常大(核心名称和格子表中近一万行)并且定期更新.
因此,我们将应用程序设置为在一个网站上运行,然后使用iframe将这些应用程序嵌入到我们的其他网站中,从而实现简单的javascript参数传递,这样我们就可以将嵌入网站上的格子或部落选择与功能集成在一起.iframe设置为noborder,因此它对最终用户来说似乎完全无缝.
当然还有其他方法可以做到这一点,但使用iframe简单而强大.它肯定不会过时.
小智 5
课程的马...... <iframe> s就像其他任何东西......出于正确的目的,它们是正确的工具; 出于错误的目的,他们是一个丑陋的黑客,或者更糟.
在Ajax中,<div> s通常是更合适的容器.在某些地方,如果<iframe>支持,将外部内容作为您自己网站的一部分传递的活动是不合适的.
我的团队前几天使用<iframe>作为让用户访问其HTML电子邮件历史记录的理想方式 - 电子邮件是完整的<html>页面,我们希望将这些页面轻松插入到我们的Web模板中.<iframe> s非常适合呈现数据]'.
另一方面,<iframe>几乎总是在任何用户提交的内容中被删除或禁用,这些内容会输出回网站,因为在这种情况下,它们是一个主要的安全问题.