2013-03-07 2 views
2

У меня есть iframe, который изначально не содержит видео. Когда пользователь нажимает кнопку, загружается видео Youtube. Чтобы обнаружить, когда видео Youtube закончило загрузку, я использую on(), чтобы определить, когда была изменена структура DOM Youtube iframe. В настоящее время я не вижу сообщение Video Loaded на моей консоли, когда видео загружено. Неправильно ли моя логика?Проверьте, изменился ли контент внутри Youtube iFrame

<div id="button">BUTTON</div> 

<div id="container"> 
    <iframe id="ytplayer" class="hide" type="text/html" width="840" height="470" 
    src="https://www.youtube.com/embed/" frameborder="0" allowfullscreen></iframe> 
</div> 

$(document).ready(function() { 
    $('#button').click(function() { 
     $('#ytplayer').attr('src', 'https://www.youtube.com/embed/w7bccxRvxDc?rel=0&showinfo=0'); 
    }); 
    $('#container').on('DOMNodeInserted', '#ytplayer', function() { 
     console.log('Video Loaded'); 
    });  
}); 

ответ

3

Возможно, вы захотите взглянуть на YouTube iframe API. Он поддерживает множество событий, в том числе при загрузке видео. API официально поддерживается, поэтому вам не нужно поддерживать специальный код в случае, если Google что-то изменит по дороге.

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