是否有任何理由要使用iframe?我目前使用它从不同的服务器(注册页面 - 分布式应用程序的一部分)加载页面,以提供无缝体验。使用iframe被认为是不好的做法还是使用OK?
答案 0 :(得分:16)
iframe是一个很棒的工具。它享有近乎通用的浏览器支持,易于实现并具有许多有用的功能。与任何其他HTML元素一样,它可以被滥用,但是智能地使用它可以在可靠的UI中发挥作用。
有些开发人员可能会争论使用AJAX,并且在某些情况下可能是更合适的方法,但AJAX不是灵丹妙药,而iframe可能是一个更简单的实现,对用户来说具有相同的最终结果。做任何最简单的事情,只有当你能够验证它是如何以及为什么不起作用时才改变它。
答案 1 :(得分:12)
继续使用iframe。以下是原因示例:
整个验证通过签证的事情真让我烦恼。我很高兴在一些我信任的网站购物,当我被重定向到我从未听说过的某个网站时(不是 visa.com)我必须填写其他形式并希望我被正确地重定向回购物网站。
最近我在John Lewis的网站上购物,他们在iframe 中提出了验证签名页面 - 太棒了!我还在看约翰路易斯的网站,所有发生的事情都是我被要求提供我的验证密码 - 没问题。
虽然作为一名网络开发人员,我知道它与普通的旧重定向之间没有技术差异 - 重定向 - 用户体验
答案 2 :(得分:10)
<强>优点:强>
<强>缺点:强>
答案 3 :(得分:8)
iframe可以访问父文档的某些属性,例如使用parent.location.href
或parent.window.location
将父框重定向到新位置(IE允许限制)。
当嵌入来自其他服务器的内容时,这非常适合网络钓鱼攻击(即使您信任该服务器可能会受到损害)。
iframe也可以用于各种其他攻击:IFrames security summary。
答案 4 :(得分:3)
使用HTML 5,您将能够使用跨文档消息传递API从窗口到窗口发送消息,但是现在iFrame是任何类型的AJAX的最可行的替代方案,需要样式和脚本来加载数据
如果您想在iFrame中使用文本数据,请改用AJAX。如果您希望外部CSS或JavaScript在受保护的环境中工作,希望样式从头开始,或者需要访问跨域文档,请使用iFrame。
缺点是iFrame的可访问性通常很糟糕,尽管您可以通过确保使用屏幕阅读器的外部内容通知继续iFrame来防止这种情况。另请查看HTML规范,了解使iFrame更易于访问的其他方法。除此之外,明显的限制脚本,iFrame是一个伟大的工具,负责任和稀疏使用。
最后一个注意事项,堆满一个充满iFrames的页面绝对不是一个好主意,因为请记住,对于每个加载的iFrame,创建一个DOM,生成HTML请求并实例化文档包装,在进程中占用内存和带宽。在页面上将iFrame保持在最低限度,您将避免误导HTML文章中的强大工具。
答案 5 :(得分:3)
IFrame是在网页中“包含”外部内容的好方法。但是,有一些(小)缺点:
除此之外,他们很棒!我提到的要点甚至可能被认为是优点,如果你考虑它(屏幕阅读器除外):原则上,IFrame不能影响其父页面的布局,它也不会受其父母的影响。< / p>
答案 6 :(得分:1)
作为一般规则,iframe对于SEO原因来说是一种糟糕的体验。所以,你问有没有理由不使用iframe?是的,如果您使用iframe,您将失去搜索引擎中的一些有机位置。
当然,存在可用性(并且应该)胜过页面的SEO值的可用性问题。