我有一个策划视频的网站。这些视频包含在具有跨域URL的iframe
中。用户主要与视频互动,该视频加载了第三方承包商设计的一些自定义控件。
鉴于我对该跨域服务器的访问权限受到限制,我添加了一些Javascript代码来侦听全屏按钮上的点击。此时,我的工作是全屏显示 parent 元素,而不是video
中的iframe
元素。
具体地说,我们的页面看起来像这样:
<div class="iframe-root">
<video-chat/> <!-- Component with lots of children -->
<iframe frameborder="0">
</div>
我的目标是对<div class="iframe-root">
元素进行全屏显示,以使<video-chat/>
组件也以全屏显示。
到目前为止,我已经尝试过听全屏按钮上的点击,并通过window.parent
向window.parent.postMessage({action: "fullscreen"}, '*')
发布消息。但是,这种方法无法成功,因为浏览器会通过以下消息阻止父母的全屏请求:
Failed to execute 'requestFullScreen' on 'Element': API can only be initiated by a user gesture
是否可以在跨域iframe
中进行的单击中全屏显示父文档中的元素?如果是这样,我该如何实现?