2013-03-11 4 views
0

Я пытаюсь использовать Youtube Upload Widget для загрузки видео с сайта. У меня есть следующий javascript:Youtube Upload Widget onApiReady not firing

function onYouTubeIframeAPIReady() { 
    widget = new YT.UploadWidget('widget', { 
     events: { 
      onApiReady: function (event) { 
       event.target.setVideoTitle($("#title")); 
       event.target.setVideoDescription($("#description")); 
       event.target.setVideoPrivacy($("#privacy")); 
      }, 
      onProcessingComplete: function(event) { 
       document.getElementById('processing').style.display = "none"; 
       clearTimeout(timeout); 
       player = new YT.Player('player', { 
        height: 390, 
        width: 640, 
        videoId: event.data.videoId, 
        modestbranding: 1, 
        rel: 0, 
        events: {} 
       }); 

       $("#updates").slideUp('slow', function() { }); 
      }, 
      onUploadSuccess: function(event) { 
       alert('Video ID ' + event.data.videoId + ' was uploaded and is currently being processed.'); 
       widgetVideoId = videoId = event.data.videoId; 
       timeout = setTimeout(showProcessing, 1); 
      } 
     } 
    }); 
} 

Видеозагрузка просто прекрасна, но функция onApiReady никогда не срабатывает. Я не уверен, что мне не хватает, потому что он выглядит полным. Надеюсь, кто-то может дать представление о том, что я пропустил. Он не работает в IE9, FF, Chrome или Safari. Я хочу, чтобы иметь возможность обновлять метаданные на видео при его загрузке.

+0

Вы уверены, что это не срабатывает? Я предполагаю, что одно из операторов event.target не работает. –

+0

Я пошел вперед и добавил предупреждение в функцию обратного вызова onApiReady, и она никогда не запускается. Точка останова также никогда не срабатывает в Firebug или инструментах Dev Dev –

+0

Вы получаете ошибки javascript? Вы пытались удалить два других обратных вызова? –

ответ

0

Хорошо, я понял. Кажется, что вы должны использовать формат <div id="widget"></div> для контроллера виджетов вместо метода iframe для запуска onApiReady.

Благодарим за помощь Брэд.

0
event.target.setVideoTitle($("#title")); 
event.target.setVideoDescription($("#description")); 
event.target.setVideoPrivacy($("#privacy")); 

Все эти методы требуют строкового параметра, тогда как вы передаете им объект jQuery. Я считаю, вы хотите использовать .val()

+0

Это было мое плохое. Я пошел вперед и изменил его, но до сих пор нет кубиков. Спасибо за уловку, хотя –