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/

Ответы на вопрос(2)

Ваш ответ на вопрос