【问题标题】:How do I get the YouTube API to load onclick?如何让 YouTube API 加载 onclick?
【发布时间】:2017-04-27 22:06:44
【问题描述】:

我正在使用 YouTube Iframe,如下所示。我想让我的播放器在 API 加载后通过单击按钮加载。

我创建了一个系统,我网站的用户可以选择将哪些视频加载到播放列表中,因此我无法对 YouTube 视频 ID 进行硬编码。是否可以创建一个 onclick 函数来触发加载播放器的事件?如果有,怎么做??

非常感谢!!!

<script>
  // 2. This code loads the IFrame Player API code asynchronously.
  var tag = document.createElement('script');

  tag.src = "https://www.youtube.com/iframe_api";
  var firstScriptTag = document.getElementsByTagName('script')[0];
  firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

  // 3. This function creates an <iframe> (and YouTube player)
  //    after the API code downloads.
  var player;
  function onYouTubeIframeAPIReady() {
    player = new YT.Player('player', {
      height: '390',
      width: '640',
      videoId: 'M7lc1UVf-VE',
      events: {    //CAN I REPLACE THE ONREADY EVENT WITH ONE
        'onReady': onPlayerReady, //THAT FIRES ONCLICK? 
        'onStateChange': onPlayerStateChange 
      }
    });
  }

  // 4. The API will call this function when the video player is ready.
  function onPlayerReady(event) {
    event.target.playVideo();
  }

【问题讨论】:

    标签: javascript jquery html youtube youtube-api


    【解决方案1】:

    你可以做一些类似下面的代码

    var tag = document.createElement('script');
    tag.src = "https://www.youtube.com/iframe_api";
    var firstScriptTag = document.getElementsByTagName('script')[0];
    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
    
    var video_id = '' //Desired video ID
    var player;
    $('LOAD_BUTTON').on('click', function() {
      // Load player when LOAD_BUTTON is clicked
      player = new YT.Player('player', {
        height: '390',
        width: '640',
        videoId: video_id,
        events: {
          'onReady': onPlayerReady,
          'onStateChange': onPlayerStateChange 
        }
      });
    });
    
    function onPlayerReady(event) {
      $('PLAY_BUTTON').on('click', function() {
        // Play video when PLAY_BUTTON is clicked
        event.target.playVideo();
      });
    }
    

    【讨论】:

    • 非常感谢。这非常有效。我取消了播放按钮并将其全部内置到加载按钮中。你不知道我多么需要这个解决方案,谢谢一百万。
    • 这仅适用于页面上的一个实例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    • 2013-08-10
    • 2019-06-02
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多