Javascript youtube iframe事件

Javascript youtube iframe事件,javascript,events,iframe,youtube,Javascript,Events,Iframe,Youtube,我试图捕捉youtube iframe的事件: 所以我首先调用api <script type='text/javascript' src='http://www.youtube.com/player_api'></script> 无论我做什么,都不会触发任何事件。我读了10遍iframeapi。它实际上应该是有效的 有什么想法吗?在onYouTubePlayerAPIReady()之前执行这些例程 如果仍然感到困惑,那么请访问阿德尔的答案将解决您的问题 谷歌建议你异

我试图捕捉youtube iframe的事件:

所以我首先调用api

<script type='text/javascript' src='http://www.youtube.com/player_api'></script>
无论我做什么,都不会触发任何事件。我读了10遍iframeapi。它实际上应该是有效的


有什么想法吗?

在onYouTubePlayerAPIReady()之前执行这些例程


如果仍然感到困惑,那么请访问阿德尔的答案将解决您的问题

谷歌建议你异步加载playerapi脚本,也就是说,让页面的其余部分在脚本同时加载时加载


因为您很早就在标记中放置了脚本标记,所以在加载该脚本之前不会执行页面的其余部分。因此,当调用onYouTubePlayerAPIReady()时,您的函数尚未定义

我也有同样的问题。它似乎与手动放入iframe有关,而不是使用div标记替换。如果我使用div方法,它工作得很好,手动iframe,否

API脚本的异步加载,或者手动将其包含在头部,都没有任何区别

我现在刚加入了div替补,并停止了战斗。

我做了以下事情

从在中找到的示例代码开始

然后我替换了:

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


(在同一URL中找到iframe标记)

然后我去掉了上面的origin参数——这似乎使事情变得可行。顺便说一句,我发现步骤2可以用标记代替:

<script src="https://www.youtube.com/iframe_api"></script>


我也遇到了同样的问题,这次解决了。步骤2中的原始脚本旨在异步加载frame_api。如果使用标记,它将阻止浏览器渲染,直到加载脚本。
// This code loads the IFrame Player API code asynchronously.
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
<div id="player"></div>
<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>
<script src="https://www.youtube.com/iframe_api"></script>