【问题标题】:Youtube - "YT" not definedYoutube - “YT”未定义
【发布时间】:2021-07-09 03:09:01
【问题描述】:

我正在尝试通过此代码使用 youtube 播放器:

        var tag = document.createElement('script');

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

            new window.YT.Player("video", {
                height: '432',
                width: '768',
                videoId: link,
                playerVars: {
                    'playsinline': 1, 'autoplay': 1
                },
                events: {
                    'onReady': onPlayerReady,
                    'onStateChange': onPlayerStateChange
                }
            });
        }

但是,不断出现错误:

未捕获的类型错误:无法读取未定义的属性“播放器”

【问题讨论】:

  • 在使用它定义的变量之前,您需要等待脚本完成加载 - 使用 tag.onloadtag.addEventListener('load', .....) 并将该代码放入其中

标签: javascript youtube youtube-api


【解决方案1】:

从代码中删除这些行:

events: {'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange
}



添加功能onPlayerReady()
onPlayerStateChange()

在其他地方尝试一下,因为 Stack Overflow 无法播放它

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 player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '390',
          width: '640',
          videoId: '668nUCeBHyY',
          playerVars: {
            'playsinline': 1
          },
        });
      }
<div id="player"></div>

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 2015-03-24
    • 2012-06-15
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    相关资源
    最近更新 更多