从父级的播放按钮在 iframe 中播放 html5 视频

Posted

技术标签:

【中文标题】从父级的播放按钮在 iframe 中播放 html5 视频【英文标题】:play html5 video inside iframe from play button in parent 【发布时间】:2015-12-03 23:50:21 【问题描述】:

我有一个网页,其中包含 iframe 中的视频。可以通过点击页面上的链接来更改 iframe 中的视频。 我在父页面上有一个播放和暂停按钮,我想用它来开始和停止 iframe 中视频的播放。

在没有 iframe 的页面上,我使用此代码来播放和暂停视频

    <script> 
var vid = document.getElementById("VIDEO"); 

function playVid()  
    VIDEO.play(); 
 

function pauseVid()  
    VIDEO.pause(); 
 
</script>

我需要获取此脚本以引用 iframe 中的视频。有什么想法可以让它发挥作用吗?

注意:出现在 iframe 中的视频每个都嵌入在自己的页面上,因此我可以将它们设置为不显示播放控件并循环播放。

【问题讨论】:

【参考方案1】:

您的 iframe 文档应与原始文档位于同一域中,而不是您将受到 same-origin policy 限制。

如果没问题,那就举个例子:

index.html

<iframe src="frame.html" style="width: 200px;height: 200px;" id="video_frame"></iframe>
<br/><button type="button" onclick="play_video()">Play</button>
<script>
function play_video()

    document.getElementById('video_frame').contentWindow.playVid();

</script>

frame.html

<embed id="VIDEO" ... />
<script> 
var vid = document.getElementById("VIDEO"); 

function playVid()  
    VIDEO.play(); 
 

function pauseVid()  
    VIDEO.pause(); 
 
</script>

【讨论】:

非常感谢,效果很好。你不知道我尝试了多少不同的方法。我的大错误是试图将所有脚本放在父级中。拍拍自己的后背;) Uncaught TypeError: VIDEO.play is not a function 我在运行时遇到此错误

以上是关于从父级的播放按钮在 iframe 中播放 html5 视频的主要内容,如果未能解决你的问题,请参考以下文章

Fancybox iframe 内容 - 如何从父级访问 CSS?

Fancybox (jQuery) - 将信息从父级传递到 iframe 并将 iframe 传递回父级

从父级初始化子级的变量

如何从父级及其子级的 Firebase 中获取随机数据 [重复]

从父级导航嵌入式 Google Apps 脚本 iFrame

YouTube Player API 在 iframe 中隐藏播放按钮、图标和视频标题