2015-11-05 4 views
0

Каков правильный способ инициализации API-интерфейса Youtube IFrame в скрипте закрытия?Использование Youtube IFrame API из сценария закрытия

Сейчас я следующая частью в шаблоне сои:

<iframe id="youtube-player" src="http://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1" frameborder="0" allowfullscreen></iframe> 

Закрытие скрипта содержит следующую часть:

var player; 
onYouTubeIframeAPIReady = function() { 
    console.log('api ready'); 
    player = new YT.Player('youtube-player', { 
     events: { 
      'onReady': onPlayerReady, 
      'onStateChange': onPlayerStateChange 
     } 
    }); 
}; 
function onPlayerReady(event) { 
    console.log('player ready'); 
    event.target.playVideo(); 
} 
function onPlayerStateChange(event) { 
} 

Сначала я боролся на получение YT.Player конструктора работать, но потом я добавил extern от https://raw.githubusercontent.com/google/closure-compiler/master/contrib/externs/google_youtube_iframe.js к компилятору закрытия и player объект был успешно создан.

Однако я получаю сообщение api ready в консоли, но не player ready, что означает, что onPlayerReady никогда не вызывается.

Когда я пытаюсь создать IFRAME, передавая идентификатор пустого div и добавление videoId параметра в YT.Player параметрах конструкторы - YouTube IFrame создается, но не указует на какое-либо видео.

Также я попытался добавить функцию onPlayerReady к внешним устройствам, но это тоже не помогло.

Что может быть неправильным?

ответ

0

Задача events Поле в параметрах конструктора YT.Player было переименовано компилятором закрытия.

Таким образом, правильный путь, чтобы выполнить его, чтобы избежать переименования:

onYouTubeIframeAPIReady = function() { 
    console.log('api ready'); 
    player = new YT.Player(playerId, { 
     'events': { 
      'onStateChange': onPlayerStateChange 
     } 
    }); 
    console.log(player); 
}; 
Смежные вопросы