YouTube播放器API onReady未针对www.youtube-nocookie.com触发

时间:2016-04-07 15:06:16

标签: javascript iframe youtube

我在使用iframe嵌入的YouTube播放器API参考时遇到问题...

特别是使用http://www.youtube-nocookie.com
(iOS允许嵌入在Safari中播放所必需的)

http://www.youtube-nocookie.com没有为演示中的onPlayerReady函数调用 (适用于http://www.youtube.com

请参阅下面的重现步骤

第1步: 使用标准的api演示: (复制下面链接中的代码) https://developers.google.com/youtube/iframe_api_reference#Getting_Started

--->工作得很好

- 第2步: 按照https://developers.google.com/youtube/iframe_api_reference#Loading_a_Video_Player

中的说明

更改

<div id="player"></div>

到(在步骤1的演示中)

<iframe id="player" type="text/html" width="640" height="390" src="http://www.youtube.com/embed/M7lc1UVf-VE?enablejsapi=1&origin=http://example.com" frameborder="0"></iframe>

(确保将origin = http://example.com更改为您的域名)

---&GT;工作得很好

- 第3步: 在最后一步添加的iframe标记中, 变化

src="http://www.youtube.com/embed/...

src="http://www.youtube-nocookie.com/embed/...

---&GT;现在永远不会调用onPlayerReady函数

注意:据我所知,这个问题过去几周才开始工作......

3 个答案:

答案 0 :(得分:1)

我完全可以确认这个问题。我已经使用youtube-nocookie.com超过一年了,突然几周前它停止了工作。正常youtube.com嵌入工作很好。

这似乎不仅仅是你的问题,我猜这是谷歌方面的问题。

答案 1 :(得分:1)

window.onYouTubeIframeAPIReady = function() {
  player = new YT.Player(document.getElementById('player'), {
    height: '390',
    width: '640',
    videoId: 'M7lc1UVf-VE',
    host: 'https://www.youtube-nocookie.com',
    events: {
      'onReady': function() {
        console.log('ready');
      },
      'onStateChange': function() {
        console.log('state change', arguments)
      }
    }
  });
}

$.getScript("https://www.youtube.com/iframe_api");

答案 2 :(得分:0)

似乎API与youtube-noocookie.com一起运行正常。以下代码在JsFiddle中有效,但在StackOverflow编辑器中不起作用。

window.onYouTubeIframeAPIReady = function() {
  player = new YT.Player(document.getElementById('player'), {
    height: '390',
    width: '640',
    videoId: 'M7lc1UVf-VE',
    host: 'https://www.youtube-nocookie.com',
    events: {
      'onReady': function() {
        console.log('ready');
      },
      'onStateChange': function() {
        console.log('state change', arguments)
      }
    }
  });
}

$.getScript("https://www.youtube.com/iframe_api");
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="player">

</div>