2013-05-20 3 views
0

В моей странице, я вставляя видео YouTube и так же, как это:Как заменить атрибут src тега embed с помощью JavaScript?

<object width="640" height="360"> 
      <param name="movie" value="https://www.youtube.com/v/M7lc1UVf-VE?version=3"></param> 
      <param name="allowFullScreen" value="true"></param> 
      <param name="allowScriptAccess" value="always"></param> 
      <embed src="https://www.youtube.com/v/M7lc1UVf-VE?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="360"></embed> 
</object> 

Теперь я должен заменить src атрибут в embed тега. Для этого я написал функцию JS:

function replaceSrc() 
    { 
    document.getElementsByTagName("embed")[0].src = "new_link"; 
    } 

if (window.addEventListener){ 
    window.addEventListener('load', replaceSrc, false); 
    } else if (window.attachEvent) { 
    window.attachEvent('onload', replaceSrc); 
    } 

Это, однако, не работает и после загрузки страницы, ссылка на YouTube остается тем же самым. Какие-либо предложения? Я рассмотрел предыдущие вопросы с похожим контентом, но они в основном использовали JQuery, в моем случае требуется JavaScript.

+0

Возможный дубликат [Как заменить значение параметра SRC в теге EMBED HTML?] (Http://stackoverflow.com/questions/16636612/how-to-replace-a-value-of-src-parameter -within-embed-tag-of-html) –

+1

Что вы пытаетесь сделать? Поскольку изменение атрибута 'src' будет ** не ** загружать другой фильм YouTube, если это ваша цель. См. Этот пример: http://jsfiddle.net/94bEm/ – David

+0

@David yes Я хочу изменить атрибут и загрузить фильм YouTube с новой ссылкой. Так что я пропущу? – MichalB

ответ

0

При загрузке нового видео в вставлять тег, вам необходимо создать новый embed элемент с новым СРК, а затем заменить старый один:

function replaceSrc() { 
    var elem = document.getElementsByTagName("embed")[0], 
     copy = elem.cloneNode(); 
    copy.src = "new_link"; 
    elem.parentNode.replaceChild(copy, elem); 
} 

Обратите внимание, что это только заботится о embed, вам может потребоваться позаботиться о параметре object.

+0

Вы имеете в виду, что мне нужно воссоздать элемент объекта? – MichalB

+0

@MichalB возможно, да, но это может стать беспорядочным. Если ваш вопрос был «как я могу загрузить другой фильм YouTube во время выполнения с помощью javascript», я бы не предложил этот маршрут вообще - я бы использовал API-интерфейс youtube. Поэтому вам может потребоваться отступить и попробовать другой путь, прежде чем вы закончите слишком много «взлома». – David

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