如何访问 iframe 的事件“onplay()”?

Posted

技术标签:

【中文标题】如何访问 iframe 的事件“onplay()”?【英文标题】:How to access event "onplay()" for iframe? 【发布时间】:2016-11-25 08:47:39 【问题描述】:

我在一页中有两个 iframe。

<iframe id="video"   src="//www.youtube.com/embed/9B7te184ZpQ?rel=0" frameborder="0" allowfullscreen></iframe>
<iframe id="video1"   src="//www.youtube.com/embed/9B7te184ZpQ?rel=0" frameborder="0" allowfullscreen></iframe>

我想访问 iframe 的onplay() 事件,然后我可以在播放第一个视频(#Video) 时停止第二个视频(#Video1) 并在播放第二个(@) 时停止第一个视频(#Video) 987654326@).

可以使用YoutubeAPI,但我不想使用它,因为我有其他 url 视频而不是 Youtube 视频(这里我放了 youtube 链接而不是原始链接以避免版权)。除了YoutubeAPI,还有其他方法吗? YoutubeAPI 未处理其他链接资源。请提出建议。

【问题讨论】:

JS代码中无法访问跨域iframe的内容。 谢谢。是否有另一种方法可以在播放当前视频时停止其他视频。 【参考方案1】:

它有两个&lt;iframe&gt;。首先,您需要在iframe 之间切换。

Is there a way to change context to iframe in javascript console?

之后,这里是我的代码如何访问&lt;iframe&gt;的事件onPlay()

<script src="https://www.youtube.com/iframe_api"></script>

<div class="module module-home-video">
    <span class="module-strip">Latest Product Video</span>
    <div id="video"></div>
</div>

<script>
    var player, playing = false;
    function onYouTubeIframeAPIReady() 
        player = new YT.Player('video', 
            height: '360',
            width: '640',
            videoId: 'xmhtV4270NU',
            events: 
                'onStateChange': onPlayerStateChange
            
        );
    

    function onPlayerStateChange(event) 
        if(!playing)
            alert('onPlay is clicked');
            playing = true;
        
    
</script>

【讨论】:

谢谢,但正如我提到的,我只能使用 YoutubeAPI。有没有不使用 YoutubeAPI 的其他方法。

以上是关于如何访问 iframe 的事件“onplay()”?的主要内容,如果未能解决你的问题,请参考以下文章

音频标签的 Html5 延迟“onplay”事件处理程序?

如何从 RemoteMedia 捕获播放开始

“onplay”有延迟吗?

javascript-如何检测 iframe 中的滚动事件?

如何使多个用户可以访问 iframe?

关于iframe里的子页面如何调取父级页面里的事件(子调父)