Fenced Frames 是 Chromium 115+ 独有实验性 API,需启用特定运行时标志、Permissions Policy(fenced-frame=*)并用 JS 动态创建 FencedFrameConfig 加载,不支持 src 属性或传统 iframe 通信机制。
Fenced Frames 目前无法在标准 HTML 中直接启用——它不是的替代语法,也不受属性或普通 CSP 控制;它是 Chromium 独有的实验性 API,必须配合 Permissions Policy 和运行时标志才能启用。
为什么
标签写进去没反应
浏览器会直接忽略该标签(不报错、不渲染),因为:当前仅 Chromium 115+ 在开启
且页面启用了对应策略时才解析该元素。主流 Safari、Firefox 完全不识别该标签,HTML 标准也未纳入。
检查 Chrome 版本:必须 ≥ 115,且启动时加参数(开发环境可用
)
页面需声明 Permissions Policy:
或通过 HTTP Header
不支持
,只接受
或通过 JS 调用
+
对象加载
如何用 JS 正确加载广告内容到 Fenced Frame
必须使用
构造配置对象,并通过
动态插入——这是唯一合规路径,
写法无效。
广告方需提前注册为可嵌入源(通过
或服务端生成加密配置)
配置必须包含
(指向广告方托管的 FLEDGE 兼容响应页)、
(宽高数组)、
(如
)
示例关键代码:
Fenced Frames 和传统
的核心隔离差异
不是“更安全的 iframe”,而是从设计上切断所有跨上下文通信能力:无 postMessage、无 DOM 访问、无 Cookie 共享、无 referrer 透出、无 JavaScript 执行环境暴露——广告脚本完全运行在独立的、不可观测的沙箱中。
使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
下载
立即学习
“
前端免费学习笔记(深入)
”;
传统 iframe 可通过
、
、
等获取宿主信息;Fenced Frame 这些全部返回空或默认值
广告渲染结果只能以位图形式合成进主页面(类似
输出),无法触发点击事件冒泡,需依赖 Reporting API 回传归因数据
性能开销更高:每次加载都触发完整进程隔离和渲染管线重建,不适合高频切换或非广告场景
真正落地时,你得先确认广告合作方是否已支持 FLEDGE 渲染链路,再配好 Permissions Policy 和 Chrome 启动参数;漏掉任一环,
都只是个透明空标签。它不是渐进式增强,而是一整套需要上下游协同的隐私沙箱基础设施。
allow--enable-features=PrivacySandboxAdsAPIs,RestrictFencedFramesToRootNavigationchrome --enable-features=PrivacySandboxAdsAPIs,FencedFramessrcsrcdocdocument.createElement('fencedframe')configFencedFrameConfigdocument.createElement('fencedframe')document.fence.registerAdInterestGroup()urlsizeattributes{'mode': 'opaque-ad'}const config = new FencedFrameConfig({ url: 'https://ad.example/fledge?render=1', size: [300, 250] });
const ff = document.createElement('fencedframe');
ff.config = config;
container.appendChild(ff);window.parentdocument.referrernavigator.userAgent