API YouTube - Firefox / IE возвращает ошибку «Х не является функцией» для любого «игрока». запрос
Я старался изо всех сил пытаться заставить довольно простую интеграцию API YouTube в FF / IE, и пока мне не повезло.
Это звучит как проблема с областью видимости или вызов, сделанный до инициализации проигрывателя, но все, что я пробовал, говорит о том, что это не одна из этих двух вещей. Также отметим, что все отлично работает в (только) Chrome.
// Async api load per YT documentation...
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Declare player and set basic functions...
var player
playVideo = function() { player.playVideo(); }
stopVideo = function() { player.stopVideo(); }
// YT Api ready function...
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
videoId: "TkJcg4bmAYs",
events: {
'onStateChange': onPlayerStateChange
}
});
// After player object created, bind popup function to page anchors...
var popup = $('#video-popup')
, popupFrame = $(popup).children('.center')
;
$('a[data-vid]').click(function(e){
e.preventDefault ? e.preventDefault() : e.returnValue = false;
var clicked = $(e.target).closest('a')
, videoID = $(clicked).attr('data-vid')
;
if (!$(popup).hasClass('working')){
// If popup isn't already working, cue video and animate popup in...
player.cueVideoById({videoId:videoID});
$(popup).addClass('working');
$(popup).css('display','block').animate({
opacity: '1'
}, 200, function(){
playVideo();
$(popup).removeClass('working');
});
}
});
}
Ссылка на тестовую страницу с API и всплывающим кодом, работающим в Chrome, но не в других браузерах.http://www.crackin.com/dev/regions/pathBuild/