【问题标题】:Dynamically change the video id on youtube动态更改 youtube 上的视频 ID
【发布时间】: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 之后更改数据属性时要小心;它很快就会变得混乱。 stackoverflow.com/questions/17762906/…
  • 请运行此程序并检查。你会明白这个问题,程序必须要 youtube 视频 ID,我想更改另一个 ID,但它没有改变。
  • 您能否编辑问题,使其成为可运行的 Javascript/HTML/CSS sn-p,以便我们运行它?

标签: javascript jquery iframe youtube-api youtube-javascript-api


【解决方案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。希望它仍然可以帮助您!
猜你喜欢
  • 1970-01-01
  • 2022-08-15
  • 1970-01-01
  • 2014-01-08
  • 1970-01-01
  • 2015-05-24
  • 2018-03-28
  • 2017-10-11
  • 1970-01-01
相关资源
最近更新 更多