如何使用JavaScript替换embed标签的src属性?

时间:2013-05-20 14:39:23

标签: javascript youtube embed src

在我的网页中,我正在插入一个像这样的YouTube视频:

<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。

1 个答案:

答案 0 :(得分:0)

如果要在embed标记中加载新视频,则需要使用新的src创建一个新的embed元素,然后替换旧的:

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

请注意,这只会照顾embed,您可能还需要处理object param。