2013-03-19 21 views
4

Я пытаюсь извлечь идентификатор видео YouTube из img, а затем передать его в iframe для воспроизведения встроенного видео. Мой iframe находится внутри div, который невидим до щелчка img:Изменение iframe src с JavaScript не работает

<div id="testimonialbackground" style="display:none;"> 
    <a href="#" onclick="toggledisplay(this);">Click here</a> to close the video 
    <iframe id="testimonialframe" src="" frameborder="0" allowfullscreen></iframe> 
</div> 
<img src="http://img.youtube.com/vi/x-ROeKGEYSk/1.jpg" onclick="toggledisplay(this);" /> 

И вот JavaScript. Он работает отлично до этой линии elem.setAttribute('src', newsrc);, в какой момент моя страница замерзает:

function toggledisplay(obj) { 
    var div = document.getElementById('testimonialbackground'); 
    var elem = document.getElementById('testimonialframe'); 
    if (div.style.display == "block") { 
     div.style.display = "none"; 
     elem.setAttribute('src', ""); 
    } 
    else { 
     div.style.display = "block"; 
     var explosion = obj.src.split("/"); 
     var newsrc = "http://www.youtube.com/embed/" + explosion[4] + "?autoplay=1"; 
     elem.setAttribute('src', newsrc); // <---- BROKEN LINE RIGHT HERE 
     elem.contentWindow.location.reload(); //to refresh the iframe 
    } 
} 

Спасибо за любую помощь!

ответ

4

src является атрибутом вы можете получить доступ непосредственно таким образом, вместо вашей линии elem.setAttribute('src', newsrc); просто используйте:

elem.src = "http://www.youtube.com/embed/" + explosion[4] + "?autoplay=1"; 

После того, как вы установите src нет необходимости обновлять iframe, как установка src будет делать автоматически. См. What's the best way to reload/refresh an iframe using JavaScript? для получения дополнительной информации о перезагрузке iframes. (В основном это указывает, что вы можете установить srciframe себе, чтобы обновить iframe).

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