2017-08-04 6 views
0

誰かが自分のサイトのボタンをクリックすると、YouTubeのIFrame APIが読み込まれます。モーダルウィンドウに読み込まれます。このボタンでは、ビデオIDも「data-video-id」属性に設定しています。下記のようなAPIコードで動画IDを静的に宣言するのではなく、YouTube APIに動画IDを動的に読み込む方法はありますか?YouTube IFrame API - データIDからビデオIDを設定

var player; 
function onYouTubeIframeAPIReady() { 
    player = new YT.Player('video-placeholder', { 
     height: '1920', 
     width: '1080', 
videoId: 'GfCPFk8lyhM', <---(how do I make this dynamic?) 
     playerVars: { 
      modestbranding: 1, 
      rel: 0, 
     }, 
     events: { 
      'onReady': onPlayerReady 
     } 
    }); 
} 

おかげで、 ブライアン

答えて

0

はそうのようなパラメータとして関数にそれを養います。私はAPIを使用していませんが、ビデオIDを動的にする方法の素早い方法があります。あなたが "loadVideoById" 機能を使用する必要が

var player; 
 

 
function onYouTubeIframeAPIReady(videoId) { 
 
    player = new YT.Player('video-placeholder', { 
 
     height: '1920', 
 
     width: '1080', 
 
     videoId: videoId, 
 
     playerVars: { 
 
      modestbranding: 1, 
 
      rel: 0, 
 
     }, 
 
     events: { 
 
      'onReady': onPlayerReady 
 
     } 
 
    }); 
 
} 
 

 
document.getElementById('btn-video').addEventListener('click', function() { 
 
    var videoId = this.dataset.videoId; 
 
    onYouTubeIframeAPIReady(videoId); 
 
    document.getElementById('debug').innerHTML = videoID + ' has been submitted'; 
 
});
<button id="btn-video" data-video-id="GfCPFk8lyhM">Play</button> 
 

 
<span id="debug"></span>

+0

それはうまくいかないようです。私は "値();を交換しています。 "data-video-id();"の場合それは私のビデオIDがボタン上にあるからです。 その行に「ビデオが定義されていません」と表示されています。 – Brian

+0

これを 'document.getElementById( 'ipt-video')。dataset.videoId'にスワップする必要があります。更新された例を参照してください。 – Win

+0

ボタンをクリックするまでYouTube APIスクリプトを読み込みません。まだこの作業をすることは可能ですか? – Brian

0


iFrame APIには、必要なすべての機能があります。

HEREはあなたのためのリンクです。

これは、使用する必要があります。

+0

ボタンがクリックされるまでYouTubeスクリプトが読み込まれない場合、これは機能しますか? – Brian

関連する問題