プログラムで停止する必要があるYouTubeビデオiframeがHTMLに埋め込まれていますが、iframeのIDを設定できません。したがって、ドキュメントで指定されているように、iframe IDではなくYT.PlayerコンストラクターにDOM要素を渡して、YouTubeオブジェクトを作成しようとしています。また、iframe srcurlの最後に「?enablejsapi=1」を追加しました。
次のコードを使用して、jsファイルの先頭にyoutubejsapiをロードしました。
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
function onYouTubePlayerAPIReady(){ console.log('yt api ready'); }
その後、次のコードがあります。
$(function(){
$('a.close').click(function(){
var player = new YT.Player($('iframe').get(0));
player.stopVideo();
});
})
出力を取得します:
yt api ready
Uncaught TypeError: Object [object Object] has no method 'stopVideo'
どういうわけかオブジェクトのインスタンス化を台無しにしていると思いますが、これを正しく行う方法がわかりません。コンストラクターにiframeIDを渡さずにYT.Playerオブジェクトを作成するにはどうすればよいですか?助けてくれてありがとう。