【发布时间】:2012-12-28 00:07:24
【问题描述】:
当模态框关闭时,我似乎无法让 YouTube 视频停止播放。视频消失,但音频继续播放。
我已经尝试了许多其他问题的解决方案,但似乎没有任何效果。我认为这可能是因为我的视频嵌套很深,我无法定位它。和/或因为 iframe 具有相同名称的元素 ID。 (不要让我开始。)
这是 DOM 的简化视图:
html
head
body
<div id="popoverview">
<div id="popoveritem">
<iframe id="popoverframe"> <!-- this is our modal -->
#document
html
head
body
<div id="popovercontainer">
<div id="popover_upc_video">
<div id="current_video">
<div id="player">
<iframe id="popoverframe">
#document <!-- this is from youtube -->
html
head
body
<div id="player">
<div id="playercontainer">
<embed id="video-player-flash"> <!-- the video -->
以下是将 youtube 视频(包括 ?enablejsapi=1)插入模态的 javascript:
document.getElementById('player').innerHTML = '<iframe id="youtubevideo" width="620" height="376" src="http://www.youtube.com/embed/'+youtube_id+'?enablejsapi=1?hl=en&rel=0&fs=1&modestbranding=1" frameborder="0" allowfullscreen>Error?</iframe>';
这里有一些关闭模态的函数。问题是音频一直在播放。错误信息是 Uncaught TypeError: Object [object Object] has no method 'stopVideo'。
var myPlayer = $('#player > #video-player-flash');
myPlayer.stopVideo();
我尝试了很多定位方法,但没有任何效果。
感谢您的帮助。 查理马吉
【问题讨论】:
-
你可能需要这样做:
$("#popoverframe").contents().find("#popoverframe").contents().find("#player #video-player-flash").stop() -
如果
#video-player-flash是#playercontainer的子级,$('#player > #video-player-flash');也是不正确的。应该是$('#player #video-player-flash'); -
不。不会改变任何东西。基于此的各种组合也不起作用。