【HTML】iframe

56 阅读2分钟

iframe 称为嵌入式框架,会将一个完整的网页内容嵌入到现有的网页中。

<p>iframe 嵌入网站</p>
<iframe src="https://www.juejin.cn" width="100%" height="500px"></iframe>

image.png

应用场景用得较少。比如模拟窗口、邮箱、html 在线编辑器。

它有很多不便,比如:处理自适应高度、爬虫无法爬取内容。

1. 基本用法

<iframe src="example.html" width="500" height="300" frameborder="0" scrolling="auto"></iframe>
  • src 属性指定要嵌入的文档的 URL。
  • widthheight 属性定义 <iframe> 的宽度和高度。
  • frameborder 属性指定是否显示 <iframe> 周围的边框,常见值为 0(不显示)和 1(显示)。
  • scrolling 属性指定 <iframe> 是否具有滚动条,可选值为 yesnoauto

2. 目的

  • 嵌入外部网页:可以在当前页面中嵌入其他网页,使用户可以直接在当前页面中访问其他网站的内容。
  • 保持内容的独立性:可以在一个 HTML 页面中嵌入另一个 HTML 页面,使它们保持独立的加载和渲染,相互之间不会影响。

3. 特性

  • 独立性: <iframe> 中的文档是独立于父文档的,即使 <iframe> 中的文档被修改或加载,父文档也不会受到影响。
  • 跨域访问: <iframe> 允许在不同域名的文档之间进行通信,但是在跨域通信时需要注意安全性。
  • 可交互性: <iframe> 中的内容可以与父文档进行交互,通过 JavaScript 等方式,可以在父文档和 <iframe> 之间进行通信和数据传递。

4. 注意事项

  • SEO 问题:搜索引擎可能不会索引 <iframe> 中的内容,因此在 SEO 优化时需要注意。
  • 安全问题:<iframe> 可能会被用于执行跨站脚本(XSS)攻击,因此需要注意安全性,避免加载不可信的内容。
  • 产生很多页面,不容易管理
  • 调用外部页面,需要额外调用 css,带来额外的请求次数
  • 阻塞页面的加载,window 的 onload 事件需要在所有 iframe 加载完毕之后才会触发
  • 浏览器的后退按钮无效
  • 多数小型移动设备无法完全显示框架

5. 用途示例

  • 在网页中嵌入在线地图或其他第三方服务。
  • 在网页中嵌入广告或视频播放器。
  • 实现网页中的一部分动态加载,提升用户体验。