难度级别:中级及以上 提问概率:50%
iframe是一个HTML标签,它可以在一个网页中嵌入另外一个网页,甚至是把其他的网站嵌入进来。在之前的很长时间里,内部管理系统都在使用iframe,做为菜单切换的主体模板区域框架。iframe包含一个src属性,当切换菜单的时候,动态为iframe的src属性赋对应的url链接,iframe区域内就可以展示不同的模块内容。
从优点上说,这听上去是不是很像现在的Vue组件,当项目中多处需要使用某个网页内容的时候,那么只需要使用iframe做为嵌入架构就可以实现,而且如果遇到需求改动,也只改动那一个网页就可以。就像上面说的,在内部管理系统中,头部和菜单模块的功能和样式基本不变,在iframe架构中切换对应的内容,这无疑极大增强了代码的重用性,而我们前端不一直在强调重用性嘛。其实不光是内部管理系统,很多C端用户网站,如果要在网站中嵌入第三方网页,或是加一个外部的广告,这些都是iframe很好的使用场景,而且嵌入的网站不会与本网站产生干扰。
尽管它的优点很多,但在越来越关注用户体验的今天,它的缺点越来越显露出来了。例如iframe本身会存在滚动条,而如果嵌入网页内部又存在滚动条,这会使网页用户体验非常差,经常需要拖动多层滚动条;iframe也像table一样,对网页的渲染产生极大的影响;同时在iframe框架里面的内容,很难被搜索引擎抓取到,这也是它的一大致命缺点;而且现在用户越来越习惯使用手机访问网页,iframe在兼容性表现就更糟糕了。基于以上缺点,使得iframe被使用的越来越少了。
刷题思考
要回答好这道题,很大程度上取决于你是否使用过iframe这个框架标签,因为现在的前端开发已经越来越少的使用iframe了,但并不代表它已经退出历史舞台了,仍然会有很多团队在使用。很多细节,如果自己没有在日常工作中遇到过,是很难有自己思考的。所以对于求职刷题环节,自己日常积累,再通过上网学习,最终融合到自己的经历中,才是上乘的答案。
类似考点
这道题是在说iframe正在退出前端历史舞台,那么你知道还有哪些标签,但随着前端的发展,使用频率也在不断降低吗?这一节中说到iframe影响页面性能,那么你还知道哪些标签功能丰富,但也会影响性能吗?