onYouTubePlayerAPIReady无法在Opera下触发

时间:2012-10-11 21:48:53

标签: javascript youtube-api

嵌入式Youtube视频未显示在Opera上。

显然回调的定义时间晚于加载YT api库,但找不到任何解决方法。

目前页面正在通过/ player_api js包含加载YT api,仅适用于Firefox。

试图通过

加载YT api
<script type="text/javascript">
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
<script>

但在这种情况下,页面在Opera和Firefox中都不起作用。

有问题的页面是: http://www.ionpoverty.tv/blog/featured/having-it-all-low-income-women-and-work-inequality/

1 个答案:

答案 0 :(得分:2)

看起来你包含js的方式是阻止它下面的脚本执行。每个浏览器稍微不同地处理阻塞脚本,这就是为什么你看到它在一个而不是另一个中工作的原因。继续并移动脚本以将www.youtube.com/iframe_api加载到您定义onYouTubePlayerAPIReady的位置之后。我还建议将其更改为onYouTubeIframeAPIReady,但要么应该有效。

您可以做的另一件事是确保加载www.youtube.com/iframe_api并在同一个脚本标记中定义'onYouTubeIframeAPIReady'。因为它是单线程环境,所以应确保在包含其他脚本之前定义onYouTubeIframeAPIReady。