0

我想做类似的事情:

// create youtube player
var player = new YT.Player('player', {
  height: '390',
  width: '640',
  videoId: '0Bmhjf0rKe8'
});

var newVideo = $('<div></div>').html(player);
$('body').append(newVideo)

如何以编程方式添加 YouTube 视频元素?

4

1 回答 1

1

YT.Player 函数的第一个参数是创建播放器对象的元素的 ID;因此,在您的代码中,由于您尚未创建元素,因此它无法创建 iframe 或注入的播放器代码。但是,如果您颠倒您的顺序,并给您以编程方式创建的 ID,它应该可以工作。您还需要将播放器的创建放在 onYouTubeIframeAPIReady() 回调函数中,因为在加载 javascript API 时会自动调用该回调函数(您可以在该函数中创建多个播放器):

      var tag = document.createElement('script');
      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
      $('body').append("<div id='player1'></div><div id='player2'></div>");
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player1', {
          height: '390',
          width: '640',
          videoId: '0Bmhjf0rKe8'
         }); // repeat for player2, etc.
      }

如果您稍后创建新的 YouTube 播放器实例(当您确定 API 库已经存在时)例如响应事件,则不必像这样将其包装在回调函数中(当然您不必加载 javascript 本身),但要创建 iframe 的元素在调用之前仍需要存在于 DOM 中YT.Player()

于 2013-08-10T22:49:33.580 回答