跨域iframe 配置fullscreen权限
在新版本的 Chrome 等浏览器中,默认情况下禁止了跨域 iframe 开启全屏的权限。在 iframe 中,我们通常使用 element.requestFullscreen() 方法来进行全屏展示。根据 MDN 文档,为了让 iframe 展示全屏,我们需要配置 allowfullscreen 属性,注意这个属性已经被重新定义为 allow="fullscreen"。
HTMLCopy<iframe src="xxx" allow="fullscreen"></iframe>
W3C 提供了一个新标准叫做 Permissions-Policy,可以通过在返回的响应中传递权限策略的 HTTP 标头来进行更加精细化的权限控制。如果没有配置,默认是允许所有权限。权限策略会与 iframe 的 allow 属性取交集,也就是说,如果你的 iframe 没有设置 allow 属性,即使允许了所有权限,也不会生效。
我们可以在控制台的元素中对 iframe 元素点击右键,显示 iframe 的详细信息,就可以看到这个 iframe 的权限策略。
比如,SecureCorp 公司想要在应用中禁用震动和定位 API,可以在返回的响应中传递以下定义权限策略的 HTTP 标头信息:
HTTPCopyPermissions-Policy: vibrate 'none'; geolocation 'none'
通过使用 'none' 关键词,不管原来如何设定,这些特性在所有浏览上下文中都会被禁用。
Permissions-Policy:
其中,<allowlist> 可以是以下几种:
*:允许在当前文档和所有包含的内容(比如 iframes)中使用该特性。'self':允许在当前文档中使用该特性,但在包含的内容(比如 iframes)仍使用原值。'src':(只在 iframe 中允许)只要在src中的 URL 和加载 iframe 用的 URL 相同,则在 iframe 中允许该特性。'none':从最上层到包含的内容都禁止该特性。<origin(s)>:在特定的源中允许,源 URL 以空格分割。
* 和 'none' 只允许单独使用,而 'self' 和 'src' 可以与多个源地址一起使用。
所有特性的默认 allowlist 如下:
*:本特性默认在最上层和包含的内容中(如 iframes)允许。'self':本特性默认在最上层允许,在包含的内容中(如 iframes)使用源地址相同的设置。也就是说,该特性在 iframe 中不允许跨域访问。'none':本特性默认在最上层和包含的内容中(如 iframes)都禁止。
参考文章:
跨域iframe 配置fullscreen权限的更多相关文章
- 跨域请求配置 Amazon AWS S3 腾讯云 阿里云 COS OSS 文件桶解决方案以及推荐 Lebal:Research
跨域请求配置 跨域请求指的就是不同的域名和端口之间的访问.由于 ajax 的同源策略影响.跨域请求默认是不被允许的. 使用@font-face外挂字体时,可能遇到跨域请求CROS问题:F12控制台报错 ...
- 跨域iframe的高度自适应
If you cannot hear the sound of the genuine in you, you will all of your life spend your days on the ...
- 使用postMesssage()实现跨域iframe页面间的信息传递----转载
由于web同源策略的限制,当页面使用跨域iframe链接时,主页面与子页面是无法交互的,这对页面间的信息传递造成了不小的麻烦,经过一系列的尝试,最后我发现有以下方法可以实现: 1. 子页面url传参 ...
- 完美实现跨域Iframe高度自适应【Iframe跨域高度自适应解决方案】
Iframe的强大功能偶就不多说了,它不但被开发人员经常运用,而且黑客们也常常使用它,总之用过的人知道它的强大之处,但是Iframe有个致命的“BUG”就是iframe的高度无法自动适应,这一点让很多 ...
- javascript跨域通信(一):利用location.hash实现跨域iframe自适应
页面域关系: a.html所属域A:www.A.comb.html所属域B:www.B.com 问题本质: js对跨域iframe访问问题,因为要控制a.html中iframe的高度和宽度就必须首先读 ...
- 谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!
谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个 ...
- spring mvc \ spring boot 允许跨域请求 配置类
用@Component 注释下,随便放个地方就可以了 package com.chinaws.wsarchivesserver.core.config; import org.springframew ...
- Web Api跨域访问配置及调用示例
1.Web Api跨域访问配置. 在Web.config中的system.webServer内添加以下代码: <httpProtocol> <customHeaders> &l ...
- nginx反向代理跨域基本配置与常见误区
最近公司前后端分离,前端独立提供页面和静态服务很自然的就想到了用nginx去做静态服务器.同时由于跨域了,就想利用nginx的反向代理去处理一下跨域,但是在解决问题的同时,发现网上有些方案的确是存在一 ...
- geoserver源码学习与扩展——跨域访问配置
在 geoserver源码学习与扩展——restAPI访问 博客中提到了geoserver的跨域参数设置,本文详细讲一下geoserver的跨域访问配置. geoserver的跨域访问依赖java-p ...
随机推荐
- 云服务器ECS共享标准型S6全新发布,行业内最具性价比
近日,阿里云弹性计算发布全新一代云服务ECS共享标准型S6,性能相对上一代实例提升15%以上,价格相对上一代最高降低42%,是目前国内云计算厂商更能够提供的最具性价比的云服务器产品.一些中小型网站.轻 ...
- 深入浅出eBPF|你要了解的7个核心问题
简介: 过去一年,ARMS基于eBPF技术打造了Kubernetes监控,提供多语言无侵入的应用性能,系统性能,网络性能观测能力,验证了eBPF技术的有效性.eBPF技术和生态发展很好,未来前景广大, ...
- 持续定义Saas模式云数据仓库+实时分析
简介: 从实时分析的价值.场景和数据流程,以及用户对平台能力要求展开,讲述云数据仓库MaxCompute的产品能力优势 ,面对实时分析场景的能力演进要求.进而以实时分析典型场景的全数据流程处理.建模和 ...
- 利器解读!Linux 内核调测中最最让开发者头疼的 bug 有解了|龙蜥技术
简介:通过在Anolis 5.10 内核中增强 kfence 的功能,实现了一个线上的.精准的.可定制的内存调试解决方案. 编者按:一直持续存在内核内存调测领域两大行业难题: "内存被改& ...
- 长文解析:作为容器底层技术的半壁江山, cgroup如何突破并发创建瓶颈?
简介: io_uring 作为一种新型高性能异步编程框架,代表着 Linux 内核未来的方向,当前仍处于快速发展中.阿里云联合 InfoQ 发起<io_uring 介绍及应用实践>的技术 ...
- element-ui表单重置函数 resetFields 无效解决
由element-ui文档中能看到重置表单使用的是如下函数 this.$refs[formName].resetFields(); 但是有时使用它却可能会失效 解决: form-item中要加上pro ...
- Ansible的yaml文件
ansible提供的脚本,遵循规范yaml(一般用于写配置文件) 可用于配制文件的语言:yaml.xml.json - 冒号后面必须有空格 - 横线后面必须要空格 - 严格保持对齐 - 等号前面不能有 ...
- 在网页上直接运行Win11,5秒内用AI克隆自己的声音 | 蛮三刀酱的Github周刊第二期
大家好,这里是每周更新的Github精彩分享周刊,我是每周都在搬砖的蛮三刀酱. 我会从Github热门趋势榜里选出 高质量.有趣,牛B 的开源项目进行分享. 1. PowerShell:不止于Wind ...
- Zookeeper中的角色
在zookeeper集群中,节点也有不同的角色,承担着不同角色. zookeeper有三种角色: 老大:Leader (领导者) : 客户端提供读服务和写服务. 老二:Follower(跟随者 ...
- NumPy 数组切片及数据类型介绍
NumPy 数组切片 NumPy 数组切片用于从数组中提取子集.它类似于 Python 中的列表切片,但支持多维数组. 一维数组切片 要从一维数组中提取子集,可以使用方括号 [] 并指定切片.切片由起 ...