7.1 元素 <iframe>
在 HTML 中,<iframe>
元素用于在当前文档中嵌入另一个 HTML 文档。
这样可以在主文档内部显示其他网页的内容,创建集成各种资源的可能性,比如视频、地图、文档及其他网页。
<iframe>
元素创建一个内嵌框架,可以显示其他 HTML 文档。
这个文档可以从任何 URL 地址加载,并独立于主文档运行。
语法:
<iframe src="URL"></iframe>
使用示例:
HTML
<iframe src="https://www.example.com" width="600" height="400" title="iframe 示例"></iframe>
属性
src
: 将被加载到<iframe>
中的文档的 URL 地址width
: 框架的宽度(可以用像素或百分比表示)height
: 框架的高度(可以用像素或百分比表示)title
: 框架内容的简短描述(对无障碍性很重要)name
: 框架的名称,可以用于链接和表单的目标定位sandbox
: 为框架内容设置限制,提高安全性allow
: 确定在<iframe>
中可以使用哪些功能(例如,allowfullscreen
用于全屏模式)
7.2 属性 allowfullscreen
allowfullscreen
属性允许 <iframe>
中加载的内容启用全屏模式。
没有这个属性,内容不能进入全屏模式。
语法:
HTML
<iframe src="https://www.example.com" allowfullscreen></iframe>
使用示例:
HTML
<iframe
width="560"
height="315"
src="https://www.youtube.com/embed/dQw4w9WgXcQ"
allowfullscreen>
</iframe>
全屏模式允许用户以全屏模式观看视频或其他资源,提升用户体验。
7.3 属性 allow
allow
属性定义了哪些功能可以在 <iframe>
中使用,比如访问地理位置、摄像头、麦克风和全屏模式。
语法:
allow="geolocation; microphone; camera; fullscreen"
使用示例:
HTML
<iframe
src="https://www.example.com"
allow="geolocation; microphone; camera; fullscreen">
</iframe>
优势:
- 功能控制: 允许指定哪些功能和 API 可被嵌入内容使用
- 权限管理: 提供灵活性以管理对地理位置、摄像头等功能的访问
7.4 属性 sandbox
sandbox
属性用于对 <iframe>
中加载的内容应用限制。 它阻止执行某些操作,如执行脚本或打开弹出窗口,从而提高安全性。
语法:
sandbox="allow-scripts allow-same-origin"
沙箱属性的值:
allow-forms
: 允许提交表单allow-modals
: 允许使用模式窗口allow-orientation-lock
: 允许锁定屏幕方向allow-pointer-lock
: 允许捕获指针allow-popups
: 允许打开弹出窗口allow-popups-to-escape-sandbox
: 允许弹出窗口超出沙箱范围allow-presentation
: 允许访问演示 APIallow-same-origin
: 允许来自相同来源的脚本执行allow-scripts
: 允许执行脚本allow-storage-access-by-user-activation
: 允许用户激活访问存储allow-top-navigation
: 允许顶级导航allow-top-navigation-by-user-activation
: 允许通过用户激活的顶级导航
使用示例:
HTML
<iframe
src="https://www.example.com"
sandbox="allow-scripts allow-same-origin">
</iframe>
优势:
- 安全性: 防止执行潜在的恶意脚本并限制嵌入内容的功能
- 访问控制: 让开发者精确指定嵌入内容允许的功能
7.5 属性 loading
loading
属性控制 <iframe>
的加载方式,允许在元素显示在屏幕上时再加载(懒加载)。
loading 属性的值:
- lazy: 推迟加载
<iframe>
直到元素可见 - eager: 不管元素是否可见,
<iframe>
都会立即加载
语法:
loading="状态"
使用示例:
HTML
<iframe
src="https://www.example.com"
width="600"
height="400"
loading="lazy">
</iframe>
优势:
- 性能优化: 懒加载减少加载的数据量,加快页面加载速度
- 资源利用降低: 仅加载用户真正看到和使用的元素
GO TO FULL VERSION