动态更改 youtube 上的视频 ID

Posted

技术标签:

【中文标题】动态更改 youtube 上的视频 ID【英文标题】:Dynamically change the video id on youtube 【发布时间】:2018-01-16 04:33:47 【问题描述】:

我正在尝试使用以下代码显示没有视频的 youtube 音频,因此我正在更改视频 ID,但它一次又一次地播放相同的 ID。

<!DOCTYPE html> 
    <html> 
    <head> 
    <meta charset="utf-8" /> 
    <title>About</title>
         <script type="text/javascript">
          function val1(val)
          

        document.getElementsByTagName("div")[0].setAttribute("data-video", val);
                            alert(val);


          

         </script>
    </head> 
    <body onload="val1('WKV_z36pVAk')"> 
    <h3 style="color:#0066dd">Hello</h3>

    <center>


    <div data-video="8IYzyTYucKQ"
         data-autoplay="0"
         data-loop="1"
         id="youtube-audio">
    </div> 

    </center>
    <button>change</button>


    </body> 
    <script src="https://www.youtube.com/iframe_api"></script>
   <script src="https://cdn.rawgit.com/labnol/files/master/yt.js"></script>
    </html>

【问题讨论】:

您在哪里看到应该设置data-video 来更改当前播放的视频?您应该进行 API 调用,例如:loadVideoById 在 dom:loaded 之后更改数据属性时要小心;它很快就会变得混乱。 ***.com/questions/17762906/… 请运行此程序并检查。你会明白这个问题,程序必须要 youtube 视频 ID,我想更改另一个 ID,但它没有改变。 您能否编辑问题,使其成为可运行的 Javascript/HTML/CSS sn-p,以便我们运行它? 【参考方案1】:

不太确定您要创建什么,但这可能会引导您走向正确的方向。

您可以使用此代码以一种 hacky 方式重新加载特定元素

function reload(vidId) <-- Added a parameter
    var container = document.getElementById("youtube-audio");
    container.setAttribute("data-video", vidId); <-- Added line to change data-video
    var content = container.innerHTML;
    container.innerHTML= content;

然后将其添加到您的 HTML

<button onclick="reload('8IYzyTYucKQ')">Reload</button> <-- Added the parameter to what the `data-video` should be changed

【讨论】:

嗨,请在哪里传递新的视频 ID 对不起,我下班了。进行了一些更改,重新加载函数现在需要一个参数。此参数将是正在加载的data-video。希望它仍然可以帮助您!

以上是关于动态更改 youtube 上的视频 ID的主要内容,如果未能解决你的问题,请参考以下文章

如何动态更改 Youtube Player videoID

我可以更改嵌入的 youtube 视频的播放图标吗?

更改 IFrame 的 innerHtml 上的视频属性

动态创建的 iFrame 上的 YouTube iFrame API

Android 4.3 上的 YouTube 嵌入式播放器

如何更改嵌入式 Youtube 视频的速度