2016-01-16 2 views
1

, кажется, что я пропускаю что-то очевидное здесь, но я не могу получитьне может стрелять «loadVideoByUrl („...“)» из Youtube в Iframe-API - не определено

var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 

var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

var player; 
function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player1'); 
    // here everything is fine and I can see the 
    // function as part of player 
    console.log(player); 
    // but here it says "player.loadVideoByUrl()" undefined 
    player.loadVideoByUrl("https://youtu.be/bHQqvYy5KYo"); 
    player.playVideo(); 
} 

работать. Есть идеи?

Заранее благодарен!

+0

Могу ли я спросить, почему бы вам не добавить iframe_api в качестве статического сценария на странице? Является ли это способом Youtube? –

+0

Это часть официальной документации youtube: https://developers.google.com/youtube/iframe_api_reference Никогда не думал об этом до сих пор. – Jonathan

+0

Я вижу, это не имеет отношения к нашему делу, я добавил ответ ниже. –

ответ

2

Я предполагаю, что player не инициализируется, пока вы вызываете функцию loadVideoByUrl. В документации используются

events: { 
     'onReady': onPlayerReady, 
     'onStateChange': onPlayerStateChange 
     } 

события игрока. Кажется, объект игрока строится асинхронно. Поэтому, если вы используете эти события, код будет выглядеть следующим образом:

var tag = document.createElement('script'); 
tag.src = "https://www.youtube.com/iframe_api"; 

var firstScriptTag = document.getElementsByTagName('script')[0]; 
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); 

var player; 
function onYouTubeIframeAPIReady() { 
    player = new YT.Player('player1', { 
     events: { 
     'onReady': onPlayerReady 
     } 
    }); 
} 

function onPlayerReady(){ 
    player.loadVideoByUrl("https://youtu.be/bHQqvYy5KYo"); 
    player.playVideo(); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^