首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么人们还在使用iframe呢?

为什么人们还在使用iframe呢?
EN

Stack Overflow用户
提问于 2010-09-26 17:17:09
回答 12查看 86.9K关注 0票数 92

对我来说,iframe是纯粹的邪恶(嗯,也许不是那么纯粹)。他们似乎制造了很多麻烦。是的,你的整个网站会加载一次,然后你就可以加载单个页面了。但是人们为了这个目的而发明了AJAX。

我发现iframe最大的问题之一是我不能粘贴一个指向其中一个子页面的链接,因为网址从来没有改变过(是的,我知道有解决这个问题的办法)。第二件事,网络搜索引擎在索引这类页面时可能会遇到问题。

有时,这些网站的可访问性更差,一些浏览器甚至可以不正确地显示它们。

在没有iframe的情况下,设计布局有更好的方法。每天我都能看到一些人在问这么多问题,比如“如何用jQuery访问iframe?”

那么iframe有什么好处呢?还有什么理由还在使用它们呢?我只想知道为什么。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2010-09-26 17:32:14

我可以想到两个原因(目前)为什么人们仍然会使用iframe而不是AJAX:

1) Iframes绕过了跨域来源策略(图像、脚本和样式不会)。这对于相对安全地从其他域名中拉入站点/内容非常有用。基本上,这样做的好处是可以直观地显示来自其他域的数据,而不会让它们在您的页面上进行无限制的访问(就像JSONP能够做到的那样)。

2)您可以从iframe中加载多种类型的资源,而不仅仅是某些mime类型(您只能使用application/javascript、application/x-javascript、text/css、text/xml、image/png、image/jpeg、image/gif with scripts、XHR、image和source)。例如,如果我想向您显示PDF,我可以打开一个iframe,让Adobe Reader插件向您显示该文件。此外,在同一个域中,如果我想通过管道将脚本、样式和图像整合在一起(页面上的内联、图像必须是数据URI),我可以使用iframe来实现(如果它在相同的域、端口和协议中,我也可以使用JavaScript访问它)。

你知道Gmail是一组iframe吗?可见的部分就是巧妙的定位。此外,许多OAuth实现(推特、脸书、谷歌、雅虎!)通常使用iframes将其域上的用户与成功的身份验证URL相关联(用于用户登录后)。

票数 105
EN

Stack Overflow用户

发布于 2010-09-26 18:07:29

IFRAMEs用于将第三方内容嵌入和隔离到网站中。

大多数web广告解决方案都是基于iframes的--因为它们提供了安全性(跨域策略)和屏幕上的孤立矩形,可以完全由第三方内容和脚本管理(一个常见的用例是广告)。

IFRAMES的另一个现代用途是管理AJAX应用程序的历史记录(常见的后退按钮解决方法)。

FRAMEs是IFRAMES的劣质版本。它们的使用率正在下降。

票数 24
EN

Stack Overflow用户

发布于 2010-09-26 17:25:34

如果用户禁用了javascript,iframe就会在ajax不起作用的情况下工作,考虑到人们都在使用像NoScript这样的东西,这也不是不可能的。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3797179

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档