延迟加载嵌入式 YouTube 视频

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 200 美元的免费额度!

这是一个来自 Arthur Corenzan 的非常巧妙的想法。与其使用默认的 YouTube 嵌入,这会在页面上添加大量资源(无论用户是否播放视频),不如使用一个小小的占位符网页,它只是一个可以点击并链接到 YouTube 嵌入的图片。

它的行为本质上仍然完全相同:点击,在适当位置播放视频。

这个技巧源于srcdoc,它是<iframe>的一个特性,您可以在其中将整个 HTML 文档的内容放入属性中。它就像内联样式,但更像是内联整个文档的东西。我过去曾在将 MailChimp 创建的电子邮件简报嵌入到此网站时使用过它。我会将电子邮件作为完整的 HTML 文档保存到数据库中,根据需要检索它,然后将其放入带有srcdoc<iframe>中。

Arthur 感谢 Remy 对使其在 IE 11 中工作进行的调整,并感谢 Adrian 进行的一些无障碍改进。

我也同意那篇文章评论中 Hugh 的观点。现在 Chrome 中已引入 原生延迟加载(请参阅 我们的报道),我们不妨也加上loading="lazy",因为如果它渲染在视口之外,则意味着根本不会发出任何请求

我在这里也嵌入一个演示

读者 Tracey Rich 说他们需要使用&#x25BA; 而不是那个 Unicode 播放按钮。