1
    var player = null;

function LoadYouTubeIframeAPI() {
  var scriptElement = document.createElement("script");
  scriptElement.src = "http://www.youtube.com/iframe_api";
  var firstScriptElement = document.getElementsByTagName("script")[0];
  firstScriptElement.parentNode.insertBefore(scriptElement, firstScriptElement);
}

function onYouTubeIframeAPIReady() {
  var playerParams = {
    playerVars: {
      "enablejsapi": 1,
      "origin": document.domain,
      "rel": 0
    },
    events: {
      "onReady": onPlayerReady,
      "onError": onPlayerError,
      "onStateChange": onPlayerStateChange
    }
  };
  player = new YT.Player("player", playerParams);
}

function onPlayerReady(event) {
  alert("ready")
}

function onPlayerError(event) {}

function onPlayerStateChange(event) {}

Here's my full code.

function onPlayerReady(event) {
    alert("ready")
}

Is never getting fired for some reason. Can anyone help with this? I just can't get it to work for hours.. Google is not helping me at all.

4

1 回答 1

1
  1. 确保你有一个<div>适合你的播放器的元素。
  2. 确保LoadYouTubeIframeAPI实际调用了该函数。因为在您的代码中它永远不会被执行。你只是在定义它。
  3. 确保您没有通过 HTTPS 访问您的站点,因为使用 javascript 加载 HTTP 资源仅适用于 HTTP 站点。

是一个工作示例,您可以在桌面上创建一个名为的文件test.html,将内容粘贴到其中并使用网络浏览器运行它。你会看到它工作得很好。

在这里您可以找到 API 参考以查看更多详细信息。

于 2017-12-11T10:31:51.063 回答