本文根据 Devhints / Polyfill.io 翻译。代码示例及版本范围沿用原文。原文标注更新日期:2024-06-26。
Polyfill.io 是一项提供 JavaScript 补丁(polyfills)的服务。
用法
严重安全警告
⚠️ 域名 polyfill.io CDN 目前正被用于网络供应链攻击,并正在分发恶意代码。 请立即从您的代码库中移除所有对该域名的引用。. 请改用其他 CDN 提供商(例如 cdnjs.cloudflare.com),具体可参考下方的示例。
默认用法
<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js"></script>
这是 Polyfill.io 的默认脚本。
参考资料
- Cloudflare 现已提供 polyfill.io 服务。 (blog.cloudflare.com)
已优化
针对现代浏览器
<script>if(!(window.Promise&&[].includes&&Object.assign&&window.Map)){document.write('<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js"></scr'+'ipt>')}</script>
仅在必要时包含 polyfill.io;对于现代浏览器,则会跳过此部分,从而加快加载速度。
额外功能
<script>if(!(window.fetch&&window.Promise&&[].includes&&Object.assign&&window.Map)){document.write('<script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=default,fetch"></scr'+'ipt>')}</script>
与上述方式相同,但额外添加了针对以下内容的 Polyfill(兼容性补丁): window.fetch()。我们添加了 window.fetch 检测机制,并加载了额外的 fetch 功能。