2012-04-20 9 views
3

プログラムで停止する必要があるhtmlに埋込みYouTube動画iframeがありますが、iframeのIDを設定できません。したがって、DOM要素をdocsに指定されているiframe idではなく、YT.Playerコンストラクタに渡してyoutubeオブジェクトを作成しようとしています。私はまた、 '?enablejsapi = 1'をiframeのsrc urlの最後に付け加えました。DOMオブジェクトを渡すことで、HTMLのiframeからYT.Playerオブジェクトを作成します。

私は次のコードを使用して、私のjsファイルの先頭にユーチューブJS APIをロードしている:私は次のコードを持ってその後

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' 

私はオブジェクトのインスタンス化をどうにかしていないと思っていますが、これを行う方法はわかりません正しくiframe idのコンストラクタを渡さずにYT.Playerオブジェクトを作成するにはどうすればよいですか?助けてくれてありがとう。

答えて

3

ビデオハングアウトコールをプレーヤーオブジェクトのレディイベントに移動する必要がありました。

function onMyPlayerReady(event) { event.target.stopVideo(); } 

とにyt.playerコンストラクタを変更:

new YT.Player($('iframe').get(0), { events: { 'onReady': onMyPlayerReady } }); 
+1

、あなたの完全なコードを投稿できる任意のチャンスを、以下の変更が

には、以下の機能を追加しました私のためにそれを修正しましたか?私はyt.playerコンストラクタをどこに置いているかわからないのですか?クリックイベント内で? – helgatheviking

関連する問題