iframe 这些属性你可能不知道

原创
前端路迹
2022-11-24 21:58
编辑于 2022-11-26 11:00

allow

配置iframe内的页面调用某些特殊api的权限。

比如之前在 iframe 内页面调用 navigator.clipboard.writeText 将文本写入系统的剪贴板,会报错,就需要在 iframe 上配置 allow="clipboard-read; clipboard-write" 属性后才能调用成功。

allow="autoplay" 允许内嵌页面自动播放
allow="camera; microphone" 运行页面访问摄像头,麦克风

所有的特性可参考 https://github.com/w3c/webappsec-permissions-policy/blob/main/features.md

完整的特性策略的书写规则是:feature origin; feature origin

比如

<iframe allow="clipboard-write '*'" src="https://qinshenxue.com" ></iframe>

origin 支持下列配置

allowfullscreen

配置后 iframe 内页面就可以调用 requestFullscreen() 激活浏览器的全屏,使得iframe内的页面能够全屏显示出来。

这个属性已经被重新定义为 allow="fullscreen"。

importance

表示 iframe 的 src 属性指定的资源的加载优先级。允许的值有:

实测多个iframe配置不同的优先级和不配置加载基本一致,可能是浏览器未实现此特性。

referrerpolicy

表示在获取 iframe 资源时如何发送 referrer 首部:

sandbox

该属性对呈现在 iframe 框架中的内容启用一些额外的限制条件。属性值可以为空字符串(这种情况下会启用所有限制),也可以是用空格分隔的一系列指定的字符串。有效的值有:

<iframe src="https://qinshenxue.com"  sandbox=""></iframe>

配置空字符串会报错

<iframe src="https://qinshenxue.com"  sandbox="allow-scripts"></iframe>

配置 allow-scripts,点击链接会报错

srcdoc

该属性是一段 HTML 代码,这些代码会被渲染到 iframe 中。如果浏览器不支持 srcdoc 属性,则会渲染 src 属性表示的内容。

在 Chrome 下测试。

<iframe src="https://qinshenxue.com" srcdoc="<style>h1{color:red}</style><h1>测试</h1><script>console.log('test')</script>"></iframe>

转载请注明出处。本文地址: https://www.qinshenxue.com/article/iframe-also-has-these-properties-you-may-not-know.html
关注我的公众号