javascript - 如何使用JavaScript替换嵌入标签的src属性?

标签 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是必需的。

最佳答案

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

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

请注意,这仅照顾embed,您可能还需要照顾object参数。

关于javascript - 如何使用JavaScript替换嵌入标签的src属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16651936/

相关文章:

javascript - Socket.io TypeError : this. 传输未定义

javascript - 通过颜色框内的 AS3 外部接口(interface)调用 javascript

python - youtube-dl 如何生成直接链接?

javascript - YouTube videoId从输入API获取

parsing - 将 url_encoded_fmt_stream_map 解码为有效的 URL

pdf - 强制 PDF 显示内联,即使 Content-Disposition 另有说明?

java - 将消息存储到 R、G、B 而不是 Alpha

javascript - Reactjs-setState previous state为第一个参数,props为第二个参数

java - jsp 文件中数组索引超出范围

scripting - 为什么要将 lua 嵌入到游戏引擎中?