モーダルを閉じたときに 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 -->
これは、モーダルに ?enablejsapi=1 を含む youtube ビデオを挿入する 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();
かなりの数のターゲティング方法を試しましたが、何も機能していません。
助けてくれてありがとう。チャーリー・マギー